Quake2 works here without hardware acceleration on Radeon 9800, same binary works correctly on Matrox G400, in both cases drivers are from Mesa CVS.

This is part of quake2 output with LIBGL_DEBUG enabled:

Using libGL.so for OpenGL...Initializing OpenGL display
...setting fullscreen mode 3: 640 480
Using XFree86-VidModeExtension Version 2.2
libGL error: dlopen /usr/lib/xorg/modules/dri//r300_dri.so failed (/usr/lib/xorg/modules/dri//r300_dri.so: undefined symbol: _glapi_add_dispatch)
libGL error: dlopen /usr/lib/xorg/modules/dri//r300_dri.so failed (/usr/lib/xorg/modules/dri//r300_dri.so: undefined symbol: _glapi_add_dispatch)
libGL error: unable to find driver: r300_dri.so

What does it mean?

Everything else works - glxinfo display correct Renderer string (Mesa DRI R300 20040924 AGP 1x x86/MMX+/3DNow!+/SSE TCL), games, Blender and my code works with direct rendering enabled.... The only difference is that quake2 loads libGL.so with dlopen, but I am sure that it uses /usr/lib/libGL.so (I tried to rename it) - just like each other application.

--
Free Software - find interesting programs and change them
NetHack - meet interesting creatures, kill them and eat their bodies
Usenet - meet interesting people from all over the world and flame them
Decopter - unrealistic helicopter simulator, get it from http://decopter.sf.net