We have released version 2.9.0 of our Qt application introspection tool GammaRay. GammaRay allows you to observe behavior and data structures of Qt code inside your program live at runtime. GammaRay 2.9 introduces a number of new features interesting to Qt Quick, QWidgets, Qt 3D and non-graphical Qt users alike.
Qt Quick
One focus area of this release is the paint analyzer. It got significantly improved argument inspection, stack traces for all operations, and, in addition to QWidgets, QGraphicsView and QQuickPaintedItem, it's now also available for the Qt Quick software renderer (with Qt 5.9.3 or newer) and Qt 3D painted textures. The paint analyzer now also measures the time each operation takes. With all that combined, you have a powerful tool when being faced with rendering performance issues in applications using the Qt Quick software renderer.
GammaRay paint analyzer / profiler with a Qt Quick software renderer application.
For the Qt Quick OpenGL renderer we have some interesting new feature too of course, such as the texture inspection tab. This enables you to see the textures used on the GPU backing Image elements or Text elements using distance field rendering. This is useful to spot sub-optimal texture atlas usage, or textures containing unnecessary content, both of which can hurt GPU memory consumption. The texture inspection view supports analyzing this with diagnostic overlays, highlighting transparent borders or repeated areas that can for example be optimized by the use of BorderImage elements.
GammaRay texture inspector highlighting a largely transparent element in a texture atlas.
Core Features
There's also new features for the non-UI aspects of Qt. The new QML binding inspector (requires Qt 5.10 or newer) allows you to analyze the dependencies of a QML property binding. It provides source code navigation to the corresponding binding dependency and thus is quite useful for debugging non-trivial binding loops.
GammaRay QML binding inspector showing a binding loop.
The new QObject creation stack trace view expands on the QObject creation source navigation we introduced in the previous release and also shows you the full stack trace leading up to the creation of a specific object (not available on all platforms). Very useful when you spot objects in GammaRay that shouldn't be there (anymore).
GammaRay object creation stack trace view.
Widgets
For QWidget users, the GammaRay widget inspector is now able to visualize the tab focus chain. This makes testing the tab order a lot more convenient than tabbing manually through a big dialog.
Qt 3D isn't forgotten either. The geometry inspector got a couple of extensions, such as vertex picking support and a number of new diagnostic shading modes that allow you to easily spot issues in e.g. normal, tangent or texture coordinate attributes.
GammaRay Qt 3D geometry inspector visualizing the normal attribute of a vertex buffer.
And that's just scratching the surface, there's many more features and improvements in this release. You can find a full list of changes here.
If you like GammaRay, there's an easy way to support its development. Just enable telemetry data submission via 'Help > Contribute' in the GammaRay client. This allows us to see which platforms, Qt versions and tools are most relevant for you, so we can focus on those. Thank you!
At the time of writing, GammaRay was available as part of Qt Automotive Suite including Qt Creator integration and professional support, or GPL-licensed on Github. This has since been discontinued.
The KDAB Group is a globally recognized provider for software consulting, development and training, specializing in embedded devices and complex cross-platform desktop applications. In addition to being leading experts in Qt, C++ and 3D technologies for over two decades, KDAB provides deep expertise across the stack, including Linux, Rust and modern UI frameworks. With 100+ employees from 20 countries and offices in Sweden, Germany, USA, France and UK, we serve clients around the world.
3 Comments
13 - Feb - 2018
Markus
Many thanks for your efforts, gammaray is a great tool! Unfortunately I'm currently stuck with getting it to work with MSVC2015 :-(
3 Comments
13 - Feb - 2018
Markus
Many thanks for your efforts, gammaray is a great tool! Unfortunately I'm currently stuck with getting it to work with MSVC2015 :-(
Would be nice if anybody could have at least a short look at https://github.com/KDAB/GammaRay/issues/481 .
13 - Feb - 2018
Volker Krause
Sure, should be fixed in the 2.9 branch and master now.
14 - Feb - 2018
Markus
Whow, many thanks for the quick fix! Works like it should now.