Forcing software fallback for ATI drivers?


does anyone know a registry key or other mechanism to ensure that all OpenGL rendering goes through the driver’s software fallback on ATI?


In the dwFlags field of the PixelFormatDescriptor of your ChoosePixelFormat call you should set the PFD_GENERIC_FORMAT bit and NOT set the PFD_GENERIC_ACCELERATED bit.
This selects the microsoft software renderer instead of the hardware renderer.
If you use DescribePixelFormat to list all of the supported pixel formats you will find that the ones with PFD_GENERIC_FORMAT set will always be listed last.
My system lists 54 hardware accelerated formats (only 18 of which have PFD_SUPPORTS_OPENGL) and 36 software rendered formats (all of which have PFD_SUPPORT_OPENGL).


thanks for that. I found that info from the GL faq but what I am after is not to use the Microsoft GL 1.1 fallback, but ATI’s own internal 2.0(+) fallback that would normally only come into play for shaders that won’t run on older hardware (for example with dynamic dat-dependent branches).

Something similar to NVEmulate for NVIDIA, but not necessarilly via a GUI.


I’ve been trying to use Mesa to achieve a similar state, but there are some unfortunate issues with that. Also tried the PFD_GENERIC_FORMAT thing, but that didn’t seem to affect the speed at all.

Yes MESA does have some problems, hence the thought that the software renderer in the ATI drivers might be of use. On MESA, Brian Paul is very fast to fix any bugs in the shader support if you report them to him.


My particular problems are with things that Mesa can’t support due to IP issues.

Apart from S3TC (supported with an external plugin), what are the other limitations of Mesa caused by patents/IP issues ?

ARB_texture_float and ARB_color_buffer_float. Apparently SGI claims IP on float textures in general.

Mesa can support 32-bit float color channels…it’s just that the code has to change a bit for that to happen.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.