Search Issue Tracker
Fixed in 2021.1.X
Votes
1
Found in
2019.4
2019.4.12f1
2020.1
2020.2
2021.1
Issue ID
1303465
Regression
No
"d3d12: CreateGraphicsPipelineState failed." is thrown when drawing geometry with Graphics.DrawProceduralIndirectNow in Build
How to reproduce:
1. Open the user's attached "New Unity Project.zip" project
2. Go to File -> Build And Run
3. Observe the procedurally drawn geometry
Expected result: Geometry is drawn properly
Actual result: "d3d12: CreateGraphicsPipelineState failed." error message is thrown and no geometry is drawn
Reproducible with: 2019.4.18f1, 2020.1.17f1, 2020.2.2f1, 2021.1.0b1
Could not test with: 2018.4.30f1 ('Graphics' does not contain a definition for 'DrawProceduralIndirectNow')
Notes:
- The issue is not reproducible in the Unity Editor
- The issue is not reproducible with Direct3D11 Graphics API
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
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
Resolution Note (fix version 2021.1):
This is essentially a wontwix. Now the editor will work as the runtime works. As the null geometry with the shader expecting vertices is not meant to actually work. If the user wants vertices they should draw using a mesh. So the shader needs to be changed into out. There was a PR before that disabled the null geometry mesh faking from the editor. Changeset referred to here (landed on 2021.2.a15) made it fail silently just like how Vulkan and other API's do.
DX11 driver handles this for users, so we can't really make it give an equivalent error or silent failure without performing similar expensive reflection step that DX12 used to do.
There is a debug flag for DX12 -debug-d3d12-null-geometry that will work only on the editor that re-enables the expensive reflection step. But it's only for debugging purposes. Cannot be used in standalone player.
So:
Expected result: No geometry is drawn and no error is displayed.