By now most Linux users should have heard of Gallium3D
, but if you haven't, it's a new library being developed by Tungsten Graphics
. Gallium3D provides a number of significant advantages over the current architecture as it simplifies driver development and makes it very easy for these Gallium3D-powered drivers to support new graphics APIs. There are, however, other advantages to Gallium3D and one of them is the enhanced debugging capabilities.
With a clean abstraction layer between the Gallium3D pipe driver and state trackers, it's now possible to intercept and log calls made between the graphics driver and hardware. José Fonseca with Tungsten Graphics has written a pipe driver that traces all state tracker to pipe driver interface calls and dumps them to an XML file. These XML files can then be replayed on the same system or different hardware or even different platforms. Through these trace logs, it's useful for debugging as the developer can "replay" the log to see what's happening and to analyze the situation. With this abstraction, it would also be possible to capture the calls from a guest OS being virtualized and then to execute them on the host machine. José also states that this capability could be used in optimizing the performance by computing memory/performance statistics.
You can read all about tracing Gallium3D on José Fonseca blog
. Additionally, he also wrote recently about using Python with Gallium3D
. If you missed it, last week at XDS 2008
an update was provided on the status of Gallium3D
. From that we learned Tungsten Graphics feels Gallium3D is reaching a point of stability, they may be looking to accelerate 2D over 3D in the future, and they are currently working on supporting some new graphics APIs.