Graphics Performance Analysis with FrameRetrace
A Responsive UI for ApiTrace
- Track: Graphics devroom
- Room: K.4.401
- Day: Saturday
- Start: 10:30
- End: 10:55
FrameRetrace is the first fully open-source graphics performance analysis tool for OpenGL on Linux platforms. It enables rapid experimentation with shaders, state, uniforms and experiments, to find and fix performance or rendering problems in a frame. This talk will describe the current state of FrameRetrace, and why it is a compelling tool for OpenGL application and driver developers. A demo of FrameRetrace will illustrate and fix a performance problem in the mesa driver.
In Linux 4.13, GPU performance counters were added to the kernel, dramatically expanding the information available to understand GPU performance bottlenecks on Intel platforms. FrameRetrace exposes these counters in a responsive UI, providing a detailed cost analysis for every aspect of a frame's rendering. The following live experiments allow a developer to alter the frame and immediately see the impact on both performance and rendering:
- shader editing and recompilation
- changes to GL state settings
- changes to uniforms values
- experiments (simple shader, disable render)
Because FrameRetrace is built on top of ApiTrace, it can analyze most OpenGL applications. It can also provide parallel analysis of the same frame on Windows and Linux platforms, to highlight driver differences. This key feature makes FrameRetrace especially powerful when enabling new hardware that has a well-supported driver for Windows. Hardware teams from AMD and Broadcom have expressed interest in FrameRetrace for enabling their platforms.
The current feature set of FrameRetrace is compelling, and Mesa driver team has already fixed many driver issues based on findings from the tool. I would like to encourage wider use of FrameRetrace, and solicit help in adding features -- especially support for AMD hardware.
Source and documentation available at: https://github.com/janesma/apitrace/wiki/frameretrace-branch
Speakers
Mark Janes |