intel/blorp/gen4: Drop cube map flag for single face copy
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Fri, 7 Jul 2017 08:33:12 +0000 (11:33 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Tue, 18 Jul 2017 18:36:13 +0000 (21:36 +0300)
This will falsely trigger an assert on number of layers once
isl is used for 3D layouts of Gen4 cube maps.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp_blit.c

index 0850473..973e3ef 100644 (file)
@@ -1420,6 +1420,12 @@ blorp_surf_convert_to_single_slice(const struct isl_device *isl_dev,
    uint32_t tile_x_px, tile_y_px;
    surf_get_intratile_offset_px(info, &tile_x_px, &tile_y_px);
 
+   /* Even for cube maps there will be only single face, therefore drop the
+    * corresponding flag if present.
+    */
+   const isl_surf_usage_flags_t without_cube_map_flag =
+      info->surf.usage & (~ISL_SURF_USAGE_CUBE_BIT);
+
    struct isl_surf_init_info init_info = {
       .dim = ISL_SURF_DIM_2D,
       .format = info->surf.format,
@@ -1430,7 +1436,7 @@ blorp_surf_convert_to_single_slice(const struct isl_device *isl_dev,
       .array_len = 1,
       .samples = info->surf.samples,
       .row_pitch = info->surf.row_pitch,
-      .usage = info->surf.usage,
+      .usage = without_cube_map_flag,
       .tiling_flags = 1 << info->surf.tiling,
    };