https://bugs.freedesktop.org/show_bug.cgi?id=43896

Brian Paul <bri...@vmware.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |NOTOURBUG

--- Comment #5 from Brian Paul <bri...@vmware.com> 2011-12-19 07:00:39 PST ---
(In reply to comment #3)
> (In reply to comment #2)
> > Sounds like a bug in the application to me. From the GLX 1.4 spec (though
> > that's certainly not new in 1.4):
> > 
> > "A non-NULL return value for glXGetProcAddress does not guarantee that an
> > extension function is actually supported at runtime. The client must also 
> > query
> > glGetString() or glXQueryExtensionsString to determine if an extension is
> > supported by a particular context."
> 
> I'm not sure what behaviour is correct. I relied on the the description of
> glXGetProcAddress:
> http://www.opengl.org/sdk/docs/man/xhtml/glXGetProcAddress.xml
> 
> "A NULL pointer is returned if function requested is not suported in the
> implementation being queried."

There's no conflict between the quotes above.  Getting a non-NULL pointer is no
indication whatsoever about whether the extension is supported or not
supported.

The reason is this:  suppose the very first call in main() is
glXGetProcAddress("glGenTransformFeedbacks").  At this point, the GL library
can't determine whether the extension is supported because it hasn't even
opened an X display connection.  Depending on which display/GPU is used, the
extension may or may not be supported.  So if libGL implements the function (or
can generate a dispatch stub for it) it must return the pointer for it right
away.

Later on, the app has to check GL_EXTENSIONS to see if
GL_ARB_transform_feedback2 is really supported.  If the extension is not
supported and the function is called anyway, things might blow up.

This is an application bug.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to