Robert, Thanks for the info. Yes I've used the disable extension mechanism. I guess I'm interested in some kind of actual list that would say which cards (and possibly driver version) have trouble with what extensions/features. Or a programmatic way to test the same thing.
That way we can have more confidence that we can actually come up with the right extension disables and allow our app to work without us extensively testing on each set of hardware that our software might run on. To date the main issues we've experienced are with cards that report they support a feature/extension but in actuality they do not (it's buggy). Also I'm not advocating that these features be introduced into OSG, I'm just wondering if anyone knows of some helpful tools in this area. PS As a related question, do game/graphics app producers generally each have to develop and maintain their own blacklists for possibly large sets of different hardware? Seems like a lot of duplication of effort if they do. Thanks -Brad -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Robert Osfield Sent: Thursday, April 15, 2010 12:47 PM To: OpenSceneGraph Users Subject: Re: [osg-users] OpenGL extension/feature blacklist for GPUs Hi Brad, On Thu, Apr 15, 2010 at 7:37 PM, Brad Huber <[email protected]> wrote: > As I recall OSG designers (Robert) have pushed to keep GPU based blacklist > features out of OSG. Actually the OSG already support disabling of extensions, see include/osg/GLExtensions: /** Set a list of extensions to disable for different OpenGL renderers. This allows * OSG applications to work around OpenGL drivers' bugs which are due to problematic extension support. * The format of the string is: * "GLRendererString : ExtensionName, ExtensionName; GLRenderString2 : ExtensionName;" * An example of is : "SUN_XVR1000:GL_EXT_texture_filter_anisotropic" * The default setting of GLExtensionDisableString is obtained from the OSG_GL_EXTENSION_DISABLE * environmental variable. */ extern OSG_EXPORT void setGLExtensionDisableString(const std::string& disableString); This won't disable core features that the driver says it support, but it will enable you disable many of the extensions that can be problematic. As to what extensions are problematic is really up to the individual develop to decide for their app based on testing against the target hardware they have. Since the driver situation can change on a daily basis the OSG itself doesn't generally attempt to codify what works or doesn't work. I'd also recommend not codifying too much into your app either, using the above env var, or a your own application specific file on disk that can be used to help set the ExtensionDisableString and help you decide which OpenGL/scene graph features to use at runtime. This way you can alter the file/env var as you encounter different drivers/hardware/problems. Robert. _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

