Is there an implementation/driver that supports software fallback whenever a feature not part of the specified core version is not present? This way I can make sure my program will run even if the hardware or drivers dont support the required version.
Is there an implementation/driver that supports software fallback whenever a feature not part of the specified core version is not present?
With the exception of GLSL and the implementation-dependent limits, OpenGL implementations are required to do whatever you tell them, whether hardware or software. So if some spec-defined behavior fails, it’s a driver bug.
Still, it’s better than Microsoft’s dreaded GDI software renderer.
Mesa3D with the new Gallium3D softpipe driver should be quite a bit faster than the current implementation. The whole stack is undergoing some significant improvements and should become quite usable during in 2010 (with OpenGL 3.0+ support and several new APIs like OpenCL, OpenVG, …)
I meant swrast (in the src/mesa tree), which is the default software driver, not softpipe.
Concerning Gallium3D, as far as I know, the softpipe driver will stay as it is: a slow reference rasterizer. However, they are planning to add another pipe driver that will be optimized for performance and to scale well on multi-core CPUs (I guess the proposed name was llvmpipe, but I am not sure).