Modifying Render States of the Graphics Pipeline

With the System Analyzer and System Analyzer HUD, you can perform "what if" experiments (also known as overrides) of various portions of the graphics pipeline to isolate one or more performance bottlenecks in your application. Override modes provide a method for high-level performance analysis and visual debugging. Performance-related state overrides allow you to find high-level bottlenecks using subtractive analysis.

NOTE

Override modes are only available for DirectX* 9/10/11 workloads.

Override modes operate in the background within the graphics driver to modify one or more of the render states of the graphics pipeline. Using these overrides, you can perform quick "what if" experiments on various portions of the graphics pipeline without requiring any code changes in your game to isolate one or more performance bottlenecks in your application. If using a certain override mode improves performance significantly, then that overridden mode might be a performance bottleneck, and warrants further analysis.

For example, the Null Hardware override simulates an infinitely fast GPU. If using this override significantly increases your FPS, your game is limited by the GPU.

Other overrides can help isolate where in the rendering pipeline your bottlenecks are: try out Texture 2x2 to see whether your textures are causing memory bandwidth issues ("thrashing"), or even Simple Pixel Shader to check if your shader code is too complex. To use an override, follow this procedure:

System Analyzer HUD:

  1. While your game and the System Analyzer HUD are running, use Ctrl+F1 to cycle through the HUD display modes until you see the list of keyboard shortcuts available.
  2. Use one of these shortcuts (such as Ctrl+Alt+H to use Null Hardware), and check whether the FPS improves.

System Analyzer:

To apply an override mode, select it from the State Overrides pane.

NOTE

Only one of these modes can be enabled at a time.

You can use the following override modes on Windows* OS devices to perform various "what-if" experiments within the tool:

For more complete information about compiler optimizations, see our Optimization Notice.