Snapshots: temporal AA (TAA/FSR) by rendering a short jittered sequence on the offscreen surface #417
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#417
Loading…
Add table
Add a link
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?
Snapshots (the snapshot tool, high-res snapshots, upload/postcard/disk) are rendered without temporal antialiasing: no TAA resolve, no FSR. So they come out aliased (jaggies, specular shimmer frozen into the image, noisy RT/SSR/AO without temporal accumulation) compared with what's on screen, where TAA or FSR is on.
Current behaviour (code)
llcleanrenderervk.cpp~13828: "Jitter only the on-screen main view: no resolve consumes an offscreen snapshot."ensureTAAclearsmTaaHistValid, so the main view's history also restarts after every snapshot (a brief shimmer on screen after taking one).mFsrRanLastis false on a snapshot; FSR's temporal state is not advanced by offscreen frames.LLViewerWindow::rawSnapshot(llviewerwindow.cpp~5476) →LLVulkanContext::renderOffscreen(world, w, h, ...). Snapshots can be any size, including larger than the window and tiled high-res.Proposal
Render the snapshot as a short temporal sequence on its own offscreen surface, building up TAA/FSR history before taking the result:
Options / settings
RenderSnapshotTemporalFrames(0 = current behaviour, no temporal AA): number of accumulation frames.Done when
Solved by a different approach: snapshots render supersampled (
32ff178571,d8befef87f) instead of a jittered TAA sequence, which removes the aliasing this ticket was about. Shipped in 1.2.0.