Hi there,

I received some crash reports on FlightGear/OSG from a user who uses nVidia 
7300GT on Macs.
Debugging on an iMac gave me that hardware mipmapping on its driver caused the 
crash.
so I once made a "fix-it-only-for-this-issue" kinda patch that simply disable 
hardware mipmapping when
the renderer is "NVIDIA GeForce 7300GT OpenGL Engine, " and that actually fixed 
the problem.
(see http://www.mail-archive.com/[EMAIL PROTECTED]/msg18674.html
for more detail on this problem and the patch.)

However, I'm wondering if users can disable hardware extensions to avoid such 
problems.
I tried 
OSG_GL_EXTENSION_DISABLE="GL_SGIS_generate_mipmap;GL_EXT_framebuffer_object" 
but nothing happened.
Taking a look at Texture.cpp tells me you can never disable hardware extensions 
if your OpenGL driver version >= 1.4 (or 2.0) 
It calls isGLExtensionSupported to check if an extension is supported but these 
will never called.
For example, the following code is for checking hardware mipmapping extension:

    _isGenerateMipMapSupported = (strncmp((const 
char*)glGetString(GL_VERSION),"1.4",3)>=0) ||
                                   
isGLExtensionSupported(contextID,"GL_SGIS_generate_mipmap");

This means that isGLExtensionSupported will never be called when GL_VERSION >= 
1.4, resulting that you cannot disable it
since environment variable is evaluated in isGLExtensionSupported.

Attached is the patch to make hardware extensions disabled using the 
environment variable.
I'm not so sure on the real purpose of the OR logic in the if statement above, 
but it is good to give users a choice.
Can anyone test this and check if this is a right solution?

Best,

Tat

Attachment: Texture_disable_extensions.diff
Description: Binary data



_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to