我正在调试资源丢失并且可以获得创建/销毁" D3D11 INFO:"在桌面和模拟器上运行时的消息。但是当我在Surface Pro上运行时,我得到了#D3; D3D11错误:"消息但不是任何信息。
我发现了一个关于在断点上攻击调试标志的旧帖子,但标志似乎设置正确。我也尽力在dxdiag应用程序中设置exe,但不确定是否/如何远程重要。
有没有人看到这些消息出来或知道你需要做什么来获取它们?
提前致谢。
答案 0 :(得分:0)
如果您可以控制源,最好的办法是直接使用调试接口ID3D11Debug和ID3D11InfoQueue。
#ifdef _DEBUG
deviceCreationFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
// deviceCreationFlags is passed to D3D11CreateDevice as 'Flags' which is the fourth parameter
ID3D11Debug *d3dDebug = nullptr;
if( SUCCEEDED( d3dDevice->QueryInterface( __uuidof(ID3D11Debug), (void**)&d3dDebug ) ) )
{
ID3D11InfoQueue *d3dInfoQueue = nullptr;
if( SUCCEEDED( d3dDebug->QueryInterface( __uuidof(ID3D11InfoQueue), (void**)&d3dInfoQueue ) ) )
{
#ifdef _DEBUG
d3dInfoQueue->SetBreakOnSeverity( D3D11_MESSAGE_SEVERITY_CORRUPTION, true );
d3dInfoQueue->SetBreakOnSeverity( D3D11_MESSAGE_SEVERITY_ERROR, true );
#endif
请参阅this博文。