intel/isl: Assert that we don't use CCS for storage images
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 1 Feb 2017 22:34:27 +0000 (14:34 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 2 Feb 2017 21:33:43 +0000 (13:33 -0800)
I enabled CCS for storage images in the Vulkan driver and ran it through
the CTS.  It didn't result in any hangs but it demonstrated that the data
port cannot handle CCS.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/intel/isl/isl_surface_state.c

index c7b220b73fbde1e67c223fc8131a5ac8191bf9dd..29ec289a5d91b95822227056aaad7098692c369e 100644 (file)
@@ -537,6 +537,12 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
 
 #if GEN_GEN >= 7
    if (info->aux_surf && info->aux_usage != ISL_AUX_USAGE_NONE) {
+      /* The docs don't appear to say anything whatsoever about compression
+       * and the data port.  Testing seems to indicate that the data port
+       * completely ignores the AuxiliarySurfaceMode field.
+       */
+      assert(!(info->view->usage & ISL_SURF_USAGE_STORAGE_BIT));
+
       struct isl_tile_info tile_info;
       isl_surf_get_tile_info(dev, info->aux_surf, &tile_info);
       uint32_t pitch_in_tiles =