[Mesa-dev] [PATCH 2/5] mesa/es3.1: Enable ES 3.1 API and shading language version

Tapani tapani.palli at intel.com
Wed May 27 10:36:32 PDT 2015


On 05/26/2015 10:37 PM, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> This is a bit of a hack for now.  Several of the extensions required for
> OpenGL ES 3.1 have no support, at all, in Mesa.  However, with this
> patch and a patch to allow MESA_GL_VERSION_OVERRIDE to work with ES
> contexts, people can begin testing the ES "version" of the functionality
> that is supported.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>   src/mesa/main/getstring.c | 16 ++++++++++++----
>   src/mesa/main/version.c   | 18 +++++++++++++++++-
>   2 files changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
> index 1b2c7f0..72d99ca 100644
> --- a/src/mesa/main/getstring.c
> +++ b/src/mesa/main/getstring.c
> @@ -72,10 +72,18 @@ shading_language_version(struct gl_context *ctx)
>         break;
>   
>      case API_OPENGLES2:
> -      return (ctx->Version < 30)
> -         ? (const GLubyte *) "OpenGL ES GLSL ES 1.0.16"
> -         : (const GLubyte *) "OpenGL ES GLSL ES 3.00";
> -
> +      switch (ctx->Version) {
> +      case 20:
> +         return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";

There's revision 17 (1.0.17) out there, should we have it here or rather 
just 1.0?

> +      case 30:
> +         return (const GLubyte *) "OpenGL ES GLSL ES 3.00";
> +      case 31:
> +         return (const GLubyte *) "OpenGL ES GLSL ES 3.10";
> +      default:
> +         _mesa_problem(ctx,
> +                       "Invalid OpenGL ES version in shading_language_version()");
> +         return (const GLubyte *) 0;
> +      }
>      case API_OPENGLES:
>         /* fall-through */
>   
> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
> index 699a0de..e817e2d 100644
> --- a/src/mesa/main/version.c
> +++ b/src/mesa/main/version.c
> @@ -433,7 +433,23 @@ compute_version_es2(const struct gl_extensions *extensions)
>                            extensions->EXT_texture_snorm &&
>                            extensions->NV_primitive_restart &&
>                            extensions->OES_depth_texture_cube_map);
> -   if (ver_3_0) {
> +   const bool ver_3_1 = (ver_3_0 &&
> +                         extensions->ARB_arrays_of_arrays &&
> +                         extensions->ARB_compute_shader &&
> +                         extensions->ARB_draw_indirect &&
> +                         false /*extensions->ARB_framebuffer_no_attachments*/ &&
> +                         extensions->ARB_shader_atomic_counters &&
> +                         extensions->ARB_shader_image_load_store &&
> +                         false /*extensions->ARB_shader_image_size*/ &&
> +                         false /*extensions->ARB_shader_storage_buffer_object*/ &&
> +                         extensions->ARB_shading_language_packing &&
> +                         extensions->ARB_stencil_texturing &&
> +                         extensions->ARB_gpu_shader5 &&
> +                         extensions->EXT_shader_integer_mix);
> +
> +   if (ver_3_1) {
> +      return 31;
> +   } else if (ver_3_0) {
>         return 30;
>      } else if (ver_2_0) {
>         return 20;



More information about the mesa-dev mailing list