Difference between revisions of "Fglrx"

From ThinkWiki
Jump to: navigation, search
(Display Switching (Dynamic Display Management))
(Creating and installing a custom RPM for a custom-compiled kernel on {{Fedora}} 5)
Line 22: Line 22:
 
::{{cmdroot|yum install ati-fglrx}}
 
::{{cmdroot|yum install ati-fglrx}}
 
::{{cmdroot|1=VER=8.20.8.1-0.lvn.1.4  # copy version string from output of above command}}
 
::{{cmdroot|1=VER=8.20.8.1-0.lvn.1.4  # copy version string from output of above command}}
::{{cmdroot|wget http://rpm.livna.org/fedora/4/i386/SRPMS.lvn/ati-fglrx-$VER.src.rpm}}
+
::{{cmdroot|1=wget http://rpm.livna.org/fedora/4/i386/SRPMS.lvn/ati-fglrx-$VER.src.rpm}}
::{{cmdroot|rpmbuild --rebuild --target $(uname -m) --define "ksrc /lib/modules/$(uname -r)/build" --without userland ati-fglrx-$VER.src.rpm}}
+
::{{cmdroot|1=rpmbuild --rebuild --target $(uname -m) --define "ksrc /lib/modules/$(uname -r)/build" --without userland ati-fglrx-$VER.src.rpm}}
::{{cmdroot|rpm -Uvh --replacepkgs /usr/src/redhat/RPMS/$(uname -m)/kernel-module-fglrx-$(uname -r)-$VER.$(uname -m).rpm}}
+
::{{cmdroot|1=rpm -Uvh --replacepkgs /usr/src/redhat/RPMS/$(uname -m)/kernel-module-fglrx-$(uname -r)-$VER.$(uname -m).rpm}}
 
*{{Fedora}} 5 packages: http://rpm.livna.org
 
*{{Fedora}} 5 packages: http://rpm.livna.org
 
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}
 
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}
 +
** Creating and installing a custom RPM for a custom-compiled kernel on {{Fedora}} 5:
 +
::{{cmdroot|1=yum install xorg-x11-drv-fglrx}}
 +
::{{cmdroot|1=VER=8.25.18-1.2.6.16_1.2122_FC5  # copy version string of kmod-fglrx package added by the above command}}
 +
::{{cmdroot|1=wget -c http://rpm.livna.org/fedora/5/SRPMS/fglrx-kmod-$VER.src.rpm}}
 +
::{{cmdroot|1=mkdir fglrx-workdir; cd fglrx-workdir}}
 +
::{{cmdroot|1=rpm2cpio ../fglrx-kmod-$VER.src.rpm <nowiki>|</nowiki> cpio -i}}
 +
::{{cmdroot|1=perl -i -pe 'print "#disabled: " if m/BuildRequires: +kernel/' kmodtool}}
 +
::{{cmdroot|1=perl -i -pe 'print "#disabled: " if m/Requires: +\$\{kdep\}/' kmodtool}}
 +
::{{cmdroot|1=perl -i -pe 's@(^ +ksrc)=.*$@$1=/lib/modules/%{kverrel}/build@' fglrx-kmod.spec}}
 +
::{{cmdroot|1=tar czf pack.tgz --exclude pack.tgz .}}
 +
::{{cmdroot|1=rpmbuild --tb --clean --target $(uname -m) --define "ksrc /lib/modules/$(uname -r)/build" --define "kversion $(uname -r)" --define 'kvariants ""' pack.tgz}}
 +
::{{cmdroot|1=cd ..; rm -fr fglrx-workdir}}
 +
::{{cmdroot|1=sudo rpm -Uvh --replacepkgs ~/rpm/RPMS/$(uname -m)/kmod-fglrx-${VER/.2.6.*/}.$(uname -r).$(uname -m).rpm}}
 
*{{Arch Linux}}
 
*{{Arch Linux}}
 
:{{cmdroot|pacman -S ati-fglrx}} (kernel module for 2.6.15-ARCH)
 
:{{cmdroot|pacman -S ati-fglrx}} (kernel module for 2.6.15-ARCH)

Revision as of 09:10, 26 May 2006

ATI fglrx driver

This is a binary-only driver for ATI graphic chips with support for 3D acceleration.

Availability / Project Homepage

Home page: https://support.ati.com/ics/support/default.asp?deptID=894&task=knowledge&folderID=356

Packages

The ATI drivers have explicit permission for repackaging and redistribution of the Linux drivers. Many distributions are supported within the installer, and many more repackaged by external developers. Please visit the Distribution Page at the Unofficial ATI driver Wiki

# yum install ati-fglrx
# VER=8.20.8.1-0.lvn.1.4 # copy version string from output of above command
# wget http://rpm.livna.org/fedora/4/i386/SRPMS.lvn/ati-fglrx-$VER.src.rpm
# rpmbuild --rebuild --target $(uname -m) --define "ksrc /lib/modules/$(uname -r)/build" --without userland ati-fglrx-$VER.src.rpm
# rpm -Uvh --replacepkgs /usr/src/redhat/RPMS/$(uname -m)/kernel-module-fglrx-$(uname -r)-$VER.$(uname -m).rpm
  • Fedora 5 packages: http://rpm.livna.org
    • For stock Fedora kernels: # yum install xorg-x11-drv-fglrx
    • Creating and installing a custom RPM for a custom-compiled kernel on Fedora 5:
# yum install xorg-x11-drv-fglrx
# VER=8.25.18-1.2.6.16_1.2122_FC5 # copy version string of kmod-fglrx package added by the above command
# wget -c http://rpm.livna.org/fedora/5/SRPMS/fglrx-kmod-$VER.src.rpm
# mkdir fglrx-workdir; cd fglrx-workdir
# rpm2cpio ../fglrx-kmod-$VER.src.rpm | cpio -i
# perl -i -pe 'print "#disabled: " if m/BuildRequires: +kernel/' kmodtool
# perl -i -pe 'print "#disabled: " if m/Requires: +\$\{kdep\}/' kmodtool
# perl -i -pe 's@(^ +ksrc)=.*$@$1=/lib/modules/%{kverrel}/build@' fglrx-kmod.spec
# tar czf pack.tgz --exclude pack.tgz .
# rpmbuild --tb --clean --target $(uname -m) --define "ksrc /lib/modules/$(uname -r)/build" --define "kversion $(uname -r)" --define 'kvariants ""' pack.tgz
# cd ..; rm -fr fglrx-workdir
# sudo rpm -Uvh --replacepkgs ~/rpm/RPMS/$(uname -m)/kmod-fglrx-${VER/.2.6.*/}.$(uname -r).$(uname -m).rpm
# pacman -S ati-fglrx (kernel module for 2.6.15-ARCH)
# pacman -S ati-fglrx-archck (kernel module for 2.6.15-archck)
# pacman -S ati-fglrx-utils (xorg7 stuff and tools)

Building for Xorg 7.0

To compile fglrx versions <= 8.24.8 for Xorg 7.0.0, fake Xorg 6.9.0 by

# export X_VERSION=x690; sh ati-driver-installer-8.24.8-x86.run

Next, move the various resulting libraries and modules from /usr/X11R6 to /usr/lib/xorg

In /usr/src/ATI additional sources are installed for fireglcontrol and fgl_glxgears

Status

Current version: 8.25.18 (24th May 2006)

Major changes:

  • 8.25.18: Xorg 7.0 support, FireGLâ„¢V5xxx/V7xxx support, Dynamic Display Management, fixed a lot of critical bugs.
  • 8.24.8: support for X1300, X1400, X1600, X1800 (generic and mobility) and 3D accelerated video playback on Avivo
  • 8.23.7: support for X850 and X800, OpenGL 2.0 Enhancement, FSAA for some chips
  • 8.22.5: added kernel 2.6.15 support -- patch no longer required
  • 8.21.7: initial OpenGL 2.0 support
  • 8.20.8: fixed resume issues, fixed compile problems with kernels 2.6.13 and 2.6.14
  • 8.19.10: has added suspend / resume and dynamic GPU power management support. Using vbetool no longer required.

Known problems and solutions

See Problems with fglrx.

User experience

Speed

How much is the speed gain versus the opensource drivers?

Compared to the old drivers, approximately 40% speed gain have been noticed with fglrx. However, there are issues with freezing/garbage after suspend, garbage when resizing desktop (via ctrlaltplus, ctrlaltminus), and garbage while using VMware. The current 8.14.13 has shown 400% improvement over using the open source radeon driver: 1200 FPS for glxgears1!

NOTE!
Video overlay acceleration may be disabled when 3D acceleration is enabled. The following comment from the xorg.conf file bundled with the fglrx driver indicates that:
  # === OpenGL Overlay ===
  # Note: When OpenGL Overlay is enabled, Video Overlay
  #       will be disabled automatically
      Option "OpenGLOverlay"              "1"
However, you can use either regular Xv video overlay or make the video an opengl texture and let the OpenGL engine scale your video. This has nothing to do with the acceleration of 2D drawing primitives. Further, your mileage on performance may vary depending on what card you have. The open source drivers don't support newer cards, while the ATI drivers don't support older cards.

Power saving

Power saving is much better than with the radeon driver, but doesn't work in dual-screen configuration (see How to make use of Graphics Chips Power Management features).

Display Switching (Dynamic Display Management)

Version 8.25.18 introduces a new feature: Dynamic Display Management. It allows display switching on-the-fly.

To list all connected and enabled monitors:

# aticonfig --query-monitor

To switch displays:

# aticonfig --enable-monitor=STRING,STRING, where STRING can be: none, lvds, crt1, crt2, tv, tdms1, tdms2

Only 2 displays can be enabled at the same time. Any displays that are not on the list will be disabled.

Useful links

ThinkPads that may be supported

Supported chips, as found in select IBM ThinkPads:

ThinkPads that are NOT supported by fglrx

Unsupported chips, as found in select IBM ThinkPads:


FOOTNOTES [Δ]
  1. Note that glxgears isn't a benchmark tool, it's so simple that its FPS values is without any meaning... you can only compare glxgears using the same drivers/machine, if you change any of then you can have higher/lower values and in real life programs/games happen to have the opposite effects. Think in terms of a car engines rpms: higher rpms in the same car usually means a faster car, change anything and it's meaningless, ie: gears, truck, wheel size, etc. make it useless.