Earlier this year Zack Rusin introduced ApiTrace
as a new way to debug graphics drivers and other areas of the graphics stack. ApiTrace is an open-source utility that allows capturing DirectX/OpenGL API calls and to analyze them later on in a step-by-step manner. There's also other features like real-time editing of shaders and making other tweaks to how the calls are executed. ApiTrace even has a nice GUI too. Zack has now announced ApiTrace 2.0 and it makes this very useful graphics utility even much better.
ApiTrace 2.0 is now roughly 10x faster at tracing and about 2x faster at re-tracing. Another performance improvement is support for multi-gigabyte traces to be dealt with from the ApiTrace GUI. Other features include Mac OS X support, OpenGL 4.2 support, and the ability to display all of the uniforms. There's also some other items too like snhowing number of calls per frame, making large frames, and support for a few specialized "Gremedy" extensions.
Some of the performance improvements come from better flushing/syncing the trace files and using Snappy compression rather than Zlib. ApiTrace is now also doing seek and load on demand from the compressed disk files, so the entire file doesn't need to be loaded at once.
From Zack's blog post announcement
, "All of those improvements mean that it's possible to trace and debug huge applications with little to no costs. It's quite amazing. In fact working with graphics and not using ApiTrace starting now is going to be classified as abuse."