Witcher 3 Tips&Tricks [Performance]

First of all, this is not about any downgrade but to improve performance&visuals through out the game.
(those are my own settings, and my own opinion)

Make sure you're running latest GPU drivers (both NV & AMD)

1.06
Base remain unchanged.
Every time you upgrade all those tweaks are removed with default settings.

Always make backups before editing files.
*** Version 1.07 is pretty much the same except user.settings, please find below attached user.settings
http://pastebin.com/dwpBMhqD (outdated)
http://pastebin.com/HbLjesFZ (Stable old ~WIP~)
http://pastebin.com/yk31MxhC (current Stable ~WIP~)
**** 1.07 brought plenty of new settings, its going to take me while to look at them all.

=======================
First place owners of Nvidia GPU's have to look at (amd owners of 7970, 8970, 280x, 270x, 285 can edit present)
The Witcher 3 Wild Hunt\bin\config\performance.xml

Edit file with notepad or similar one.
Find your GPU
1) Remove 'fpslimit="30'.
2) Edit preset="X" and change X to "3" this will allow for higher quality textures, draw distance etc.
=========================
=========================
\The Witcher 3 Wild Hunt\bin\config\base\resources.ini

FileQueueSizeGame = 250
FileQueueSizeLoading = 700
MaxRequests = 45 [50 is max, and with 50 or over you might have crashes]

(bigger faster loading)
MaxCompressedBudget = 10

MaxUncmpressedBudget = 240
MaxUncompressedBlocks = 4096

==============================

How to improve performance of hairworks overall in AMD GPU's (not that i personally feel like there's need)
(this will also decrease quality and amount of hair)

Inside your AMD Catalyst Control Center
Gaming > Create custom game profile, or use default (up to you)

Look for Tasselation options "Maxiumum Tasselation" and lower it. (2x is lowest, 16x is a middle ground, 32x looks good, and is pretty much same as 64x)

==============================

Warning this will fork it out further beyond ultra.

\The Witcher 3 Wild Hunt\bin\config\base\rendering.ini

