[Mesa-dev] [PATCH 1/3] mesa: Add _mesa_has_compute_shaders

Ilia Mirkin imirkin at alum.mit.edu
Sat Feb 14 09:33:05 PST 2015


On Sat, Feb 14, 2015 at 3:33 AM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> On 2015-02-13 23:13:01, Ilia Mirkin wrote:
>> On Sat, Feb 14, 2015 at 2:02 AM, Ben Widawsky
>> <benjamin.widawsky at intel.com> wrote:
>> > From: Jordan Justen <jordan.l.justen at intel.com>
>> >
>> > Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
>> > Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
>> > ---
>> >  src/mesa/main/context.h | 11 +++++++++++
>> >  1 file changed, 11 insertions(+)
>> >
>> > diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
>> > index d902ea7..69389ae 100644
>> > --- a/src/mesa/main/context.h
>> > +++ b/src/mesa/main/context.h
>> > @@ -326,6 +326,17 @@ _mesa_has_geometry_shaders(const struct gl_context *ctx)
>> >  }
>> >
>> >
>> > +/**
>> > + * Checks if the context supports compute shaders.
>> > + */
>> > +static inline GLboolean
>> > +_mesa_has_compute_shaders(const struct gl_context *ctx)
>> > +{
>> > +   return ctx->Extensions.ARB_compute_shader ||
>> > +      (ctx->API == API_OPENGLES2 && ctx->Version >= 31);
>>
>> This will return true for a driver that has compute shader support but
>> is currently exposing a compat (or GLES1?) context. I guess you want
>> like
>>
>> (API == GLES2 && version >= 31) ||
>> (desktop && version >= 43) ||
>> (API == CORE && extension)
>>
>> This seems a little on the complex side though -- a driver that really
>> supports GLES3.1 or GL4.3 will have that extension bit set -- the only
>> time that wouldn't happen is if someone forces the version. Not sure
>> if that's a case to really worry about...
>>
>> This would be much simpler as
>>
>> extension && (API == GLES2 || API == CORE)
>
> I don't think this would work if you just want to support it for
> ES3.1. Since a driver would have to have the extension for GL4.3, how
> about:
>  (API == GLES2 && version >= 31) ||
>  (API == CORE && extension)

Right... there's no GL ES extension for compute -- silly me. Your
proposal works for me!

Cheers,

  -ilia


More information about the mesa-dev mailing list