Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Graphics Windows Linux

DX11 Coming To Linux (But Not XP) 370

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

DX11 Coming To Linux (But Not XP)

Comments Filter:
  • by TitusC3v5 ( 608284 ) on Tuesday September 21, 2010 @12:48PM (#33652982) Homepage
    Microsoft has finally give us some cheese for our wine is not an emulator is not an emulator is not an emulator is not ...
  • by Tetsujin ( 103070 ) on Tuesday September 21, 2010 @12:49PM (#33652992) Homepage Journal

    "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.

    • by ifiwereasculptor ( 1870574 ) on Tuesday September 21, 2010 @12:57PM (#33653146)
      "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).
    • by Fulg ( 138866 ) on Tuesday September 21, 2010 @01:04PM (#33653232) Homepage

      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.

    • by Gadget_Guy ( 627405 ) * on Tuesday September 21, 2010 @01:21PM (#33653474)

      I had a quick look at the system requirements for this project, and it said: "The following are required for DRI-based hardware acceleration with Mesa...Linux 2.6.28." This version was released nearly two years after Vista. I don't think that it can be said to support DirectX better than Microsoft when it can't run on a version that dates back to XP days.

      Now I think that it is great that they are doing this project, but saying it supports the API better than Microsoft only distracts from the developer's achievements.

      • by JesseMcDonald ( 536341 ) on Tuesday September 21, 2010 @02:09PM (#33654094) Homepage

        I don't think that it can be said to support DirectX better than Microsoft when it can't run on a version that dates back to XP days.

        Irrelevant. The latest Linux kernel is available for free, and can be upgraded without any compatibility issues or changes to the UI. Why would this project waste time redoing all the work which has already gone into kernel development? The odds that anyone would be interested in DX11 on Linux and simultaneously have a good reason not to upgrade their kernel are rather slim.

        Not to mention that the whole kernel is open-source, so if you really wanted to make it work you could probably backport the necessary DRI changes to an older kernel.

        There are good reasons for retaining XP on existing systems, not least of which are the facts that upgrading would cost several hundred dollars and force a major change in the user interface. You can't upgrade an XP system to a Vista or Windows 7 kernel with DX11 support while leaving the rest of the system intact. The situations are not comparable.

        • Re: (Score:2, Insightful)

          by MBGMorden ( 803437 )

          There are good reasons for retaining XP on existing systems, not least of which are the facts that upgrading would cost several hundred dollars

          Windows 7 Home Premium is only $99 from Newegg. Actually $89 today on sale. While I'm a die-hard Ubuntu user, I keep a copy of Windows around for gaming. As obvious, the price isn't what's keeping me from using Windows on my main machine. It's more an issue of Linux constantly improving in quality, whereas Windows seems to be going slowly downhill post-XP. Eventually they met in the middle and I found myself less frustrated in Linux compared to Windows. If I could get my gaming done on Linux, I'd love

          • Windows 7 Home Premium is only $99 from Newegg.

            As I understand it, that's the price of the OEM version, and the OEM version is available only when purchased on the same invoice as a motherboard. Otherwise, you have to buy the retail version, which is $100 more. Besides, a lot of people who need features found only in the Professional edition don't want to have to dual boot Windows XP Professional and Windows 7 Home Premium.

            • by MBGMorden ( 803437 ) on Tuesday September 21, 2010 @02:56PM (#33654772)

              The OEM version is available with any hardware purchase. My understanding is that to meet the requirement when ordering just the software they'll throw in a tiny "hardware" component (usually a screw or a cable) to legitimize it. If you have ANY other piece of hardware in your order though then even that is not needed.

              In regard to features, you have a point there, though several features that were limited to the "Professional" version of XP (such as SMP support) have migrated to the "Home" version of Windows 7. That's assuming they were even using XP Pro. I know a lot of people that were using XP Home just fine. And if you really do need Professional, then the OEM Windows 7 Pro is only $40 more than Home Premium.

          • by kikito ( 971480 ) on Tuesday September 21, 2010 @05:45PM (#33656544) Homepage

            I'd like to point out that comparing linux with Home Premium isn't fair either.

            Linux only comes in one version: Awesome.

            You should compare it with the Win7 Awesome version, whatever it's called.

    • by rgviza ( 1303161 ) on Tuesday September 21, 2010 @02:29PM (#33654358)

      Not really. MS won't support it on XP because they are trying to get gamers to buy Windows 7ista. I'm sure the Windows 7 support for DX11 will be on par with the linux support.

      *note I'm not a windows fanboi, I just happen to have a firm grasp of reality. I do game on windows, but my development work is entirely FOSS based on linux systems.

      • Re: (Score:3, Interesting)

        by The Mgt ( 221650 )

        MS won't support it on XP because they are trying to get gamers to buy Windows 7ista.

        Doesn't work though. Look at how many Windows games are written for the Xbox360 and are therefore run fine with Directx9.

    • Re: (Score:3, Informative)

      Oh dear god you trolls. The point about the comment is that DX11 is not supported on Windows XP. Microsoft has no intention of supporting DX11 on XP and they want to kill XP. Thing is a lot of users still use XP.
  • by mark-t ( 151149 ) <markt@ner[ ]at.com ['dfl' in gap]> on Tuesday September 21, 2010 @12:51PM (#33653016) Journal

    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.

    • make sure you have your tin foil hat for the coming opengl-pocalypse
    • by Beelzebud ( 1361137 ) on Tuesday September 21, 2010 @12:56PM (#33653114)
      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.
      • by ChienAndalu ( 1293930 ) on Tuesday September 21, 2010 @12:59PM (#33653168)

        This is what the developer wrote in the commit message [freedesktop.org]:

        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.

        • by MoogMan ( 442253 )

          It doesn't make a lot of sense to me to implement this into the driver, considering no windows code can interface with it.

          Wouldn't it have made more sense to just implement this at the Wine layer?

          • No, because this will help to convince producers to port games (not having to use OpenGL is a big bonus), and this is not a layer "on top" but a proper tracker for Gallium, meaning it'll have much better performance than any proxy Wine could implement.

          • Re: (Score:2, Interesting)

            by Bobakitoo ( 1814374 )
            In the Wine layer, Direct3D is only a warper to user-space opengl. This will allow Direct3D call, from Wine or otherwise, to talk in the most direct manner to the hardware. I doubt anyone will use Direct3D natively on Linux, except for the Wine developpers. Which already got all the missing DirectX parts that make Direct3D useful...
            • I doubt anyone will use Direct3D natively on Linux, except for the Wine developpers.

              I wonder if they won't because of technological or ideological reasons

          • by TheRaven64 ( 641858 ) on Tuesday September 21, 2010 @02:42PM (#33654538) Journal

            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.

        • Re: (Score:2, Interesting)

          by Anonymous Coward

          I only have a little GL experience myself, but I can tell you that the DX10 API is *vastly* better. Basically it takes all the OO pieces of GL like which is what modern GL code uses anyway (VBO's, FBO's etc) and throws out the requirement for you to have to deal with the very non-OO GL state machine. It's like the difference between C and Forth in that you no longer have to manage the stack of states yourself. Architecturally speaking, OpenGL's shaders are kind of weak (it basically requires the GLSL com

        • by fnj ( 64210 ) on Tuesday September 21, 2010 @01:56PM (#33653934)

          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.

          • Re: (Score:3, Informative)

            by TheRaven64 ( 641858 )

            Sounds about right. Direct3D uses COM interfaces. This means that each version require an entirely new interface. All of the new stuff is in a separate function pointer table (COM object) and all of the new stuff is in the old one. OpenGL, in contrast, uses C functions, and new versions just add new ones (although with 3.x they've started deprecating / removing them).

            This means that the DirectX 11 API can be very clean, however the DirectX11 library also includes the DirectX 1 to 10 interfaces. Implem

        • by PhrostyMcByte ( 589271 ) <phrosty@gmail.com> on Tuesday September 21, 2010 @02:13PM (#33654158) Homepage

          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.

          • OpenGL 3.1 eventually removed all the old fixed-function APIs

            Did this come at the cost of making the program to display a spinning cube textured with "Hello World" ten times longer?

      • by mewsenews ( 251487 ) on Tuesday September 21, 2010 @01:03PM (#33653222) Homepage

        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.

      • by 3vi1 ( 544505 )

        >> With people like John Carmack now even coding in Direct X,

        Wrong. The ID tech engine isn't tied to DirectX at all. Sure, it has a DirectX9 backend renderer, but it also has an OpenGL renderer.

        The DirectX backend was a necessary evil, since MS had announced that Vista wouldn't have OpenGL support, and when they backtracked they made sure the implementation would be sufficiently fragmented as to not compete with their own proprietary (i.e. "lock you into Windows") API.

        • OpenGL support is achieved exactly as it was in Windows XP: with an OpenGL ICD provided by the graphics card vendor.
      • by Anonymous Coward on Tuesday September 21, 2010 @01:57PM (#33653956)

        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.

    • one of many large groups of windows users is gamers, another is the folks who are now switching to apple to a degree (clueless users).

      If their games ran under linux, you could scratch a lot of word of mouth support and a lot of marketshare right there. So I'd love to see this work, but I'll remain extra skeptical because Microsoft will intentionally change DX calls once wine is able to use them, and has done that for a while.

  • by Anonymous Coward

    You mean like CIFS as supported by SAMBA...

  • by Anonymous Coward

    Graphics are an issue but Sound is the item holding back games for Linux.

    If this can include a universal sound API then Microsoft will be in trouble.

    • Sound already works OK in Linux. A little bit of a headache, but most users don't notice it.

      Trust me, it'll take a LOT more than adding a sound API for Microsoft to be "in trouble" regarding this.

      I'd be happy with just getting a few native ports, which would probably put Microsoft into the "just barely concerned" category regarding gaming.

      Microsoft may well be afraid of Linux, this ain't the area spawning that fear.

  • by Anonymous Coward on Tuesday September 21, 2010 @12:53PM (#33653046)

    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.

  • This is a day I thought I'd never see. Wow! I started with Suse 5.2 back in 1998 and all those wasted years we dreamt of something like this and it's finally going to happen. World will never be the way it was if this will really happen. Too bad I'm too old now to actually enjoy this, but I will rejoice anyway just to support this. Now I'm a middle aged man, almost 40 years old, not interested to play Max Payne on my Slackware linux-box any more. All those wasted years.
  • So on a scale of 90-100, how many percent of this article is bullshit?

    • Re: (Score:2, Funny)

      by Anonymous Coward

      100-x where x is the number of linux steam installations

      • LOL no doubt. The sad thing is that even when Valve's VP publicly said "no Linux client in the works", the guys at Phoronix STILL insist it is coming. Apparently 1 sentence, attributed to an anonymous source, and printed on a website in the UK, carries more weight than Valve's own VP making a public comment.
    • Re: (Score:3, Informative)

      by MrHanky ( 141717 )

      $cd tmp/mesa
      $ git pull
      $ ls src/gallium/state_trackers/d3d1x/
      d3d1xshader docs dxgid3d11 gd3d1x Makefile.inc tools
      d3d1xstutil dxgi gd3d10 gd3dapi mstools w32api
      d3dapi dxgid3d10 gd3d11 Makefile progs

      Only about 11%, it seems.

  • by Anonymous Coward on Tuesday September 21, 2010 @12:54PM (#33653086)

    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?

  • Interesting. (Score:5, Insightful)

    by Beelzebud ( 1361137 ) on Tuesday September 21, 2010 @12:55PM (#33653090)
    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.
  • great idea (Score:2, Interesting)

    by ILuvRamen ( 1026668 )
    If they seriously release some really nice games for Linux that use it, people will be all over this at least as a dual boot system. Gamers love it when they do something that takes their current hardware and makes it way faster without spending any money. Judging by how fast Ubuntu ran on a Pentium 3 I had, I'd say Linux frees up a little ram for gaming. I always thought they'd take off as a gaming platform if they really pushed it because it's free and fast which is always a plus for gaming.
  • Doesn't WINE already have a reasonable Direct X implementation? And with that I mean it's still quite iffy for a lot of games, so it looks like it's pretty hard to get a good implementation done..

    • Yes, but only upto DirectX 9. Direct X 10 (and possibly bits of 11 too) are in the works, but it is slow going.

      Just having the shader part of DX10/11 is not enough. It interacts with other Windows APIs like HWND (to create windows and process messages), HDC (to do some 2D drawing), Direct2D (for accelerated 2D rendering), DirectWrite (for accelerated text rendering), GDI+ (the XP-era acceleration APIs) and other APIs. Therefore, you need to pull in a lot of Windows APIs and behaviour to get games working pr

  • no (Score:2, Troll)

    not better than microsoft. microsoft has merely made a well-announced, long-planned strategic decision to stop supporting XP on new products. this isn't a surprise, and anyone who complains about it needs to stop living in 2001.

  • by Citizen of Earth ( 569446 ) on Tuesday September 21, 2010 @01:07PM (#33653284)
    In ten years, Linux will be a better Windows than Windows.
  • An insider view (Score:5, Informative)

    by DMiax ( 915735 ) on Tuesday September 21, 2010 @01:08PM (#33653292)
    Disregarding for a moment the fact that this was announced a few months ago, here is an explanation [blogspot.com] 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.
  • "not XP" (Score:3, Insightful)

    by airfoobar ( 1853132 ) on Tuesday September 21, 2010 @01:08PM (#33653294)
    I thought Gallium was mostly cross-platform, so it may be possible to port DX10/11 to XP.
    • Re: (Score:3, Informative)

      Gallium requires some sort of adapter to interface with hardware. There are no such adapters for any MS kernel, save for the closed-source VMWare stuff.

      • Re: (Score:3, Interesting)

        by airfoobar ( 1853132 )
        If you are describing what I think you are describing, then they may not be too difficult to write. If you consider the market share that XP still has, it would be a very worthwhile project.
  • is phoronix slashdotted, or did MS take them down?
  • by Picass0 ( 147474 ) on Tuesday September 21, 2010 @01:16PM (#33653408) Homepage Journal

    ... taking an established technology - embracing, extending, and finally engulfing, and uh... wait a sec. Wha?

  • Apples to Oranges (Score:2, Insightful)

    by Wrath0fb0b ( 302444 )

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

    Not until they backport this project to work with kernel 2.2.19, which was current when XP was released 9 years ago. Failing that, they should at least be honest and compare support among current implementations.

    It's one thing for people to chose XP for their recent builds -- more power to them for choosing whatever they like best. But when you deliberately chose a 9 year old OS, you lose the right to complain that you cannot run the latest DirectX in the same fashion that people still on kernel 2.2 (I'm su

  • ...this probably won't help Wine much. As this post explains http://www.winehq.org/pipermail/wine-devel/2010-September/086885.html [winehq.org] : "IIRC, it's been discussed before, and it simply wouldn't work. D3D has too many ties to the Windows API that a non-Windows based implementation wouldn't be appropriate for Wine (try getting an HDC from a D3D resource, or passing an HWND to D3D). Gallium would have to substitute these for X11 resources, or custom resources that tie into X, so wouldn't reflect the Wine's inter
    • That is because Display Contexts and Window Handles are part of the GDI paradigm, which DirectX not built on top of. Of course they wouldn't get along, just like passing a Qt widget pointer to a GTK function isn't going to do what you would hope.
  • by kazade84 ( 1078337 ) on Tuesday September 21, 2010 @01:21PM (#33653472)

    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.

  • 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.
  • With Gallium 3D? (Score:3, Interesting)

    by Beelzebud ( 1361137 ) on Tuesday September 21, 2010 @01:31PM (#33653576)
    How could Gallium 3D run Direct X 11 in any way that could be comparable to the native Windows client, when it doesn't even do basic 3d acceleration as good as the proprietary blobs?
  • Could it be that Linux may soon support this Microsoft API better than Microsoft itself?

    On a marginally related note, I've actually had something like this happen to me. I couldn't get Railroad Tycoon 3 running in Vista, and it worked just fine under Wine.

    Back on topic: the submitter misspelled "eventually".

  • To say Linux 'may support D3D better than MS' while referencing lack of D3D 10+ on WinXP is a tad disingenuous.

    Unless you are saying that the community is going to meaningfully backport full D3D 10/11 to RedHat 7.2 that is (WinXP and RedHat 7.2 came out roughly at the same time). I doubt you'll see this work seriously put to use in anything even as old as Vista with respect to the linux world

An adequate bootstrap is a contradiction in terms.

Working...