[Mesa-dev] [PATCH 11/25] glsl: Implement GLSL ES restriction on images being either readonly or writeonly.

Tapani Pälli tapani.palli at intel.com
Wed Aug 19 10:06:04 PDT 2015


Patches 11,12,13:
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 08/17/2015 07:45 PM, Francisco Jerez wrote:
> ---
>   src/glsl/ast_to_hir.cpp | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
>
> diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
> index 4d279f6..ff57ec3 100644
> --- a/src/glsl/ast_to_hir.cpp
> +++ b/src/glsl/ast_to_hir.cpp
> @@ -2469,6 +2469,24 @@ apply_image_qualifier_to_variable(const struct ast_type_qualifier *qual,
>   
>            var->data.image_format = GL_NONE;
>         }
> +
> +      /* From page 70 of the GLSL ES 3.1 specification:
> +       *
> +       * "Except for image variables qualified with the format qualifiers
> +       *  r32f, r32i, and r32ui, image variables must specify either memory
> +       *  qualifier readonly or the memory qualifier writeonly."
> +       */
> +      if (state->es_shader &&
> +          var->data.image_format != GL_R32F &&
> +          var->data.image_format != GL_R32I &&
> +          var->data.image_format != GL_R32UI &&
> +          !var->data.image_read_only &&
> +          !var->data.image_write_only) {
> +         _mesa_glsl_error(loc, state, "image variables of format other than "
> +                          "r32f, r32i or r32ui must be qualified `readonly' or "
> +                          "`writeonly'");
> +      }
> +
>      } else if (qual->flags.q.read_only ||
>                 qual->flags.q.write_only ||
>                 qual->flags.q.coherent ||



More information about the mesa-dev mailing list