Announcement

Collapse
No announcement yet.

ATI HD3400 /// artifacts with kernels 2.6.32-rc5 and upwards

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

  • ATI HD3400 /// artifacts with kernels 2.6.32-rc5 and upwards

    Hello everybody.

    I have a sony laptop with ATI HD3400 Videocard. I use Slackware64-current, mesa, libdrm, ati ddx from GIT. I tried kernels 2.6.32 different release candidates.

    I am very happy with performance of ATI opensource drivers. Thanks for the people developing this.

    Unfortunately I discovered that while with 2.6.32-rc3 everything works very stable, KMS, 3d peformance is very good and there are no hangups or etc.

    But with kernels 2.6.32-rc5, 2.6.32-rc6 (didn't try different ones) - Everything works nice but after login in into X and working around with GTK applications there are some artifacts occuring on my destktop (like parts of one windows are showing themselves on the other windows, and this "dust" remains on the screen). I am not sure where this comes from. I use KDE 4.3.3, QT-curves GTK theme. Once again, with 2.6.32-rc3 - there is no such effect.

    Thank you in advance for any suggestions.

    best regards,
    Vladimir

  • #2
    Same problem here with gentoo amd64, 2.6.32-rc6-git3, mesa git, libdrm git, ati ddx git and xserver 1.7.1.
    I have not tried -rc3, but I noticed also terrible performances in 3D.
    I have an HD3870.
    ## VGA ##
    AMD: X1950XTX, HD3870, HD5870
    Intel: GMA45, HD3000 (Core i5 2500K)

    Comment


    • #3
      I get corruption after running for a while, especially after intensive 3D sessions (OpenArena). Usually some of the widgets and plasmoids get corrupted.

      I've had this for a while, basically since switching to KMS, which for me coincided with 2.6.32-rc3, I believe.

      Another problem I have is short freezes with 3D, every 2 seconds or so. Also since switching to KMS. You get it with wobbly windows (wobble them for a few seconds), with glxgears, and it is especially annoying in OpenArena (try strafejumping if the display freezes regularly )

      It seems to be better immediately after logging in, and gets progressively worse, so it might be a memory problem / leak.

      EDIT: 2.6.32-rc6, git (master) libdrm, mesa and ati-radeon, X 1.6, KDE4, HD-4550

      Comment


      • #4
        There are quite a few fixes in drm-next that haven't been pushed to Linus yet. See this link for more information:

        Comment


        • #5
          Yeah, but what I am trying to underline is that with 2.6.32-rc3 everything works fine for me!!!

          I am not a programmer and it is really hard for me to read/understand patches and other code. What really surprises me is that with -rc3 it is ok, but with -rc5 and more important -rc6 I have this bug. Due to this I have to run -rc3 which I believe has some security issues.

          Maybe some newer code which was added to kernel causes this.

          Comment


          • #6
            My scripts for git versions of libdrm, mesa and xf86-ati:

            get-libdrm.sh:
            Code:
            rm -rf libdrm
            git clone git://cgit.freedesktop.org/mesa/drm
            ( cd drm ; find . -type d -name .git -exec rm -rf {} \; 2> /dev/null )
            DATE=$(date +%Y%m%d)
            mv drm libdrm-${DATE}_git
            tar cjf libdrm-${DATE}_git.tar.bz2 libdrm-${DATE}_git
            rm -rf libdrm-${DATE}_git
            libdrm.SlackBuild:
            Code:
            #!/bin/sh                                      
            PKGNAM=libdrm
            VERSION=$(date +%Y%m%d)_git
            ARCH=${ARCH:-x86_64}       
            NUMJOBS=${NUMJOBS:-" -j7 "}
            BUILD=${BUILD:-1}          
            
            CWD=$(pwd)
            TMP=${TMP:-/tmp}
            PKG=$TMP/package-${PKGNAM}
            
            if [ "$ARCH" = "i486" ]; then
              SLKCFLAGS="-O2 -march=i486 -mtune=i686"
              LIBDIRSUFFIX=""                        
            elif [ "$ARCH" = "s390" ]; then          
              SLKCFLAGS="-O2"                        
              LIBDIRSUFFIX=""                        
            elif [ "$ARCH" = "x86_64" ]; then        
              SLKCFLAGS="-O2 -fPIC"                  
              LIBDIRSUFFIX="64"                      
            fi                                       
            
            rm -rf $PKG
            mkdir -p $TMP $PKG
            cd $TMP           
            rm -rf ${PKGNAM}-${VERSION}
            tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
            cd ${PKGNAM}-$VERSION                            
            
            # Make sure ownerships and permissions are sane:
            chown -R root:root .                            
            find . \                                        
              \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
              -exec chmod 755 {} \; -o \                                           
              \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \                                                                            
              -exec chmod 644 {} \;                                                         
            
            # Configure:
            ./autogen.sh
            CFLAGS="$SLKCFLAGS" \
            ./configure \        
              --prefix=/usr \    
              --enable-radeon-experimental-api \
              --libdir=/usr/lib${LIBDIRSUFFIX} \
              --build=$ARCH-slackware-linux     
            
            # Build and install:
            make $NUMJOBS || make || exit 1
            make install DESTDIR=$PKG || exit 1
            
            # Strip binaries:
            find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
              | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
            
            # Compress and link manpages, if any:
            if [ -d $PKG/usr/man ]; then
              ( cd $PKG/usr/man
                for manpagedir in $(find . -type d -name "man*") ; do
                  ( cd $manpagedir
                    for eachpage in $( find . -type l -maxdepth 1) ; do
                      ln -s $( readlink $eachpage ).gz $eachpage.gz
                      rm $eachpage
                    done
                    gzip -9 *.?
                  )
                done
              )
            fi
            
            # Compress info files, if any:
            if [ -d $PKG/usr/info ]; then
              ( cd $PKG/usr/info
                rm -f dir
                gzip -9 *
              )
            fi
            
            # Add a documentation directory:
            mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
            cp -a \
              README \
              $PKG/usr/doc/${PKGNAM}-$VERSION
            
            mkdir -p $PKG/install
            cat $CWD/slack-desc > $PKG/install/slack-desc
            
            cd $TMP/package-${PKGNAM}
            /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
            
            mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz  $CWD
            get-mesa.sh:
            Code:
            rm -rf mesa
            git clone git://cgit.freedesktop.org/git/mesa/mesa
            cd mesa
            git checkout -t -b master origin/master
            cd ..
            # package the source archive and clean up:
            ( cd mesa ; find . -type d -name .git -exec rm -rf {} \; 2> /dev/null )
            DATE=$(date +%Y%m%d)
            mv mesa mesa-${DATE}_git
            tar cjf mesa-${DATE}_git.tar.bz2 mesa-${DATE}_git
            rm -rf mesa-${DATE}_git
            mesa.SlackBuild:
            Code:
            #!/bin/sh
            PKGNAM=mesa
            VERSION=$(date +%Y%m%d)_git
            ARCH=${ARCH:-x86_64}       
            BUILD=${BUILD:-1}          
            
            DRI_DRIVERS="r300,r600,radeon,ffb,swrast"
            
            NUMJOBS=${NUMJOBS:--j8}
            
            CWD=$(pwd)
            TMP=${TMP:-/tmp}
            PKG=$TMP/package-mesa
            
            if [ "$ARCH" = "i486" ]; then
              SLKCFLAGS="-O2 -march=i486 -mtune=i686"
              LIBDIRSUFFIX=""                        
            elif [ "$ARCH" = "x86_64" ]; then        
              SLKCFLAGS="-O2 -fPIC"                  
              LIBDIRSUFFIX="64"                      
            else                                     
              SLKCFLAGS="-O2"                        
              LIBDIRSUFFIX=""                        
            fi                                       
            
            rm -rf $PKG
            mkdir -p $TMP $PKG
            cd $TMP           
            rm -rf mesa-${VERSION}
            tar xvf $CWD/mesa-${VERSION}.tar.bz2 || exit 1
            cd mesa-$VERSION                              
            
            # Make sure ownerships and permissions are sane:
            chown -R root:root .                            
            find . \                                        
              \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
              -exec chmod 755 {} \; -o \                                           
              \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \                                                                            
              -exec chmod 644 {} \;                                                         
            
            
            ./autogen.sh
            
            CFLAGS="$SLKCFLAGS" \
            ./configure \        
              --prefix=/usr \    
              --sysconfdir=/etc \
              --libdir=/usr/lib${LIBDIRSUFFIX} \
              --mandir=/usr/man \               
              --docdir=/usr/doc/mesa-$VERSION \ 
              --with-dri-driverdir=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \
              --with-dri-drivers="$DRI_DRIVERS" \                            
              --disable-gallium \                                            
              --enable-debug \                                               
              --build=$ARCH-slackware-linux                                  
            
            make $NUMJOBS || make || exit 1
            make install DESTDIR=$PKG || exit 1
            
            # Install gears and glinfo manually, and make symlinks from the names
            # of the deprecated similar programs to reduce confusion:            
            mkdir -p $PKG/usr/bin                                                
            cp -a progs/demos/gears $PKG/usr/bin/gears                           
            cp -a progs/demos/glinfo $PKG/usr/bin/glinfo                         
            ( cd $PKG/usr/bin                                                    
              ln -sf glinfo glxinfo                                              
              ln -sf gears glxgears                                              
            )                                                                    
            
            # Strip binaries:
            find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
              | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
            
            # Compress and link manpages, if any:
            if [ -d $PKG/usr/man ]; then
              ( cd $PKG/usr/man
                for manpagedir in $(find . -type d -name "man*") ; do
                  ( cd $manpagedir
                    for eachpage in $( find . -type l -maxdepth 1) ; do
                      ln -s $( readlink $eachpage ).gz $eachpage.gz
                      rm $eachpage
                    done
                    gzip -9 *.?
                  )
                done
              )
            fi
            
            # Compress info files, if any:
            if [ -d $PKG/usr/info ]; then
              ( cd $PKG/usr/info
                rm -f dir
                gzip -9 *
              )
            fi
            
            mkdir -p $PKG/usr/doc/mesa-$VERSION/html
            cp -a COPYING docs/relnotes-$VERSION.html $PKG/usr/doc/mesa-$VERSION
            rm -f docs/relnotes*.html docs/RELNOTES*
            cp -a docs/*.html $PKG/usr/doc/mesa-$VERSION/html
            
            mkdir -p $PKG/install
            cat $CWD/slack-desc > $PKG/install/slack-desc
            
            cd $PKG
            /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
            mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz  $CWD
            get-xf86-video-ati.sh:
            Code:
            rm -rf xf86-video-ati
            git clone git://cgit.freedesktop.org/git/xorg/driver/xf86-video-ati
            cd xf86-video-ati
            #git checkout -t -b master origin/master
            cd ..
            # package the source archive and clean up:
            ( cd xf86-video-ati ; find . -type d -name .git -exec rm -rf {} \; 2> /dev/null )
            DATE=$(date +%Y%m%d)
            mv xf86-video-ati xf86-video-ati-${DATE}_git
            tar cjf xf86-video-ati-${DATE}_git.tar.bz2 xf86-video-ati-${DATE}_git
            rm -rf xf86-video-ati-${DATE}_git
            xf86-video-ati.SlackBuild:
            Code:
             
            #!/bin/sh                                              
            PKGNAM=xf86-video-ati
            VERSION=$(date +%Y%m%d)_git
            ARCH=${ARCH:-x86_64}       
            BUILD=${BUILD:-1}          
            
            # Be sure this list is up-to-date:
            
            NUMJOBS=${NUMJOBS:--j8}
            CWD=$(pwd)             
            TMP=${TMP:-/tmp}       
            PKG=$TMP/package-xf86-video-ati
            
            if [ "$ARCH" = "i486" ]; then
              SLKCFLAGS="-O2 -march=i486 -mtune=i686"
              LIBDIRSUFFIX=""                        
            elif [ "$ARCH" = "x86_64" ]; then        
              SLKCFLAGS="-O2 -fPIC"                  
              LIBDIRSUFFIX="64"                      
            else                                     
              SLKCFLAGS="-O2"                        
              LIBDIRSUFFIX=""                        
            fi                                       
            
            rm -rf $PKG
            mkdir -p $TMP $PKG
            cd $TMP           
            rm -rf xf86-video-ati-${VERSION}
            tar xvf $CWD/xf86-video-ati-${VERSION}.tar.bz2 || exit 1
            cd xf86-video-ati-$VERSION
            
            # Make sure ownerships and permissions are sane:
            chown -R root:root .
            find . \
              \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
              -exec chmod 755 {} \; -o \
              \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
              -exec chmod 644 {} \;
            
            ./autogen.sh
            
            CFLAGS="$SLKCFLAGS" \
            ./configure \
              --prefix=/usr \
              --libdir=/usr/lib${LIBDIRSUFFIX} \
              --sysconfdir=/etc \
              --build=$ARCH-slackware-linux
            
            # Nobody else is enabling this.  Seems like it's asking for trouble.
            #  --enable-xcb
            
            make $NUMJOBS
            make install DESTDIR=$PKG
            
            mkdir -p $PKG/usr/doc/xf86-video-ati-$VERSION/html
            cp -a COPYING docs/relnotes-$VERSION.html $PKG/usr/doc/xf86-video-ati-$VERSION
            rm -f docs/relnotes*.html docs/RELNOTES*
            cp -a docs/*.html $PKG/usr/doc/xf86-video-ati-$VERSION/html
            
            mkdir -p $PKG/install
            cat $CWD/slack-desc > $PKG/install/slack-desc
            
            cd $PKG
            /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
            mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz  $CWD

            Comment


            • #7
              Basically git has only one toplevel .git dir, you should not need find at all - your code looks like from svn.

              Comment


              • #8
                to: Kano

                thank you for correction. I will change scripts. Once again I am not a programmer and I do not remember origin of this scripts. Most probably you right and originally this was from some svn scripts of Slackware team (from /source folder).

                But I do not think this would influence any further build procedure.

                Comment


                • #9
                  Originally posted by dolphin77 View Post
                  Yeah, but what I am trying to underline is that with 2.6.32-rc3 everything works fine for me!!!

                  I am not a programmer and it is really hard for me to read/understand patches and other code. What really surprises me is that with -rc3 it is ok, but with -rc5 and more important -rc6 I have this bug. Due to this I have to run -rc3 which I believe has some security issues.

                  Maybe some newer code which was added to kernel causes this.
                  Yes there are some regressions that were fixed in drm-next, but haven't been pushed to Linus yet. You are most likely hitting this bug:

                  which is already fixed in drm-next.

                  Comment


                  • #10
                    Originally posted by agd5f View Post
                    Yes there are some regressions that were fixed in drm-next, but haven't been pushed to Linus yet. You are most likely hitting this bug:

                    which is already fixed in drm-next.
                    Thank you for hint. I will try to build drm-next when my daughter will go to sleep and post the result here.

                    Added:
                    Ok, so I am already here up and running about 20 minutes. I have here VirtualBox, Seamonkey, Firefox, Kontact, Konsole compiling few things, and video (in smplayer) playing. Looks pretty good. Up till now no problems. Now I'll ask my son to do some 3d testing.

                    Thank you, agd5f, my son looks really happy.

                    greetings from Ukraine.
                    Last edited by dolphin77; 09 November 2009, 03:46 PM.

                    Comment

                    Working...
                    X