The temporary buffers holding InstanceDescriptions are allocated off of the upload heap, and then bound as UAVs in the scene BVH build dispatches. This is illegal and is reported as such by GPU-based validation.
If these resources receive D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, the error is caught immediately by the debug layer, so that's not the fix. The correct fix is to allocate another non-upload buffer and copy the data to it from the upload buffer.
Repro steps:
Take a PIX for Windows capture of the basic test.
Open the capture, go to the "Warnings" pane.
Click "run GPU-based validation". When the prompt comes up asking for running the analysis, click "Yes".
The temporary buffers holding
InstanceDescription
s are allocated off of the upload heap, and then bound as UAVs in the scene BVH build dispatches. This is illegal and is reported as such by GPU-based validation.If these resources receive
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
, the error is caught immediately by the debug layer, so that's not the fix. The correct fix is to allocate another non-upload buffer and copy the data to it from the upload buffer.Repro steps: