r300_dri is a Mesa 3d driver for R300 and later cards.
Last updated 22nd of July 2005 - check CVS for most recent changes as the developers would rather spend time writing code than updating this webpage :)
("well" means good enough to play some games, not perfect GL compliance)
- Z clears work
- Color clears work
- Scissors work
- Viewport works
- flat colored primitives work (around 1000fps in glxgears)
- texture demonstration code in - textures are drawn, but not all fields are set properly.
Help needed to tabulate appropriate format values.
- Alpha and color blending work
- Alpha works
- Stencil almost works - help needed to figure out stencil enable bit and to implement stencil clears.
- glxgears, as well as lessons 06, 07 and 19 from NeHe are known to work fast
- Quake is known to work as well as many Open Source programs like Neverball, FlightGear, GL screensavers, etc.. You might need to disable some extensions that are not supported yet.
- 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.
The latest source code is available directly from Xorg, Mesa and DRM CVS trees.
TODO/work in progress/issues
- Texture environments
- Proper tnl stage
- r300ResetHwState removal to get rid of the "first frame" problems (see
texwrap example in Mesa source)
- Remaining stencil glitches
- Mesa souce: samples/wave, samples/logo and redbook/alpha3D breakages
- Texture corruption sometimes visible on texwrap
- Secondary color and fog
- Test cases for polygon mode and blending
- 1D and 3D textures + cubemaps
- Fallbacks to smooth points, lines and line stipples via textured point
sprites and lines?
- Support of 16bpp modes
- White random lines present when drawing something fast (only one report available, bandwidth issue ?)
Several snapshots of older known working CVS code are available. They are useful if you want to look or test the code that is known to work. The snapshots are named by their CVS tags. These snapshots are in R300 project CVS.
- shimmering_gears - gears are displayed but are not positioned properly. (Last tagged 12/29/04)
- rotating_gears - gears are displayed in correct colors and rotate
as supposed to. (Last tagged 12/31/04)
- noisy_cube - displays noise textured cube if used with lesson06 demo from NeHe tutorial. (Last tagged 01/01/05)
- red_tinted_cube - displays red textured (instead of blue) cube if use with lesson06 demo from NeHe. (Last tagged 01/02/05)
- blended_fountain - correct texture display for some texture formats, others need to be tabulated properly. glxgears as well as lessons 06, 07 and 19 from NeHe are known to work well and fast. (Last tagged 01/05/05) Correction: texture environment modes are broken.
- jump_and_click - q3demo does not lockup anymore in game mode. There are some broken textures, but it is quite playable. (Last tagged 02/01/05)
Hint: you might need to set r_ext_compiled_vertex_array and r_ext_multitexture parameters in q3config.cfg file to 0.
- gliding_penguin - PPRacer works. Also q3demo and quake3 work, but you might see some zbias related issues depending on which level you are in. You would need to use the hint about turning off some Quake parameters above. (Last tagged 03/05/05). Some people have reported lockups when GL app is running and regular X cursor is moved, not sure where these are coming from, might be due to 2d driver issues.
- the_perfect_frag - there has been much progress. as far as I know all levels in Quake3 play perfectly, at least on my notebook. Note: there are known issues with Radeon 9800 cards, you might see occasional lockups with this code. Help in getting
this resolved would be very appreciated ! (Last tagged 05/19/05).
What do you need to use r300_dri ?
- X.org CVS tree as of 03/05/2005 or later.
- Latest Mesa CVS tree
- Latest DRM module tree from DRI project
- Alternatively you can use r300_driver module from R300 CVS. This module contains the sources both for r300_dri and compatible DRM driver (you need to use it instead of DRI DRM as our version implements extra functionality needed by R300 Mesa driver). You would still need Mesa library source code from CVS as of 22 July 2005.