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

Reply via email to