User Guide

  • 2022.3
  • 09/27/2022
  • Public Content

Dependency Viewer

Dependency viewer is a tool for exploring the dependencies in frames captured with the Graphics Frame Analyzer. The tool builds a
scene graph
out of a sequence of 3D API operations. Use a scene graph to better understand how the frame is rendered and to identify performance problems.
To open the dependency viewer window, do the following:
  1. Open a frame in the Profiling View window of the Graphics Frame Analyzer.
  2. Click the
    button on the main toolbar at the top of the page. An additional browser window will open.
    If the default browser is some legacy browser, which does not support HTML5 features, copy the URL and open it using the latest version of Microsoft Edge*, Google Chrome* or Firefox*.
In the opened window you can see the following sections:
Main elements of the graph such as
are described in the Main Concepts section. For general information about panels, refer to Configure Panels section.

Main Concepts

  • Resource
    A building block of the scene. Resource is a memory area that can be an input or an output of an operation. All the resources shown by the tool are produced by the GPU. Each was used as an output from an operation at least once. The tool can display the content of texture or buffer resources.
    When you click on the resource, its versions are highlighted on the graph.
    Detailed inspection of buffer resources content is not available now.
  • Operation
    A common name for all types of calls causing the GPU to perform rendering or computation work: draw, compute, copy calls. All operations have a set of input and a set of output resources. Resources are bound to the operations using different kinds of views: shader resource view (SRV), render target view (RTV), or depth-stencil view (DSV).
    For resource notations, refer to the Resources Pane topic.
    Each operation can be:
    • A producer of a resource version
    • In most cases, a consumer of other resource versions.
    To see the list of operations used in the pass:
    1. Click on the pass. This pass will be highlighted in the Passes list on the Tools panel.
    2. Double click the highlighted pass on the Tools panel. The list of operations will unfold.
  • Pass
    A sequence of operations sharing a set of output resources. Dependency viewer relies on the Graphics Frame Analyzer when grouping operations into passes. The pass objects correspond directly to the passes displayed in the Frame Analyzer: when you select
    Group by: Render Targets
    , the operations listed in the left pane and on the bar chart are grouped into passes.
    When you click on the pass in the dependency viewer, it is highlighted on the graph.
  • View
    A binding of a resource as an input or an output of the operation. A single resource can be bound through several views of diverse types, but a single view points to exactly one resource.
  • Resource Version
    A state of a resource at a certain point in time. A common scenario of using a resource is binding it to several operations and partially or fully overwriting previous content of the resource with the new data. The tool captures the content of each resource used as an output of the pass after the last operation of this pass. Then, it gives a unique numerical ID to this resource version.

Header Bar

The header contains the name of the frame, DirectX version, and the following buttons:
  • / - check connection or reconnect, if necessary.
  • / - choose dark or light color schema.
  • / - expand the window to full screen or return to its original state.

Configure Panels

You can configure each panel:
  • Specify either a
    , a
    or an
    will be displayed on the panel using drop-down menus. You can also open the
    tool, which detects issues in the frame. For example, it shows resources that are generated but not used later in the frame.
  • Specify a tool, a kind of graph or inspector view that will be displayed on the panel using the drop-down list on the right of the category drop-down menu.
  • Resize panels by dragging the borders. To hide the panel, drag its boarder to the edge of the window.
  • Set a focus on a specific pass or resource. Click on the object on the tool or graph panel, and other panels will focus on the same object:
    • Inspector will display detailed information related to this object.
    • Graph or resource panel will highlight the same object.
On the image above, the current focus is set on the third pass in the frame. This pass is simultaneously highlighted in the pass list and on the graph. Inspector panel contains an overview of this pass.
Focusing also works within a single panel. For example, when you select the resource version on a graph, other versions of the same resource are highlighted.

Graphs Panel

