QApitrace OpenGL profiling view

Alex Tru alxtry at gmail.com
Wed Aug 10 22:02:44 UTC 2016


Hi,

I’m developing a new OpenGL profiling view for QApitrace. I’m pursuing
several goals with that:

    1) Support new profiling counters. Currently we have only CPU/GPU
time histograms in the view. Last year, I contributed an abstraction
for different OpenGL profiling backends which got merged, I’ve also
added support for both the INTEL_perfquery and AMD_perfmon GL
extensions. This allowed us to output CSV files containing the
performance counters’ metrics when replaying traces with glretrace.
The plan for this year’s project is to integrate it in QApitrace to
make it easier to use and visualize the data.
    2) Since I’m planning to display a lot of data in the view,
there’s a need to provide graphing tools with reasonable performance.
I’ve chosen to use a combination of raw OpenGL and QML for that. The
performance is better than that of QPainter based, especially for
large amounts of data (but it still can be laggy on some HW).
    3) Improve user experience. Well, currently I haven’t improved a
lot (if not anything). But I would like to collect opinions on this
topic.

My development tree is here: https://github.com/trtt/apitrace/tree/guiwip2
I had to increase requirements up to Qt 5.3 and OpenGL 3.2. Do you
think this is acceptable?

Here are some screenshots, just in case:
https://www.dropbox.com/sh/wntm6hk6fyhsr8j/AAANIoCyni1XqGez78K8Wo01a?dl=0

It’s in a quite early state at the moment, but you can generally
estimate what to expect. Compiling glretrace and qapitrace should be
enough. New profiling view can be found in the menu (Trace -> Profile
with backends). Old metrics are all available, new ones are most
likely to be found on Mesa for Intel gen 5-8 and for some in Nouveau,
also proprietary AMD drivers can feature some. You can expect to see
timelines and plots for metrics chosen for different shader programs.
Controls are a bit awkward now, but you can drag view to scroll and
use <Ctrl+Wheel> to zoom.

I am basically writing to know:
1) Do you think this new profiling view can find its place in QApitrace?
2) If yes, what features would you like to see in it?

If you are interested, you can also check out my TODO list:
https://trello.com/b/EY0CAw0b/prof-gui-apitrace


More information about the apitrace mailing list