diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c index 14ef27f849b..33a83f30230 100644 --- a/src/intel/blorp/blorp_blit.c +++ b/src/intel/blorp/blorp_blit.c @@ -2724,6 +2724,9 @@ get_ccs_compatible_copy_format(const struct isl_format_layout *fmtl) 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 e9745807dee..729feeca817 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -888,11 +888,12 @@ isl_format_supports_ccs_e(const struct intel_device_info *devinfo, /* 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;