diff options
Diffstat (limited to 'pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch')
-rw-r--r-- | pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch b/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch deleted file mode 100644 index 5466ffc90858..000000000000 --- a/pkgs/development/libraries/mesa-darwin/patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 9cf1afbf8ae87ddbb29b24a0f9f2724e9e2935c1 Mon Sep 17 00:00:00 2001 -From: Brian Paul <brianp@vmware.com> -Date: Tue, 4 Sep 2012 20:17:15 -0600 -Subject: [PATCH 03/13] mesa: fix per-level max texture size error checking -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a long-standing omission in Mesa's texture image size checking. -We need to take the mipmap level into consideration when checking if the -width, height and depth are too large. - -Fixes the new piglit max-texture-size-level test. -Thanks to Stéphane Marchesin for finding this problem. - -Note: This is a candidate for the stable branches. - -Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> -(cherry picked from commit 771e7b6d884bb4294a89f276a904d90b28efb90a) ---- - src/mesa/main/teximage.c | 36 +++++++++++++++++++++--------------- - 1 file changed, 21 insertions(+), 15 deletions(-) - -diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c -index 3aecc0f..ed22fa9 100644 ---- a/src/mesa/main/teximage.c -+++ b/src/mesa/main/teximage.c -@@ -1251,11 +1251,12 @@ _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 * border + maxSize) -- return GL_FALSE; - if (level >= ctx->Const.MaxTextureLevels) - return GL_FALSE; -+ maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); /* level zero size */ -+ maxSize >>= level; /* level size */ -+ if (width < 2 * border || width > 2 * border + maxSize) -+ return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; -@@ -1263,13 +1264,14 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, - return GL_TRUE; - - case GL_PROXY_TEXTURE_2D: -+ if (level >= ctx->Const.MaxTextureLevels) -+ return GL_FALSE; - maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); -+ maxSize >>= level; - if (width < 2 * border || width > 2 * border + maxSize) - return GL_FALSE; - if (height < 2 * border || height > 2 * border + maxSize) - return GL_FALSE; -- if (level >= ctx->Const.MaxTextureLevels) -- return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; -@@ -1279,15 +1281,16 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, - return GL_TRUE; - - case GL_PROXY_TEXTURE_3D: -+ if (level >= ctx->Const.Max3DTextureLevels) -+ return GL_FALSE; - maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1); -+ maxSize >>= level; - if (width < 2 * border || width > 2 * border + maxSize) - return GL_FALSE; - if (height < 2 * border || height > 2 * border + maxSize) - return GL_FALSE; - if (depth < 2 * border || depth > 2 * border + maxSize) - return GL_FALSE; -- if (level >= ctx->Const.Max3DTextureLevels) -- return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; -@@ -1299,23 +1302,24 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, - return GL_TRUE; - - case GL_PROXY_TEXTURE_RECTANGLE_NV: -+ if (level != 0) -+ return GL_FALSE; - maxSize = ctx->Const.MaxTextureRectSize; - if (width < 0 || width > maxSize) - return GL_FALSE; - if (height < 0 || height > maxSize) - return GL_FALSE; -- if (level != 0) -- return GL_FALSE; - return GL_TRUE; - - case GL_PROXY_TEXTURE_CUBE_MAP_ARB: -+ if (level >= ctx->Const.MaxCubeTextureLevels) -+ return GL_FALSE; - maxSize = 1 << (ctx->Const.MaxCubeTextureLevels - 1); -+ maxSize >>= level; - if (width < 2 * border || width > 2 * border + maxSize) - return GL_FALSE; - if (height < 2 * border || height > 2 * border + maxSize) - return GL_FALSE; -- if (level >= ctx->Const.MaxCubeTextureLevels) -- return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; -@@ -1325,13 +1329,14 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, - return GL_TRUE; - - case GL_PROXY_TEXTURE_1D_ARRAY_EXT: -+ if (level >= ctx->Const.MaxTextureLevels) -+ return GL_FALSE; - maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); -+ maxSize >>= level; - if (width < 2 * border || width > 2 * border + maxSize) - return GL_FALSE; - if (height < 1 || height > ctx->Const.MaxArrayTextureLayers) - return GL_FALSE; -- if (level >= ctx->Const.MaxTextureLevels) -- return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; -@@ -1339,15 +1344,16 @@ _mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, - return GL_TRUE; - - case GL_PROXY_TEXTURE_2D_ARRAY_EXT: -+ if (level >= ctx->Const.MaxTextureLevels) -+ return GL_FALSE; - maxSize = 1 << (ctx->Const.MaxTextureLevels - 1); -+ maxSize >>= level; - if (width < 2 * border || width > 2 * border + maxSize) - return GL_FALSE; - if (height < 2 * border || height > 2 * border + maxSize) - return GL_FALSE; - if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers) - return GL_FALSE; -- if (level >= ctx->Const.MaxTextureLevels) -- return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; --- -1.9.2 - |