D3D11 Debug Layer显示Name="unnamed",但已设置DebugName属性
D3D11 DebugName属性与InfoQueue中Name字段的区别
- 二者不是同一内容。
- 你用
SetPrivateData设置的DebugName是给VS这类调试器查看的私有标记,属于Vortice封装层的调试属性,并非Direct3D 11 Debug Layer原生识别的对象名称。 - Debug Layer输出里的
Name="unnamed",对应的是Direct3D原生的对象名称,必须通过D3D11对象的**SetName**方法来设置(在Vortice中,所有继承自ID3D11DeviceChild的对象都有这个方法),和SetPrivateData是完全不同的API。 - 解决方法:找到目标D3D11对象(比如缓冲区、纹理),直接调用
SetName("test"),之后Debug Layer的InfoQueue消息里就会显示你设置的名称了。
内容的提问来源于stack exchange,提问作者MarcioAB
相关产品推荐
相关产品推荐

