View Full Version : ATI HD3400 /// artifacts with kernels 2.6.32-rc5 and upwards
dolphin77
11-09-2009, 06:20 AM
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
darkbasic
11-09-2009, 06:56 AM
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.
pingufunkybeat
11-09-2009, 07:56 AM
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
agd5f
11-09-2009, 09:13 AM
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
dolphin77
11-09-2009, 09:20 AM
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.
dolphin77
11-09-2009, 09:37 AM
My scripts for git versions of libdrm, mesa and xf86-ati:
get-libdrm.sh:
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:
#!/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:
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:
#!/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:
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:
#!/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
Basically git has only one toplevel .git dir, you should not need find at all - your code looks like from svn.
dolphin77
11-09-2009, 09:46 AM
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.
agd5f
11-09-2009, 09:52 AM
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.
dolphin77
11-09-2009, 10:07 AM
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.
dolphin77
11-13-2009, 05:29 AM
today 2.6.32-rc7 was released. Seems that the neccessary updates are in there. Playing around for few hours already. looks very stable.
PS forgot to mention in previous posts. For those who want to try this out and uses initrd. The driver should be blacklisted. Otherwise it will try to load firmware before root filesystem mounted. And will fail. I load it at later stage from /etc/rc.d/rc.modules (this is valid for Slackware).
pingufunkybeat
11-13-2009, 05:31 PM
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
Yes, I switched back to drm-next and it is noticably smoother. Still a bit jerky in OpenArena, but much better than before.
dolphin77
11-16-2009, 05:34 AM
) KERNEL PART:
In order to make this work, we will need a kernel 2.6.32-rc7 (or later).
It should be compiled with this options in .config:
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
If you make menuconfig, this should be found here:
Device Drivers ---> Graphics support ---> <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support ---> <M> ATI Radeon
Device Drivers ---> Staging drivers ---> Enable modesetting on radeon by default
next step is to blacklist radeon frame buffer and radeon modules. We need to do this to avoid firmware initialisation problem, if it is not accessable before rrot FS is mounted. This should be added to /etc/modprobe.d/blacklist.conf:
blacklist radeonfb
blacklist radeon
And then we will load module from /etc/rc.d/rc.modules:
/sbin/modprobe radeon
2) Libdrm, Mesa and xf86-video-ati from git.
In order to get as much as we can from our ATIs with opensource drivers, it is reasonable to play with GIT version of this packages.
I will suppose that you have /Soft/dri folder (doesn't really matter, could be different place).
# cd /Soft/dri
# git clone git://cgit.freedesktop.org/mesa/drm
# mv drm libdrm
# git clone git://cgit.freedesktop.org/git/mesa/mesa
# git clone git://cgit.freedesktop.org/git/xorg/driver/xf86-video-ati
After this you could use this scripts, which will update git repositories, and build packages with -date_git version.
libdrm.SlackBuild
#!/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 libdrm
git pull
git checkout
# 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 {} \;
make clean
# 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
mkdir -p $PKG/install
cd $TMP/package-${PKGNAM}
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz $CWD
mesa.SlackBuild (the script is building for r600. Change this variable for your graphics chip):
#!/bin/sh
PKGNAM=mesa
VERSION=$(date +%Y%m%d)_git
ARCH=${ARCH:-x86_64}
BUILD=${BUILD:-1}
# Be sure this list is up-to-date:
DRI_DRIVERS="r600,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 mesa
git pull
git checkout
# 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 {} \;
make clean
./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
mkdir -p $PKG/install
cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz $CWD
xf86-video-ati.SlackBuild
#!/bin/sh
PKGNAM=xf86-video-ati
VERSION=$(date +%Y%m%d)_git
ARCH=${ARCH:-x86_64}
BUILD=${BUILD:-1}
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 $PKGNAM
git pull
git checkout
# 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 {} \;
make clean
./autogen.sh
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--build=$ARCH-slackware-linux
make $NUMJOBS
make install DESTDIR=$PKG
mkdir -p $PKG/install
cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
mv $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz $CWD
Something like this should do it all together (lets call this build_all.sh):
./libdrm.SlackBuild && upgradepkg --reinstall libdrm-`date +%Y%m%d`_git-x86_64-1.t?z
./mesa.SlackBuild && upgradepkg --reinstall mesa-`date +%Y%m%d`_git-x86_64-1.t?z
./xf86-video-ati.SlackBuild && upgradepkg --reinstall xf86-video-ati-`date +%Y%m%d`_git-x86_64-1.t?z
vBulletin® v3.8.5, Copyright ©2000-2010, Jelsoft Enterprises Ltd.