On 2015-02-13 23:13:01, Ilia Mirkin wrote: > On Sat, Feb 14, 2015 at 2:02 AM, Ben Widawsky > <[email protected]> wrote: > > From: Jordan Justen <[email protected]> > > > > Signed-off-by: Jordan Justen <[email protected]> > > Reviewed-by: Ben Widawsky <[email protected]> > > --- > > 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) -Jordan _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
