Skip to content

Make FSR 2 Thin Feature (pixel locking) support Optional #13787

Description

@mrjustaguy

Describe the project you are working on

Space Game

Describe the problem or limitation you are having in your project

There's clear Light Lag for thin features, as can be seen in this screen shot while pitching up. The Upper Hull was brightly lit by the sun and suddenly it isn't anymore, but thin features maintain lighting that fades over several frames

Image

This is caused by https://github.com/godotengine/godot/blob/78d91947f689ea9eb4049f4d6371c0dfcfa0e62f/thirdparty/amd-fsr2/shaders/ffx_fsr2_lock.h#L102C1-L102C17 which is returning true as it believes this is a thin feature that is still relevant. Setting it to False yields expected results.

This also causes some highly repeatable instances of "Super Ghosting" as seen here

Image

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add an Option for FSR to disable Thin Feature Support / Pixel Locking

This will make Upscaling worse, but for Native it's a substantial Improvement in some instances, making more responsive and removing super ghosts.

This resolves the issue

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Add Project Setting defaulting to true (current state, as it's AMD's official result) under the Scaling 3D, like with FSR Sharpness and upcoming Reactive Texture Generation (as seen in godotengine/godot#111631)

This only applies to FSR 2, as the logic changed in FSR 3.1, and while the same Issue exists with FSR 3.1 it's less clear how to resolve it there, but should such a solution be found the same setting should apply to that as well.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Compiling Godot

Is there a reason why this should be core and not an add-on in the asset library?

Part of Godot is changed

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    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