mesa: RGB9_E5 invalid for CopyTexSubImage* in GLES

According to OpenGL ES 3.2, section 8.6, CopyTexSubImage* should return
an INVALID_OPERATION if the internalformat of the texture is RGB9_E5.

This fixes
dEQP-GLES31.functional.debug.negative_coverage.*.copytexsubimage2d_texture_internalformat.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
Juan A. Suarez Romero 2018-03-14 17:09:34 +00:00
parent 5e51f72374
commit 705a6446b4

View file

@ -2623,6 +2623,20 @@ copytexsubimage_error_check(struct gl_context *ctx, GLuint dimensions,
return GL_TRUE;
}
/* From OpenGL ES 3.2 spec, section 8.6:
*
* "An INVALID_OPERATION error is generated by CopyTexSubImage3D,
* CopyTexImage2D, or CopyTexSubImage2D if the internalformat of the
* texture image being (re)specified is RGB9_E5"
*/
if (texImage->InternalFormat == GL_RGB9_E5 &&
!_mesa_is_desktop_gl(ctx)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"%s(invalid internal format %s)", caller,
_mesa_enum_to_string(texImage->InternalFormat));
return GL_TRUE;
}
if (!_mesa_source_buffer_exists(ctx, texImage->_BaseFormat)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"%s(missing readbuffer, format=%s)", caller,