Direct3D 9 Support Stands A Chance Of Being Added To Mesa
For several months now there's been a Direct3D 9 state tracker under development for Mesa that's making some headway and working out for bettering the Wine performance with D3D9 titles rather than using Wine's translation layer to OpenGL. While no official request for pulling the code has been issued, it looks like it might stand a chance of hitting mainline Mesa.
In the past within Mesa was a Direct3D 10/11 state tracker but that code was ultimately removed as it was poorly maintained, not fully implemented, and didn't have any serious users. Last year was when a Direct3D 9 implementation appeared. The D3D9 state tracker was written by Christoph Bumiller, an Austrian student developer who has contributed to the Nouveau driver project in the past.
The D3D9 state tracker is in better shape than the former D3D10/D3D11 implementation, Gallium3D is better suited for this older version of Direct3D, and the state tracker is in a working state. There's out-of-tree Wine patches for allowing Wine to use this D3D interface directly rather than translating the D3D calls into OpenGL at the cost of greater overhead. Wine developers have been hesitant though to support this state tracker since its usefulness is limited to those using Gallium3D (primarily Radeon and Nouveau) and won't help Wine's support on other platforms. Regardless, more and more enthusiasts have been playing around with Gallium3D "Nine" and these Wine patches.
The state tracker continues to be refined. Last month I shared a video of Grand Theft Auto running great with Gallium3D-Nine via the state tracker and Wine. Embedded below is also a Call of Duty 6: Modern Warfare video where it's running over this Direct3D 9 Linux implementation.
While there's been no official call to try to mainline this code yet, prolific Gallium3D contributor Marek Olšák signaled that it might happen. Marek wrote, "I guess it can be merged into Mesa now. When the D3D1x state tracker was merged, it was in an unusable state. Nine is in a lot better state than that. Also, Nine seems to have users now, which makes it an important project."
In the past within Mesa was a Direct3D 10/11 state tracker but that code was ultimately removed as it was poorly maintained, not fully implemented, and didn't have any serious users. Last year was when a Direct3D 9 implementation appeared. The D3D9 state tracker was written by Christoph Bumiller, an Austrian student developer who has contributed to the Nouveau driver project in the past.
The D3D9 state tracker is in better shape than the former D3D10/D3D11 implementation, Gallium3D is better suited for this older version of Direct3D, and the state tracker is in a working state. There's out-of-tree Wine patches for allowing Wine to use this D3D interface directly rather than translating the D3D calls into OpenGL at the cost of greater overhead. Wine developers have been hesitant though to support this state tracker since its usefulness is limited to those using Gallium3D (primarily Radeon and Nouveau) and won't help Wine's support on other platforms. Regardless, more and more enthusiasts have been playing around with Gallium3D "Nine" and these Wine patches.
The state tracker continues to be refined. Last month I shared a video of Grand Theft Auto running great with Gallium3D-Nine via the state tracker and Wine. Embedded below is also a Call of Duty 6: Modern Warfare video where it's running over this Direct3D 9 Linux implementation.
While there's been no official call to try to mainline this code yet, prolific Gallium3D contributor Marek Olšák signaled that it might happen. Marek wrote, "I guess it can be merged into Mesa now. When the D3D1x state tracker was merged, it was in an unusable state. Nine is in a lot better state than that. Also, Nine seems to have users now, which makes it an important project."
61 Comments