[Mesa-dev] Core Profile and extension strings question

Courtney Goeltzenleuchter courtney at lunarg.com
Tue Oct 22 19:47:59 CEST 2013


On Tue, Oct 22, 2013 at 11:01 AM, Ian Romanick <idr at freedesktop.org> wrote:

> On 10/22/2013 09:00 AM, Courtney Goeltzenleuchter wrote:
> > I'm curious about what the proper behavior should be for extensions that
> > have been integrated into core. In particular I'm looking at
> > ARB_texture_cube_map as we are using that in one of the ARB_texture_view
> > piglit tests and when run on the Mesa driver the piglit
> > function piglit_require_extension("GL_ARB_texture_cube_map") fails.
>
> We've basically taken a page from Apple's playbook.  See the extension
> list at
> https://developer.apple.com/graphicsimaging/opengl/capabilities/.  They
> don't list *anything* that's part of OpenGL 3.2 Core Profile.
>
> Applications have to specifically request a core profile context, so
> we're assuming that they're not going to check for extensions that have
> been part of core for years.  We set the cut-off at GL 1.5.  See 0fef911
> and the few patches just before it.


> This has been Mesa behavior for over a year, and we haven't encountered
> any application problems.
>
> > Running with MESA_INFO on I see:
> > Mesa: Mesa GL_VERSION = 3.1 (Core Profile) Mesa 9.3.0-devel (git-0398dd3)
> > Mesa: Mesa GL_RENDERER = Mesa DRI Intel(R) Ivybridge Server
> > Mesa: Mesa GL_VENDOR = Intel Open Source Technology Center
> > Mesa: Mesa GL_EXTENSIONS does not contain ARB_texture_cube_map
> >
> > When we run the same test on the NVIDIA closed source driver the test
> > does find an ARB_texture_cube_map extension. It also is given a
> > compatibility context and not a Core Profile context.
>
> This will depend on how you set the config.supports_gl_core_version and
> config.supports_gl_compat_version values in the test.  I believe the
> framework first tries the requested compatibility version.  If that
> fails, it tries the requested core version.  We only support up to 3.0
> in compatibility profile.
>

The piglit test is setting compatibility and core as:
        config.supports_gl_compat_version = 13;
config.supports_gl_core_version = 31;

Looks like piglit's make_context_current (piglit_wfl_framework.c) tries the
core version first, then compatibility.


> There are quite a few piglit tests that do things like (from
> tests/spec/arb_sync/DeleteSync.c):
>
>         if (piglit_get_gl_version() < 32) {
>                 piglit_require_extension("GL_ARB_sync");
>         }
>

We'll do this for our tests.

Thanks!

>
> However, there are probably many other tests that have latent bugs in
> core profile checking because they always get a sufficiently high
> compatibility profile version.
>
> > The spec says that deprecated features may not be available in  newer
> > Core Profiles. ARB_texture_cube_map has not been deprecated, it's been
> > promoted into core. According to the OpenGL Spec:
> >
> >     H.3.2
> >     Promoting Extensions to Core Features
> >     Extensions can be promoted to required core features in later
> >     revisions of OpenGL.
> >     When this occurs, the extension specifications are merged into the
> >     core specifica-
> >     tion. Functions and enumerants that are part of such promoted
> >     extensions will have
> >     the ARB, KHR, EXT, or vendor affix removed.
> >     I*mplementations of such later revisions should continue to export
> >     the name*
> >     *strings of promoted extensions in the EXTENSIONS strings and
> >     continue to support*
> >     *the affixed versions of functions and enumerants as a transition
> aid.*
> >     For descriptions of extensions promoted to core features in OpenGL
> >     1.3 and
> >     beyond, see the corresponding version of the OpenGL specification,
> >     or the de-
> >     scriptions of that version in version-specific appendices to later
> >     versions of the
> >     specification.
> >
> >
> > This says to me that the Mesa driver should be listing
> > GL_ARB_texture_cube_map in it's extension string. So, why isn't it
> > there? What am I missing?
> >
> > What should the piglit test do?
> > Is this going to be a compatibility issue for applications?
> >
> > Thanks,
> > Courtney
> >
> > --
> > Courtney Goeltzenleuchter
> > LunarG
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>


-- 
Courtney Goeltzenleuchter
LunarG
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131022/f600dc5e/attachment.html>


More information about the mesa-dev mailing list