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.
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.
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.
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().