[Mesa-dev] [PATCH 1/2] mesa: GLES specifies restrictions on uniform matrix transpose.

Ian Romanick idr at freedesktop.org
Mon May 14 11:46:15 PDT 2012


On 05/14/2012 04:56 AM, Oliver McFadden wrote:
> GL_INVALID_VALUE is generated if transpose is not GL_FALSE.
>
> http://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml
>
> Signed-off-by: Oliver McFadden<oliver.mcfadden at linux.intel.com>
> ---
>   src/mesa/main/uniform_query.cpp |   10 ++++++++++
>   1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
> index da41ee8..e8bdab2 100644
> --- a/src/mesa/main/uniform_query.cpp
> +++ b/src/mesa/main/uniform_query.cpp
> @@ -782,6 +782,16 @@ _mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg,
>         return;
>      }
>
> +   /* GL_INVALID_VALUE is generated if `transpose' is not GL_FALSE.
> +    * http://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml */

We usually do this sort of thing by quoting the text from the actual 
spec.  I usually format these comments in a specific way to make it 
easier to search for them in my editor. :)

     /* Page 37 (page 47 of the PDF) of the OpenGL ES 2.0.25 spec says:
      *
      *     "The matrix is specified in column-major order. transpose
      *     must be FALSE."
      */

> +   if (ctx->API == API_OPENGLES || ctx->API == API_OPENGLES2) {
> +      if (bool(transpose)) {
> +	      _mesa_error(ctx, GL_INVALID_VALUE,
> +			  "glUniformMatrix(matrix transpose is not GL_FALSE)");
> +	      return;
> +      }
> +   }
> +
>      if (ctx->Shader.Flags&  GLSL_UNIFORMS) {
>         log_uniform(values, GLSL_TYPE_FLOAT, components, vectors, count,
>   		  bool(transpose), shProg, location, uni);


More information about the mesa-dev mailing list