On Wed, Mar 11, 2015 at 10:01:24AM +0100, Eduardo Lima Mitev wrote:
> Page 68, section 7.2 'Shader Binaries" of the of the OpenGL ES 3.1,
> and page 88 of the OpenGL 4.5 specs state:
> 
>     "An INVALID_VALUE error is generated if count or length is negative.
>      An INVALID_ENUM error is generated if binaryformat is not a supported
>      format returned in SHADER_BINARY_FORMATS."
> 
> Currently, an INVALID_OPERATION error is returned for all cases.
> 
> Fixes 1 dEQP test:
> * dEQP-GLES3.functional.negative_api.shader.shader_binary
> ---
>  src/mesa/main/shaderapi.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
> index 5731d58..49a9c80 100644
> --- a/src/mesa/main/shaderapi.c
> +++ b/src/mesa/main/shaderapi.c
> @@ -1711,7 +1711,20 @@ _mesa_ShaderBinary(GLint n, const GLuint* shaders, 
> GLenum binaryformat,
>     (void) binaryformat;
>     (void) binary;
>     (void) length;
> -   _mesa_error(ctx, GL_INVALID_OPERATION, "glShaderBinary");
> +
> +   /* Page 68, section 7.2 'Shader Binaries" of the of the OpenGL ES 3.1, and
> +    * page 88 of the OpenGL 4.5 specs state:
> +    *
> +    *     "An INVALID_VALUE error is generated if count or length is 
> negative.
> +    *      An INVALID_ENUM error is generated if binaryformat is not a 
> supported
> +    *      format returned in SHADER_BINARY_FORMATS."
> +    */
> +   if (n < 0 || length < 0) {
> +      _mesa_error(ctx, GL_INVALID_VALUE, "glShaderBinary(count or length < 
> 0)");
> +      return;
> +   }
> +
> +   _mesa_error(ctx, GL_INVALID_ENUM, "glShaderBinary(format)");
>  }
>  
>  

Seems like a stupid test, seems like INVALID_ENUM is always the right choice
given the situation...

Anyway, I see this
(https://www.khronos.org/opengles/sdk/docs/man3/html/glShaderBinary.xhtml):

  GL_INVALID_OPERATION is generated if more than one of the handles in shaders
  refers to the same shader object. 

  GL_INVALID_VALUE is generated if the data pointed to by binary does not match
  the format specified by binaryFormat. 

Kinda confused what's right. It doesn't seem to match your implementation.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to