the Chromium logo

The Chromium Projects

Graphics Debugging in Visual Studio 2013

Visual Studio 2013 has a built-in graphics debugger that can capture a rendered frame. This is a replacement for PIX.

To use it with Chromium:

Each frame time will be super imposed on top of Chrome. If you don't see this then the Graphics Debugger is not working correctly and you won't be able to capture frames.

image

Here is a description of some of the more important elements of the Graphic Debugger (numbers correspond to the highlighted part on the above image):

  1. The Graphic toolbar
  2. The Graphic Event List pane keeps a complete history of the calls to create the frame. Clicking through the list will generate a preview of the frame up to the call that you have selected in the .vsglog frame in the center.
  3. Within the event list, you can find objects that were created by or used in a function call
  4. The Graphics Object Table contains a list of all objects used during the frame
  5. The name of an object is set within the chrome source. For example, if you search for "Offscreen back buffer texture", you will find it in the function "SwapChain11::resetOffscreenTexture"
  6. Some calls within the Graphics Event List will give you a call stack (usually, you must click directly on a DirectX function to get a call stack)
  7. If you double click an object in the Graphics Object Table, you can get details on the object. If it is a texture, it will open and display the texture
  8. If you double click on a shader in the Graphics Object Table, you can open a temporary file that shows the shader code

You can find more information on the Graphics Debugger at http://msdn.microsoft.com/en-us/library/hh873207.aspx and https://youtube.com/watch?v=j4SpasLF6Co

You may find it useful to use the configuration manager within Visual Studio to create multiple debug targets. For example, you can set up a second configuration to pass the gpu specific flags.