Search Issue Tracker
Won't Fix
Won't Fix in 2023.2.X
Votes
0
Found in
2022.2.11f1
2023.1.0b8
2023.2.0a6
Issue ID
UUM-32170
Regression
No
Generated Entities look different when Depth Priming Mode is changed
Reproduction steps:
1. Open the attached project “ecs-draw-test“
2. Open the “SampleScene” Scene
3. Set the Depth Priming Mode to Auto in URP-High-Fidelity-Renderer
4. Enter Play Mode and observe the Game View
5. Exit Play Mode
6. Set the Depth Priming Mode to Disabled in URP-High-Fidelity-Renderer
7. Enter Play Mode and observe the Game View
Expected result: generated Entities look the same both times
Actual result: generated Entities look different when Depth Priming Mode is changed
Reproducible with: 14.0.6 (2022.2.11f1), 15.0.4 (2023.1.0b8), 16.0.0 (2023.2.0a6)
Could not test with: 10.10.1 (2020.3.46f1) (Depth Priming Mode not implemented), 12.1.10 (2021.3.21f1), 14.0.3 (2022.2.0b16) (Invalid dependencies)
Reproduced on: macOS 13.2.1 (Intel), Windows 10 (user reported)
Notes:
-Tested in Build
-Adding screenshots for each result: sample01 (Depth Priming Mode disabled), sample02 (Depth Priming Mode is Auto), sample03 (Depth Priming Mode is Auto and ScreenSpaceAmbientOcclusion is enabled)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Tile Palette] Sprites not rendering when brush tool "Paint a filled box with active brush" is used for the first time
- Adding available Nodes with longer names in Fragment Context window overflow Fragment Context window in Shader Graph
- "Layer Palette Profile" Asset is automatically applied to the second Terrain but doesn't load any layers
- "Terrain Tools" shortcut conflicts with the Overlays shortcut by default
- Longer Shader Graph Property Reference names breaks VFX Graph Output Particle Node
Resolution Note:
this is a generated content issue, depth priming is working "by design".
How depth priming works: it does a depth prepass and the opaque objects will just change the depth comparison op to Equal to reduce opaque overdraw. Because of this, the depth ranges will be quantized based on the resolution of the depth buffer.
In RenderDoc I can see 3 DrawIndexedInstanced calls, drawed at depth values increments which are lower than the depth buffer resolution, so you can see z-fighting artifacts when the depth comparison (against the prepass depth) happens. You should make sure to generate entities at different depth values to avoid z fighting, or can disable depth priming but suffer potential z-fighting when moving the camera on top of overdraw
Resolution Note (2023.2.X):
this is a generated content issue, depth priming is working "by design".
How depth priming works: it does a depth prepass and the opaque objects will just change the depth comparison op to Equal to reduce opaque overdraw. Because of this, the depth ranges will be quantized based on the resolution of the depth buffer.
In RenderDoc I can see 3 DrawIndexedInstanced calls, drawed at depth values increments which are lower than the depth buffer resolution, so you can see z-fighting artifacts when the depth comparison (against the prepass depth) happens. You should make sure to generate entities at different depth values to avoid z fighting, or can disable depth priming but suffer potential z-fighting when moving the camera on top of overdraw