Less than a day after Marek Olšák
posted a set of patches to implement GL4 transform feedback
for Mesa/Gallium3D, he's back with another important but separate set of patches.
The latest patch-set to hit the Mesa mailing list
from this frequent independent contributor to Mesa is for implementing GL_ARB_timer_query.
The GL_ARB_timer_query extension work for Mesa and Gallium3D isn't brand new, but originally published his original timer query patches in late June. The patches are now updated to use glGet(GL_TIMESTAMP), update all of the Gallium3D patches, and provide GL_ARB_timer_query support for the Gallium3D Softpipe driver.
Besides this being useful as it chips away at what's left to accomplish when it comes to Mesa's GL3 support, GL_ARB_timer_query itself is interesting and useful. As implied by the name, this OpenGL extension provides a query mechanism to accurate determine the amount of time it takes to fully complete a set of GL commands. Therefore this extension can be very useful to both application developers and driver writers with being able to procure accurate timing information to identify bottlenecks.
Using GL_ARB_timer_query is more accurate for identifying OpenGL program/driver bottlenecks over using the CPU time. Using the GL_ARB_timer_query extension will not stall the graphics rendering pipeline but the application is able to poll the data a-synchronously by using the query object mechanisms in the occlusion query extension.
Additional information on this extension can be found in the OpenGL.org specification
. Marek's patches are currently being housed in his timer-query branch