Announcement

Collapse
No announcement yet.

The AMD R600 Gallium3D Driver Is Becoming Quite Fit

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

  • #31
    Can someone tell me, how much there is left for full S3TC support in r600g? Every time it's needed, I have to switch from my pc to my laptop which uses intel graphics (not fast at all, but at least they show me a non-scrambled picture ^^).
    (Yes, I installed libtxc_dxtn, but r600g doesn't seem to be able to use it completely)
    It's my daily routine to check mesa for new patches regarding this topic :-)

    Comment


    • #32
      S3TC is supported. I can play ETQW with r600g without major issue. There is some bug with textures (bug reported), but you can play!

      But you need the 2.6.39 kernel.

      Comment


      • #33
        Originally posted by whitecat View Post
        S3TC is supported. I can play ETQW with r600g without major issue. There is some bug with textures (bug reported), but you can play!

        But you need the 2.6.39 kernel.
        Just to be sure:
        I use mesa, xf86-video-ati, libdrm from git, kernel 2.6.39.1, libtxc_dxtn 1.0.1, printenv says R600_ENABLE_S3TC=1, glxinfo says GL_S3_s3tc, GL_EXT_texture_compression_s3tc and OpenGL renderer string: Gallium 0.4 on AMD RV710 and the following files are present:
        /usr/include/txc_dxtn.h
        /usr/lib32/libtxc_dxtn.so
        /usr/lib64/libtxc_dxtn.so
        Is this all I have to do?

        Because no single wine game works with s3tc, though everything seems to be ok. (wine is from git and seems to support S3tc since 2004)
        In those games which don't check for S3tc I have severe graphical glitches and those which check tell me "texture compression support not detected".
        These games are 32bit Windows binaries, but I don't get it why they don't work...

        Comment


        • #34
          you need to compile mesa + s3tc for 32 bit. thats really tricky especially for r300g which wants llvm by default. when you use kanotix or pure debian you could try my scripts. i do not support ubuntu, there just use a ppa. the simple instructions to compile mesa are only for 32 bit or when you use only 64 bit apps with a 64 bit os. compiling 32 bit libs on a 64 bit system is much more tricky as you have to fullfill the depends of course there too. for wine you need of course 32 bit libs.

          Comment


          • #35
            but I can play some of those games on my laptop with intel graphics and I did not need to compile mesa for 32bit there. I am using gentoo and there is emul-linux-x86-opengl for 32bit compatibility. On the laptop I use mesa 7.10.2, libdxbla 1.0.1, libdrm 2.4.25, the same wine version (compiled on my pc) and it simply works. So I conclude there must still be something missing in the radeon code somewhere (further: s3tc is WIP in the status matrix). That's why I asked how much is still missing.

            Comment


            • #36
              Originally posted by mark_ View Post
              but I can play some of those games on my laptop with intel graphics and I did not need to compile mesa for 32bit there. I am using gentoo and there is emul-linux-x86-opengl for 32bit compatibility. On the laptop I use mesa 7.10.2, libdxbla 1.0.1, libdrm 2.4.25, the same wine version (compiled on my pc) and it simply works. So I conclude there must still be something missing in the radeon code somewhere (further: s3tc is WIP in the status matrix). That's why I asked how much is still missing.
              No you just have to build mesa to replace the 32-bit one, since the 32-bit one probably doesn't have the S3TC bits for r600 in it, and has them for intel.

              Comment


              • #37
                Originally posted by mark_ View Post
                I am using gentoo and there is emul-linux-x86-opengl for 32bit compatibility.
                That won't work, those libs are ancient and don't have all the flags enabled.

                You will need to compile the driver from scratch for 32 bits. This is an ugly process in gentoo. A friendly user here posted a rough way to do it, so I'll share it with you. You might have to update a few things (my builds are in /usr/local/portage). Don't do this unless you understand what you're doing, though!

                Code:
                cd /usr/local/portage//x11-libs/libdrm
                ebuild libdrm-9999.ebuild unpack
                cd /var/tmp/portage/x11-libs/libdrm-9999/work/libdrm-9999
                export CFLAGS="-m32"
                export CXXFLAGS="-m32"
                sh autogen.sh --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib32 --libdir=/usr/lib32 --disable-dependency-tracking --enable-shared --disable-static --disable-dependency-tracking --enable-udev --disable-intel --disable-nouveau-experimental-api --enable-radeon --disable-vmwgfx-experimental-api --enable-libkms
                make
                cp .libs/libdrm.so.2.4.0 /usr/lib32/
                cp ./libkms/.libs/libkms.so.1.0.0 /usr/lib32/
                cp ./radeon/.libs/libdrm_radeon.so.1.0.0 /usr/lib32/
                
                
                cd /usr/local/portage/media-libs/mesa/
                ebuild mesa-9999.ebuild unpack
                cd /var/tmp/portage/media-libs/mesa-9999/work/Mesa-9999
                ./autogen.sh --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib32 --libdir=/usr/lib32 --disable-option-checking --with-driver=dri --disable-glut --without-demos --enable-xcb --disable-debug --disable-glw --disable-motif --enable-glx-tls --enable-asm --with-dri-drivers=,swrast,r600 --enable-gallium --with-state-trackers=glx,dri,egl,vega --disable-gallium-llvm --disable-gles1 --disable-gles2 --disable-gles-overlay --disable-gallium-svga --disable-gallium-nouveau --disable-gallium-i915 --disable-gallium-i965 --disable-gallium-radeon --disable-gallium-r600 --disable-gallium-i915 --disable-gallium-i965 
                --disable-gallium-radeon --enable-gallium-r600 --enable-32-bit --enable-texture-float
                make
                
                cp lib32/libGL.so.1.2 /usr/lib32
                cp lib32/libGL.so.1.2 /usr/lib32/opengl/xorg-x11/lib/
                cp lib32/libGLU.so.1.3.071100 /usr/lib32/
                cp lib32/libEGL.so.1.0 /usr/lib32/
                cp lib32/libOpenVG.so.1.0.0 /usr/lib32/
                cp lib32/egl/* /usr/lib32/egl/
                cp lib32/r600_dri.so /usr/lib32/mesa/r600_dri.so
                cp lib32/gallium/r600_dri.so /usr/lib32/mesa/r600g_dri.so
                cp lib32/gallium/swrastg_dri.so /usr/lib32/mesa/
                cp lib32/swrast_dri.so /usr/lib32/mesa/
                rm /usr/lib32/dri/r600g_dri.so
                rm /usr/lib32/dri/r600_dri.so
                ln -s /usr/lib32/mesa/r600g_dri.so /usr/lib32/dri/r600g_dri.so
                ln -s /usr/lib32/mesa/r600g_dri.so /usr/lib32/dri/r600_dri.so
                I can report that Quake4, Shadowgrounds and Prey (all 32-bit games) work fine with r600g on Gentoo/amd64, but you need to compile the relevant functionality in.

                Comment


                • #38
                  Originally posted by whitecat View Post
                  Just to know, what is your GPU and MEMORY timing while in 'low' mode ? And voltage ?
                  Because, in my case (RV770), 'low' mode freeze my system. I want to know if there is a real difference between 'low' and 'mid'.
                  mid profile:
                  default engine clock: 850000 kHz
                  current engine clock: 800000 kHz
                  default memory clock: 975000 kHz
                  current memory clock: 975000 kHz
                  voltage: 1313 mV

                  low profile:
                  default engine clock: 850000 kHz
                  current engine clock: 500000 kHz
                  default memory clock: 975000 kHz
                  current memory clock: 975000 kHz
                  voltage: 923 mV

                  but remember that my chip is RV790

                  EDIT:
                  Originally posted by whitecat View Post
                  The power management is handled by kernel, nothing to do with Gallium3D.
                  I guess nobody here would claim otherwise. But the shift of the topic over to power management in this thread is really nice too see, since this shows how high quality r600g has become.
                  Last edited by LibertyZero; 06-17-2011, 08:50 AM.

                  Comment


                  • #39
                    Thanks for your feedback.

                    Comment

                    Working...
                    X