Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Graphics Open Source Linux

Direct3D 9.0 Support On Track For Linux's Gallium3D Drivers 55

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.
This discussion has been archived. No new comments can be posted.

Direct3D 9.0 Support On Track For Linux's Gallium3D Drivers

Comments Filter:
  • by drinkypoo ( 153816 ) <drink@hyperlogos.org> on Saturday October 18, 2014 @10:37AM (#48175783) Homepage Journal

    Maybe it's because I tend to play old games, but my perception of it hasn't so much been costly as explodey. Or sometimes it just draws stuff wrong, but I can mostly live with that.

  • Apparently up to this point in wine D3D 10 had more complete support than D3D 9 [wikipedia.org]. Is there a reason why it would be useful to make D3D 9 support more complete? I understand that this article goes beyond Wine.
    • by raxx7 ( 205260 )

      That D3D10 state tracker never made it past an early prototype and, I think, Mesa/Gallium is still lacking for D3D10 support (it doesn't support OpenGL 4.x either yet).

    • Re: (Score:3, Informative)

      by Anonymous Coward

      Apparently up to this point in wine D3D 10 had more complete support than D3D 9 [wikipedia.org]. Is there a reason why it would be useful to make D3D 9 support more complete? I understand that this article goes beyond Wine.

      If you have a working D3D 9 implementation, you've also covered practically everything needed to support D3D 5 - 8 as well. This will get you pretty good coverage of games and other 3D apps released from 1998 to at least 2011.

      D3D 10 was a significant break from both the API perspective and in terms of how it works underneath. D3D 10 was included with Vista but never made available for Windows XP (because it relied on kernel changes and a new driver model that couldn't be backported) so game developers too

      • by Nemyst ( 1383049 )

        D3D 10 was a significant break from both the API perspective and in terms of how it works underneath. D3D 10 was included with Vista but never made available for Windows XP (because it relied on kernel changes and a new driver model that couldn't be backported) so game developers took their time in moving to it.

        Not only that, the Xbox 360 also used something that was fairly close to DirectX 9 (in the same way the Xbox One uses an API close to DirectX 11), so it made sense to reuse the 360 version for PC with a few tweaks here and there. Certainly much easier than rebuilding for the vastly different DirectX 10 API.

        With the arrival of the new console generation, we're seeing a sudden (and very welcome!) shift to DirectX 10+ and 64-bit executables.

    • by PhrostyMcByte ( 589271 ) <phrosty@gmail.com> on Saturday October 18, 2014 @11:11AM (#48175901) Homepage

      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.

      • by Kjella ( 173770 )

        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.

        Bullshit. Almost all games have had an D3D 9 rendering path since XP has been so massively popular, but a whole lot of games has taken advantage of D3D 10/11 where it's been available. It's very important to the number of games you can run on Linux, but it does not represent the state of the art. Speaking of which, WINE's support of D3D 9 through an OpenGL has been pretty good. Or rather my impression has been that if they can figure out what DirectX is doing, there's usually a fairly efficient way of doing

    • Direct3D 10 is very different from Direct3D 9.

      Direct3D 11 is a superset of Direct3D 10.

    • Direct3D 10 is very different from DirectX 9. The latter was designed with modern GPUs in mind and so is based around an entirely programmable pipeline. DirectX 9 is predominantly a fixed-function API with various places where you can insert shader programs into the pipeline. This means that DirectX 10 is easier to support because there's less provided by the API.

      Supporting D3D 9 is akin to supporting OpenGL 2. You need to expose most of the programmable interfaces but also have a load of fixed-funct

  • by TyFoN ( 12980 ) on Saturday October 18, 2014 @10:54AM (#48175843)

    I bet there are lots of other applications that utilize d3d and want to port to linux that can use this directly.

    I've met people that actually prefer d3d over opengl (don't ask me why), so I think it's going to have much wider use than wine.

    • by pavon ( 30274 )

      This native D3D9 support only works for drivers based on Gallium3D, which includes Noveau and the newer cards supported by the Radeon driver. If you are using the proprietary NVidia or AMD drivers, then this won't work. I can't imagine that any company would want to support a Linux port that required you to have specific graphics card drivers installed. Especially a company that didn't care enough about cross-platform support to use OpenGL from the start, and especially when many of the people who care abou

      • You make no sense, since having only the proprietary driver available sounds to me like "require you to have a specific driver installed". The Gallium3D driver, which supports Radeon cards since the R300 series (Oct 2002), offers an alternative to the required proprietary driver. And since AMD regularly drops support for older hardware in the proprietary driver, the Gallium3D drivers supports a wider variety of hardware, and will continue to do so. Seems like writing for the proprietary driver is the mor

        • by pavon ( 30274 )

          Think of it this way. If you are a company that has a D3D application that you need to port to linux, does it make more sense to spend a small amount of time making wine-lib based port that works with any video card driver. Or to spend a larger amount of time to create a native port that only works with specific drivers, causing all sorts of complications for your potential user base. It's a no brainer; you take the path that is less work for you, and more compatible for your customers.

  • It would be nice if support for Glide 2.1 and 3.0 be added also, there is a good chunk of oldies that would benefit and nowadays wine has dosbox built in, so even DOS games would be supported.
    • It would be nice if support for Glide 2.1 and 3.0 be added also, there is a good chunk of oldies that would benefit and nowadays wine has dosbox built in, so even DOS games would be supported.

      Very unlikely in my opinion:
      Voodoo cards (and their Glide API) are fixed pipeline.
      Whereas, from the ground up gallium3D was organised around the modern features found in a programmable-shader card.
      There's a lot of difference between how these work.

      On the other hand, Glide was designed with the simplest subset of OpenGL implementable in hardware in mind. That's why it easy to write miniGL or OpenGL implementations on top of it (and the reverse also: it's not impossible to write Glide-to-OpenGL wrappers).
      Mean

      • by Khyber ( 864651 ) <techkitsune@gmail.com> on Saturday October 18, 2014 @12:02PM (#48176097) Homepage Journal

        Given the hilariously low power of even the VooDoo5 compared to today's hardware, a simple wrapper (like what was used in many old emulators) would do the job and you'd never notice frame issues.

        • It would be nice if such a wrapper for Glide was made part of the Gallium3D implementation. It would be even better if they used OpenGL 3/4 (to keep the level of emulation to a minimum since from what I have heard, modern video drivers emulate OpenGL 1/2) since nowadays most people have (at least) DX10/OpenGL 3 capable video cards.
          • since from what I have heard, modern video drivers emulate OpenGL 1/2

            Where did you hear this?

          • Again, there's a reason why Glide wrapper tend to target OpenGL 1/2 instead of 3/4.

            Glide is fixed pipe.
            Glide and the other APIs back then (DirectX 7, OpenGL 1/2, etc.) where about just painting plain triangles. Paint triangle with tips at vertex v1,v2,v3 using texture T1, optionally a second texture T2 as lightmap (and for the few architecture that did have it: using a third texture T3 as a bump map).
            That's it.
            For any pixel on the screen, the only thing the hardware is capable of is geting 2 or 3 textures (

            • If I understand correctly then later on a wrapper for Directx 7/8 could be written on top of the directx 9 API in Gallium3D?
    • DosBox can already do Glide. Look at the Daum SVN [x-y.net] builds of DosBox. A lot of cool patches rolled into these builds, including Voodoo/Glide support. You'll need to sleaze a copy of Windows 95 but it works.

      If you use the Daum build, also consider using the latest version of DBGL [quicknet.nl] which supports the extra experimental config settings.
      • But if we get a glide warpper at the video card driver level, then Windows (and not only DOS) games can run with glide support.
        • I remember people using Glide -> DirectX/OpenGL translation layers on Windows several years back to run UltraHLE and things like that.

          So I doubt it is that hard.

  • "There's patches" ?

For God's sake, stop researching for a while and begin to think!

Working...