+ Reply to Thread
Page 1 of 2 12 LastLast
Results 1 to 10 of 13

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

  1. #1
    Join Date
    Nov 2009
    Posts
    14

    Default 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. #2
    Join Date
    Nov 2009
    Location
    Italy
    Posts
    588

    Default

    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.

  3. #3
    Join Date
    Jun 2009
    Posts
    2,054

    Default

    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

  4. #4
    Join Date
    Dec 2007
    Posts
    1,689

    Default

    There are quite a few fixes in drm-next that haven't been pushed to Linus yet. See this link for more information:
    http://wiki.x.org/wiki/radeonBuildHowTo

  5. #5
    Join Date
    Nov 2009
    Posts
    14

    Default

    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.

  6. #6
    Join Date
    Nov 2009
    Posts
    14

    Default

    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

  7. #7
    Join Date
    Aug 2007
    Posts
    5,495

    Default

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

  8. #8
    Join Date
    Nov 2009
    Posts
    14

    Default

    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.

  9. #9
    Join Date
    Dec 2007
    Posts
    1,689

    Default

    Quote 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:
    https://bugs.freedesktop.org/show_bug.cgi?id=24430
    which is already fixed in drm-next.

  10. #10
    Join Date
    Nov 2009
    Posts
    14

    Default

    Quote 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:
    https://bugs.freedesktop.org/show_bug.cgi?id=24430
    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; 11-09-2009 at 02:46 PM.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts