A guide to fix the games stuttering / micro-stutter issue that is common in UE4 Games.
Table of Contents
How to Get Smoother FPS and Fix Stuttering
Beginning
As you have noticed, The Callisto Protocol suffers from a stutter related to texture streaming and shader cache. This is a common issue across UE4 games.
Engine.ini Edits for Fix
I have negated most of the games stutter by applying the same fixes I used for the previous 3 titles.
Navigate to the games config folder
- \AppData\Local\CallistoProtocol\Saved\Config\WindowsNoEditor
Once here open up Engine.ini
At the end of Engine.ini paste the following
[/script/engine.renderersettings]
niagara.CreateShadersOnLoad=1
r.CreateShadersOnLoad=1
D3D12.PSO.DiskCache=1
D3D12.PSO.DriverOptimizedDiskCache=1
r.HZBOcclusion=0
r.AllowOcclusionQueries=1
r.Shaders.Optimize=1
[TextureStreaming]
r.Streaming.Boost=1
r.Streaming.FullyLoadUsedTextures=1
r.Streaming.HLODStrategy=2
r.bForceCPUAccessToGPUSkinVerts=True
r.Streaming.FramesForFullUpdate=60
r.Streaming.DropMips=0
r.Streaming.LimitPoolSizeToVRAM=0
r.Streaming.MipBias=0
r.Streaming.UseAllMips=1
r.Streaming.UseMaterialData=1
r.Streaming.UseNewMetrics=1
r.Streaming.UsePerTextureBias=1
r.Shaders.Optimize=1
r.Shaders.FastMath=1
r.UseShaderCaching=1
r.UseShaderPredraw=1
r.UseAsyncShaderPrecompilation=1
r.TargetPrecompileFrameTime=13
r.PredrawBatchTime=13
r.AccelPredrawBatchTime=0
r.AccelTargetPrecompileFrameTime=0
r.Streaming.DefragDynamicBounds=1
s.AsyncLoadingThreadEnabled=True
r.Streaming.PoolSize=0
[ConsoleVariables]
AllowAsyncRenderThreadUpdates=1
AllowAsyncRenderThreadUpdates=1
AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1
AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1
AllowAsyncRenderThreadUpdatesEditor=1
AllowAsyncRenderThreadUpdatesEditor=1
s.AsyncLoadingThreadEnabled=True
These are tweaks used across UE4 games that help get rid of the stutter.
One thing to note is, these tweaks also cause the game to load the shaders before gameplay, which will result in slightly longer load times.
Additional Changes
Launch options
I used the same launch option I used for Remnant.
-dx12 -xgeshadercompile
Now that the Stutter is mitigated. Lets talk about the drops.
The games FPS drops are a different issue, these can’t just be solved by editing the Engine.ini
Here are my settings to smooth the game out and help get rid of the drops. (Apply in menu)
Max FPS = 60 (I also applied this in nvidia control panel)
- The game on my system ran at around 120-144 fps unlocked with no ray tracing. But the performance is so unpredictable that it randomly dropping to 40fps from 120 is extremely noticeable. Keeping this locked at 60 makes dips less apparent.
Motion Blur = OFF
- While some people actually like motion blur in games, enabling it on a game with fps dips makes it look way worse as it will dip while the screen is blurred.
Set Upscaling to AMD FSR 2 to performance
- While FSR seems to be completely broken for some people atm, this works well if it happens to work for you. You can also try disabling it as some have reported success with that
Render mode = DX12
- This provided the best FPS on my system. Although some have reported better stabillity on DX11. Since DX12 performance is vastly different on different hardware, its worth running a benchmark on both to see losses/gains. (Just note, DX11 disables some settings.)
I hope this helped smooth out your game and experience.
Are you sure these settings work? I tried them but ex. The r.Streaming.FramesForFullUpdate=60 which I set to 80 does not work…. It does not cap the game to 80 but still full 120 fps. So I’m thinking if this does not work maybe a lot other config lines does not either?