Slashdot Mirror


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.

55 comments

  1. Costly? by drinkypoo · · Score: 2

    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.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Costly? by Anonymous Coward · · Score: 0

      Perception of what?

    2. Re:Costly? by Wootery · · Score: 1

      RTFS.

      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

      (Emphasis mine.)

    3. Re:Costly? by davester666 · · Score: 1

      Yeah, you have to pay $2 every time you launch an app that uses the D3D-to-OGL translator in WINE [capitalized due to it being an acronym...or possibly a synonym...maybe an acronym...some kind of nym].

      --
      Sleep your way to a whiter smile...date a dentist!
    4. Re:Costly? by Anonymous Coward · · Score: 0

      Recursive acronym! (or possibly recursive backronym)

      WINE
      WINE Is Not An Emulator
      WINE Is Not An Emulator Is Not An Emulator
      WINE Is Not An Emulator Is Not An Emulator Is Not An Emulator

    5. Re:Costly? by Anonymous Coward · · Score: 0

      Except that WINE *is* an emulator, despite the name. It functions by emulating the Windows API. You don't get things to run on another platform by magic. In fact, it used to stand for "WINdows Emulator". Go back and check the CVS logs if you don't believe me. I already dug them out the last time someone called BS. Don't make the same mistake. It does share in common with LAME (LAME Ain't an MP3 Encoder) that its name incorrectly describes what it is.

    6. Re:Costly? by Wootery · · Score: 2

      I think the idea behind the it's a compatibility-layer not an emulator thing is to emphasise that it doesn't emulate the underlying CPU architecture.

      Want to use Wine to run Windows programs on Linux-on-ARM (MIPS/PowerPC etc)? That's beyond the scope of the Wine project.

    7. Re:Costly? by WorBlux · · Score: 1

      Umm, I do believe there is expirimental ARM support, for ARM Windows binaries (windows CE and windows RT) http://wiki.winehq.org/ARM You really need to read more carefully.

      But yes the idea is to be a translation or compatibility layer to expose windows API's to windows PE's.

  2. Is D3D 9 advantageous over 10? by damn_registrars · · Score: 1

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

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
    1. Re:Is D3D 9 advantageous over 10? by raxx7 · · Score: 1

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

    2. Re:Is D3D 9 advantageous over 10? by Anonymous Coward · · Score: 3, Informative

      Apparently up to this point in wine D3D 10 had more complete support than D3D 9. 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 took their time in moving to it.

    3. Re:Is D3D 9 advantageous over 10? by PhrostyMcByte · · Score: 5, Informative

      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.

    4. Re:Is D3D 9 advantageous over 10? by Anonymous Coward · · Score: 0

      One word: GAMES.

      Most games made in the last ten years were built for Directx 9. This support in mesa will allow these games to be ported more easily, rather than forcing a rewrite in a major portion of any game engine, the display layer.

      The developer can even choose to go the wine route, and simply provide a wrapper for their product, such as Star Trek Online uses with thier Mac port.

      This may be hugely important for the Steam Box initiative.

    5. Re:Is D3D 9 advantageous over 10? by Pinhedd · · Score: 1

      Direct3D 10 is very different from Direct3D 9.

      Direct3D 11 is a superset of Direct3D 10.

    6. Re:Is D3D 9 advantageous over 10? by Anonymous Coward · · Score: 0

      >because it relied on kernel changes and a new driver model that couldn't be backported
      I doubt the last half of that. It's not couldn't, it's won't. It was more that MS wanted to push gamers to Vista in a desperate attempt to get someone to want the piece of shit.

    7. Re:Is D3D 9 advantageous over 10? by Nemyst · · Score: 1

      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.

    8. Re:Is D3D 9 advantageous over 10? by Anonymous Coward · · Score: 0

      >because it relied on kernel changes and a new driver model that couldn't be backported
      I doubt the last half of that. It's not couldn't, it's won't. It was more that MS wanted to push gamers to Vista in a desperate attempt to get someone to want the piece of shit.

      XP was damn near seven years old when DX10 came out.

      To put into Linux's timeline, thats about like expecting RHEL 5 features to be back ported to RHEL (1) and THAT was an "enterprise" product.
      Or you know.. RHEL 7 to RHEL 5.

      While anything is possible, sometimes it's a bad idea.

    9. Re:Is D3D 9 advantageous over 10? by Kjella · · Score: 1

      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 in OpenGL. The summary tries to paint it as if OpenGL has been a blocker to DirectX support, my impression is quite the opposite. A gallium3d implementation is closer to the hardware and "more native" than a DirectX-to-OpenGL translation layer, but while it might boost performance a little it won't fundamentally support anything new.

      --
      Live today, because you never know what tomorrow brings
    10. Re:Is D3D 9 advantageous over 10? by TheRaven64 · · Score: 1

      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-function stuff work, typically (on modern hardware) by providing shader programs that do the same thing. Supporting D3D10 is more similar to supporting OpenGL 3, where most of the complexity is in moving data to and from the GPU and compiling shader programs.

      With Gallium, there are two aspects to supporting these APIs. The first is the compiler turning programs from a source language (HLSL, GLSL) into TGIR. The second is the state tracker, which handles API-specific state. The former part is about as complex for D3D 9 and 10, as they have similar shader language support. The latter is a lot simpler for 10, as it is a much less stateful API.

      --
      I am TheRaven on Soylent News
  3. Only usefull for wine? by TyFoN · · Score: 2

    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.

    1. Re:Only usefull for wine? by Anonymous Coward · · Score: 0

      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.

      Wow, finally I'll be able to play FS2004 in GNU/Linux.

    2. Re:Only usefull for wine? by reve_etrange · · Score: 2

      Even the new Il-2 Battle of Stalingrad still uses DirectX 9. You'll be able to play every current flight sim I think.

      --
      .: Semper Absurda :.
    3. Re:Only usefull for wine? by pavon · · Score: 1

      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 about gaming on linux will be running the proprietary drivers, since that is what works best for most other games.

    4. Re:Only usefull for wine? by binarylarry · · Score: 3, Interesting

      People prefer d3d over OpenGL for the same reason they use a Mac over Linux. Less to go wrong everything just works it's easier.

      (I'm a Linux user who does a lot of open gl work)

      --
      Mod me down, my New Earth Global Warmingist friends!
    5. Re:Only usefull for wine? by c0d3g33k · · Score: 1

      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 more risky approach with a smaller potential audience.

    6. Re:Only usefull for wine? by Nemyst · · Score: 5, Informative

      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.

    7. Re:Only usefull for wine? by Anonymous Coward · · Score: 0

      Just to make things even more complicated, there are all the different GLSL shader versions. Version #110, #170, #330 are just a few, each with their own quaint features. #110 allowed the use of built-in variables for the modelview and projection matrix, along with a function to mimic the fixed pipeline vertex transformation. Then after, "the great deprecation" to match OpenGL ES, they got rid of all that functionality, so you have to pass your own matrix data. But they did add support for Uniform Buffer Objects.

    8. Re:Only usefull for wine? by Anonymous Coward · · Score: 0

      With AMD, I've found that to be just as well. By the time AMD drops support for a card, the support is usually pretty good in the open source driver. Assuming that the open source driver hasn't eclipsed the quality of the proprietary driver quite a while earlier.

      My new R7 260x GPU was having issues with black screening regularly with the proprietary drivers, but switching to the open drivers seems to have eliminated the problem. The performance isn't quite as good at this point, but it's good enough for what I'm doing.

    9. Re:Only usefull for wine? by Anonymous Coward · · Score: 0

      I can't imagine that any company would want to support a Linux port that required you to have specific graphics card drivers installed.

      As someone who works on commercial simulation software I have to say this actually happens. Since our software is used mostly in specialized setups we can often select most if not all the hardware and software, as long as it is compatible with whatever else the customer wants to run on it. It also reduces maintenance by quite a bit, theoretically our software could run on any system, practically missing features (Special use OpenGL extensions) and driver specific bugs make that a lot more work than it is worth (for us).

    10. Re:Only usefull for wine? by pavon · · Score: 1

      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.

    11. Re:Only usefull for wine? by Anonymous Coward · · Score: 0

      Uh, it's VERY clear glVertex is deprecated. They make reference cards and such for every version:

      https://www.opengl.org/sdk/docs/reference_card/opengl45-reference-card.pdf

      You literally should not be programming OpenGL if you refuse to even acknowledge what the OpenGL you're targeting supports.

    12. Re:Only usefull for wine? by Nemyst · · Score: 1

      You're telling me people are expected to dig up the reference card (assuming they know it exists), go through a terse set of pages looking for what you want, say, glVertex, not find it and then... assume it's deprecated? Wow, that's convenient and explicit. People will try to find confirmation, find that there is a reference page for it (without any version number) and think it was too obvious to be listed or something. Not because they're dumb and most certainly not because they should not be programming OpenGL. People have to start somewhere, and it's that very attitude you're displaying that means more people will choose DirectX instead.

    13. Re:Only usefull for wine? by BitZtream · · Score: 1

      If you're just starting and know nothing about 3d programming, glVertex is FINE.

      By the time you get to the point where you know how to deal with, can make use of, and/or need to move away from the fixed function pipeline, you'll know glVertex is the more limited way to do it.

      Yes, people who don't know any better may choose DirectX. Maybe. But only if they use Windows exclusively, and incase you haven't noticed, that is now a minority.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  4. As old as XP. Howzat Centos-NT thing doing? by Anonymous Coward · · Score: 0

    Hm. Getting there? Hm. NT4? Hm. XP. Hm.

  5. Voodoo Glide by mangamuscle · · Score: 1

    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.

    1. Re:Voodoo Glide by Richard+Dick+Head · · Score: 1

      DosBox can already do Glide. Look at the Daum SVN 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 which supports the extra experimental config settings.

    2. Re:Voodoo Glide by mangamuscle · · Score: 1

      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.

    3. Re:Voodoo Glide by cheesybagel · · Score: 1

      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.

  6. Small percentage by DrYak · · Score: 4, Informative

    This support in mesa will allow these games to be ported more easily, rather than forcing a rewrite in a major portion of any game engine, the display layer.

    This won't help much for porting. It only works for drivers that work on Gallium3D. Thus, it only works on Radeon and Nouveau (and the alternative Gallium3D powered ILO. The official Intel runs on classic Mesa).
    So only a very few end users will be affected. It's not worth counting on Gallium Nine for the port, as you're missing the big part of users who instead run the proprietary and/or official drivers (specially since Nvidia's blob has way much better hardware support that the reverse engineered Nouveau - due to lack of documentation).

    On the other hand, Gallium3D give a nice and faster route for Wine, so a few select users can get straigh Direct3D support instead of going through a transaltion layer. So it's a relative benefit for Wine itself.

    The developer can even choose to go the wine route, and simply provide a wrapper for their product, such as Star Trek Online uses with thier Mac port.

    That has technically been possible before the Gallium Nine driver, anyway. The presence or absence of this driver don't change the feasibility of such ports. It only makes them faster for a few select users by removing translation layers.

    This may be hugely important for the Steam Box initiative.

    Well, depends. I doubt that, when it comes out, it will rely on opensource drivers. At least not for Nvidia hardware: the difference of stability and hardware support isn't worth the effort.

    On the other hand, if AMD get their shit together in time, and release the hybrid closed/source driver as promised (i.e.: you run the opensource kernel driver "amdgpu". Then, as an OpenGL implementation, you're free to use either the opensource Mesa Gallium3D driver or the Catalyst driver which will only be a GL+CL library running on top of the exact same opensource base), you might see the possibility of AMD Steamboxes that let the user switch between the two GL implementation on the go. That could mean using opensource GL/CL for the interface and for a few select game that need DirectX, and switching to Catalyst GL/CL for games that need GL 4.x, with Steam maintaining a database of which version runs better for which game and handling the switching without need of user intervention.

    Over all, Direct3D is a much simpler and lower level API (at some point of time it was considered to be a back-end to be targeted by openGL drivers) so it would be supported faster than openGL and would give definitely a performance boost.

    Also, specially if AMD releases Mantle for Linux (or if it becomes "OpenGL Next"), that might attract the interests of some multi-platform developers: such AMD powered Steamboxes would be closer to the hardware found in other consoles (AMD APU or GPU in all other consoles of this generation) and might help PC ports (at least on AMD it might get optimised a bit thank to re-using the work done on consoles).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Small percentage by Anonymous Coward · · Score: 0

      It is true that it affects a subset of users currently. However, by putting this in the mainline, it has the opportunity to be used by other open source drivers. I am not saying that it wouldn't be a lot of work, and I don't know what changes would be needed for each driver, but it becomes possible.

      Also, I agree with your assessment for the Steam Box. Which might mean that AMD GPUs become THE card for Steam Box. Considering Valve has at this point been using an OpenGL emulation layer for their source titles, this makes sense for them to use. I can also see some one creating a Steam Box and marketing it with all of the greatest hits from he Playstation to the Playstation 3 era as a cheap alternative to the expensive Playstation 4/Xbox One.

      The one issue I am worried about would be if we got stuck with the Directx 9 feature set for much longer. It is ok to port a current engine that uses only d39, but I would rather new engines use OpenGL Next when it comes out. Mantle would be great but it has the same problem, that nobody is going to target their engine for something that doesn't exist.

    2. Re:Small percentage by Anonymous Coward · · Score: 0

      so apple buys nintendo, valve, and whoever the fuck else they want who has tonnes of retro IP.

      releases store for everything and makes a killing giving everything away for free with 0 distribution costs

      PKMNMMO for ps2 and DS and everything better.

  7. Glide = Fixed pipe by DrYak · · Score: 1

    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).
    Meaning that, in theory, it could be possible to build a Glide state tracker out of the building block that Gallium3D back-ends expose to the Mesa OpenGL tracker.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Glide = Fixed pipe by Khyber · · Score: 4, Insightful

      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.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    2. Re:Glide = Fixed pipe by mangamuscle · · Score: 1

      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.

    3. Re:Glide = Fixed pipe by jones_supa · · Score: 1

      since from what I have heard, modern video drivers emulate OpenGL 1/2

      Where did you hear this?

    4. Re: Glide = Fixed pipe by Anonymous Coward · · Score: 0

      That should be the responsibility of WINE, not Gallium. The only reason D3D9 support is entering Gallium is because it gives a massive performance benefit in some cases that makes unplayable games playable. Glide isn't in that situation.

  8. grammar nazi by pr100 · · Score: 1

    "There's patches" ?

  9. Great, just in time for DX12... by Anonymous Coward · · Score: 0

    Guys, Windows side has already moved on from XP/DX9 and modern games are being developed against DX11 API with DX12 upgrade coming soon.

    1. Re:Great, just in time for DX12... by Luckyo · · Score: 1

      DX12 is highly unlikely to become popular any time soon because of the whole 7 uber alles situation. At best, it'll be where DX10 was.

      DX11 while popular is not mandatory for most games that come out. A lot of games still have separate DX9 and DX11 rendering paths. As a result, while you'll have to give up some bells and whistles you will be able to run the game just fine as long as you have DX9 rendering path available.

      There are some games that require DX11. Those are usually latest and greatest that require decent hardware as well. But these are far from the most played games out there. Making a quick list of the few games I played during last month, several have both rendering paths (and in one, I actually use DX9 instead of DX11 because DX11 path is much more buggy), several don't have DX11 path at all, and one doesn't have DX9 at all.

  10. Re:Costly? Indeed, IS it costly? by Anonymous Coward · · Score: 0

    Either Linux is VASTLY more efficient to be near-equivalent WITH the D3D-OGL translator, or translation is a tiny part of the work done, or the claim it is costly is a load of bullshit.

    Given OGL windows games under Wine run faster (but not lots) than Windows, the likelihood is that the last clause is correct.

  11. Less to go wrong??!?!? by Anonymous Coward · · Score: 0

    WHAT less to go wrong?

    D3D lacks multithreading support (pre 11.1) but apart from that (which is a coding issue: if your code doesn't multithread its 3D graphics, then multithreading isn't used in OGL either), there's nothing more to go wrong.

    For programming, they use different ideas, D3D being simpler for "boxed environment" 3D views, whilst OGL came from "proper" 3D modelling. But to the end used, neither have any difference.

    PS on the docs, (other sub post), what a load of bullshit. d3d and OGL have equal documentation, he just knows where it is (and pays through the nose for it) with the windows product. The claim is entirely their lack of knowledge. Double bollocks on the back compatability.

    1. Re:Less to go wrong??!?!? by binarylarry · · Score: 1

      What can go wrong? How about all the bugs in random gl drivers from various vendors? Oops this only works on nvidia, this only works on ATI (haha yeah right nothing works properly on ATI), intel is a joke, etc, etc.

      --
      Mod me down, my New Earth Global Warmingist friends!
  12. Re:Costly? Indeed, IS it costly? by WorBlux · · Score: 1

    Internally windows system calles work a lot like WINE on linux. https://en.wikipedia.org/wiki/...

    But unlike windows Linux doesn't have to drag along all the legacy binary support for some of the lower layers.

  13. Again fixed pipe by DrYak · · Score: 1

    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 (interpolating them and mipmaping them), and combine these 3 texture in a hardware specific and fixed way.

    Modern APIs (OpenGL 3/4, DirectX 9, and 10/11, Mantle) are all about programmable shader. For any pixel on the screen, you run a small program (a kernel in mathematics) which can do pretty much anything you want. You can ask the hardware to draw pretty much anything you want. You could even ask the hardware to draw a mandelbrot set (I've done that).
    Your modern API relies on a back-end that export the functionality of these general-purpose highly parallel processor that are GPU (Gallium3D is exactly such a back-end. DirectX 11, Mantle, and OpenGL Next are API that promise to stay as close as possible to this low level) (and OpenCL is a way to make this available for other kind of general purpose computing). On top of it, it has a high level API that still works in a highly customisable way: you write shaders that will combine several texture in the way the artist would need (including effects like occlusion mapping, translucent and sub-surface scattering, etc.) and the API converts these mid- high-level shaders and texture accesses, into lower level kernels and memory access to generate whatever is needed on the screen, no matter how complex the maths behind are. (remember: a Mandelbrot set is perfectly doable, even if completely useless).

    That's also why DirectX state tracker makes a bit sense: DirectX is supposed to be a little bit less high-level on the abstraction scale than OpenGL. It's better to DirectX-to-Gallium3D (would be like translating C into assembler as a regular compiler), rather than DirectX-to-OpenGL (would be like translating C into Python).

    Glide on Gallium3D, would mean rewrite a complete fixed pipeline. Expressing all the classical "texture and lightmap" combination which back then were handled by hardware, and writing modern shaders that re-implements them. Well, guess what? Drawing polygons with a fixed pipe-line is already what OpenGL 1/2 does inside Mesa on Gallium.
    Instead of rewriting the same stuff twice and risking to introduce twice as many bugs, simply use a Glide2GL wrapper. Glide and OpenGL are very closely related anyway.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Again fixed pipe by mangamuscle · · Score: 1

      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?