mesa: fix software fallback for generating mipmaps for cube arrays
authorMarek Olšák <marek.olsak@amd.com>
Tue, 11 Mar 2014 14:04:33 +0000 (15:04 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 20 Mar 2014 23:50:53 +0000 (00:50 +0100)
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/mipmap.c

index 521b2d8eb0ededb9d828e5526203c39209e0960c..98af0a3a76cf75fc920d7f8e81454cc8b946ba32 100644 (file)
@@ -1746,6 +1746,7 @@ _mesa_generate_mipmap_level(GLenum target,
       }
       break;
    case GL_TEXTURE_2D_ARRAY_EXT:
+   case GL_TEXTURE_CUBE_MAP_ARRAY:
       for (i = 0; i < dstDepth; i++) {
         make_2d_mipmap(datatype, comps, border,
                        srcWidth, srcHeight, srcData[i], srcRowStride,
@@ -1788,7 +1789,8 @@ _mesa_next_mipmap_level_size(GLenum target, GLint border,
    }
 
    if ((srcDepth - 2 * border > 1) &&
-       (target != GL_TEXTURE_2D_ARRAY_EXT)) {
+       (target != GL_TEXTURE_2D_ARRAY_EXT &&
+        target != GL_TEXTURE_CUBE_MAP_ARRAY)) {
       *dstDepth = (srcDepth - 2 * border) / 2 + 2 * border;
    }
    else {
@@ -2029,7 +2031,8 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
    /* only two types of compressed textures at this time */
    assert(texObj->Target == GL_TEXTURE_2D ||
          texObj->Target == GL_TEXTURE_2D_ARRAY ||
-         texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
+         texObj->Target == GL_TEXTURE_CUBE_MAP_ARB ||
+          texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY);
 
    /*
     * Choose a format for the temporary, uncompressed base image.