Options for GPU debugging DX11 on Windows 7

Started by
9 comments, last by phil_t 9 years, 2 months ago

I'm using Visual Studio 2013 Express for Windows Desktop (as I'm on Windows 7). This doesn't support the new VS graphical debugging stuff. And PIX doesn't seem to work for DX11 either.

What are my best options for being able to step through shaders, and inspect the various buffers as they go through the graphics pipeline?

Advertisement

Can you switch from Express to VS2013 Community? With the Express SKUs a decisions was made to not support graphics diagnostics for developers of desktop apps, but VS2013 Community supports all forms of development and all the tools -- Community is essentially Pro with some license restrictions to prevent larger commercial entities and enterprises from using it. You should check the terms for yourself, but in essence Community is free for evaluation, open-source contribution, and for teams of up to 5, and yes, you can use it commercially if you fit under those restrictions. You *can't* use it if you're a development shop larger than 5 people, or are part of an "enterprise" as Microsoft defines it (I forget exactly how its defined, but its either one of making millions of dollars per year, or of having a certain large number (hundreds?) of employees.)

Community, as a pro-derived SKU, also supports the rest of the advanced features that weren't necessarily in Express, and also supports plugins, which the express SKUs don't. If you're a Unity3D user, this means you can use Visual Studio Tools for Unity (formerly UnityVS) entirely free now.

throw table_exception("(? ???)? ? ???");

RenderDoc is an awesome PIX replacement
https://renderdoc.org/builds

The vendors all provide debuggers, which I think work with any GPU -

Intel GPA
https://software.intel.com/en-us/gpa

AMD Perfstudio
http://developer.amd.com/tools-and-sdks/graphics-development/gpu-perfstudio/

nVidia NSight
https://developer.nvidia.com/nvidia-nsight-visual-studio-edition

RenderDoc is not only free, but it's (IMO) a lot better than the VS debugging tools.

Cool, thanks for the answers everyone. I'll start with trying out RenderDoc.

Hmm, unfortunately I'm not able to capture with RenderDoc

RENDERDOC: [22:22:40] replay_renderer.cpp(1267) - Log - Creating replay device for C:\Users\Phil\AppData\Local\Temp\MyDX11Test_2015.01.22_22.22.26_frame8342.rdc
RENDERDOC: [22:22:40] d3d11_replay.cpp(1666) - Error - Couldn't create FEATURE_LEVEL_11_0 device - RenderDoc requires FEATURE_LEVEL_11_0 availability
RENDERDOC: [22:22:40] replay_renderer.cpp(1288) - Error - Couldn't create a replay device :(.
RENDERDOC: [22:22:51] win32_network.cpp( 165) - Warning - recv: 10054
Not sure what to do, my graphics card only has FEATURE_LEVEL_10_1....
Ah I didn't know about that restriction. The author is very responsive - maybe email and ask if he has plans for feature level 10_1 support in the near future...
Otherwise, try Visual Studio or one of the vendors tools.

I attached a debugger to renderdoc and set a bp on D3D11CreateDeviceAndSwapChain so I could change D3D_DRIVER_TYPE_HARDWARE to D3D_DRIVER_TYPE_REFERENCE . And it worked, now I'm able to open the capture file!

Incredibly slow, obviously. But enough to debug my simple app.

One more option is to install VS2013 for Windows Express on the side and use that to debug your desktop exe. I did this for while and it worked. Haven't tried the community edition, it may be a better option nowadays.

I attached a debugger to renderdoc and set a bp on D3D11CreateDeviceAndSwapChain so I could change D3D_DRIVER_TYPE_HARDWARE to D3D_DRIVER_TYPE_REFERENCE . And it worked, now I'm able to open the capture file!

Incredibly slow, obviously. But enough to debug my simple app.

Might wanna use D3D_DRIVER_TYPE_WARP. It's a lot faster than reference.

This topic is closed to new replies.

Advertisement