Graphs show what the pass reads from resources produced by other passes. Each node of the graph represents a single rendering pass, which has the following characteristics:
Numerical ID of the pass.
Operations range the pass is constructed from.
Label of an output view - the kind of view the resource was bound with when it was written by the operations to the pass.
Horizontal array of resource versions produced in the pass.
Label of an input view - the kind of view the resource is bound with to subsequent passes. Multiple labels can be displayed below a single resource version if several passes use a single resource version and access it through different types of view.
Graph Types
You can investigate render target dependencies using four types or graphs. The types are described below from the most detailed to the simplest one.
  • Resource usage graph
    This type of graph displays all dependencies including the case when two passes write to the same resource subsequently. If the second pass overwrites only a part of the shared resource, the content of the unwritten part of the resource depends on the previous pass. Dashed arrows visualize this on the graph. Solid arrows visualize all other cases.
  • Dependencies graph
    This type of graph is a simplification of the resource usage graph. It does not include input view labels and always draws a single arrow between two passes. Such arrow visualizes that there is some dependency between passes, but does not provide details.
  • Dependencies concentrated graph
    This type of graph is a simplification of the dependencies graph. It merges arrows that point at the same pass.
  • Dependencies direct only graph
    This type of graph provides the highest simplification level leaving indirect dependencies from the graph. It simplifies the following situation: if the pass A depends on passes B and C, and the pass B depends on C, the dependency between A and C is removed. A is already indirectly dependent on C through B.
    In comparison with Dependencies graph, on the Dependencies direct only graph the pass 35 has only one arrow pointing at pass 37, but the dependency on pass 41 is ignored.
You can move or zoom a graph the following way:
  • To move the graph, press the left mouse key to grab the graph and move the mouse.
  • To zoom the graph:
    • Hold the right mouse button and move the mouse upwards or downwards.
    • Scroll the mouse wheel.
Press the
View Reset
button to reset to the initial view.
Heat Map
Use a heat map to identify nodes that are most costly with respect to GPU duration.
To activate the heat map, hold the
Heat Map
button above the graph. The heat map overlay stays displayed until the mouse button is released. To lock or unlock the heat map, double click the button.
The color correlates with the percentage of the pass duration in relation to the whole frame. The color scale goes from blue over yellow to red as depicted below. The red color is used to mark the longest pass.
The color information is augmented with percent number displayed on the pass nodes.
Export the graphs using the
button . You can choose between two formats:
  • DOT files, which can be further processed using diverse tools for graph visualization analysis
  • SVG vector graphics, which can be embedded in documents or web pages.
In both cases, the tool exports only the graph structure along with entity IDs. The resource version previews are not available.

Tools Panel

Tools panel provides a list of passes and a list if resources used in the frame.
Passes List
This tool shows the sequence of passes. Double click the pass to expand it and see the enclosed operations. Each entry on the pass list consists of the following:
  • Pass ID
  • Operation range
  • GPU duration metric:
    • Duration time in milliseconds
    • Percentage value relative to the entire frame time
    • Blue horizontal bar scaled to the frame time.
  • Number of events in the pass:
    • Number of events
    • Percentage value relative to the total number of events in the frame
    • Black horizontal bar scaled to total operations number.
Resource List
This tool shows basic information about each resource generated in the frame. Different types of resources (textures, buffers) are listed in separate tables.
The tool represents each texture by a row containing the following information:
  • ID
  • Type
  • Resolution
  • Format
  • Number of versions
  • Number of subresources
  • Number of slices
  • Number of mips.
The tool describes buffer resources are by an ID and size in bytes.

Inspector Panel

Inspector view depends on the element set info focus. You can switch between
Resource viewer
Pass viewer
Resource Viewer
  • Overview:
    • Resource ID
    • Type
    • Resolution
    • Format
    • Version count
    • Subresource count
    • Array level count
    • Mip level count
  • Versions: resource version view allows you to inspect the resource content and compare different versions of the same resource to visualize the changes made in individual passes.
Pass Viewer
Pass viewer allows you to access the following information:
  • Overview:
    • Pass ID
    • Event count
    • Duration
    • Input resources count
    • Output resources count
  • Shader tuples

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at