GPU Trace

explicit_gpu_trace_tool.png

vk_gpu_trace.png

Description

This section shows the application's GPU-side activity.

The top pane shows entire command buffer durations (black), and per-command durations (purple/pink). GPU PerfStudio obtains these durations by injecting timestamps the instant a GPU Trace is invoked. These timestamps are injected around all commands of non-baked command buffers, following this pattern: TopTimestamp BottomTimestamp1 Command BottomTimestamp2. The visualization shows commands split into two regions. The purple region is the duration from TopTimestamp to BottomTimestamp1. The pink region is the duration from BottomTimestamp1 to BottomTimestamp2. When looking for performance bottlenecks, the calls to look for are those with long pink regions. These bottom-to-bottom durations provide a reasonable means to identify expensive commands. Any commands which lack a pink region indicate that it executed very fast, and therefore one should focus on other commands. Top-to-bottom durations indicate when a command entered the pipeline, and are only an aid to visualize parallelism. Lastly, if one finds a black WholeCmdBuf without any commands above it, this indicates the command buffer was baked before the GPU Trace was invoked. That is, before GPU PerfStudio had an opportunity to inject timestamps, and therefore per-command durations will be unavailable.

Hovering over each command will bring up a tooltip with timing information. This pane may also be easily moved left/right, by holding down the left mouse button on it and dragging left/right. It may also be zoomed in and out using the mouse wheel.

The bottom pane shows one tab per command buffer, with each tab containing a list of all commands within that command buffer. Here one can also find the parameters for each command.

Users may also double click on commands on either pane, to go highlight the command on the opposite pane.

Once open, timing data may be refreshed by pressing the GPU Trace button multiple times.