First, a little background:
Now, for the lowdown (courtesy of Phoronix)
Luca Barbieri made a rather significant commit today that adds a state tracker dubbed “d3d1x”, which implements the Direct3D 10/11 COM API in Gallium3D. Luca says this is just the initial version, but it’s already working and can run a few DirectX 10/11 texturing demos on Linux at the moment. This is not a matter of simply translating the Direct3D calls and converting them to OpenGL like how Wine currently handles it, but is natively implemented within Gallium3D and TGSI to speak directly to the underlying graphics driver and hardware. Thanks to Gallium3D’s architecture, this Direct3D support essentially becomes “free” to all Linux drivers with little to no work required.
As said in the commit, “The primary goal is to realize Gallium’s promise of multiple API support, and provide an API that can be easily implemented with just a very thin wrapper over Gallium, instead of the enormous amount of complex code needed for OpenGL. The secondary goal is to run Windows Direct3D 10/11 games on Linux using Wine. The third goal is to provide a superior alternative to OpenGL for graphics programming on non-Windows systems, particularly Linux and other free and open systems. Thanks to a very clean and well-though design done from scratch, the Direct3D 10/11 APIs are vastly better than OpenGL and can be supported with orders of magnitude less code and development time, as you can see by comparing the lines of code of this commit and those in the existing Mesa OpenGL implementation.”