Search Issue Tracker
Fixed in 2021.3.30f1
Fixed in 2021.3.X, 2022.3.X, 2023.1.X, 2023.2.X, 2023.2.0a20
Votes
0
Found in
2020.3.46f1
2021.3.22f1
2022.2.13f1
2023.1.0b10
2023.2.0a9
Issue ID
UUM-32295
Regression
No
[DX12] DrawProcedural skips the draw call when "Fake Normal" is checked in Material settings
Reproduction steps:
1. Open the attached project "ReproProj"
2. Open the “/Assets/Scene.unity” Scene
3. In the Project window select “Mat” Material which is in the Assets folder
4. In the Inspector window check the “Fake Normal” checkbox
5. Observe the Scene
Expected result: All 3 cubes are seen
Actual result: Cube under the “DrawProcedural” text is not rendered
Reproducible with: 2020.3.46f1, 2021.3.22f1, 2022.2.13f1, 2023.1.0b10, 2023.2.0a9
Testing environment: Windows 10 Enterprise 21H2
Notes:
- DX12 DrawProcedural (and their variants, e.g. DrawProceduralIndirect) silently drops the draw call, if it (wrongly) thinks that the shader needs to access
data from a vertex buffer
- This might be the same issue as discussed on the forums since mid-2021, people say this started with 2021.2
https://forum.unity.com/threads/drawproceduralindirect-broken-in-2021-2-with-dx12-vulkan.1139248/
- All three cubes use the same material & shader
- On DX11 and Vulkan, everything works more like expected, no matter what's the "Fake Normal" material setting,
the square is visible
- Switched platform to Android and changed Graphics API to Vulkan and the project crashed with no Stack trace
- See "Shader.shader" comments and actual shader code for more details
- The issue is with ShaderGraph: even if we make it not actually use the declared vertex inputs, due to
the above issue DX12 still skips the draw call, because it assumes that the shader needs a vertex buffer
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
- Required SpriteMask class (ID 331) is stripped when "Strip Engine Code" is enabled
- “Maximized serialized file backup not found” error is thrown when minimizing a window in a newly opened project
- Build stack trace contains invalid lines when building with IL2CPP using scripts with delegates containing generic types in the signature
- Entities Systems window has a “Show Full Player Loop” dropdown which does nothing when clicked after enabling “Show Full Player Loop”
- Entities Hierarchy Search “Show/Hide” button’s Lens Icon is blurry when the Editor is on an external monitor
Resolution Note (fix version 2023.2):
Emulated vertexbuffers provided on platform neutral level when required