I've always wondered whether it would be easier to implement Direct3D over Gallium3D, instead as a layer over OpenGL. This would be a bit problematic at first since many cards don't have Gallium3D...