i965/miptree: Set logical_depth0 == 6 for cube maps
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 19 Jul 2016 05:00:30 +0000 (22:00 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 20 Jul 2016 15:19:22 +0000 (08:19 -0700)
This matches what we do for cube maps where logical_depth0 is in number of
face-layers rather than number of cubes.  This does mean that we will
temporarily be setting the surface bounds too loose for cube map textures
but we are already setting them too loose for cube arrays and we will be
fixing that in the next commit anyway.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Cc: "12.0 11.2 11.1" <mesa-stable@lists.freedesktop.org>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 10158fe24f187f9d1b8121c5013f3afced6b3777..1e03f7ef26d6aba582901d50d15bf5c1b0e29678 100644 (file)
@@ -499,10 +499,8 @@ intel_miptree_create_layout(struct brw_context *brw,
       }
    }
 
-   if (target == GL_TEXTURE_CUBE_MAP) {
-      assert(depth0 == 1);
-      depth0 = 6;
-   }
+   if (target == GL_TEXTURE_CUBE_MAP)
+      assert(depth0 == 6);
 
    mt->physical_width0 = width0;
    mt->physical_height0 = height0;
@@ -1036,6 +1034,15 @@ intel_get_image_dims(struct gl_texture_image *image,
       *height = 1;
       *depth = image->Height;
       break;
+   case GL_TEXTURE_CUBE_MAP:
+      /* For Cube maps, the mesa/main api layer gives us a depth of 1 even
+       * though we really have 6 slices.
+       */
+      assert(image->Depth == 1);
+      *width = image->Width;
+      *height = image->Height;
+      *depth = 6;
+      break;
    default:
       *width = image->Width;
       *height = image->Height;