cancel
Showing results for 
Search instead for 
Did you mean: 

Gaming Discussions

zeubi
Journeyman III

Make FSR better

Call me Lisa Su or an engineer, I have a bright idea to improve FSR quality.

First here's a very simplified diagram of how FSR operates or at least my understanding of it, correct me if I'm wrong :
0.png

Every new frame the camera is slightly jittered to produce different fresh samples and old samples are reprojected with a lowered importance for the resampling algorithm to do is magic. Of course there's a lot of others things happening but that's not the point of our interest here.

Now here's how I think it could be improved :
1.png

Obviously if we do 4 passes with the same render resolution it will takes 4x the time to process and would be meaningless, but the goal is not to have more samples by rendering every pixel 4 times, no instead the idea is to keep about the same number of samples as before but distribute them differently to have more fresh samples where it matters the most and less where it's not as important. And we'd do that by using different masks, Disocclusion mask, Edge Detection mask, VRS mask...

The 1st pass we render all pixels, 2nd pass only pixels that hit 1 mask or more, 3rd pass pixels that hit 2+ masks, 4th pass pixels that hit all 3 masks.
The input resolution should be a tad lower to account for the additional rendered samples of the new passes but at the end the visual quality should be better.

Said differently the more important parts of the image could be in native res, 2nd more important in quality mode, less important in balanced mode, and least important in performance mode, kinda.

Tell me what you think.
Hi there btw.

0 Likes
2 Replies
otacon
Adept III

I think you misunderstand how FSR works. FSR 1 is applied after the application has rendered a full frame, using only the final frame colour data. FSR 2 uses colour, depth, motion data, and the previous frame to get better results.

Neither have any effect over the "camera". The upscaling is all performed after the frame is completed. Completing multiple render passes would probably negate all gains from FSR. If you are reaching for FSR it usually isn't for better image quality, but for better performance at your monitor resolution.

0 Likes

Hi otcaon thanks for your message,

I was obviously talking about improving FSR2 not 1, and I'm aware of depth buffer, motion vectors and other stuff, but I skipped them on purpose to simplify my diagram because that's not something that need to change with my idea.

Camera jitter is an essential part of FSR2, without it previous frames accumulation wouldn't work when the camera is not moving, there's some doc on it if you're interested : https://github.com/GPUOpen-Effects/FidelityFX-FSR2/blob/master/README.md#camera-jitter

Maybe I didn't stated it clear enough but the goal is not to calculate more pixels but do it differently, so the performance boost would still be the same.
For example if you've played a 3rd person game with FSR2 you've probably seen these disoclusion artifact around your character when moving, well if we could recalculate those pixels at native res and to compensate the extra work not calculate other pixels on a part of the image where things are not moving too much, the performance wouldn't change but the image quality could be better.
That's the idea and I'm proposing some a sorta way to achieve it.

0 Likes