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:
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user