Announcement

Collapse
No announcement yet.

DirectX...for X

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by alurien View Post
    So my question is this: in the same way that I have a /usr/lib/libGL.so.169.12 which is built for my nVidia card, why can I not have a /usr/lib/libDX.so.169.12, which implements DX9 (or 8, or 10 or whatever), and is built for my card (since the GPU has hardware support for DX8,9,10 operations)

    Other DirectX stuff such as sound and networking is already handled nicely by WINE, so it's really the graphics stuff that needs to be plugged in.

    Is this possible? Would it require loads of work inside the X server? Is it worth petitioning nVidia to do something like this?
    Is this possible? Yes.

    Would it be extremely useful? Yes.

    Will it happen? No.

    Microsoft and its Linux infiltrators will make sure it doesn't.

    Comment


    • #17
      Originally posted by alurien View Post
      So the question is, for games and other 3D stuff is libGL.so->nvidia.ko worth the effort over libSDL.so->libGL.so->nvidia.ko?
      T, FTFY

      Comment


      • #18
        Originally posted by alurien View Post
        I'd assume the benefit would be great, but I suppose it depends on what you want the end result to be.

        I might be wrong, but accelerating 2D stuff in hardware might not be worth it with a fast CPU - the desktop might be responsive enough that you could get away with it.

        Obviously 3D stuff is a different kettle of fish, and needs to be done in hardware.

        So the question is, for games and other 3D stuff is libSDL.so->nvidia.ko worth the effort over libSDL.so->libGL.so->nvidia.ko?

        Are the SDL data structures that different from OpenGL ones?
        To be honest, the way it's probably going to work is libSDL->libGL->.ko, primarily because you'd have to be an in-house nVidia developer to effectively build an SDL api that directly interfaces with nVidia's graphics card.

        libGL->.ko is done by nVidia and chances are, it's not going to be easy to figure out how nVidia renders things on your own.

        Perhaps there is a performance increase. How much, I can't really say. But yeah, if you ought to build a api that directly interfaces gfx hardware... you should look at sdl.

        Comment


        • #19
          So, whatever happened to DirectX for X?

          Comment


          • #20
            It would probably be a lot less work to optimize or otherwise adjust Xorg and friends toward accommodating wine's DX->OGL translation better.

            Comment


            • #21
              Originally posted by Jade View Post
              So, whatever happened to DirectX for X?
              A native implementation of DirectX (or more's the point Direct3D) for X-Window would probably be a cleaner, neater and more elegant solution than the current translation-layer approach.

              Unfortunately, the DirectX architecture is so tightly wedded to Windows, that it most likely wouldn't be worth the effort - also the best people to do it would be the graphics card people...and they ain't going to...

              Comment


              • #22
                Originally posted by alurien View Post
                Unfortunately, the DirectX architecture is so tightly wedded to Windows, that it most likely wouldn't be worth the effort - also the best people to do it would be the graphics card people...and they ain't going to...
                You're not going to shave off enough performance to make it worth your trouble. D3D is married at the hip to Micorosoft's entire design for Windows. Making a wrapper, while "faster" will be much easier and would be happening more soon than the other answers.

                Comment


                • #23
                  I've been wondering since I made the switch to Free software why game developers don't see the advantages of it. I mean if they all contributed to development of open engines, APIs and dev-tools they could still charge what they do now for the content/media, and probably in a ton of cases, the community would port their engine to other platforms all by their themselves. But somehow they're all a bunch of lazy asses who'd rather just do a half assed job with Directx and thereby guarantee that within a decade nobody will be able to play their game ever again. If it makes a profit who gives a fuck right?

                  Comment


                  • #24
                    wrapping d3d to opengl is not really costly...

                    Comment


                    • #25
                      But you have real problems when OpenGL can not exactly map some things like texture formats - that makes for example UT3 real slow...
                      Last edited by Kano; 04-22-2008, 08:30 PM.

                      Comment


                      • #26
                        Originally posted by Kano View Post
                        But you have real problems when OpenGL can not exactly map some things like texture formats - that makes for example UT3 real slow...
                        Exactly, which is why a native-side Direct3D implementation would be darned handy. The fact is that DirectX isn't going to go away, in the same way that .NET and Windows XP/Vista/Server 2003 aren't going to go away.

                        The options for GNU/Linux, as I see them are thus:

                        1. Carry on as we are, with a large 3D performance reduction from doing the Direct3D->OpenGL conversion.

                        2. Wait for some "bare metal" facilities from Xen and other virtualization technologies. We can then install Windows and run Windows games at near-native speed.

                        3. Lobby games companies to either:
                        a) Give us native ports of the big titles.

                        b) Implement an OpenGL renderer alongside the Direct3D one, making 3D performance through WINE much faster.

                        c) Make a point of using SDL for all future titles, allowing easier porting onto non-Windows platforms.

                        4. Hope that the likes of Intel, nVidia and AMD/ATI wake up some day and decide to do a native Direct3D port for their graphics chips, and help link the WINE-based d3d9.dll to it.
                        Last edited by alurien; 04-23-2008, 01:32 PM.

                        Comment


                        • #27
                          Originally posted by Kano View Post
                          But you have real problems when OpenGL can not exactly map some things like texture formats - that makes for example UT3 real slow...
                          Heh... The texture formats should be similar with minimal issues with translating it upon submission per level- IF the textures aren't identical in the first place. LGP typically doesn't do any changing/translating of textures when we do a porting project over from Windows to Linux.

                          Shaders, on the other hand... That's a differing story and I'm not all too sure what is getting done with those- it's probably not using HLSL2GLSL from AMD which would have a good mapping for them so they can interchangeably do D3D and OpenGL demos with the same shader and texture sets.

                          [edit]

                          Heh... If I'm reading the WINE project info on this right, they're basically providing a "driver" layer that looks like an abstract NVidia or AMD card to the D3D layer stuff. That's NOT how one gains speed at this stuff...
                          Last edited by Svartalf; 04-23-2008, 03:15 PM.

                          Comment


                          • #28
                            I guess no one looks at wikipedia

                            SDL, is Simple DirectMedia Layer
                            On windows, it is like this
                            GAME -> SDL -> DirectX
                            on linux
                            GAME -> SDL -> OpenGL/Alsa/(Other thing for mouse etc)
                            on OSX
                            GAME -> SDL -> Quartz/OpenGL/(Other mouse related stuff)

                            so it behaves differently on different OS's

                            as for directx
                            Originally posted by wikipedia article on directX
                            Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so forth. DirectX, then, was the generic term for all of these Direct-something APIs, and that term became the name of the collection. After the introduction of the Xbox, Microsoft has also released multiplatform game development APIs such as XInput, which are designed to supplement or replace individual DirectX components.

                            [...]

                            Nevertheless, the other APIs of DirectX are often combined with OpenGL in computer games because OpenGL does not include all of DirectX's functionality (such as sound or joystick support). However, the combination of OpenGL and SDL for this purpose is becoming increasingly popular.

                            [...]

                            APIs such as Direct3D and DirectSound need to interact with hardware, and they do this through a device driver. Hardware manufacturers have to write these drivers for a particular DirectX version's device driver interface (or DDI), and test each individual piece of hardware to make them DirectX compatible. Some hardware devices only have DirectX compatible drivers (in other words, one must install DirectX in order to use that hardware). Early versions of DirectX included an up-to-date library of all of the DirectX compatible drivers currently available. This practice was stopped however, in favor of the web-based Windows Update driver-update system, which allowed users to download only the drivers relevant to their hardware, rather than the entire library.
                            So, actually, it should be possible to have a DirectXmedia layer (I think), in fact if it is made to use SDL, it could save development time, as well as having to skip redirecting calls to OpenGL/OpenAL/X/etc

                            So:
                            GAME -> (WINE ->) DXL -> SDL -> Native System Calls

                            Right?

                            Comment


                            • #29
                              Originally posted by some-guy View Post
                              So, actually, it should be possible to have a DirectXmedia layer (I think), in fact if it is made to use SDL, it could save development time, as well as having to skip redirecting calls to OpenGL/OpenAL/X/etc

                              So:
                              GAME -> (WINE ->) DXL -> SDL -> Native System Calls

                              Right?

                              That would be yet another indirection layer on top of another on top of another.

                              Each one of those indirection layers adds the potential for slowdowns and just problems due to impedance mis-matches.

                              Comment


                              • #30
                                then remove SDL
                                APP -> WINE -> DXL -> Native System Calls
                                and if the apps start to be compiled under linux, then
                                APP -> DXL -> Native System Calls

                                Comment

                                Working...
                                X