The Direct3D 10/11 State Tracker Is Still Around

Posted by Michael Larabel on June 02, 2011

Last September there was the release of a Direct3D 10/11 state tracker for Gallium3D. This natively implemented Microsoft's graphics API from DirectX for the latest versions 10 and 11 with Gallium3D Linux graphics drivers. While it sounded quite enticing when the code was first released, there hasn't been much activity since that point.

There was some initial thoughts that the Wine developers would be interested in the D3D state tracker as this natively implements the Direct3D 10/11 APIs where Wine's existing Direct3D implementation largely lacks 10/11 support for now. With Wine's Direct3D implementation, they're also translating the Direct3D calls into OpenGL. The benefit of this is that it's more platform agnostic and doesn't place a requirement on the graphics driver being based on Gallium3D. The downside of translating the Direct3D calls into OpenGL is the associated overhead placed on the processor. In the future it could also be of use to the ReactOS in their development of a free software operating system that is Windows API/ABI compatible.

This Direct3D Gallium3D state tracker also isn't a "magic bullet" in terms of getting DirectX-powered games easily ported to Linux as it simply targets Direct3D, which is only one component of DirectX. There's still Direct2D, DirectCompute, DirectSound/DirectSound3D, and other components that make up the full DirectX stack. Linux simply has the Direct3D component in Gallium3D.

While this state tracker may not be of much use right now, it's still living in Mesa's mainline code-base. Aside from the occasional fixes to make the d3d1x state tracker build when core parts of Gallium3D change, there hasn't been too much to work to it publicly. In fact, today was the first Direct3D state tracker focused commit since last November. In eight months there's just one commit and it comes not even from the key d3d1x developer (Luca Barbieri) but rather an independent contributor. Today's commit just fixes swizzle for one component operands. No new features or other fun.

A list of the work touching the d3d1x state tracker in Mesa master can be found from this CGit web-page. Here's to hoping for more activity to it in the future...

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  3. New NVIDIA Linux Driver Supports The GeForce GTX 780
  4. Chrome 28 To Offer More Speed Improvements
  5. Digia Announces "Boot To Qt" Project
  6. X.Org Libraries Hit By Round Of Security Issues
  7. Wayland's Weston Gets Output Scaling Support
  8. Raspberry Pi Gets New Wayland Weston Renderer
  9. Debian GNU/Hurd 2013 Release Brings New Packages
  10. Intel Ultrabook Performance Is Faster With Mesa 9.2
  11. Hot Relocation HDD To SSD Support For Btrfs
Latest Forum Talk
  1. New Intel X.Org Driver Supports All Of Haswell
  2. Linux Desktop Security Could Be A Whole Lot Better
  3. Wayland's Weston Gets Output Scaling Support
  4. Steam: No used games...
  5. Xserver 1.14 support will arrive with Catalyst...
  6. New NVIDIA Linux Driver Supports The GeForce GTX...
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite