Developer codes Direct3D 9 support for Linux via Gallium3D
A developer associated with the Nouveau graphics driver project has announced support for Direct3D APIs via the new Gallium3D state tracker using which games can be run on Linux and that too with better performance as compared to that offered by Wine.
Direct3D 10/11 was implemented for Linux via the Gallium3D state tracker a couple of years back but, there hasn’t been much of a developer interest in such a state tracker. The state tracker project was shortlived as developers associated with Wine were not interested in adding support for a solution that is Linux-only and that too limited to those using Gallium3D. Ultimately, the tracker was removed from Mesa.
Christoph Bumiller announced the new Direct3D tracker on Tuesday and believes that the situation is different from the Direct3D 10/11 as Gallium3D is better suited towards D3D9 as compared to newer versions of Microsoft’s graphics API. Further there is more application coverage for Direct3D 9 while being in a state whereby it can actually run games and applications.
To get the entire thing working Bumiller modified Wine such that it uses Direct3D 9 instead of Wine’s internal D3D-to-GL translation layer. The patch on Wine allows Direct3D 9 state tracker to natively implement graphics API for Gallium3D hardware drivers instead of translating API calls into OpenGL.
The developer claims that games such as Skyrim, and Civilization 5 have been tested using Nouveau NVC0 and AMD R600g drivers and are running fine on Linux. Christoph claims that the performance of the games is quite good and frame rates are nearly doubled as compared to those when using Wine’s current code.
As of now the state tracker is place in an external Mesa repository but, Bumiller has revealed that he is open for a merge. A separate repository houses the Wine changes done by Bumiller.