Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20280>
/* Intra-tile offset */
uint16_t x_offset_sa, y_offset_sa;
+
+ /**
+ * Robust image access enabled
+ *
+ * This is used to turn off a performance workaround.
+ */
+ bool robust_image_access;
};
struct isl_buffer_fill_state_info {
}
#if GFX_VER >= 12
- /* Wa_1806565034: Only set SurfaceArray if arrayed surface is > 1. */
+ /* Wa_1806565034:
+ *
+ * "Only set SurfaceArray if arrayed surface is > 1."
+ *
+ * Since this is a performance workaround, we only enable it when robust
+ * image access is disabled. Otherwise layered robust access is not
+ * specification compliant.
+ */
s.SurfaceArray = info->surf->dim != ISL_SURF_DIM_3D &&
- info->view->array_len > 1;
+ (info->robust_image_access || info->view->array_len > 1);
#elif GFX_VER >= 7
s.SurfaceArray = info->surf->dim != ISL_SURF_DIM_3D;
#endif