Skip to content

FSR3 - Reconstructed previous depth may contain data from outside the viewport bounds #190

Description

@simco50

Hi.

I am seeing some artifacts on the bottom-right edges of the viewport with dynamic resolution scaling.
From what I can tell, ReconstructAndDilate can write data coming from outside the RenderSize() into the rw_reconstructed_depth_previous_frame buffer.
It does check the bounds when writing but it can write a depth value that comes from outside the viewport.
This can cause artifacts that are especially noticeable with dynamic resolution scale.

See ReconstructPrevDepth, iPxPos may be an out-of-viewport location as threads out of bounds are not killed, so fDepth/fMotionVector can be garbage. Garbage motion may then push the UV inside the viewport and write garbage depth to a valid location.

Clearing our depth/motion buffer at the start of each frame fixes it, but that obviously not nice.
I think just killing threads outside the viewport will fix the issue.

Side note: It doesn't seem possible to compile FSR manually anymore? There is a BuildFrameInterpolationShaders.bat to compile the shaders, but the executable to compile the shaders is no longer in the repository. I'd love to be able recompile the shaders with -Od and -Zi so I can debug and edit them.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions