Announcement

Collapse
No announcement yet.

Cleaning Up The R600 Gallium3D Driver

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

  • Cleaning Up The R600 Gallium3D Driver

    Phoronix: Cleaning Up The R600 Gallium3D Driver

    Marek Olšák, the well-known independent contributor to Mesa that's made a great deal of enhancements to the Radeon driver stack over the past few years, has a new patch-set. The latest patch-set he published last night cleans up the R600g driver and reworks its cache flushing code. This patch-set affects more than 2,000 lines of code, which is significant for this open-source Gallium3D driver...

    http://www.phoronix.com/vr.php?view=MTA1MTA

  • #2
    It could be nice if we could test if there is some performance gains with this flushes refactorings.
    Michel, didn't you said there is some daily performance tracking for Mesa, much like Linux kernel performance tracking?

    Comment


    • #3
      Regarding the 2D Tiling improvements, have these been fixed to render properly? They were pretty broken when you tested them in the article you linked to.

      Comment


      • #4
        Code:
         ~ % LIBGL_DEBUG=verbose glxinfo | grep render
        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/r600_dri.so
        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/r600_dri.so
        libGL error: dlopen /usr/lib/xorg/modules/dri/r600_dri.so failed (/usr/lib/libglsl.so: undefined symbol: _mesa_symbol_table_add_symbol)
        libGL: OpenDriver: trying /tls/r600_dri.so
        libGL: OpenDriver: trying /r600_dri.so
        libGL error: dlopen /r600_dri.so failed (/r600_dri.so: cannot open shared object file: No such file or directory)
        libGL: OpenDriver: trying /usr/lib32/xorg/modules/dri/tls/r600_dri.so
        libGL: OpenDriver: trying /usr/lib32/xorg/modules/dri/r600_dri.so
        libGL error: dlopen /usr/lib32/xorg/modules/dri/r600_dri.so failed (/usr/lib32/xorg/modules/dri/r600_dri.so: wrong ELF class: ELFCLASS32)
        libGL error: unable to load driver: r600_dri.so
        libGL error: driver pointer missing
        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/swrast_dri.so
        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/swrast_dri.so
        [1]    13627 segmentation fault (core dumped)  LIBGL_DEBUG=verbose glxinfo | 
               13628 exit 1                            grep --color=auto render
        Anybody else?

        Comment


        • #5
          Originally posted by Drago View Post
          It could be nice if we could test if there is some performance gains with this flushes refactorings.
          Michel, didn't you said there is some daily performance tracking for Mesa, much like Linux kernel performance tracking?
          I would expect there are given that seems to be the whole point of the exercise. I would like to know how much though.

          Comment


          • #6
            Originally posted by Azpegath View Post
            Regarding the 2D Tiling improvements, have these been fixed to render properly? They were pretty broken when you tested them in the article you linked to.
            Latest versions:
            http://people.freedesktop.org/~glisse/tiling/

            Comment


            • #7
              Originally posted by Drago View Post
              It could be nice if we could test if there is some performance gains with this flushes refactorings.
              Michel, didn't you said there is some daily performance tracking for Mesa, much like Linux kernel performance tracking?
              This series was mostly clean up and fixing some issues related to flushing.

              Comment


              • #8
                Originally posted by agd5f View Post
                Thank you, so are they working better? =)
                I'm not running any homebuilt Mesa parts, just what's in unstable portage on Gentoo. I could run an overlay with git HEAD, but it does feel a bit dangerous for my primary desktop since I actually want to be able to do stuff on it as well, hehe.

                Comment


                • #9
                  Originally posted by Azpegath View Post
                  Thank you, so are they working better? =)
                  I'm not running any homebuilt Mesa parts, just what's in unstable portage on Gentoo. I could run an overlay with git HEAD, but it does feel a bit dangerous for my primary desktop since I actually want to be able to do stuff on it as well, hehe.
                  If you're comfortable in the command line (and being a fellow Gentoo'er you aught to be) there's no reason not to try the x11 overlay

                  Just unmask the packages you'd like to test and if there are any problems remove the unmask lines

                  You can also use quickpkg to keep a binary copy of known working versions that you can revert back to using the emerge -G option

                  I personally unmask all the live ebuilds symlinking the profiles/mask file to my unmask directory and rebuild daily

                  Comment


                  • #10
                    FTA:
                    (some people should seriously learn what "polymorphism" means and how it's used to write software before even writing drivers, because I feel like I am the only one making use of it in r600g, which is really a shame /rant)
                    D'oh.

                    Comment


                    • #11
                      Originally posted by Azpegath View Post
                      Thank you, so are they working better? =)
                      I've tried 2d-tiling patch-set today. And the only thing that rendered correctly is mouse pointer The screen is black with a gray garbage
                      Radeon Mobility HD 2600, Archlinux, KDE

                      Comment


                      • #12
                        Originally posted by ChrisXY View Post
                        Code:
                         ~ % LIBGL_DEBUG=verbose glxinfo | grep render
                        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/r600_dri.so
                        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/r600_dri.so
                        libGL error: dlopen /usr/lib/xorg/modules/dri/r600_dri.so failed (/usr/lib/libglsl.so: undefined symbol: _mesa_symbol_table_add_symbol)
                        libGL: OpenDriver: trying /tls/r600_dri.so
                        libGL: OpenDriver: trying /r600_dri.so
                        libGL error: dlopen /r600_dri.so failed (/r600_dri.so: cannot open shared object file: No such file or directory)
                        libGL: OpenDriver: trying /usr/lib32/xorg/modules/dri/tls/r600_dri.so
                        libGL: OpenDriver: trying /usr/lib32/xorg/modules/dri/r600_dri.so
                        libGL error: dlopen /usr/lib32/xorg/modules/dri/r600_dri.so failed (/usr/lib32/xorg/modules/dri/r600_dri.so: wrong ELF class: ELFCLASS32)
                        libGL error: unable to load driver: r600_dri.so
                        libGL error: driver pointer missing
                        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/swrast_dri.so
                        libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/swrast_dri.so
                        [1]    13627 segmentation fault (core dumped)  LIBGL_DEBUG=verbose glxinfo | 
                               13628 exit 1                            grep --color=auto render
                        Anybody else?
                        Well, the problem was errors in the build "undefined reference... bla" that the build scripts didn't think were so important to abort or print an error message after the build finished...


                        So I have a little request:
                        Can you please test your changes a bit more before you commit them?

                        1:
                        Code:
                        commit d36f89c8cfb3776368f8acef46514421f454205c
                        Author: Christian König <deathsimple@vodafone.de>
                        Date:   Tue Jan 31 14:49:07 2012 +0100
                        
                            vl: fix some missing prototypes error
                            
                            Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45444
                            Signed-off-by: Christian König <deathsimple@vodafone.de>
                        
                         src/gallium/state_trackers/vdpau/preemption.c |    1 +
                         src/gallium/winsys/g3dvl/dri/XF86dri.c        |   27 -------------------------
                         2 files changed, 1 insertions(+), 27 deletions(-)
                        2:
                        Code:
                        commit f53e7e981ef35ab64a084c8da6c67bd2d230fe33
                        Author: Matt Turner <mattst88@gmail.com>
                        Date:   Tue Jan 31 11:54:24 2012 -0500
                        
                            Make sure libGL.so links with libglsl
                            
                            Can't link against *.la files if we're not using libtool to link.
                            
                            Fixes undefined symbol: _ZN23ir_hierarchical_visitor5visitEP11ir_variable
                        
                         configure.ac         |    2 ++
                         src/mesa/sources.mak |    2 +-
                         2 files changed, 3 insertions(+), 1 deletions(-)
                        3:
                        Code:
                        commit ffe376d5a74dee837dc1a421de29ae551087630f
                        Author: Paul Berry <stereotype441@gmail.com>
                        Date:   Mon Jan 30 18:53:09 2012 -0800
                        
                            glsl: Fix optimization tests after converting src/glsl to automake.
                            
                            Commit 99476561 (automake: src/glsl and src/glsl/glcpp) changed the
                            build system so that src/glsl/glsl_test is not built by default.  This
                            inadvertently broke "make check", since the tests in
                            src/glsl/tests/lower_jumps (which are run by "make check") rely on
                            glsl_test.
                            
                            This patch ensures that "make check" builds glsl_test before running
                            any tests.
                            
                            Reviewed-by: Matt Turner <mattst88@gmail.com>
                        
                         Makefile |    1 +
                         1 files changed, 1 insertions(+), 0 deletions(-)
                        In one day alone...

                        And still it doesn't even build... (how does it work for all of you people here discussing the changes?)
                        http://pastebin.com/fE1BULTD
                        Code:
                        r600_dri.so.tmp: undefined reference to `st_gl_api_create'
                        Of course I appreciate your work very much, but just to let you know that I rather wait longer for changes when that results in a repository that I actually can build from.

                        Comment


                        • #13
                          I have not get such verbose errors but todays master of Mesa is completely broken for me.
                          See http://phoronix.com/forums/showthrea...005#post249005

                          Comment


                          • #14
                            As far as I can tell they are currently transitioning to automake. Give it a few days and I think these will be fixed.

                            Comment


                            • #15
                              PCIe-2.0 support works perfectly here. 2D Tiling works fine with gnome-shell, but hardlocks with "real" GL 2.1 workloads e.g. wine -> dx9 -> star trek online. Doesn't hardlock with 1D tiling. Haven't yet spotted any regressions resulting from Marek's recent cleanups, so that's good -- the chances of regressions are fairly good when you touch that many pieces of code. Nice job Marek

                              Comment

                              Working...
                              X