AllowMSAA=false [keep false, doesn't work]

MaxTextureSize=3048
MaxAtlasTextureSize=3048
MaxCubeShadowSize=1024
MaxSpotShadowSize=1024

TextureMemoryBudget=3500
TextureMemoryGUIBudget=180
TextureInFlightBudget=320

TextureStreamingDistanceLimit=440000.f
TextureStreamingReduceGameplayLOD=true

UberSampling=0 [keep at 0 or 1 = disabled, doesn't work at the moment]

DynamicDecalsLimit=60
MeshRenderingDistanceScale=4.0f
MeshLODDistanceScale=0.0f
TerrainScreenSpaceErrorThreshold=1.6f
TerrainErrorMetricMultiplier=6

GlobalOceanTesselationFactor=64
UseDynamicWaterSimulation=true
UseHairWorks=true
HairWorksAALevel=8 [lower this if you have decreased hardware performance in hairworks]
TerrainReadAheadDistance=600.0f

MeshLodGameplayDownscale=0
CharacterLodGameplayDownscale=0
DecalsHideDistance=100
StripeHideDistance=120
SwarmHideDistance=400
DimmerHideDistance=260

DecalBudget=200

========================

~ Optional 1.07 -- for AMD performance ~ Might not work, and break your configs... ~
Remove Following lines from user.settings (it hinders performance, without them it uses default settings like in 1.06)

HairWorksGlobalWidthLimit=
HairWorksGlobalStrandSmoothness=
HairWorksGlobalDensityQuality=
HairWorkstGlobalDensityLimit=
HairWorksGlobalDetailLODFactor=

Keep only
HairWorksLevel=2 - only if you want nice hairworks to work that is.

=========================

\The Witcher 3 Wild Hunt\bin\config\base\visuals.ini

[will take longer to load if your gpu isn't fast enough]
MovieFramerate=60.0

=========================

After change of this file I recommend making it read-only as full screen mode is buggy sometimes and it will switch to borderless, this way you don't have to come back and change settings again -> each time you update you need to make writable again...

C:\Users[username]\Documents\The Witcher 3\user.settings

VSync=false
FullScreenMode=2 [many people will have 1 = borderless, this decreases performance dramatically]
VSyncThreshold=0

SpawnedLimit=200

cvMaxAllowedLightsShadowTime=3
cvMaxAllowedGrass=60000
cvMaxAllowedDecalsDynamic=20
cvMaxAllowedDynMeshes=107857600
cvMaxAllowedChunksSkinnedTime=3.5
cvMaxAllowedTrianglesSkinned=100000

cvMaxAllowedLightsShadow=5
cvMaxAllowedActiveEnvProbesTime=0.3
cvMaxAllowedStatTextures=514572800
cvMaxAllowedSpeedTree=5000
cvMaxAllowedLightsNonShadowsTime=0.2
cvMaxAllowedChunksStatic=1500
cvMaxAllowedTrianglesStatic=500000
cvMaxAllowedHiresChunks=25
cvMaxAllowedDecalsDynamicTime=0.5
cvMaxAllowedLightsNonShadows=40
cvMaxAllowedChunksStaticTime=1.5
cvMaxAllowedChunksSkinned=400
cvMaxAllowedApexDestroTicked=40
cvMaxAllowedStatMeshes=409715200

cvMaxAllowedHiresChunksTime=0.2
cvMaxAllowedApexTickedTime=0.5
cvMaxAllowedCharTextures=209715200
cvMaxAllowedParticlesCountTime=0.2
cvMaxAllowedParticlesCount=2000
cvMaxAllowedGrassTime=1.5

OcclusionQueryAdditionalMemory=20
cvMaxAllowedDecalsSS=160

GrassDensity=3400
DecalsSpawnDistanceCutoff=20
TextureStreamingHeadsDistanceLimit=20
GlobalOceanTesselationFactor=128
TextureStreamingCharacterDistanceLimit=70
CascadeShadowFadeTreshold=1
CascadeShadowDistanceScale2=1.5
TextureStreamingDistanceLimit=60000
MaxCascadeCount=4
TextureMemoryBudget=2400
CascadeShadowDistanceScale3=1.5
MeshLODDistanceScale=0
ScaleformTextureUnstreamDelay=2.5
DecalsChance=1
TerrainReadAheadDistance=600
HairWorksLevel=2
TerrainScreenSpaceErrorThreshold=1.6
MaxTerrainShadowAtlasCount=4
TextureInFlightCountBudget=12
TerrainErrorMetricMultiplier=4
CascadeShadowmapSize=3072
CascadeShadowDistanceScale0=1
MeshRenderingDistanceScale=1
CascadeShadowQuality=1
CascadeShadowDistanceScale1=1

UseDynamicWaterSimulation=true

LimitFPS=0

GrassGenerationEfficiency=0.075
GrassDistanceScale=1
FoliageDistanceScale=1
FoliageShadowDistanceScale=64
GrassRingSize=16777216

MaxVisibilityDepth=24

~ Optional ~
This forces streamer to load higher quality textures. (add at the end of file)

[Streaming/Textures]
UseMipRefiner=true

===========================

You can find additional possible var that could be specified inside config files here:
[Do not change those files - unless you know what you are doing.]
\The Witcher 3 Wild Hunt\bin\config\r4game\user_config_matrix\pc

Feel free to ask question about settings, I or someone else on the forum might be able to explain what do they do.

Here are links to pastebin for my own configs (note thay are little bit different from those settings, but feel free to use them)

\The Witcher 3 Wild Hunt\bin\config\base

resources.ini [All versions]

rendering.ini [v1.06]

\The Witcher 3 Wild Hunt\bin\config
performance.xml [All Versions]

My own user.settings [v1.06]
C:\Users[YourUserName]\Documents\The Witcher 3

User settings [v1.07]
http://pastebin.com/dwpBMhqD (outdated)
http://pastebin.com/LdFd6Eed (Fixes performance issues ~WIP~ may have issues, may not work!)
http://pastebin.com/HbLjesFZ (Stable ~WIP~)

NV Tweaks, nice SS with comparison

CDPR Tweaks, descriptions
http://forums.cdprojektred.com/threads/36088-A-compendium-of-tweaks-and-fixes-for-the-PC-version

10 Likes

I may just link this over on PCGamingWiki if you are okay with that? Or you can yourself if you like. Seems really helpful.

Edit: Some before and after screenshots would be really good too. Or even low, high, ultra, custom comparison would be really good.

up to you.

Thanks man. I will do it later.

the changes are minimal (pointless to make ss, as its almost the same), most affect how far objects are being drawn and with what quality at certain distance, how many shadows it can cast etc.

different time of the day, and weather can make all changes.

Some nice SS,

Lovely evening

Nice area

Spell fire effects (with apex = works on AMD, but its very heavy - frame rate drop once your camera is too close to effect.)

Awesome sundown.

Water effects

Swamp

Sunlight at almost dawn, great view.

Fire lanterns with smoke and light shafts look nice.

Smoke from torch. (but poor foliage texture in that cave)

Geralt looking slick, awesome quality of armor.

Place where e3 demo was recorded

Nice lightning

Distance draw

Weather at dawn

Pebbles, rocks etc. in skellige

Hi,

First of all, thank you very much for this tutorial. I applied it and I am satisfied. I'd just have a few questions if you don't mind:

-I couldn't find in the .ini files every lines you have mentioned. Maybe it is because I have an AMD card?
-I am sorry but I'm not a native english speaker and I couldn't understand the expression: "Warning this will fork it out further beyond ultra." Doest that mean that the game is supposed to be better than the ultra mode or the opposite ? Because if it's better than ultra I am a bit surprised: I have between 50 and 65 fps, with an I5 and a R9 290 OC tri-x.
-If I make changes in the menu of the game, will it cancel the changes I've made in the ini file?
-When there is a patch (1.04), do we have to change something?

Thanks again for the tutorial !

Thank you so much!
I just played half an hour with your settings and have to say my fps seem to have improved. Not to mention I didn't have to use Vsynch, which introduced nasty jitter my landscape pans. Really big thumbs up for solid 50 fps all maxed out (with your settings) @ GTX 970 / FX 8350 / 16GB RAM.

Since I just have played that short period of time I don't know exactly if it removed the annoying texture popping I had, but I didn't saw any.

edit: And there is 1.04.
Any Idea if you have to change some settings now?

After checking the differences of both files, my backup of CyklonDX's Tweaks and the new 1.04 (MAX) one, I saw a few things missing. Dunno if it helps, I decided to post them :

Following are the missing lines of the tweaked user.config file. the [NUMBER] is the specific line Notepad++ shows me, just for orientation.

1.04 user.settings:

[74] AllowMotionBlur=false 
[97] CharacterLodGameplayDownscale=0
[102]MeshLodGameplayDownscale=0
[122]MsaaLevel=0

[132]MaxCascadeCount=4
[133]TextureTimeBudget=5
[134]UseDynamicWaterSimulation=true
[135]UberSampling=0

[139]MaxSpotShadowSize=512

[143]ForcedDebugPreviewIndex=-1
[144]AtlasTextureDownscale=1
[145]TextureMemoryGUIBudget=80

[150]MaxCubeShadowSize=512
[151]DetailTextureDownscale=0
[152]TextureDownscale=1


[155]TextureStreamingReduceGameplayLOD=true
[156]ForceInstantEnvProbeUpdate=false
[157]DynamicDecalsLimit=30
[158]TextureInFlightBudget=64

[165]HairWorksAALevel=8

[167]ForceInstantAdaptation=false

[189][TextureStreaming]
[190]MaxResidentMipMap=6

I know some of those lines weren't there in the first place, but I thought it was worth mentioning.

Additionally, one line have changed due to the update, and were not changed by this tweaking guide. in the first place, so might be considered as new?

1.04 user.settings:

TextureMipBias=-1

Excuse my confusing English -> No native speaker.

Those options that you don't see in your config - are within engine, yet were not included in main config file/s.

I'll update it later today (maybe in next few hours) to include 1.04 path. (those were tips for 1.02, but should work on 1.03 too)
before update i recommend reverting those edited files to original as there might be additional settings (as there were some new in 1.03)

It doesn't matter if its NV or AMD card, I myself am running it from 290x (cf doesn't work well, and neither does sli, i recommend running this game in single card mode, until its patched, and drivers are fixed)

updated to 1.04

not much has changed.

to explain what does it do
TextureMipBias=-1

TextureMipBias is used to blur textures. (0 is best quality, and -4 is most blurred but has better performance)

Thanks for making this man! Once I get a new gpu next month or so I'm gonna use these tweeks so much. As is my gpu is doing all it can to play tw3 without better graphics from this so I may have to hold off on them

some of those settings might improve your performance, if you pm me/post your hardware details i can take a look what can be done to improve fps.

Sup mate, I'd like to know if You have some time tomorrow for some guide-talk, I'm working on 'master-cfg' with all settings and high customization. I'd love to use your knowledge.

I'll be at work tomorrow for whole day till 12 at night, and it'll be like that till Wed.
(busy at my work) so skype, ts, teamviewer etc are out of question unless you want to do it on Thursday or Friday.

if you really want to do it tomorrow, then after ~5PM (UTC -6 Central Time), i will answer in normal time-frame on forum or through pm
normal time frame = ~5min -> ~2hours

For those that really wanted that old 3E shadder:

1 Like

How many FPS improvement??

I see, its not anything urgent so I dont want to take your time when I dont have to. Basicly I mean that I need Your help with further identification of what X cvar does exactly. Also I need more info about those value limits/maximum range. Currently I'm creating best quality available, performance cost is not matter now. I'm working with Your config examples and Your values, but checking ingame results of things i dont fully understand (specially commands like this "cvMaxAllowedStatMeshes=409715200") is really pointless beacuse like we know changes are not really that big seperatly , so to notice them I need to know what I should look at :P. If You have somewhere your version of 'highest possible quality' version, I would love to work on that version and learn some from it.

Edit: Quick question - TextureMipBias=0
Everything above 0 is pointless, and with 1/2/3/4/5 etc it will be locked to 0 anyway
same with values below '-4'
Correct?

Well maybe it wont be so 'quick' but instead of asking You every 5 min, I'll ask once so I wont have to bother You.
I mean maximum values (again best quality) from commands below.
[Rendering]
MaxTextureSize=4096
MaxAtlasTextureSize=4096
MaxCubeShadowSize=2048
MaxSpotShadowSize=2048

Same as above + what those does
[Rendering]
TextureStreamingDistanceLimit=44000
TextureStreamingCharacterDistanceLimit=70
TextureStreamingHeadsDistanceLimit=20

CascadeShadowmapSize=3072
CascadeShadowQuality=3
CascadeShadowDistanceScale0=1
CascadeShadowDistanceScale1=1
CascadeShadowDistanceScale2=1.5
CascadeShadowDistanceScale3=1.5

MeshRenderingDistanceScale=2
MaxCascadeCount=6
MaxTerrainShadowAtlasCount=6
TerrainReadAheadDistance=800

[LevelOfDetail]
DecalsHideDistance=100
StripeHideDistance=120
SwarmHideDistance=400
DimmerHideDistance=260

[TextureStreaming]
MaxResidentMipMap=6

I do not know if it's good but once I did that and I'm in the game when I look in graphics I see that everything is low quality , it is normal ?

Same goes for me. I guess it's just the game not recognizing those settings. Wouldn't worry too much if you got the FPS boost and the better look ;)

I also told myself well thank you x )