Supersampling through the upscaler: DLSS/DLAA and FSR 3.1 reconstruct past the output, then filter down (like DLDSR, in the game) #2758
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#2758
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The idea
Let the temporal upscaler reconstruct to a target larger than the output, then filter it down to the output: supersampling through DLSS/DLAA (and FSR 3.1), the way NVIDIA's DLDSR plus DLAA is used in PC games today, but inside Hookshot.
Why it would help
dlss_out.compalready writes it out. The new part is a larger target and a downscale filter in that same pass.What I have
A working version on v2.1.0, kept on my own branch for now:
RX_VK_UPSCALE_TARGET=1.78or2.25(the DLDSR factors: 4/3 or 3/2 per axis). It is off by default and has no menu row.vk_temporal.cpp) and FSR 3.1 (vk_fsr3.cpp) reconstruct to that size.dlss_out.compfilters it down in linear colour with a widened Catmull-Rom.Run in game (v2.1.0 plus this change, built from source) on an RTX 4090 (NVIDIA 621.01, Windows 11, i9-13900K, Kokiri Forest): DLAA with
2.25on a 5120x1440 output gaveupscaler target 7680x2160. There was no frame-rate change at those settings: the GPU wait stayed at or under 0.1 ms, and the frame rate followed the draw count with and without it (about 3,400 draws, 45 fps both ways).Not tested:
What I am asking
Is this wanted? If it is:
RX_setting only, or with a Graphics row (for example "Upscaler target: 100% / 178% / 225%")?mainhas moved a lot since v2.1.0 (the presenter thread, DLSS Frame Generation from #2118), so I would port it onto the currentmainand test it there before a PR. I would not start the port until you say it is wanted.Score, as in docs/workflow.md: S3 (a feature) x reach 0.25 (DLSS/DLAA needs an RTX card: RTX 30, 40 and 50 are about 25% of the reports; FSR 3.1 would widen it, but that path is untested) x confidence 1.0 (runs here) = 0.25.
Anything else