So I think figured out how to use this. There’s no quality settings like DLSS or FSR. You have to define your own using the dynamic resolution scaler.
I did the following, matching DLSS’s source resolutions:
DynamicResolutionHandler.SetDynamicResScaler(
delegate()
{
switch (mode)
{
case UpscalingMode.Quality:
return 66;
case UpscalingMode.Balanced:
return 58;
case UpscalingMode.Performance:
return 50;
case UpscalingMode.UltraPerformance:
return 33;
default:
return 100;
}
},
DynamicResScalePolicyType.ReturnsPercentage);
Original post:
Testing the new Spatial Temporal Post Processing feature in Unity 6, I noticed something strange. While framerates overall improve massively, it’s terribly unstable. Bouncing constantly between 50 and 100 frames per second.
I can’t find very much information about it. Is it using dynamic resolution? Why not allow setting a specific quality setting like DLSS and FSR so that this doesn’t happen?
Did you figure out how to switch from dlss, fsr and stp through C#? Can only see allow methods for dlss and fsr, but not stp.
.allowFidelityFX2SuperResolution
.allowDeepLearningSuperSampling
on camera, but can’t find allow STP.
Yes. I set allowFidelityFX2SuperResolution and allowDeepLearningSuperSampling both to false, allowDynamicResolution to true at which point it falls back to STP if that is among the advanced upscalers in the HDRP settings:
I would advice reading the code and adapting it to your project instead of copy/pasting. It’s not like a finished thing. You may need to add some stuff or change things. But the general approach works.
As for where to put it, I’ve got it on the main camera as that’s the only scene object it interfaces with.