mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-04 15:00:36 +01:00
mesa: fix maximum allowed proxy texture size condition
width, height parameter in glTexImage2D() includes: texture image
width + 2 * border (if any). So when doing the texture size check
in _mesa_test_proxy_teximage() width and height should not exceed
maximum supported size for target texture type.
i.e. 1 << (ctx->Const.MaxTextureLevels - 1)
Texture border is anyway stripped out before it is given to intel
or gallium drivers.
This patch fixes Intel oglconform test case: max_values
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44970
Note: This is a candidate for mesa 8.0 branch.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
(cherry picked from commit 15986d21eb)
This commit is contained in:
parent
736f1e53e4
commit
b38640082c
1 changed files with 11 additions and 11 deletions
|
|
@ -1173,7 +1173,7 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
switch (target) {
|
||||
case GL_PROXY_TEXTURE_1D:
|
||||
maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (level >= ctx->Const.MaxTextureLevels)
|
||||
return GL_FALSE;
|
||||
|
|
@ -1185,9 +1185,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
|
||||
case GL_PROXY_TEXTURE_2D:
|
||||
maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (height < 2 * border || height > 2 + maxSize)
|
||||
if (height < 2 * border || height > maxSize)
|
||||
return GL_FALSE;
|
||||
if (level >= ctx->Const.MaxTextureLevels)
|
||||
return GL_FALSE;
|
||||
|
|
@ -1201,11 +1201,11 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
|
||||
case GL_PROXY_TEXTURE_3D:
|
||||
maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (height < 2 * border || height > 2 + maxSize)
|
||||
if (height < 2 * border || height > maxSize)
|
||||
return GL_FALSE;
|
||||
if (depth < 2 * border || depth > 2 + maxSize)
|
||||
if (depth < 2 * border || depth > maxSize)
|
||||
return GL_FALSE;
|
||||
if (level >= ctx->Const.Max3DTextureLevels)
|
||||
return GL_FALSE;
|
||||
|
|
@ -1231,9 +1231,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
|
||||
case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
|
||||
maxSize = 1 << (ctx->Const.MaxCubeTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (height < 2 * border || height > 2 + maxSize)
|
||||
if (height < 2 * border || height > maxSize)
|
||||
return GL_FALSE;
|
||||
if (level >= ctx->Const.MaxCubeTextureLevels)
|
||||
return GL_FALSE;
|
||||
|
|
@ -1247,7 +1247,7 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
|
||||
case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
|
||||
maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (height < 1 || height > ctx->Const.MaxArrayTextureLayers)
|
||||
return GL_FALSE;
|
||||
|
|
@ -1261,9 +1261,9 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
|
|||
|
||||
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
|
||||
maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
|
||||
if (width < 2 * border || width > 2 + maxSize)
|
||||
if (width < 2 * border || width > maxSize)
|
||||
return GL_FALSE;
|
||||
if (height < 2 * border || height > 2 + maxSize)
|
||||
if (height < 2 * border || height > maxSize)
|
||||
return GL_FALSE;
|
||||
if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers)
|
||||
return GL_FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue