Dynamic/adaptive resolution scaling hitches, how to solve?

In VR, setting r.screenpercentage causes a hitch. What are the causes behind this?

I’d imagine it is from reallocating the g-buffer and stuff?

If so, is there any way we could do something like pre-allocate a g-buffer at some large size, and then just use a portion of it for rendering any time we are at a lower screen percentage? This could maybe get rid of the hitching.

Ideally I’d like to be able to switch resolutions rapidly, sometimes automatically through heuristics, other times manually through code when I play certain particle effects, etc.

Are there any barriers to making this work? Are the hitches just an artifact of the current implementation or something more fundamental?

I know several console games are using dynamic resolution scaling, does it work without hitches on those platforms when using UE4? If so, how can we get it working in VR?

Hi muchcharles,

Did you manage to get dynamic resolution scaling to work without those hitches?

It’s seems that 4.19 have dynamic resolution scaling implemented.

Yes, John Alcatraz got it all working with temporal AA. With that change I was still getting a final hitching issue with the lightgrid getting recomputed when changing resolutions, which would only happen if you changed more than X number of pixels. I changed the lightgrid to be a fixed number of divisions instead and to have rectangular instead of always square cells and it fixed things, but I think it might work better with just overallocating a bigger grid, which I haven’t tried yet.

Like Kalle_H said, 4.19 seems to have it too. I haven’t had a chance to look at their implementation yet, I don’t know if they fixed the lightgrid issue there.