From bb6e8cab79940366922541b0da31bf4857fc9b17 Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Tue, 9 Aug 2022 13:42:00 -0700 Subject: [PATCH] isl: Move isl_get_render_compression_format in isl_genX_helpers.h Signed-off-by: Jordan Justen Reviewed-by: Jianxun Zhang Part-of: --- src/intel/isl/isl.c | 100 ------------------------ src/intel/isl/isl.h | 1 - src/intel/isl/isl_emit_depth_stencil.c | 1 + src/intel/isl/isl_genX_helpers.h | 104 +++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 101 deletions(-) diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index be2e7456995..e8198e8dd07 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -4452,106 +4452,6 @@ isl_format_get_aux_map_encoding(enum isl_format format) } } -/* - * Returns compression format encoding for Unified Lossless Compression - */ -uint8_t -isl_get_render_compression_format(enum isl_format format) -{ - /* From the Bspec, Enumeration_RenderCompressionFormat section (53726): */ - switch(format) { - case ISL_FORMAT_R32G32B32A32_FLOAT: - case ISL_FORMAT_R32G32B32X32_FLOAT: - case ISL_FORMAT_R32G32B32A32_SINT: - return 0x0; - case ISL_FORMAT_R32G32B32A32_UINT: - return 0x1; - case ISL_FORMAT_R32G32_FLOAT: - case ISL_FORMAT_R32G32_SINT: - return 0x2; - case ISL_FORMAT_R32G32_UINT: - return 0x3; - case ISL_FORMAT_R16G16B16A16_UNORM: - case ISL_FORMAT_R16G16B16X16_UNORM: - case ISL_FORMAT_R16G16B16A16_UINT: - return 0x4; - case ISL_FORMAT_R16G16B16A16_SNORM: - case ISL_FORMAT_R16G16B16A16_SINT: - case ISL_FORMAT_R16G16B16A16_FLOAT: - case ISL_FORMAT_R16G16B16X16_FLOAT: - return 0x5; - case ISL_FORMAT_R16G16_UNORM: - case ISL_FORMAT_R16G16_UINT: - return 0x6; - case ISL_FORMAT_R16G16_SNORM: - case ISL_FORMAT_R16G16_SINT: - case ISL_FORMAT_R16G16_FLOAT: - return 0x7; - case ISL_FORMAT_B8G8R8A8_UNORM: - case ISL_FORMAT_B8G8R8X8_UNORM: - case ISL_FORMAT_B8G8R8A8_UNORM_SRGB: - case ISL_FORMAT_B8G8R8X8_UNORM_SRGB: - case ISL_FORMAT_R8G8B8A8_UNORM: - case ISL_FORMAT_R8G8B8X8_UNORM: - case ISL_FORMAT_R8G8B8A8_UNORM_SRGB: - case ISL_FORMAT_R8G8B8X8_UNORM_SRGB: - case ISL_FORMAT_R8G8B8A8_UINT: - return 0x8; - case ISL_FORMAT_R8G8B8A8_SNORM: - case ISL_FORMAT_R8G8B8A8_SINT: - return 0x9; - case ISL_FORMAT_B5G6R5_UNORM: - case ISL_FORMAT_B5G6R5_UNORM_SRGB: - case ISL_FORMAT_B5G5R5A1_UNORM: - case ISL_FORMAT_B5G5R5A1_UNORM_SRGB: - case ISL_FORMAT_B4G4R4A4_UNORM: - case ISL_FORMAT_B4G4R4A4_UNORM_SRGB: - case ISL_FORMAT_B5G5R5X1_UNORM: - case ISL_FORMAT_B5G5R5X1_UNORM_SRGB: - case ISL_FORMAT_A1B5G5R5_UNORM: - case ISL_FORMAT_A4B4G4R4_UNORM: - case ISL_FORMAT_R8G8_UNORM: - case ISL_FORMAT_R8G8_UINT: - return 0xA; - case ISL_FORMAT_R8G8_SNORM: - case ISL_FORMAT_R8G8_SINT: - return 0xB; - case ISL_FORMAT_R10G10B10A2_UNORM: - case ISL_FORMAT_R10G10B10A2_UNORM_SRGB: - case ISL_FORMAT_R10G10B10_FLOAT_A2_UNORM: - case ISL_FORMAT_R10G10B10A2_UINT: - case ISL_FORMAT_B10G10R10A2_UNORM: - case ISL_FORMAT_B10G10R10X2_UNORM: - case ISL_FORMAT_B10G10R10A2_UNORM_SRGB: - return 0xC; - case ISL_FORMAT_R11G11B10_FLOAT: - return 0xD; - case ISL_FORMAT_R32_SINT: - case ISL_FORMAT_R32_FLOAT: - return 0x10; - case ISL_FORMAT_R32_UINT: - case ISL_FORMAT_R24_UNORM_X8_TYPELESS: - return 0x11; - case ISL_FORMAT_R16_UNORM: - case ISL_FORMAT_R16_UINT: - return 0x14; - case ISL_FORMAT_R16_SNORM: - case ISL_FORMAT_R16_SINT: - case ISL_FORMAT_R16_FLOAT: - return 0x15; - case ISL_FORMAT_R8_UNORM: - case ISL_FORMAT_R8_UINT: - case ISL_FORMAT_A8_UNORM: - return 0x18; - case ISL_FORMAT_R8_SNORM: - case ISL_FORMAT_R8_SINT: - return 0x19; - default: - unreachable("Unsupported render compression format!"); - return 0; - } -} - const char * isl_aux_op_to_name(enum isl_aux_op op) { diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index 00b2f083e32..28638015f36 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -2047,7 +2047,6 @@ bool isl_formats_are_ccs_e_compatible(const struct intel_device_info *devinfo, enum isl_format format1, enum isl_format format2); uint8_t isl_format_get_aux_map_encoding(enum isl_format format); -uint8_t isl_get_render_compression_format(enum isl_format format); bool isl_formats_have_same_bits_per_channel(enum isl_format format1, enum isl_format format2); diff --git a/src/intel/isl/isl_emit_depth_stencil.c b/src/intel/isl/isl_emit_depth_stencil.c index 0e66aa5720b..4b7daa4b60e 100644 --- a/src/intel/isl/isl_emit_depth_stencil.c +++ b/src/intel/isl/isl_emit_depth_stencil.c @@ -38,6 +38,7 @@ __gen_combine_address(__attribute__((unused)) void *data, #include "genxml/genX_pack.h" #include "isl_priv.h" +#include "isl_genX_helpers.h" static const uint32_t isl_encode_ds_surftype[] = { #if GFX_VER >= 9 diff --git a/src/intel/isl/isl_genX_helpers.h b/src/intel/isl/isl_genX_helpers.h index f9383af4a8b..6546f5e130d 100644 --- a/src/intel/isl/isl_genX_helpers.h +++ b/src/intel/isl/isl_genX_helpers.h @@ -196,4 +196,108 @@ isl_get_qpitch(const struct isl_surf *surf) } } +#if GFX_VERx10 >= 125 + +/* + * Returns compression format encoding for Unified Lossless Compression + */ +UNUSED static uint8_t +isl_get_render_compression_format(enum isl_format format) +{ + /* From the Bspec, Enumeration_RenderCompressionFormat section (53726): */ + switch(format) { + case ISL_FORMAT_R32G32B32A32_FLOAT: + case ISL_FORMAT_R32G32B32X32_FLOAT: + case ISL_FORMAT_R32G32B32A32_SINT: + return 0x0; + case ISL_FORMAT_R32G32B32A32_UINT: + return 0x1; + case ISL_FORMAT_R32G32_FLOAT: + case ISL_FORMAT_R32G32_SINT: + return 0x2; + case ISL_FORMAT_R32G32_UINT: + return 0x3; + case ISL_FORMAT_R16G16B16A16_UNORM: + case ISL_FORMAT_R16G16B16X16_UNORM: + case ISL_FORMAT_R16G16B16A16_UINT: + return 0x4; + case ISL_FORMAT_R16G16B16A16_SNORM: + case ISL_FORMAT_R16G16B16A16_SINT: + case ISL_FORMAT_R16G16B16A16_FLOAT: + case ISL_FORMAT_R16G16B16X16_FLOAT: + return 0x5; + case ISL_FORMAT_R16G16_UNORM: + case ISL_FORMAT_R16G16_UINT: + return 0x6; + case ISL_FORMAT_R16G16_SNORM: + case ISL_FORMAT_R16G16_SINT: + case ISL_FORMAT_R16G16_FLOAT: + return 0x7; + case ISL_FORMAT_B8G8R8A8_UNORM: + case ISL_FORMAT_B8G8R8X8_UNORM: + case ISL_FORMAT_B8G8R8A8_UNORM_SRGB: + case ISL_FORMAT_B8G8R8X8_UNORM_SRGB: + case ISL_FORMAT_R8G8B8A8_UNORM: + case ISL_FORMAT_R8G8B8X8_UNORM: + case ISL_FORMAT_R8G8B8A8_UNORM_SRGB: + case ISL_FORMAT_R8G8B8X8_UNORM_SRGB: + case ISL_FORMAT_R8G8B8A8_UINT: + return 0x8; + case ISL_FORMAT_R8G8B8A8_SNORM: + case ISL_FORMAT_R8G8B8A8_SINT: + return 0x9; + case ISL_FORMAT_B5G6R5_UNORM: + case ISL_FORMAT_B5G6R5_UNORM_SRGB: + case ISL_FORMAT_B5G5R5A1_UNORM: + case ISL_FORMAT_B5G5R5A1_UNORM_SRGB: + case ISL_FORMAT_B4G4R4A4_UNORM: + case ISL_FORMAT_B4G4R4A4_UNORM_SRGB: + case ISL_FORMAT_B5G5R5X1_UNORM: + case ISL_FORMAT_B5G5R5X1_UNORM_SRGB: + case ISL_FORMAT_A1B5G5R5_UNORM: + case ISL_FORMAT_A4B4G4R4_UNORM: + case ISL_FORMAT_R8G8_UNORM: + case ISL_FORMAT_R8G8_UINT: + return 0xA; + case ISL_FORMAT_R8G8_SNORM: + case ISL_FORMAT_R8G8_SINT: + return 0xB; + case ISL_FORMAT_R10G10B10A2_UNORM: + case ISL_FORMAT_R10G10B10A2_UNORM_SRGB: + case ISL_FORMAT_R10G10B10_FLOAT_A2_UNORM: + case ISL_FORMAT_R10G10B10A2_UINT: + case ISL_FORMAT_B10G10R10A2_UNORM: + case ISL_FORMAT_B10G10R10X2_UNORM: + case ISL_FORMAT_B10G10R10A2_UNORM_SRGB: + return 0xC; + case ISL_FORMAT_R11G11B10_FLOAT: + return 0xD; + case ISL_FORMAT_R32_SINT: + case ISL_FORMAT_R32_FLOAT: + return 0x10; + case ISL_FORMAT_R32_UINT: + case ISL_FORMAT_R24_UNORM_X8_TYPELESS: + return 0x11; + case ISL_FORMAT_R16_UNORM: + case ISL_FORMAT_R16_UINT: + return 0x14; + case ISL_FORMAT_R16_SNORM: + case ISL_FORMAT_R16_SINT: + case ISL_FORMAT_R16_FLOAT: + return 0x15; + case ISL_FORMAT_R8_UNORM: + case ISL_FORMAT_R8_UINT: + case ISL_FORMAT_A8_UNORM: + return 0x18; + case ISL_FORMAT_R8_SNORM: + case ISL_FORMAT_R8_SINT: + return 0x19; + default: + unreachable("Unsupported render compression format!"); + return 0; + } +} + +#endif /* #if GFX_VERx10 >= 125 */ + #endif