An explanation of the temporal rejection issues the game experiences on Steam Deck, as well as some configs to increase temporal stability to reduce rejection rate.
Guide to Steam Deck Config
So for anyone who has attempted to play this game on the Steam Deck, you have likely noticed some really terrible temporal rejection. Like borderline unviewable terrible.
Never fear though, for your local graphics engineer is here to help with some in-game config you can use to reduce rejection issues, as well as a brief explanation as to why this is occuring.
To begin with the why: for some unknown reason, the game on the Steam Deck really struggles with issues of temporal rejection, a process which basically tosses pixel samples out of temporal buffers which are no longer relevant. The effect of this is pretty dramatic ghosting, as the game holds on to any notable high contrast noise for far too long prior to discarding pixel samples. This is a bit unfortunate, as it’s very apparent that certain shaders heavily make use of the temporal buffers, like their very impressive hair shader, which appears to be effectively redrawn with very little stability without at a minimum TAA available. Additionally some lighting and other shading effects look wrong or blown out without it, suggesting other places where the blending effect provided by temporal techniques is expected.
So in light of these issues I set to work reducing the number one enemy of temporal samples: high contrast noise.
The recommended big settings to change are the following:
Shadows – Low: While yes this shades far fewer objects in the environment, it also critically does not extend the shading to character fur or other high detail objects as it appears to lack self-shading. This may seem counter intuitive, but this setting alone fixes many of the high contrast noise issues in the game, which ends up leading to an overall cleaner looking experience. Additionally, low still seems to retain the shadow mal resolution of the major static elements, it just seems to eliminate self shading.
Texture Filtering – Trilinear: Normally this is not necessary, and it will likely be fixed with a patch at some point, but at current it’s clear their anisotropic filtering is broken, which leads to very noisy textures. Trilinear seems to still filter well and remains much more stable by comparison.
Ambient Occlusion – XeGTAO: helps relieve some of the loss of self shading, is more stable than SSAO, and runs significantly better than HBAO+ without much in the way of a quality hit. Highly recommend, only costs a few frames.
Hair Quality – Medium: Go any higher and you don’t gain any perceptible detail at the resolution we’re working with. Go too high and you’re right back into the too much noise and lack of rejection camp.
Depth of Field – Off: This and the other two cause issues with edge rejection, I am unsure as to why, besides it’s a fairly heavy effect with little in the way of visual benefit.
Chromatic Aberration – Off: Same thing, what should be post process shaders applied after the templral pipeline are effecting edge rejection somehow, disable it.
Film Grain – Off: Same thing as the previous two, except it’s even worse with the purposeful addition of the very thing we’re trying to remove. I’m once against not certain why these are effecting edge sample rejection rates, but they are.
XeSS go brrr
Finally onto the inevitable topic of the upscaling used:
Use XeSS Ultra Quality: It has the least problems with tossing samples, and it’s the option which allows for the relative highest initial input resolution, giving it more to work off of to reduce sample rejection. It also runs decently at 25-30 FPS in the intro section. You can try ultra as well, but then edge rejection creeps back in.
Part of the issue with the other two is that they are working with too little information to remain stable, which leads to pretty dramatic sample rejection problems, where basically anything with any edge detail begins “swimming” due to extreme ghosting. You’d think just simple TAA would be better, but it appears to have the exact same underlying issues as the other two in spite of having the most information to work with, it also performs worse than XeSS due to running at the native resolution. Running with it is also better than without as shaders reliant on the temporal buffers still look correct and remain stable.
Sorry for the length! I don’t have a significant amount of time to go digging through any potential configuration files the game has to further improve things yet. Hope this proves helpful!