There was a 3D driver in development for Xfree86 4.2.0/mesa 4.x by. Adam Jackson imported the DRI part into Mesa CVS and fixed it up to compile under Mesa 6.x. The DRM and DDX components are still languishing on the s3virge-0-0-1 branch of the old DRI CVS.
To be included in a future XFree86 release it will have to be fixed and finished. Currently 2D must be disabled to use the 3D support. There is support for 2D locking in the driver (so 2D and 3D can co-exist), but at the moment it locks up sometimes.
Alan Cox started porting it to xorg/mesa CVS.
See Max' readme for more info: http://dri.sourceforge.net/snapshots/bleeding-edge/README.s3virge
from Max' readme:
"So here is what we have (hw accelerated, of course)
a) 3d primitives (flat/gouraud triangles and lines)
c) alpha-blending (for all the modes supported by virge)
d) texturing (for all the format and filter modes supported by virge)
Still not implemented are:
e) fog (hw fog is not compatible with hw alpha, so I chose the latter. It could still be implemented in sw, though)
f) lighting (I don't honestly understand how to implement it ; )
g) hw clipping (it will give us some speed boost, but I don't know how to handle it in Mesa/DRI. Any info about it is welcome)"
It should support all Virge chips.
3D support is also available for XFree86 3.3.x in the Utah-GLX project.
Some resources from the dri-devel ML: http://marc.theaimsgroup.com/?t=102501705400003&r=1&w=2 http://marc.theaimsgroup.com/?t=101623151900002&r=1&w=2 http://marc.theaimsgroup.com/?t=102500392100001&r=1&w=2 http://marc.theaimsgroup.com/?t=102509925800001&r=1&w=2