intel: Allow CCS_E on R11G11B10_FLOAT for TGL+
We now support blorp_copy with this format.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19937>
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index 14ef27f..33a83f3 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -2724,6 +2724,9 @@
case ISL_FORMAT_R32_SNORM:
return ISL_FORMAT_R32_UINT;
+ case ISL_FORMAT_R11G11B10_FLOAT:
+ return ISL_FORMAT_R32_UINT;
+
case ISL_FORMAT_B10G10R10A2_UNORM:
case ISL_FORMAT_B10G10R10A2_UNORM_SRGB:
case ISL_FORMAT_R10G10B10A2_UNORM:
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
index e974580..729feec 100644
--- a/src/intel/isl/isl_format.c
+++ b/src/intel/isl/isl_format.c
@@ -888,11 +888,12 @@
/* For simplicity, only report that a format supports CCS_E if blorp can
* perform bit-for-bit copies with an image of that format while compressed.
- * Unfortunately, R11G11B10_FLOAT is in a compression class of its own and
- * there is no way to copy to/from it which doesn't potentially loose data
- * if one of the bit patterns being copied isn't valid finite floats.
+ * Unfortunately, R11G11B10_FLOAT is in a compression class of its own, and
+ * on ICL, there is no way to copy to/from it which doesn't potentially
+ * loose data if one of the bit patterns being copied isn't valid finite
+ * floats.
*/
- if (format == ISL_FORMAT_R11G11B10_FLOAT)
+ if (devinfo->ver == 11 && format == ISL_FORMAT_R11G11B10_FLOAT)
return false;
return devinfo->verx10 >= format_info[format].ccs_e;