Announcement

Collapse
No announcement yet.

Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential

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

  • #16
    Originally posted by somini View Post
    Of course, this solution is just like WINE, a way of running older Windows software on Linux. Nobody in their right mind will support a Linux game using this when they have the option of recompiling from scratch.
    As the great philosopher mick Jagger once said: You can't always get what you want... But you get what you need.

    Some things are not worth doing. like porting hundreds or thousands of old games to linux. but you can run them anyway. (meh!) DX9 will not affect new games being portedas they will probably be going for OGl 4.x anyway. So its a nice thing to have.
    And as long as the open drivers are at 20-50% of the hardware speed (taking closed drivers as a reference) game vendors will not give a single fsck about open drivers. They will eventually hope for their fast improvement for a number of reasons. But that might actually be another reason to push AMD to abandon catalyst. Which they wont for the next 5 years at least.

    Generally its a nice thing to have possibilities.

    Comment


    • #17
      Originally posted by jakubo View Post
      As the great philosopher mick Jagger once said: You can't always get what you want... But you get what you need.

      Some things are not worth doing. like porting hundreds or thousands of old games to linux. but you can run them anyway. (meh!) DX9 will not affect new games being portedas they will probably be going for OGl 4.x anyway. So its a nice thing to have.
      And as long as the open drivers are at 20-50% of the hardware speed (taking closed drivers as a reference) game vendors will not give a single fsck about open drivers. They will eventually hope for their fast improvement for a number of reasons. But that might actually be another reason to push AMD to abandon catalyst. Which they wont for the next 5 years at least.

      Generally its a nice thing to have possibilities.
      i agree a d3d9 state tracker only for wine and gallium drivers is quite nice idea to play legacy games while new games get ported natively to GL4

      mmm 20-50% ??? what hardware are you talking about(i guess don't reclockable nouveau card)??? my radeonsi card is pretty much 60-95% of fglrx(few glitches remain in some special shadows tho) depending the workload and the intel driver kick the be jesus out of apple intel's driver since long ago

      Comment


      • #18
        Originally posted by oneofone View Post
        yes, it's fork. Only maintained fork at this time, which work with latest Mesa-3D code. Because calim left his work, I keeping his work synced with upstream + sometimes making minor improvements.

        Comment


        • #19
          Originally posted by okias View Post
          yes, it's fork. Only maintained fork at this time, which work with latest Mesa-3D code. Because calim left his work, I keeping his work synced with upstream + sometimes making minor improvements.
          btw to compile with mesa git you need to rename PIPE_SHADER_CAP_MAX_CONSTS to PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE since commit 04f2c88f45e26d7050cc88aaaac8e8154d6018d0 break the compilation

          Comment


          • #20
            Originally posted by jrch2k8 View Post
            btw to compile with mesa git you need to rename PIPE_SHADER_CAP_MAX_CONSTS to PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE since commit 04f2c88f45e26d7050cc88aaaac8e8154d6018d0 break the compilation

            Thank you, missed that one after rebase Fixed.

            Comment


            • #21
              Originally posted by okias View Post
              Thank you, missed that one after rebase Fixed.
              my pleasure, btw
              for mesa master you need this patch change

              diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
              index 58410cc..ad6f88e 100644
              --- a/src/gallium/include/pipe/p_defines.h
              +++ b/src/gallium/include/pipe/p_defines.h
              @@ -564,6 +564,8 @@ enum pipe_cap {
              PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION = 99,
              PIPE_CAP_MAX_VERTEX_STREAMS = 100,
              PIPE_CAP_DRAW_INDIRECT = 101,
              + PIPE_CAP_RASTERIZER_LOWER_LEFT_ORIGIN = 102, //this doesnt exist in master
              + PIPE_CAP_DEVICE_MEMORY_SIZE = 103
              };

              #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)
              --
              2.0.3

              almost got it to build against master

              Comment


              • #22
                This is so awesome! Gallium3D seems like the best way to go forward, it's so flexible compared to the old drivers. This could be the push needed to kill off the garbage proprietary drivers and get people using and supporting the open ones. AMD's Gallium3D driver is already very good for older Radeon cards like my HD5870. I need to go build this now. Anyone have a build guide of what all you need to build (including the custom Wine)? I really wish this D3D9 stuff would get mainlined into Mesa/Wine so that we can play more Windows games without glitchy or slow graphics. It could also be a help to developers porting D3D games to Linux if this was an official API because then they wouldn't have to go through the D3D to OpenGL rewrite process if D3D would run natively with no performance hit on Linux. There's really no reason we're exclusively tied to OpenGL on Linux after all, if another API exists and works with the drivers/X server then why not compile native games with it.

                Comment


                • #23
                  Originally posted by jrch2k8 View Post
                  my pleasure, btw
                  for mesa master you need this patch change

                  diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
                  index 58410cc..ad6f88e 100644
                  --- a/src/gallium/include/pipe/p_defines.h
                  +++ b/src/gallium/include/pipe/p_defines.h
                  @@ -564,6 +564,8 @@ enum pipe_cap {
                  PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION = 99,
                  PIPE_CAP_MAX_VERTEX_STREAMS = 100,
                  PIPE_CAP_DRAW_INDIRECT = 101,
                  + PIPE_CAP_RASTERIZER_LOWER_LEFT_ORIGIN = 102, //this doesnt exist in master
                  + PIPE_CAP_DEVICE_MEMORY_SIZE = 103
                  };

                  #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)
                  --
                  2.0.3

                  almost got it to build against master
                  it's there

                  https://github.com/iXit/Mesa-3D/comm...6b939eddc3c489 (PIPE_CAP_RASTERIZER_LOWER_LEFT_ORIGIN) and https://github.com/iXit/Mesa-3D/comm...c5fc13ddc35295 (PIPE_CAP_DEVICE_MEMORY_SIZE).

                  It works just fine. Check other commits, it's not just that big one, also few commits around are needed.

                  Comment


                  • #24
                    I recommend the latest branches from okias who seems to be maintaining it at the moment if you know how to build it (I don't).

                    I personally don't like wined3d - it compiles shaders on demand, which causes a lot of FPS stuttering while I'm playing/testing games and it doesn't look like it is going to be fixed anytime soon. This d3d gallium layer solves that issue nicely, because it just compiles shaders at loading time.

                    Comment


                    • #25
                      Originally posted by okias View Post
                      it's there

                      https://github.com/iXit/Mesa-3D/comm...6b939eddc3c489 (PIPE_CAP_RASTERIZER_LOWER_LEFT_ORIGIN) and https://github.com/iXit/Mesa-3D/comm...c5fc13ddc35295 (PIPE_CAP_DEVICE_MEMORY_SIZE).

                      It works just fine. Check other commits, it's not just that big one, also few commits around are needed.
                      ohh sorry im not building against your tree but cherrypicking the patches and building again mesa master, i guess that is the detail

                      update: after this going to try patch wine 1.7.23

                      Comment


                      • #26
                        Anyway to get this working with oibaf drivers on Ubuntu? Like a convenient patch or PPA?

                        Comment


                        • #27
                          btw if i can make this work i can post somewhere my modified PKGBUILD files and patches for ArchLinux users(don't have privileges for AUR)

                          Comment


                          • #28
                            Originally posted by jrch2k8 View Post
                            ohh sorry im not building against your tree but cherrypicking the patches and building again mesa master, i guess that is the detail

                            update: after this going to try patch wine 1.7.23
                            good luck, it could work. I'm stuck at 1.7.21 (Gentoo specific patches for .22+ missing, because maintainer has on vacation or something)

                            Originally posted by marek View Post
                            I recommend the latest branches from okias who seems to be maintaining it at the moment if you know how to build it (I don't).
                            If anyone wonder how it should be builded, it's exactly same as classic Mesa, only extra thing needed is passing "--enable-nine" to ./configure script. Otherwise it will build without gallium nine state tracker.

                            Originally posted by jrch2k8 View Post
                            btw if i can make this work i can post somewhere my modified PKGBUILD files and patches for ArchLinux users(don't have privileges for AUR)
                            Feel free join IRC channel #d3d9 on irc.freenode.net , I have feeling there is already someone from Arch Linux comunity. If you settle where will be PKGBUILD placed, I'll add link to wiki page.

                            Comment


                            • #29
                              Originally posted by Dukenukemx View Post
                              Anyway to get this working with oibaf drivers on Ubuntu? Like a convenient patch or PPA?
                              @Oibaf already answered on that in his topic:
                              Originally posted by oibaf View Post
                              I don't have time to look into this now. If someone is interested and has a working patch can post it here, I could eventually add it to the ppa.

                              Comment


                              • #30
                                ok it builded against master, on weekend ill send you the build files since i expect wine to give me headaches

                                Comment

                                Working...
                                X