Slashdot Mirror


DX11 Coming To Linux (But Not XP)

gr8_phk writes "As reported over at Phoronix, the Direct X 11 API now has an open source implementation on top of Gallium3d which should ease porting of games to Linux with or without Wine. While still in its infancy, you can see where this is heading. All this while Microsoft hasn't offered DX11 for their own aging WindowsXP. Could it be that Linux may soon support this Microsoft API better than Microsoft itself?"

23 of 370 comments (clear)

  1. At Long Last by TitusC3v5 · · Score: 4, Funny

    Microsoft has finally give us some cheese for our wine is not an emulator is not an emulator is not an emulator is not ...

    --
    And the masses cried out, "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!"
  2. Response to rampant speculation by Tetsujin · · Score: 4, Funny

    "Could it be that Linux may soon support this Microsoft API better than Microsoft itself?"

    Yes. It seems very likely to me that an open-source implementation of a Microsoft API, and implementation "in its infancy", will soon surpass Microsoft's own offering.

    I mean, if you're comparing DX11 support on Linux to DX11 support on XP - well, some support is better than none, right? So, OK, sure.

    --
    Bow-ties are cool.
    1. Re:Response to rampant speculation by ifiwereasculptor · · Score: 5, Insightful

      "Could it be that Linux may soon support this Microsoft API better than Microsoft itself?" Actually Linux could soon support Microsoft's latest API better than XP. That's possible. But not better than Microsoft. That's like saying Linux has always supported DX9 better than Microsoft itself because it wasn't present in Windows 3.1 (and neither in 3.11).

    2. Re:Response to rampant speculation by Fulg · · Score: 4, Insightful

      Yes. It seems very likely to me that an open-source implementation of a Microsoft API, and implementation "in its infancy", will soon surpass Microsoft's own offering.

      I was about to post the same thing. The summary is amazingly hasty in its conclusion... I mean, WINE has been at it for what, 10 years? They still don't have it working as well as the original. Not dissing WINE, but I mean, implementing the entry points of a published API is easy. Making it do the correct things under the hood is the hard part...

      That being said, I can certainly applaud the effort, but this should be news once it's working otherwise it's meaningless.

      --
      gcc: no input sig
    3. Re:Response to rampant speculation by armanox · · Score: 4, Insightful

      I'd say WINE has done quite nicely. Remember when WINE emulated Win 3.11? WINE's biggest problem is that it will forever be playing catch up.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    4. Re:Response to rampant speculation by TheRaven64 · · Score: 4, Insightful

      You must have a poor memory then. WINE implemented the Win16 API before they started on Win32. There was a time in the late '90s when you were more likely to get a Win16 app working on Linux than on Windows NT 4.

      --
      I am TheRaven on Soylent News
  3. Does this smack of a hidden agenda to you? by mark-t · · Score: 4, Interesting

    Because I can't help but think that this may be some sort of scheme to put OpenGL out of the picture....

    I'm generally not one to presume conspiracy right off the bat, but there's something about this that just doesn't quite seem on the up-and-up, IMO.

    1. Re:Does this smack of a hidden agenda to you? by Beelzebud · · Score: 4, Interesting

      Except this isn't being done my MS. Like it or not, modern game companies are using Direct X more and more. OpenGL is already out of the picture, for the most part. With people like John Carmack now even coding in Direct X, it makes sense to try to get a solution for Linux.

    2. Re:Does this smack of a hidden agenda to you? by ChienAndalu · · Score: 5, Informative

      This is what the developer wrote in the commit message:

      Thanks to a very clean and well-though design done from scratch,
      the Direct3D 10/11 APIs are vastly better than OpenGL and can be
      supported with orders of magnitude less code and development time,
      as you can see by comparing the lines of code of this commit and
      those in the existing Mesa OpenGL implementation.

      As somebody who only has little OpenGL coding experience I can't really comment on this.

    3. Re:Does this smack of a hidden agenda to you? by mewsenews · · Score: 4, Interesting

      OpenGL is already out of the picture, for the most part.

      OTOH, Macs run OpenGL and are stereotyped as having an affluent user base. Blizzard still releases Mac versions of games. Steam for Mac launched in May. Not really "out of the picture" yet.

    4. Re:Does this smack of a hidden agenda to you? by EyelessFade · · Score: 4, Informative

      And all who make games for Consoles. Remember only Xbox uses DirectX, all the other uses OpenGL or a derivate from it.

    5. Re:Does this smack of a hidden agenda to you? by fnj · · Score: 4, Interesting

      As the developer claimed:

      the Direct3D 10/11 APIs are vastly better than OpenGL and can be supported with orders of magnitude less code and development time

      I call BULL SHIT. I call it loudly and I call it with a big raspberry. Because: OH REALLY??? ONE HUNDRED or more times more code and development time? Thats what "orders of magnitude" with an "s" means.

    6. Re:Does this smack of a hidden agenda to you? by Anonymous Coward · · Score: 4, Interesting

      DirectX 10+ is vastly superior to what is available on Linux for writing apps,

      1. Direct3D - OpenGL is OK. It's not the largest problem after all!

      2. DirectInput - what is the Linux analogy? Using X.Org shitty API? It's akin to using Windows' WM_KEYPRESS and similar messages to do keyboard interface, except it's even more cryptic. X.Org is OK for desktop apps, like Win32 API is OK for desktop apps, but that's about it.

      3. DirectSound - let's not even get started on the horrendous crap ALSA has become. It's a prime example of *over-engineered*, unusable project. Hell, even my headset returns multiple interfaces while in fact it is 2 channels OUT, 1 channel IN. Yet in Alsa it has a shit ton of options that are completely useless, like emulating 7.1 input. WTF??

      Here's more proof how crap ALSA is,
            http://www.alsa-project.org/alsa-doc/alsa-lib/index.html

      Even the documentation is a mess. Click on high level control interface and you get a blank page!
          http://www.alsa-project.org/alsa-doc/alsa-lib/hcontrol.html

      Going from a different path (modules => high level interface), thus ignoring the main navigation page gets me a page with NO overview, *nothing*.
          http://www.alsa-project.org/alsa-doc/alsa-lib/group___h_control.html

      ALSA is one of many OSS projects that makes me ashamed of OSS. You look at projects like PostgreSQL that has *clear* and *concise* documentation available,
            http://www.postgresql.org/docs/9.0/static/index.html
      to something like ALSA, and you want to cry. ALSA looks like overengineered project by a 20 year old that simply ignored making any documentation. Winsauce!

      DirectX is NOT only about graphics. It's too bad that Linux/XOrg tends to be barely about graphics and almost nothing about the rest.

      And I'm speaking as someone that uses Linux 100% of the time.

    7. Re:Does this smack of a hidden agenda to you? by PhrostyMcByte · · Score: 4, Informative

      What he says is a criticism of what happened with OpenGL 3. Despite hopes that the old fixed-function API would all be removed in favor of the modern programmable API, it was all left in--along with the *massive* API and all the extra state and complex code it took to implement it. The Direct3D 10 API was, functionally, what most developers were hoping OpenGL 3 would be--a clean break. Smaller, optimized, easy to use, and easy to implement. OpenGL 3.1 eventually removed all the old fixed-function APIs, and OpenGL 3.2 brought rough feature parity with Direct3D 10.

      Unfortunately, OpenGL was so backwards- and forwards-compatible with itself that many games were made using some mix of the old and new functionality, so even modern games can be found that won't work without an implementation that supports the older stuff. Direct3D is a pretty rigid API without extensions, and Direct3D 10 was not backwards-compatible at all, so code that is written for it is unable to be anything but simple to implement.

      From an implementer's perspective, supporting modern OpenGL use can be a much larger problem than supporting modern Direct3D use. Of course, many games also use older Direct3D versions, and that API is bound to be much more complex too--something he didn't mention.

    8. Re:Does this smack of a hidden agenda to you? by brainnolo · · Score: 4, Informative

      What about SDL? They seem to handle those aspects pretty well

    9. Re:Does this smack of a hidden agenda to you? by TheRaven64 · · Score: 5, Informative

      Gallium drivers are in several layers. The majority of a modern GPU is basically a general-purpose processor optimised for running floating-point heavy, branch-light, programs in parallel. The back end of a gallium driver is just a compiler and runtime that takes TGIR programs and runs them on the GPU (or the CPU if the GPU can't handle them). The front end of the driver generates TGIR programs.

      Because modern GPUs are so flexible, Direct3D 11 and OpenGL 3 are basically APIs for launching shader programs, which do the real work. The front end of the driver compiles GLSL or HLSL programs to TGIR and passes them to the back end. The back end then compiles them for the native architecture and runs them.

      When you use OpenGL 2 or DirectX 9 on Gallium, you have something like Mesa that implements the older, less-flexible (but simpler-to-use) APIs by generating fairly static TGIR programs.

      --
      I am TheRaven on Soylent News
  4. Seems sensible enough by Anonymous Coward · · Score: 5, Informative

    D3D 10/11 are pure shaders, the API does little more than compile, upload, and bind data to those shaders.

    So the only 'trick' is to automatically convert HLSL to GLSL, which again, is pretty straightforward, since concepts and structures should pretty much map up 1:1.

    Oh, BTW.. It's not DX11 it's D3D11, DirectX is no longer versioned or packaged as one big 'thing', each component carries it's own version number and release schedule.

  5. Pimp my linux. by Anonymous Coward · · Score: 5, Funny

    Hello sir, I have been told that you enjoy compatibility. I took the liberty of installing a Direct X compatibility layer on top of your WINE compatibility layer. Now you can have a compatible user experience while having a compatible graphical experience.

    Wait, did I do that right?

  6. Interesting. by Beelzebud · · Score: 4, Insightful

    I'd love this, if it's true, and it performs on par with windows. However, I've learned to take Phoronix hype with a grain of salt. They're gaining reputation for making bold claims based on no facts.

  7. In ten years by Citizen+of+Earth · · Score: 4, Funny

    In ten years, Linux will be a better Windows than Windows.

  8. An insider view by DMiax · · Score: 5, Informative

    Disregarding for a moment the fact that this was announced a few months ago, here is an explanation of what this actually means for developers from a developer of Gallium3D. It explains why there will be no flood of games ported from Windows, and why we should still support a truly open API like OpenGL.

  9. Nothing to see here.. move along by kazade84 · · Score: 4, Informative

    This isn't really that exciting. Firstly it doesn't benefit Wine at all. Wine supports other platforms than Linux and other drivers than Gallium3D and Mesa and so this is useless to them, if that isn't enough the Wine source structure isn't built for this kind of swap out, specifically because Wine limits X interaction to a single DLL, winex11, and the WineD3D stuff doesn't have direct access to X. The Wine D3D developers have long said that a D3D state tracker won't help them.

    Secondly, it's not gonna help porting games to Linux either. D3D is only one part of the DX API and a game does a lot more than just draw stuff. Arguably swapping out D3D for OGL is relatively straightforward in comparison to swapping out sound API, file IO API, network IO API, message handling, etc. etc. that's why some games allow you to switch between the graphics API.

  10. OpenGL not just used on PCs by zooblethorpe · · Score: 4, Informative

    It bears noting that various flavors of OpenGL are used on other hardware, such as Sony's various consoles or the Wii, and it is apparently part of the underlying codebase for the upcoming Nintendo 3DS system. So it looks unlikely to die in the near term, at least.

    Cheers,

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."