diff options
| author | Duck912 <350528965+Duck912@users.noreply.github.com> | 2026-11-01 21:43:28 -0500 |
|---|---|---|
| committer | Duck912 <350528965+Duck912@users.noreply.github.com> | 2026-11-01 21:54:49 -0500 |
| commit | 92d49d8a0c3e60894765bc2c332fdc936c87fc45 (patch) | |
| tree | af4be3c6ba6223db85ac7e2750d2fe46984bf503 /src/video_core/renderer_vulkan/present/layer.cpp | |
| parent | d125cfb41c0b78b0f4880fac20fab65c913d97e3 (diff) | |
video_core: temporal upscale stand-in for Fortune's Weave's DLSS
The one-frame blit left 3D edges aliased and shaking: the game jitters
its camera every frame for DLSS to accumulate. Fire Emblem: Fortune's
Weave's first DLSS pass (also rejected) has the motion vectors
(cbuf0+0x290, R16G16) and the frame's jitter (+0x1b0/+0x1b4, in input
pixels). Kepler compute keeps them, and the stand-in for the last
network pass now draws temporal_upscale.frag: input samples placed where
the jitter put them and weighted by distance, blended with the previous
result reprojected along the motion vectors (Catmull-Rom) and clipped to
the 3x3 neighbourhood in YCoCg. The history is copied from the result
right after drawing it, so post-processing the game later applies to its
output does not feed back. EDEN_NX2_TEMPORAL_UPSCALE=0 restores the blit.
Assisted-by: Claude Opus 5.5 (debugging, implementation and drafting)
Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com>
Diffstat (limited to 'src/video_core/renderer_vulkan/present/layer.cpp')
0 files changed, 0 insertions, 0 deletions
