radeon_gpu_analyzer icon indicating copy to clipboard operation
radeon_gpu_analyzer copied to clipboard

DX12 inline ray tracing supported?

Open pzompolas opened this issue 1 year ago • 1 comments

Hello,

I've been doing some inline ray tracing tests via a compute shader - both on DX12 and Vulkan. The shader for both APIs is compiled via DXC, the latter using the SPIR-V emitting functionality of DXC.

I was getting considerably higher VGPR usage on the DX12 end (Vulkan is fine) and also lower performance, too. So I thought "let's try RGA to see where the discrepancy is".

Unfortunately, it seems I'm getting issues when analyzing a DX12 compute shader that does inline ray tracing. As soon as I comment out the code that does the ray tracing, RGA generates the ISA without issues. But putting it back on, produces the following:

Error: compute pipeline state creation failed.
To facilitate troubleshooting, we recommend enabling the --debug-layer option when running RGA.
Hint: this failure could be due to a missing or incompatible root signature.
1. If your root signature is defined in the HLSL code, make sure that the [RootSignature()] attribute is used for one of the pipeline shaders with the macro name, or use the --rs-macro option.
2. If your root signature is precompiled into a binary, please use the --rs-bin option with the full path to the binary file as an argument.

I have the debug layer enabled, using offline mode and passing my compute shader's blob and root signature bin as follows:

rga.exe -s dx12 -c gfx1103 --cs-blob "C:\tmp\CSMain.bin" --rs-bin "c:\tmp\rs0.bin" --isa "C:\tmp\Isa\Out.isa" --debug-layer --offline

Any ideas? Is it just a matter of "inline ray tracing is not working yet with RGA"?

Thanks

-Panos

pzompolas avatar Aug 08 '24 19:08 pzompolas

Hi @pzompolas,

Thank you for reporting this issue.

Would you be willing to share the compute shader you are using as an input?

AmitBM avatar Sep 17 '24 15:09 AmitBM