cancel
Showing results for 
Search instead for 
Did you mean: 

General Discussions

hanotak
Journeyman III

DX12 Directly indexed descriptor heaps not working in compute shaders on RX7800XT

I'm making a renderer using SM6.6's directly indexed heaps, and I can't get direct indexing to work in a compute shader. It works in vertex, mesh, and pixel shaders, but when used in a compute shader, any reads from the buffers of interest return zeros. The indices are definitely correct, as they work in other shader stages, and on Nvidia cards in compute shaders.

 

Can anyone confirm if they have had similar issues, or if the drivers are known not to support this use-case? Or is this supposed to work?

 

If not, Is there a DirectX feature support flag that I can query for this? The only one I can find is a flag for support for directly indexed heaps at all, not compute-specific restrictions.

 

Thanks!

 

Update:

 

I made a small, reproducible example from Microsoft's ExecuteIndirect sample here:  https://github.com/panthuncia/D3D12ExecuteIndirect

0 Likes
1 Reply
hanotak
Journeyman III

Update: Problem has been found. In SM6.6, Resource descriptor heaps must be set before the root signature is set. Nvidia cards seem to not care about this, but on AMD it will break the program.

0 Likes