Workaround patch for nVidia drivers

I've reported that FlightGear may crash on Macs with nVidia Graphic cards due to likely driver bug in hardware mipmapping in a multi-thread environment. I've already introduced a workaround for this issue on 1.9.0 but it didn't cover all the nVidia drivers.

So I decided to disable hardware mipmapping on all nvidia drivers for avoiding annoying crash report.

How to update?

First, please read "Who needs to update" below and check if you need to update the framework. If you have never encounter a crash report while running FlightGear, you don't have to install this update. If you need this patch, then follow the instructions below:

  1. Download osg.framework that includes a workaround for this issue.
  2. install osg.framework.tar.gz using the GUI Launcher by selecting "Advanced Features >> Others >> Install Add-on data"
    • make sure there's no errors on the "Installation Completed" dialog.
  3. restart FlightGear (the GUI Launcher).

Who needs to update?

If you get a crash report that include the examples below or similar (the point is if your crash log include either gleGenMipmaps or gleGenMipmapsToLevel), please download the patched osg.framework and install it via the GUI launcher. This patch is applicable only for 1.9.0. 1.0.0 or prier versions does not need this patch.

crash log example 1

Thread 0 Crashed:
0   com.apple.GeForce3GLDriver   	0x0281e90c gldDestroyVertexArray + 53952
1   com.apple.GeForce3GLDriver   	0x0281ee90 gldDestroyVertexArray + 55364
2   com.apple.GeForce3GLDriver   	0x02826ef8 gldGetQueryInfo + 19612
3   com.apple.GeForce3GLDriver   	0x02826720 gldGetQueryInfo + 17604
4   com.apple.GeForce3GLDriver   	0x0282a4a4 gldGetTextureLevel + 7436
5   GLEngine                     	0x02b00ef8 gleGenMipmapsToLevel + 148
6   GLEngine                     	0x02a1dc88 glTexImage2D_Exec + 864
7   libGL.dylib                  	0x92f2a05c glTexImage2D + 172
8   org.OpenSceneGraph.osg       	0x012ce988 osg::Texture::applyTexImage2D_load(osg::State&, 
     unsigned, osg::Image const*, int, int, int) const + 1920
9   org.OpenSceneGraph.osg       	0x012d5164 osg::Texture2D::apply(osg::State&) const + 1440

crash log example 2

Thread 0 Crashed:
0   <<00000000>>        0xffff08a0 __memcpy + 256 (cpu_capabilities.h:228)
1   ...er.AppleIntelGMA950GLDriver      0x01f05dfb glrLoadSysTexture + 4163
2   ...er.AppleIntelGMA950GLDriver      0x01f07688 glrGenerateTexMipmaps + 3962
3   GLEngine                            0x12b3ff92 gleGenMipmaps + 134
4   GLEngine                            0x12a23881 glTexImage2D_Exec + 1071
5   libGL.dylib                         0x92b37676 glTexImage2D + 139
6   org.OpenSceneGraph.osg              0x012cb741 osg::Texture::applyTexImage2D_load(osg::State&, 
     unsigned, osg::Image const*, int, int, int) const + 2819
7   org.OpenSceneGraph.osg              0x012d28ea osg::Texture2D::apply(osg::State&) const + 2400