[Mesa-dev] [PATCH 05/34] main: Allow for the possibility of GL 3.2 without ARB_geometry_shader4.

Paul Berry stereotype441 at gmail.com
Wed Jul 31 16:21:42 PDT 2013


On 31 July 2013 16:09, Ian Romanick <idr at freedesktop.org> wrote:

> On 07/30/2013 09:25 PM, Kenneth Graunke wrote:
>
>> On 07/30/2013 07:30 PM, Paul Berry wrote:
>>
>>> On 29 July 2013 11:17, Kenneth Graunke <kenneth at whitecape.org
>>> <mailto:kenneth at whitecape.org>**> wrote:
>>>
>>>     On 07/28/2013 11:03 PM, Paul Berry wrote:
>>>
>>>         +/**
>>>         + * Checks if the context supports geometry shaders.
>>>         + */
>>>         +static inline GLboolean
>>>         +_mesa_has_geometry_shaders(**const struct gl_context *ctx)
>>>         +{
>>>         +   return _mesa_is_desktop_gl(ctx) &&
>>>         +      (ctx->Version >= 32 ||
>>> ctx->Extensions.ARB_geometry_**shader4);
>>>         +}
>>>
>>>
>>>     I might change this to:
>>>
>>>     return _mesa_is_desktop_gl(ctx) &&
>>>         (ctx->Const.GLSLVersion >= 150 ||
>>>     ctx->Extensions.ARB_geometry__**_shader4);
>>>
>>>
>>> I have a minor preference for keeping this as is, since it's conceivable
>>> that we might one day want to support GLSL 1.50 on some platforms that
>>> don't support GL 3.2 (much as Chris Forbes is currently doing to support
>>> GLSL 1.30 on Gen4-5).  The places where _mesa_has_geometry_shaders() is
>>> used are for enabling and disabling API functionality (e.g. determining
>>> whether LINES_ADJACENCY is a valid primitive mode, or whether
>>> glFramebufferTexture() is allowed to be called), and I think that in
>>> this hypothetical platform that supports GLSL 1.50 but not GL 3.2, those
>>> pieces of functionality should be disabled.  But I admit I'm straying
>>> pretty far into thought experiment territory at this point.
>>>
>>
>> Sure, I don't really mind keeping it as is.
>>
>> I personally believe that exposing GLSL 1.50 without Geometry Shaders
>> isn't legal, but I know not everyone thinks that way.  Either way, the
>> GL 3.2 check better captures "the API exists" and should be largely
>> equivalent anyway.
>>
>
> Except that we need some way to determine when to enable 3.2 in
> compute_version.  Using either GLSL version or this flag would do it.
>
> We have already encountered at least one application that wants to use
> GLSL 3.30 without geometry shaders (Dota2), so the plan of enabling higher
> GLSL versions without the rest of the core GL version may not be so crazy.
>  However, we might just want to do it for whitelisted apps.
>

Hmm, that's an interesting data point.


>
> *shrug*
>

Yeah, that's kind of how I feel right now too.  At this point I've reworked
my branch to follow Ken's suggestions.  If in the future we decide we want
to switch to the ctx->Const.GeometryShaders150 approach, it will be an easy
change.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130731/b4249860/attachment.html>


More information about the mesa-dev mailing list