Direct3D 9.0 Support On Track For Linux's Gallium3D Drivers
An anonymous reader writes Twelve years after Microsoft debuted DirectX 9.0, open-source developers are getting ready to possibly land Direct3D 9.0 support within the open-source Linux Mesa/Gallium3D code-base. The "Gallium3D Nine" state tracker allows accelerating D3D9 natively by Gallium3D drivers and there's patches for Wine so that Windows games can utilize this state tracker without having to go through Wine's costly D3D-to-OGL translator. The Gallium3D D3D9 code has been in development since last year and is now reaching a point where it's under review for mainline Mesa. The uses for this Direct3D 9 state tracker will likely be very limited outside of using it for Wine gaming.
Is there a reason why it would be useful to make D3D 9 support more complete?
Games only started using D3D 10/11 *very* recently -- the back catalog this could enable is huge, and D3D 9 games are still coming out today. It'd say it's very important to support.
Also documentation. Say what you will, D3D's docs are lightyears ahead of the messy, poorly-versioned documentation for OpenGL. Doesn't help that OpenGL kept backwards compatibility for so long that even fairly recent tutorials still use the horrendous immediate mode either, making tutorials for modern OpenGL harder to find. Meanwhile, Microsoft's SDKs have extensive tutorials and samples, and there's plenty of references to start from especially now that DirectX 10+ have slashed out all the crap accumulated from older versions.
Just use this as an example: search on Google for glVertex. First link goes to the official documentation. Nowhere on the page is it mentioned that this entire rendering system has been deprecated. Nowhere on the page can you see that the documentation is for OpenGL 2. There's a 2 in the URL, but changing it to a 3 or a 4 gives a 404 error. At least now some blessed soul made docs.gl, but the fact it's not even Khronos taking some time to fix their fucking documentation is absurd. You'll note though that even there, the docs for glVertex don't mention deprecation; the function just doesn't have an OpenGL 4 page.
Then there's debugging. Once you've used PIX or VS2012's built-in debugger, you really can't look back. Being able to save any frame, step through the entire rendering process event by event, and even go as far as debugging an individual pixel (down to what tried to write on the pixel, why the draw call did or didn't pass, and a way to put breakpoints in shader code using that pixel's input and output!) is just... It's unrivalled. Nothing from OpenGL even comes close to this.