This site was created to document our progress in understanding R300 3d acceleration engine. (R300 is a family of cards made by ATI, in particular
it includes Radeon 9700 cards and Mobility M10 cards used in notebooks).
We are also interested in earlier and later Radeon hardware.
Development has moved to Mesa/DRM and X.org CVS trees, this site
is out of date.
More information can be found here.
This website is out of date and is not likely to be updated.
It has been several months since I had time to work on the project - partly because of being busy and partly because all the
features I care about work on my notebooks videocard (Mobility M10). This does not mean that the developement has stopped: this project has always been a collaboration and the development goes on, especially for newer cards.
In fact, it is my sincere hope that as the driver matures most of my contributed code wold be rewritten to be faster and more correct. However, not being an active developer prevents me from accurately updating project status summary.
What is more the driver code is now firmly part of Xorg and Mesa projects as well as included in Linux kernel (with DRM drivers), so no special installation instructions are needed.
If someone wants to work on the project try it out and ask on dri-devel@ mailing list for directions.
In terms of feature support as of July 2006 most of OpenGL 1.0 has been implemented with the exception of some extensions.
This note was placed on 2006-Jul-15 by Vladimir Dergachev, feel free to update this website - or, better yet, create a DRI Wiki entry.
The source code on this website may damage your hardware.
It is *UNTESTED* and *BROKEN* !
Or, at least, some of it is.
Everyone is welcome to join !
Despite the name, this site is not only about R300 cards, but earlier ones as well. If you are trying to puzzle out some aspect of programming Radeons you might find some of our tools useful.
The development is conducted via e-mail, dri-devel mailing list and CVS.
No packages (beyound those already produced) are planned for the moment.
While the driver for R300 and later cards is still being written, the code is good enough that it is possible to play Quake and run many GL programs. The output will not be accurate as many features lack support (in particular non-flat lighting).
The following are general areas where help would be very welcome:
- Try the driver and report how well it works on your card.
- Try the driver on an unusual platform. There have been reports of the driver working with BSD and GNU/Linux on x86 (both 32 and 64 bit). The driver works but might produce incorrect output with PowerPC hardware (like the drawing area being in the wrong place on the screen).
- THe driver does not work with PCI Express cards - help us fix it !
- There are reports of lockups with Radeon 9800 cards. A fix is needed. It is likely that the problem is some sort of hardware pecularity that we are unaware of (as the driver does not lockup with Radeon 9600 cards which are very similar).
Take a look at "Current status" below and then read subproject webpages:
- glxtest - observe and examine command streams and
manipulate register contents during execution of GL test programs.
- r300_demo - write command streams to hardware
to draw stuff on the screen (can now do textured triangles !)
- r300_dri - very experimental Mesa 3d driver.
Our main list for developer communication is dri-devel.
Also, there is a r300-commit list that receives notifications of changes to CVS - it is very handy to subscribe to it.
Latest version of Mesa and DRM drivers have been accepted in DRM and Mesa CVS trees on freedesktop.org CVS.
- Tagged a new snapshot "the_perfect_frag" of r300_driver. I cannot find visible faults with any levels in Quake3
or PPRacer. Also one can now list all the issues in the driver that need solving.
The following cards are known to work ("well" means good enough to play some games, not perfect GL compliance):
- Radeon 9600 (including Radeon Mobility M10) - works well, no lockups
- Radeon 9800 - works, but locks up in some applications. Might be aggravated by mouse movement and/or use of merged framebuffer.
- Radeon X800 - works well no lockups.
- Tagged a new snapshot "gliding_penguin" of r300_driver. Quake3 should now be playable, albeit with some zbias-related artifacts that show up in some levels. PPRacer (the Open Source continuation of TuxRacer) appears to work fine. There have been reports of lockups when moving X cursor, they might be due to a specific Radeon chip revision.
- Tagged a new snapshot "jump_and_click" of r300_driver. Quake3 demo should now be playable, albeit with some artifacts.
- I have hooked up some drawing code to r300_dri driver, in particular flat drawing and texture drawing.
- glxgears should now give about 1000 fps (depends on your cpu).
- r300_demo has been able to use portions of 3d engine for a while now. The DRM patch that it needs has been applied to DRI DRM CVS tree - the version number is 1.12.0
- I have merged that 2d driver patch into X.org tree. This should considerably speedup 2d operations with R300 and later cards as well as not requiring to patch X.org tree for compatibility with r300_demo.
- Nicolai Haehnle has made significant progress in writing Mesa 3d driver for
R300 cards. Both the driver and the modified DRM source that the driver needs are in r300.sf.net CVS.
- Older (and still relevant) news:
- Wrote drmtest - a command line utility to exercise R300 CP engine.
Had it successfully send BITBLT_MULTI via indirect buffer.
- I did some benchmarking and it appears that running with DRM driver some 2d operations (in particular PutImage and ShmPutImage)
are twice as fast.
- Wrote glxtest - an application to exercise GL drawing commands and save resulting command stream to a file for later analysis.
- Updated drmtest to paint a triangle and a square using Radeon Mobility M10 hardware. You can see the screenshot here.
- Wrote r300_demo - this paints some triangles. This package has a start of a library to paint things.
- Updated r300_demo to demostrate three different capabilities:
2d bitblt, 3d triangles and 3d texture triangles. There is also a diagnostics
mode. Screenshots are on r300_demo webpage.
The webpage that started this project is located here. You can take a look there in case we screw up code in CVS and need a reference to something that used to work.
Current source code
- DRM module in DRI CVS already has support for R300 and later cards.
You need to compile the newer Jon's code in the directory drm/linux-core. Note: you might need to add pci id of your card to file shared-core/drm_pciids.txt.
- Patch for DRM driver - works with Linux 2.6.9-rc2 - apply against Kernel-Source-2.6.9-rc2, see
ReadMe for supported pci-ids.
- glxtest - Radeon GL exercise package and command stream pretty printer. For most recent code use glxtest from CVS
- r300_demo - a demo painting some triangles. Should work with Radeon Mobility M10, you mileage with other R300 or later chips will vary.
- r300_dri - Mesa 3d driver.
Outdated source code
This code still has some relevance, but has since been committed to respective CVS repository or
superseded by new software.