Unity Issue Tracker - DrawProcedural skips the draw call when "Fake Normal" is checked in Material settings
Fixed
UUM-32295
DrawProcedural skips the draw call when "Fake Normal" is checked in Material settings
Unity: DirectX12
DX12
Fixed
2023.2.X
2023.1.X
2022.3.X
2021.3.X
Won't Fix
2022.2.X
2020.3.X
Emulated vertexbuffers provided on platform neutral level when required
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
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
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
Prioritise and Follow this issue
Have a workaround or additional info about this issue?