R300

From ThinkWiki
Jump to: navigation, search

Status

The latest release version as found in kernel 2.6.23 provides good performance and is extremely stable. Of note, while the 3D performance is still not quite as good as the proprietary ATI kernel, this open-source version provides composite (alpha-channel) support allowing use of a modern 3D desktop with Beryl.

R300 drivers with DRI support

Look at dri on freedesktop since development of r300 has moved there.

In post-2.6.13 development kernels (and also 2.6.13-mm3), DRM support for the R300 chips from ATI has been included. Together with a bleeding-edge version of Mesa (at least 6.3.2), this will allow 3D acceleration support for systems having a chip like this without the need for the ATI binary only driver (Fglrx). The latest beta releases of X.Org for 6.9/7.0 already have Mesa 6.3.2, but building the R300 DRI drivers is disabled by default.

Kernel configuration

You need to build AGP support with

  # CONFIG_AGP=y
  # CONFIG_AGP_INTEL=y  #for a ThinkPad T41p

and the Radeon DRM support with

  # CONFIG_DRM=y
  # CONFIG_DRM_RADEON=y

Alternatively, can also build modules instead of including the code into the kernel. The modules will then be automatically loaded when X starts up.

If everything works well, the device /dev/dri/card0 should show up.

Mesa

If your distribution does not offer binary packages of the current Mesa development packages, you need to build them yourself. It might also be possible that the DRI driver is included in your X.Org packages, just look out for a file like /usr/X11R6/lib/modules/dri/r300_dri.so.

X configuration

You will need to load the dri and GLcore extensions with

  # Section "Module"
  #    ...
  #    module "dri"
  #    module "GLcore"
  #    ...
  # EndSection

Note: In Xorg 7.0 you don't need to load GLCore manually anmore

My radeon configuration looks like this

  # Section "Device"
  #    Identifier  "firegl"
  #    Driver      "radeon"
  #    BusID       "PCI:1:0:0"
  #    ....
  #    Option      "AGPFastWrite"  "off" # "on" freezes my laptop
  #    Option      "AGPMode"       "4" # this value depends on your hardware, this one is for a T41p
  #    Option      "DynamicClocks" "on"
  #    Option      "ColorTiling"   "on"
  # EndSection

X will silently ignore if DRI cannot be activated for your card, so you should check yor X logfile. Just search for DRI and/or DRM. Afterwards, you might want to do the usual glxinfo/glxgears magic.

Packages

Emerge the latest Xorg (7.1). The opensource driver is in cvs since version 7.0
Enable agp suuport in a kernel:
Device Drivers --->
Character devices --->
<M> /dev/agpgart (AGP Support)
<M> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
Add the following two lines to /etc/modules.autoload.d/kernel-2.6:
 agpgart
 intel-agp
or compile as a kernel.
To enable 3D support, emerge latest x11-base/x11-drm
 echo "x11-base/x11-drm" >> /etc/portage/package.keywords
 emerge x11-base/x11-drm

The development repository has a stable implementation. To install do

yum --enablerepo=development update 'xorg*' 'libX*'

Experimental stand-alone installation

If you want to test the latest r300 driver and X server without touching your main X tree, see How to compile an experimental X server.

Performance

With 2.6.14-rc1 + Mesa 6.3.2, glxgears (the dubious Linux 3D benchmark) gives ~2200 FPS on my ThinkPad T41p with a FireGL Mobility T2 and a 1.7GHz Pentium M, 1GB RAM.

There is to note that the Color-depth has great effect on this value. on my R50p with 24Bit I get about 2k fps, with 16Bit i get about 1k-1.5k fps

With 2.6.15 + Mesa 6.3.2, glxgears gives ~1480 FPS on a ThinkPad T43 with a Radeon Mobility X300 and a 1.86GHz Pentium M, 512MB RAM, when AGPMode=8, EnablePageFlip=on, AGPFastWrite=on and RenderAccel=on. Adding AccelMethod=EXA reduces to 700 FPS but makes the Composite Extension be usable.

glxgear output:

 9607 frames in 5.0 seconds = 1921.285 FPS
 9574 frames in 5.0 seconds = 1914.716 FPS
 9510 frames in 5.0 seconds = 1901.832 FPS
 9643 frames in 5.0 seconds = 1928.568 FPS
 9676 frames in 5.0 seconds = 1934.910 FPS
 9553 frames in 5.0 seconds = 1910.021 FPS

Troubleshooting

Useful links

Supported Video cards

See also