From: Ian Romanick Date: Wed, 18 Dec 2013 22:38:16 +0000 (-0800) Subject: mesa: Validate internalFormat with target in glTexStorage paths X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=af0b34783e4e4f2a5d03444738a785f15bbb755b;p=mesa.git mesa: Validate internalFormat with target in glTexStorage paths Fixes the glTexStorage3D failure in ext_packed_depth_stencil-depth-stencil-texture and oes_packed_depth_stencil-depth-stencil-texture_gles2. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 0ba3cd29ff1..5bbcae37103 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2013,7 +2013,9 @@ _mesa_legal_texture_base_format_for_target(struct gl_context *ctx, target != GL_PROXY_TEXTURE_2D_ARRAY && target != GL_TEXTURE_RECTANGLE_ARB && target != GL_PROXY_TEXTURE_RECTANGLE_ARB && - !((_mesa_is_cube_face(target) || target == GL_PROXY_TEXTURE_CUBE_MAP) && + !((_mesa_is_cube_face(target) || + target == GL_TEXTURE_CUBE_MAP || + target == GL_PROXY_TEXTURE_CUBE_MAP) && (ctx->Version >= 30 || ctx->Extensions.EXT_gpu_shader4 || (ctx->API == API_OPENGLES2 && ctx->Extensions.OES_depth_texture_cube_map))) && !((target == GL_TEXTURE_CUBE_MAP_ARRAY || diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c index 22208572f51..c1d2a5a6b77 100644 --- a/src/mesa/main/texstorage.c +++ b/src/mesa/main/texstorage.c @@ -332,6 +332,11 @@ tex_storage_error_check(struct gl_context *ctx, GLuint dims, GLenum target, return GL_TRUE; } + /* additional checks for depth textures */ + if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat, + dims, "glTexStorage")) + return GL_TRUE; + return GL_FALSE; }