From 4d03e5312732c1ad48cc116b03573b7156fdb5da Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 6 Mar 2018 16:35:47 -0800 Subject: [PATCH] intel/isl: Allow CCS_E on more formats Now that BLORP supports copies on everything except R11G11B10_FLOAT, we should be able to support CCS_E those formats. Reviewed-by: Kenneth Graunke Tested-by: Marge Bot Part-of: --- src/intel/isl/isl_format.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index ae6df522359..b7989720aee 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -562,31 +562,12 @@ isl_format_supports_ccs_e(const struct gen_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. - * This allows ISL users to avoid having to resolve the image before - * performing such a copy. We may want to change this behavior in the - * future. - * - * The following formats have no equivalent UINT format. Given how - * blorp_copy currently works, bit-for-bit copy operations are not possible - * without an intermediate resolve. + * 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. */ - switch (format) { - case ISL_FORMAT_R11G11B10_FLOAT: - case ISL_FORMAT_B5G5R5X1_UNORM: - case ISL_FORMAT_B5G5R5X1_UNORM_SRGB: - case ISL_FORMAT_B5G5R5A1_UNORM: - case ISL_FORMAT_B5G5R5A1_UNORM_SRGB: - case ISL_FORMAT_A4B4G4R4_UNORM: - case ISL_FORMAT_B4G4R4A4_UNORM: - case ISL_FORMAT_B4G4R4A4_UNORM_SRGB: - case ISL_FORMAT_B5G6R5_UNORM: - case ISL_FORMAT_B5G6R5_UNORM_SRGB: - case ISL_FORMAT_A1B5G5R5_UNORM: - case ISL_FORMAT_A8_UNORM: + if (format == ISL_FORMAT_R11G11B10_FLOAT) return false; - default: - break; - } return format_gen(devinfo) >= format_info[format].ccs_e; } -- 2.30.2