Wiring Up GL_ARB_debug_output For Valve
One of the requests that Valve has long had for Intel and the open-source Linux graphics drivers in general has been supporting GL_ARB_debug_output, an OpenGL extension that assists game/application developers in debugging and optimizing their code. Fortunately, support for this extension is finally being pursued aggressively within Mesa.
The request by Valve for a better GL_ARB_debug_output implementation for Mesa dates back to last July.
Following Intel and Valve collaborating about Linux GPU drivers, Intel made some driver hacks to expose some debugging/performance information hidden behind an environment variable but didn't toy around with the GL_ARB_debug_output extension. Intel's Eric Anholt is now finally getting to properly supporting this OpenGL debug extension.
Per the Khronos specification on GL_ARB_debug_output, here's some of the important parts:
This extension allows the GL to notify applications when various events occur that may be useful during application development and debugging.Anholt shared on Friday evening that he has an initial GL_ARB_debug_output implementation for Mesa. Right now this work consists of fourteen patches against core Mesa.
Among the items hooked into reporting for this debug output extension is the Intel WARN_ONCE macro and the perf_debug() function (formerly the fallback_debug() function), which means any of the previously exposed Intel driver performance information is now reported to this new extension. There was also extra checks added for stalling on mapping a buffer object and shader errors and warnings.
With this work coming from Intel's Open-Source Technology Center, obviously it was designed and hooked up primarily for the i965 DRI driver (though the infrastructure and core functionality in Mesa itself) but other Mesa/Gallium3D drivers will be able to build their support atop these patches. The patch series begins here on the mailing list.
Latest Linux Hardware Reviews
Latest Linux Articles
Latest Linux News
Latest Forum Discussions