Search Issue Tracker

Won't Fix

Votes

0

Found in

2021.3.33f1

2022.3.16f1

2023.2.4f1

Issue ID

UUM-59307

Regression

No

GameObjects are shifted in Game view when DLSS is enabled

--

-

How to reproduce:
1. Open the “DLSS_Camera_Issue” project
2. Open the “Assets/SunFlaresHDRP/Scene”
3. Enter Play Mode
4. Observe the Game view
5. In the Hierarchy window select the “Main Camera” GameObject
6. In the Inspector window under the “Camera” Component disable the “Allow DLLS” option
7. Observe the Game view

Expected result: The “Sphere Occluder” GameObject does not change its position
Actual result: The “Sphere Occluder” GameObject changes its position

Reproduced with: 2021.3.33f1, 2022.3.16f1, 2023.2.4f1
Could not test with: 2023.3.0a19 (Could not resolve scripting errors)

Reproduced on: Windows 11
Not reproduced on: No other environment tested

Notes:
1. Not reproducible in the Player
2. When “Main Camera” is selected in the Scene view the Camera Preview window shows the expected result
3. Changing the Custom Quality Mode moves the “Sphere Occluder” GameObject in the Game view (“Allow DLSS” must be enabled first)
4. Not reproducible when “Use Optimal Settings” is disabled (“Allow DLSS” must be enabled first)
5. Could not reproduce in a new project
6. Could not test in a URP project → DLSS is not supported

  1. Resolution Note:

    It seams like this is a bug in the clients code.
    The client code's custom post process pass is using the incorrect scale to sample the input texture.

    How to fix:
    1. Go to the shader file SunFlaresPass.hlsl
    2. In the FragSF shader, line 200, utilize the constnat "_PostProcessScreenSize.xy" to compute the positionSS to sample the input texture, instead of "_ScreenSize.xy"
    3. Applying this change will now show the correct results.

    Explanation:
    The reason for this is because we have 2 resolutions in HDRP by design. _PostProcessScreenSize (which is after rendering) and _ScreenSize. Depending on the DRS configuration, render targets will contain this size. In this case, because DLSS (or TAA) is configured to run before post process, the resolution of the input texture is actually the upscaled resolution (_PostProcessScreenSize).

    This update might have to happen in other places in the code.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.