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>
This commit is contained in:
Nanley Chery
2022-11-21 13:58:12 -08:00
committed by Marge Bot
parent e862626031
commit e4e4ba2304
2 changed files with 8 additions and 4 deletions
+3
View File
@@ -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:
+5 -4
View File
@@ -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;