Shader reflection data is not available in NSight

Hi,
I am using NSight to debug my DX12 application. When I focus on a draw primitive and look at API inspector->PS, it shows “Shader reflection data is not available” and I can’t inspect Shader Resource Views and others. If I debug the MS DX12 sample, the API inspector works fine. Does anyone know why it happens like that and how I can make “shader reflection data” available? thanks.

Hi,

Are you using some game engine? Can you see your textures or resources in Nsight->Window->Root Parameters?

Shader codes contain some meta data which can be inspect by reflection API, I think you need to check your shader compile logic.

Thanks
An

I am using lumberyard engine. The shaders are compiled with D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION.
Nsight->Window->Root Parameters shows the list of resources when I click on draw event. But the API Inspector doesn’t work.

thanks.

Hi,

These flags D3DCOMPILE_DEBUG or D3DCOMPILE_SKIP_OPTIMIZATION are used for Shader Debug of Nsight.

I am not a expert of Lumberyard, but you might need to check your shader compile logic for strip data from shader bytecodes as I said in previous post.

For example, fxc.exe has a parameter called ‘/Qstrip_reflect’ that will strip reflection data from your shader bytecodes. or the D3DCompiler module of D3D also have some similar function like D3DStripShader().

Thanks
An