IronMensan
IronMensan

Reputation: 6831

Setting the Debug version of the Direct3D runtime won't stick

When I open the DirectX control panel and open the Direct3D 9 tab and set "Use Debug Version of Direct3D 9" and hit "OK" or "Apply," there are no errors. If I open the control panel again, it is back to "Use Retail Version of Direct3D 9." When I try to debug my application, I don't get any output from Direct3D.

When I last did this a few months ago, everything worked correctly and I got debug output.

Running the control panel as Administrator doesn't seem to make a difference and the registry key mentioned here http://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/ is set to one.

What else can I try?

Upvotes: 4

Views: 3503

Answers (3)

joreg
joreg

Reputation: 257

for me the solution was this:

"Looking at the permissions on the key can you not hit the "advanced" button? then click the "owner" tab put a check in the bottom box, then highlight the administrators group, then check "take ownership"." via: http://www.tomshardware.co.uk/forum/238556-45-cannot-modify-delete-change-permissions-registry

after doing this i was able to give my user full access to HKLM/SOFTWARE/Microsoft/Direct3D and then the ctrlpanel kept its settings.

Upvotes: 0

Asylum
Asylum

Reputation: 575

Same thing happened to me. It looks like that TrustedInstaller took ownership of some registry keys (including HKLM/SOFTWARE/Microsoft/Direct3D which dxcpl modifies).

Found a solution here. You just have to change ownership of that regkey.

Upvotes: 5

Vrashabh Irde
Vrashabh Irde

Reputation: 14367

I've seen this happen and sort of collected best practices to try and get this thing working online - you can try it

1.) There's a separate control panel for x86 and x64 applications in DirectX, There is the DirectX Control Panel which comes with the sdk and there you can set to use the d3d debug runtime and the verbosity level. There is also an option for shader debugging and memory check.

2.) Link against d3dx9d.lib instead of d3dx9.lib

3.) Try adding #pragma comment(lib, "d3dx9d")

4.) Use #define D3D_DEBUG_INFO, but use that before including the d3d9 headers.

5.) Check the Use Debug Version of Direct3D 9 in the properties window like so https://i.sstatic.net/WoZAH.png

6.) Use a tool like DebugView

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

Upvotes: 1

Related Questions