NOTE: This is a candidate for the stable branches.
---
 src/mesa/state_tracker/st_gen_mipmap.c |   20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_gen_mipmap.c 
b/src/mesa/state_tracker/st_gen_mipmap.c
index 8892006..7e97edd 100644
--- a/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/src/mesa/state_tracker/st_gen_mipmap.c
@@ -129,8 +129,24 @@ compute_num_levels(struct gl_context *ctx,
          _mesa_get_tex_image(ctx, texObj, target, texObj->BaseLevel);
       GLuint size, numLevels;
 
-      size = MAX2(baseImage->Width2, baseImage->Height2);
-      size = MAX2(size, baseImage->Depth2);
+      switch (target) {
+      case GL_TEXTURE_1D:
+      case GL_TEXTURE_1D_ARRAY:
+      case GL_TEXTURE_CUBE_MAP: /* cubemaps are squares, don't check Height2 */
+      case GL_TEXTURE_CUBE_MAP_ARRAY:
+         size = baseImage->Width2;
+         break;
+      case GL_TEXTURE_2D:
+      case GL_TEXTURE_2D_ARRAY:
+         size = MAX2(baseImage->Width2, baseImage->Height2);
+         break;
+      case GL_TEXTURE_3D:
+         size = MAX3(baseImage->Width2, baseImage->Height2, baseImage->Depth2);
+         break;
+      default:
+         assert(0);
+         return 1;
+      }
 
       numLevels = texObj->BaseLevel;
 
-- 
1.7.9.5

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to