mesa/getteximage: Add validation of target to glGetTextureImage
authorEduardo Lima Mitev <elima@igalia.com>
Wed, 23 Nov 2016 13:09:59 +0000 (14:09 +0100)
committerEduardo Lima Mitev <elima@igalia.com>
Thu, 24 Nov 2016 07:24:07 +0000 (08:24 +0100)
commit116fed80ff1e65802ecf0244a10a68b83e979258
treebc716287afed1840d3f39fd226c477083b19fed9
parent89cbe0d21f8ed47f992b04b4a5595c4801d2b397
mesa/getteximage: Add validation of target to glGetTextureImage

There is an specific list of texture targets that can be used with
glGetTextureImage. From OpenGL 4.5 spec, section '8.11 Texture Queries',
page 234 of the PDF:

   "An INVALID_ENUM error is generated if the effective target is
    not one of TEXTURE_1D , TEXTURE_2D , TEXTURE_3D , TEXTURE_1D_-
    ARRAY , TEXTURE_2D_ARRAY , TEXTURE_CUBE_MAP_ARRAY , TEXTURE_-
    RECTANGLE , one of the targets from table 8.19 (for GetTexImage
    and GetnTexImage only), or TEXTURE_CUBE_MAP (for GetTextureImage
    only)."

We are currently not validating the target for glGetTextureImage. As
an example, calling this function on a texture with target
GL_TEXTURE_2D_MULTISAMPLE should return INVALID_ENUM, but instead it
hits an assertion down the road in the i965 driver.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/mesa/main/texgetimage.c