Share via


Graphics Diagnostics Examples

The articles in this section of the documentation contain examples that demonstrate how you can use Visual Studio Graphics Diagnostics to capture graphics information and diagnose common graphics problems.

Capturing graphics information

Before you can use Graphics Diagnostics to diagnose rendering problems in your app, you have to capture graphics information from the app while it's running. You can use Visual Studio to manually capture graphics information from an app that you run from Visual Studio, or you can use the programmatic capture API to capture graphics information from an app that's running on a computer that doesn't have Visual Studio. You can use programmatic capture on both local and remote machines, and it's the only way to capture graphics information from Windows RT devices.

When you publish your app, you can programmatically disable Graphics Diagnostics to prevent the capture of graphics information that could be used illicitly.

Debugging missing objects

You can use Graphics Diagnostics to debug a Direct3D app in which objects or parts of objects that should be displayed are missing. A missing object or part of an object is one of the most common problems that graphics developers experience. This kind of problem can be difficult to diagnose because an object goes through several transformations from model-space to projection onto the screen. Nevertheless, the problem is typically due to misconfigured device state, problems in transforming the object's geometry, or a misconfigured graphics pipeline.

These scenarios demonstrate how you can debug objects that are missing due to a variety of causes:

Debugging rendering errors

You can use Graphics Diagnostics to debug a Direct3D app in which objects are drawn incorrectly. Incorrect rendering is another common problem that graphics developers experience. This kind of problem can be difficult to diagnose because the incorrect appearance of an object can be the result of misconfigured device state, incorrect parameters passed to the GPU, bugs in shader code, an unexpected interaction between shaders, or a combination of these errors.

Here's a scenario that demonstrates how to debug a rendering problem that's caused by a shader bug: