intel/isl: Allow non-2D CCS surfaces
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 27 Oct 2016 05:56:53 +0000 (22:56 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 17 Nov 2016 20:03:24 +0000 (12:03 -0800)
The CCS calculations in ISL are already correct for 1-D and 3-D CCS
surfaces since they have exactly the same layout as 2-D array surfaces (at
least on Sky Lake).  The only problem was that we weren't passing in the
right dimensionality and we weren't passing in the depth.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/isl/isl.c

index 4d85c3b97fb7da5a2ec84083b825061a7614b657..82ab68dc65af952788b7cc3c0e0547cf508b6e1f 100644 (file)
@@ -1492,11 +1492,11 @@ isl_surf_get_ccs_surf(const struct isl_device *dev,
    }
 
    isl_surf_init(dev, ccs_surf,
-                 .dim = ISL_SURF_DIM_2D,
+                 .dim = surf->dim,
                  .format = ccs_format,
                  .width = surf->logical_level0_px.width,
                  .height = surf->logical_level0_px.height,
-                 .depth = 1,
+                 .depth = surf->logical_level0_px.depth,
                  .levels = surf->levels,
                  .array_len = surf->logical_level0_px.array_len,
                  .samples = 1,