The GL_INTEL_performance_query extension is similar to AMD_performance_monitor, but it's Intel's own approach for exposing GPU performance counter information. The extension is similar to AMD_performance_monitor to the point of Intel using the same driver hooks. Other extensions worked on recently for helping Linux game developers and others in debugging (or optimizing) their OpenGL workloads is the KHR_debug extension and some semi-related GLX work is the MESA_query_renderer, among other work.
Petri Latvala of Intel sent out a set of six patches this morning that do the plumbing work for supporting the GL_INTEL_performance_query extension. Petri wrote, "This patch series implements the INTEL_performance_query extension. With driver code for AMD_performance_monitor already in place, implementing this extension was fairly straightforward. Planned future improvements: Proper semantic types for counters and data normalization (currently all counters are exposed as 'RAW' without per-second maximum). Pseudo-counters for things like 'time spent in shader compilation' or 'forced recompilation event count'."
While one of the patches add Mesa core support for GL_INTEL_performance_query, only the classic Intel Mesa DRI driver is taking advantage of this extension and not any of the other Mesa/Gallium3D drivers. For the Intel driver, the extension should work on "Gen5" era hardware and newer.
Like AMD_performance_monitor, this extension provides an interface for applications (and OpenGL-based tools) to access GPU performance counters. Since the exact performance counters available vary between vendors and hardware generations, the extension provides an API the application can use to get the names, types, and minimum/maximum values of all available counters.The GL_INTEL_performance_query extension was made public last year and its specification can be found via the OpenGL.org registry. Expect this work to land for Mesa 10.2.
Applications create performance queries based on available query types, and begin/end measurement collection. Multiple queries can be measuring simultaneously.