[Mesa-dev] [PATCH 1/3] mesa: Add _mesa_has_compute_shaders
Ilia Mirkin
imirkin at alum.mit.edu
Fri Feb 13 23:13:01 PST 2015
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)
Cheers,
-ilia
More information about the mesa-dev
mailing list