GUI thoughts

First of all, you should be presented with the metric selection dialog. You can choose which metrics to collect (also choose whether per-frame/per-call/per-draw call) and then you proceed further. You can choose to not select any metrics at all and just generate a timeline, plugging additional metrics should be made possible in the later stages.

Profiling takes place, might take a while or a bit longer.

Finally you see a window outlined something like this:

|         Frame boundaries (CPU/GPU)           |
|          Base timelines (CPU/GPU)            |
|                                              |
|           Additional timelines               |
|                                              |
|            Plots and diagrams                |
|                    ...                       |
|                                              |
|                                              |
|                                              |
|                                              |
|                                              |
|                                              |
|                DATA TABLE                    |
|                                              |
|                                              |

Frame boundaries

The following image is taken from Intel Platform Analyzer:


Good thing here is: CPU and GPU frames with the same ID are displayed in the same color, so that you can correlate them.

Here it should be possible to select/deselect individual frames or frame ranges. Depending on the selection corresponding metrics data (collected per frame) is displayed in the DATA TABLE (lower half of the window).

Base timelines

There is not much to change with existing look of timelines in qapitrace:

Perhaps colors could be also matched for CPU/GPU, or there could be different colors for different call categories.

Here it should also be possible to select/deselect individual calls or ranges. Depending on the selection corresponding metrics data (collected per call) is displayed in the DATA TABLE.

Additional timelines

Additional timelines are just copies of the above. There could be arbitrary many of these. After copying you can apply some filters: by shader program, by specific api calls; or select regions to exclude from the timeline. This allows to have some kind of multiple workspaces and it can helpful later:

1) Data panel in the lower half is bound to selected timeline. Depending on the chosen timeline filters data in the lower half is correspondingly filtered.

2) When and if there is a possibility to profile only regions (not the whole trace file), you could select this filtered timeline to be profiled (and everything filtered out would be ignored).

Plots and diagrams

Plots are continuous (not really) lines with points linked to the metrics data; diagrams are a way to visually compare a number of calls (their timeline width is preserved while height is determined by the metric).

You can select a column in the data panel (each column – specific metric) and choose an option to plot these visuals under the corresponding timeline.

For example, how plots look in Intel Platform Analyzer:


Data table

Raw metrics data per-column. What is displayed depends on the chosen object (frame boundaries or a timeline, what ranges are selected, what filters are applied) in upper half.

Example of such a table from AMD PerfStudio:


Can be sorted.

Data can be grouped by shader program (or other so-called state buckets if they are implemented). So that you can have a similar summary output as currently displayed in qapitrace.

In AMD PerfStudio this grouping results in the following:


There should also be an export button somewhere.


Metric selection:

Main window:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s