Learn how to perform frame analysis for a GPU-bound application with the Graphics Frame Analyzer for DirectX*. Using this feature in Intel® Graphics Performance Analyzers, you can find the most expensive draw calls in the frame and analyze their optimization opportunities.
This video will show you how to get started with frame analysis of your DirectX* Application using Graphics Frame Analyzer.
To start analysis, launch Graphics Frame Analyzer and select the captured frame file.
Once the frame capture is loaded, you’ll see multiple sections in the application window that show in-depth data about your frame.
Start your analysis by looking at the bar chart to identify the most expensive draw calls in your frame.
By default, the bar hart uses GPU duration for both the X and Y axis. Meaning, that the biggest, widest bars on the bar chart are the the ones that take up the most amount of time on the GPU,
Alternatively, you can change the X and Y axis to any of the available metrics by selecting the desired metric from the drop down menu.
Select the most expensive draw calls from within the bar chart to analyze their potential optimization opportunities.
You can see the affect of the selected draw on the render target within the resource viewer pane. By default, the area affected by the selected draw will be highlighted in pink within the render target.
To change how the render target is presented, select modifiers from the various drop down menus.
Select between Normal Mode and Scrub Mode to either see the render target in it’s entirety or to only see the objects rendered up until the currently selected draw call.
View the render target in original, overdraw, or wireframe mode.
For the currently selected draw call either highlight, hide, or do nothing with the affected areas.
And for all other draw calls that have affected the render target, you can highlight, hide, or do nothing as well.
You can also view the input resources, output resources, and resources used at execution.
To view details about the selected draw call, navigate to the current selection tab in the metrics pane. This allows you to better understand how that draw call spends its time in the graphics pipeline.
By selecting full frame, you can see the same metrics presented before but in the context of the entire frame.
The 3D pipeline view in this pane shows the pipeline bottlenecks affecting the current selection. Red blocks indicate a primary bottleneck while orange blocks indicate a secondary one. To find additional details about any bottleneck, select the block and a description with associated metrics will pop up at the bottom of the pane.
You can experiment with state overrides to correlate performance issues with specific stages in the graphics pipeline and corroborate any bottlenecks identified in the 3D pipeline view.
Experiment can be found in the bottom right corner of the application window.
You can choose one or more overrides for the a selection of draw calls. Choose between 2*2 Texture, Simple Pixel Shader, 1*1 Scissor Rect, and Disable Draw Call.
You will see the resulting visual affect in the Render Target. The performance impact of that experiment will display in the top-left corner of the application window. Navigating to the current selection tab will also show re-calculated metrics.
To reset any experiment either press the experiment button once more or hit the revert button in the top-left of the window.
Depending on the results of your experiments you can analyze texture bandwidth, optimize complex geometry, modify render states, or edit shaders. All without recompiling your application or modifying source code.
You an also use pixel history to minimize overdraw, resource history to view resource dependency, and hotspot mode to identify expensive draw calls based on pipeline bottleneck, state, and GPU duration.
This is only a brief description of Graphics Frame Analyzer, press F1 on any table within the tool to read more about the available features and documentation.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804