
Originally Posted by
DrYak
The problem is that Gallium3D isn't used everywhere. On the desktop, Intel (which *DO* have a significant market share, though) is the only using Gallium3D for their official driver, and AMD are also giving support to an opensource driver using it beside their official one. AMD and Nvidia official drivers aren't based on Gallium, but share code with their respective Windows equivalent. Currently for Nvidia (which is mega-popular among gamers) the binary driver is the preferred one as it is the only supported by Nvidia and nouveau is entirely done by reverse engineering (and thus is having a hard time to be on par, although it's quite amazing what they still managed to achieve anyway).
So, DirectX 3D on Gallium3D only solves the "Wine support & Game porting" problems for a fraction of the players. (The one with Intel hardware, and the few AMD/Nvidia interested in the opensource drivers). For the rest (the bulk of Nvidia and AMD running the official binary drivers) you need support from the company themselves - that might be made easy if they share code with the windows version, but on the other hand that still require extra work from them (and given how slow is Nvidia to pick up latest linux trends... Just look how much time it's taking them to pick-up RandR, to decide they might start playing with DMA-BUF to offer actual real optimus support instead of bumblebee workaround... Still don't even care to consider Wayland... Hence Linus' big "Fuck You". At least apparently the things are starting to move on the Tegra front and looks like Nvidia might go the AMD way).
For directx on Linux to make any sense, one would need:
- developpers jumping on to maintain d3d1x
- AMD and Nvidia porting their windows DirectX code to Linux
Better keep the current route:
- Developers are adding OpenGL support to their 3d engines anyway, in order to support Mac OS X and support OpenGL ES powered handheld devices (smartphone, tablets, etc.). As DirectX is only available on Windows and X-Box, and as OpenGL is available on pretty much everything *including* Windows and *including* all the juicy new emerging markets (mobile apps), it really does make sens.
- Bring OpenGL support on Linux on par with everything else. AMD and Nvidia are already doing their work on their binary drivers (with support of the recent OpenGL 4.x APIs). Gallium3D is lagging behind, but the pace at which it progress is accelerating, thank various developpers like Intel (they want to get an as good as possible opengl support) and Steam (they helped bring some of the OpenGL 4.x debugging APIs into Gallium3D because it helps them).
The only actual use case for a DirectX state tracker would be VMware :
They bought Tungsten graphics and have them work on their virtualized acceleration. If they move their guest drivers on Windows to using Galllium3D, a Direct3d state tracker will make sense.