Update: As of the last couple days (11/18/07), an ebuild has been added to portage for these drivers. It's no longer necessary to create your own.
So the Long Anticipated ATI drivers that support AIGLX are released. I've been wishing for this long before anyone ever mentioned it was a possibility. I've got my Gentoo machine all set up with the new drivers and working with Compiz-Fusion. Here is the process I used to convert from Xgl and the 8.40.4 driver to the 8.42.3 driver with AIGLX.
- Replace Xgl
I didn't do anything special here. I was running beryl on Xgl before. I had used a custom server configuration in /etc/X11/gdm/custom.conf that started the Xgl server. Simply commenting out that section in the file and restarting X brings me back to the good old Xorg 7.2 default server. If you weren't using Xgl, there isn't anything to do here.
Edit Compiz doesn't work with Xorg 7.3. You need to be using Xorg 7.2 (xorg-server 1.3) otherwise you'll get an error when trying to run compiz.
- Install the new ATI drivers
This is how I like Gentoo to work. When something this popular comes along, you can pretty much guarantee someones already addressed it in the Gentoo bug tracker. If this had not already been addressed, I'd of used the exact same approach to get the new drivers. Luckily, someones already documented the process for getting the new drivers. From the bug tracker:
1. mkdir -p /usr/local/portage/x11-drivers/ati-drivers
2. cp -rp /usr/portage/x11-drivers/ati-drivers
3. cd /usr/local/portage/x11-drivers/ati-drivers
4. cp ati-drivers-8.40.4.ebuild ati-drivers-8.42.3.ebuild
5. cd files/
6. cp -r 8.40.4 8.42.3
7. mv ati-drivers-8.40.4-warnings.patch ati-drivers-8.42.3-warnings.patch
8. cd ..
9. vi ati-drivers-8.42.3.ebuild
a. comment out the following line
gunzip common/usr/share/man/man8/atieventsd.8 || die "manpage unzip failed"
10. ebuild ati-drivers-8.42.3.ebuild digest
11. emerge -av ati-drivers
You may want to check back on the bug page since from the time I started writing this until now, there have been two new patches submitted. The patches address issues with amd64 architectures. Since I'm running an old Athlon-XP chip, I went ahead without paying too much attention to the rest.
At this point I stopped X and replaced the fglrx module.
>rmmod fglrx # get rid of the old fglrx module from the kernel
>modprobe fglrx # install the new module
Module Size Used by
fglrx 1471532 20
- Enable AIGLX
The Gentoo-Wiki has a good article on installing AIGLX. I followed the guide there to modify my xorg.conf file. The basics are:
Option "AIGLX" "true" # in the ServerLayout Section
Option "DRI" "true" # in the driver section (where fglrx should be the Driver too)
Option "XAANoOffscreenPixmaps" "true" # also in the driver section
# Load "glx" # comment out glx in the modules section
Load "dri" # make sure dri is loaded in the modules section
Option "Composite" "Enable" # in the Extensions Section
There is another tidbit that is very useful in the bug tracker. Some people have said X won't start without this. I had the same issue and this solved it:
>ln -s libGL.so libGL.so.1
- Install Compiz-Fusion
You may already have this installed. I had Beryl so I'm going to add this here. The Gentoo Wiki also has a good Compiz-Fusion Howto. Pay attention to the details in that guide.
I'm not exactly sure why the xcb use flag is reported required by the Wiki. It seemed to me to actually be working without it. Just in case, I'm going to go ahead and re-emerge libX11 with the xcb use flag.
>euse -E xcb
emerge --oneshot --newuse libX11
- Edit Plugins
The command for editing plugins is ccsm. The only hitch I had in this whole process was that I had no window decorations after loading up compiz. It turns out, there is a plugin titled "Window Decorators" that was unchecked by default. As soon as I enabled that, I got my window borders and title bars back.
Thanks ATI (AMD) for finally giving us a competitive driver!
>glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: ATI RADEON 9600 Series
10979 frames in 5.0 seconds = 2195.791 FPS
13473 frames in 5.0 seconds = 2694.492 FPS
12002 frames in 5.0 seconds = 2400.324 FPS
I took a screenshot after using the fire paint plugin to draw on the screen.