2013-07-19 35 views
2

当我打开DirectX控制面板并打开Direct3D 9选项卡并设置“使用Direct3D 9的调试版本”并点击“确定”或“应用”时,没有错误。如果我再次打开控制面板,它会回到“使用Direct3D 9的零售版本”。当我尝试调试我的应用程序时,我没有从Direct3D获得任何输出。设置Direct3D运行时的调试版本不会粘住

当我最后几个月前做了这个,一切正常,我得到了调试输出。

以管理员身份运行控制面板似乎没有什么区别,并且此处提到的注册表项http://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/已设置为1。

我还能试试吗?

回答

4

同事情发生在我身上。看起来TrustedInstaller取得了一些注册表项(包括dxcpl修改的HKLM/SOFTWARE/Microsoft/Direct3D)的所有权。

找到解决方案here。你只需要改变该regkey的所有权。

1

我已经看到这种情况发生和排序的收集,试图让这件事在网上工作的最佳实践 - 你可以尝试

1)有在DirectX的x86和x64应用程序独立的控制面板,有是随sdk一起提供的DirectX控制面板,您可以设置为使用d3d调试运行时和详细级别。还有一个用于着色器调试和内存检查的选项。

2)针对d3dx9d.lib代替d3dx9.lib

3)链接尝试添加#pragma comment(lib, "d3dx9d")

4)使用#define D3D_DEBUG_INFO,但包括D3D9头之前使用。

5)检查D3D9中使用调试版本在属性窗口中,像这样 http://i.stack.imgur.com/WoZAH.png

6)使用像DebugView

来源的工具: http://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/ https://gamedev.stackexchange.com/questions/24541/cant-get-debug-spew-for-direct3d9

+0

我的应用程序不使用d3dx9.lib,只使用d3d9.lib。添加'D3D_DEBUG_INFO'没有什么区别。 – IronMensan

相关问题