NVidia NSight看不到着色器资源名(DX12)

问题描述 投票:0回答:1

我正在使用NVidia Nsight调试一个图形应用程序,需要看到shader资源的名称,因为它们是在hlsl中声明的。但在NSight中,我只看到 "unnamed by reflection "的标签,如附件所示。反射没有被编译器剥离,我已经从反射中读取了我需要的名称,并保存到文本文件中(比如 "Name": "BaseColorTexture"),所以它应该在shader数据blob中;使用了-Zi编译器选项。使用DirectX 12和DXC编译器,dxil中级,着色器模型6.0,NVidia Nsight 2020,"Collect Shader Reflection "选项开启。请你告诉我可能的原因以及如何解决?

enter image description here

nsight directx-12
1个回答
1
投票

这个问题是由于NSight使用的dxcompiler.dll(dxc编译器)(安装时从windows sdk复制)和我的应用程序使用的dxc编译器(从最新的官方来源就地编译)不同造成的,更新NSight文件夹的dll解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.