mesa: Fix error returned by glCopyTexImage2D() upon an invalid internal format
authorEduardo Lima Mitev <elima@igalia.com>
Wed, 29 Jul 2015 14:01:28 +0000 (16:01 +0200)
committerEduardo Lima Mitev <elima@igalia.com>
Wed, 5 Aug 2015 06:20:16 +0000 (08:20 +0200)
commit4b07e9a033ddb6733eba206b5bd47a2373756f7d
tree2a18bf3cc9d752442feee83c2cbc2c93b1b851b6
parent5d64cae8427b090c42d6d38da7fb474b3ddd4eb0
mesa: Fix error returned by glCopyTexImage2D() upon an invalid internal format

Page 161 of the OpenGL-ES 3.1 (PDF) spec, and page 207 of the OpenGL 4.5 (PDF),
both on section '8.6. ALTERNATE TEXTURE IMAGE SPECIFICATION COMMANDS', states:

    "An INVALID_ENUM error is generated if an invalid value is specified for
     internalformat".

It is currently returning INVALID_OPERATION error because
_mesa_get_read_renderbuffer_for_format() is called before the internalformat
argument has been validated. To fix this, we move this call down the validation
process, after _mesa_base_tex_format() has been called. _mesa_base_tex_format()
effectively serves as a validator for the internal format.

Fixes 1 dEQP test:
* dEQP-GLES3.functional.negative_api.texture.copyteximage2d_invalid_format

Fixes 1 piglit test:
* spec@oes_compressed_etc1_rgb8_texture@basic

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: 10.6 <mesa-stable@lists.freedesktop.org>
src/mesa/main/teximage.c