Profiling PerfMarkers and Draw Calls Using the PerfMarker Tree in the Frame Debugger

The Frame Debugger feature of GPU PerfStudio conveniently displays a tree view containing all PerfMarkers and draw calls contained in the frame being analyzed. The tree view allows an individual draw call to be profiled to determine how much GPU Time that draw call takes. In addition, the draw calls that are encapsulated by a PerfMarker can be profiled as a single unit to determine the total time the GPU takes to execute all of the draw calls. In order to see a simple single-pass profile of all the draw calls and PerfMarkers, simply click the "Get GPU Time" button located above the tree view. Each time you click the button, the individual draw calls will each display the amount of GPU time taken. In addition, each PerfMarker will be profiled to determine the total amount of GPU Time taken. Note that the time displayed for a PerfMarker is not necessarily equivalent to the sum of times shown for the encapsulated draw calls. In the screenshot below, the row containing "HUD / Stats" in the "Name" column represents a PerfMarker.

PerfMarkerView.png

After clicking the "Get GPU Time" button, the view shows an additional column with the GPU Time for each PerfMarker and each draw call.

PerfMarkerViewGPUTime.png

In addition to the simple single-pass profiles, you can also perform multi-pass profiles of PerfMarkers or draw calls. You can also perform multiple profiles of the same PerfMarker or draw call. Each individual profile performed by the user is stored and displayed for comparison purposes. This feature can be used in conjunction with Shader Editing to measure how changes to a shader may affect performance of the frame.

Step by step procedure to perform a PerfMarker profile

1. Launch the Frame Debugger using one of the methods described in the "Using the Frame Debugger" section.

2. Right click on a PerfMarker item in the PerfMarker tree view.

PerfMarkerView_ContextMenu.png

3. Select the "Profile PerfMarker" menu item from the context menu

4. The PerfMarker Profile view appears as does the "New Profile" dialog box

PerfMarkerProfiling_1.png

PerfMarkerProfiling_2.png

5. In the "New Profile" dialog box, enter the name the name for the new profile and specify the number of runs (how many times the PerfMarker is to be profiled) and press OK.

6. Once the profile is complete, the first dialog box will show this new profile event as an appended entry to the already existing ones.

PerfMarkerProfiling_3.png

After there is at least one new Profile performed, the "PerfMarker Profile" window can be used to compare results from different profiles, as well as select the active profile to use for the data displayed in the PerfMarker tree's "GPU Time" column.

Step by step procedure to compare profile results and select a profile as the active profile.

1. Right click on a PerfMarker item in the PerfMarker tree view.

2. Select the "Previous Profiles" menu item from the context menu.

3. The PerfMarker Profile view appears and displays all previous profiles that have been performed.

PerfMarkerProfiling_3.png

4. Select a profile in the list to make it the active profile. Note how the "GPU Time" column in the PerfMarker view gets updated with the selected profile's GPU Time value. Note, also, that the "Draw Call" column for that PerfMarker now show two asterisks after the draw calls. This indicates that the value shown for "GPU Time" represents an additional profile event. If the selected profile is the "Base Profile", the "Draw Call" column will show a single asterisk to indicate that additional profile events are available.