<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 22, 2013 at 11:01 AM, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">On 10/22/2013 09:00 AM, Courtney Goeltzenleuchter wrote:<br>

> I'm curious about what the proper behavior should be for extensions that<br>
> have been integrated into core. In particular I'm looking at<br>
> ARB_texture_cube_map as we are using that in one of the ARB_texture_view<br>
> piglit tests and when run on the Mesa driver the piglit<br>
> function piglit_require_extension("GL_ARB_texture_cube_map") fails.<br>
<br>
</div>We've basically taken a page from Apple's playbook.  See the extension<br>
list at<br>
<a href="https://developer.apple.com/graphicsimaging/opengl/capabilities/" target="_blank">https://developer.apple.com/graphicsimaging/opengl/capabilities/</a>.  They<br>
don't list *anything* that's part of OpenGL 3.2 Core Profile.<br>
<br>
Applications have to specifically request a core profile context, so<br>
we're assuming that they're not going to check for extensions that have<br>
been part of core for years.  We set the cut-off at GL 1.5.  See 0fef911<br>
and the few patches just before it.</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
This has been Mesa behavior for over a year, and we haven't encountered<br>
any application problems.<br>
<div class="im"><br>
> Running with MESA_INFO on I see:<br>
> Mesa: Mesa GL_VERSION = 3.1 (Core Profile) Mesa 9.3.0-devel (git-0398dd3)<br>
> Mesa: Mesa GL_RENDERER = Mesa DRI Intel(R) Ivybridge Server<br>
> Mesa: Mesa GL_VENDOR = Intel Open Source Technology Center<br>
> Mesa: Mesa GL_EXTENSIONS does not contain ARB_texture_cube_map<br>
><br>
> When we run the same test on the NVIDIA closed source driver the test<br>
> does find an ARB_texture_cube_map extension. It also is given a<br>
> compatibility context and not a Core Profile context.<br>
<br>
</div>This will depend on how you set the config.supports_gl_core_version and<br>
config.supports_gl_compat_version values in the test.  I believe the<br>
framework first tries the requested compatibility version.  If that<br>
fails, it tries the requested core version.  We only support up to 3.0<br>
in compatibility profile.<br></blockquote><div> </div><div>The piglit test is setting compatibility and core as:</div><div>        config.supports_gl_compat_version = 13;</div><div><span class="" style="white-space:pre">    </span>config.supports_gl_core_version = 31; </div>
<div><br></div><div>Looks like piglit's make_context_current (piglit_wfl_framework.c) tries the core version first, then compatibility. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
There are quite a few piglit tests that do things like (from<br>
tests/spec/arb_sync/DeleteSync.c):<br>
<br>
        if (piglit_get_gl_version() < 32) {<br>
                piglit_require_extension("GL_ARB_sync");<br>
        }<br></blockquote><div><br></div><div>We'll do this for our tests.</div><div><br></div><div>Thanks! </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

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