isl: Update render CMF mapping (xe2)
Update mapping between render target surface formats and compression formats. Some preexisting correct mappings are also re-ordered to the order of types in the spec for an easier verification (top to bottom and left to right). Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29905>
This commit is contained in:
@@ -204,29 +204,41 @@ isl_get_qpitch(const struct isl_surf *surf)
|
||||
UNUSED static uint8_t
|
||||
isl_get_render_compression_format(enum isl_format format)
|
||||
{
|
||||
/* From the Bspec, Enumeration_UNIFIED_COMPRESSION_FORMAT section (63919): */
|
||||
/* Bspec 63919 (r47142) Enumeration_UNIFIED_COMPRESSION_FORMAT:
|
||||
*
|
||||
* Table "[Enumeration] UNIFIED_COMPRESSION_FORMAT"
|
||||
*/
|
||||
switch(format) {
|
||||
case ISL_FORMAT_R8_UNORM:
|
||||
case ISL_FORMAT_R8_UINT:
|
||||
case ISL_FORMAT_A8_UNORM:
|
||||
case ISL_FORMAT_R8_SNORM:
|
||||
case ISL_FORMAT_R8_SINT:
|
||||
case ISL_FORMAT_A8_UNORM:
|
||||
case ISL_FORMAT_R24_UNORM_X8_TYPELESS:
|
||||
return CMF_R8;
|
||||
case ISL_FORMAT_R8G8_UNORM:
|
||||
case ISL_FORMAT_R8G8_UINT:
|
||||
case ISL_FORMAT_R8G8_SNORM:
|
||||
case ISL_FORMAT_R8G8_SINT:
|
||||
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:
|
||||
return CMF_R8_G8;
|
||||
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:
|
||||
case ISL_FORMAT_R8G8B8A8_SNORM:
|
||||
case ISL_FORMAT_R8G8B8A8_SINT:
|
||||
case ISL_FORMAT_R8G8B8A8_UNORM_SRGB:
|
||||
case ISL_FORMAT_B8G8R8A8_UNORM_SRGB:
|
||||
case ISL_FORMAT_B8G8R8A8_UNORM:
|
||||
case ISL_FORMAT_B8G8R8X8_UNORM:
|
||||
return CMF_R8_G8_B8_A8;
|
||||
case ISL_FORMAT_R10G10B10A2_UNORM:
|
||||
case ISL_FORMAT_R10G10B10A2_UNORM_SRGB:
|
||||
@@ -251,38 +263,57 @@ isl_get_render_compression_format(enum isl_format format)
|
||||
case ISL_FORMAT_R16G16_FLOAT:
|
||||
return CMF_R16_G16;
|
||||
case ISL_FORMAT_R16G16B16A16_UNORM:
|
||||
case ISL_FORMAT_R16G16B16X16_UNORM:
|
||||
case ISL_FORMAT_R16G16B16A16_UINT:
|
||||
case ISL_FORMAT_R16G16B16A16_SNORM:
|
||||
case ISL_FORMAT_R16G16B16A16_SINT:
|
||||
case ISL_FORMAT_R16G16B16A16_FLOAT:
|
||||
case ISL_FORMAT_R16G16B16X16_FLOAT:
|
||||
return CMF_R16_G16_B16_A16;
|
||||
case ISL_FORMAT_R32_UNORM:
|
||||
case ISL_FORMAT_R32_UINT:
|
||||
case ISL_FORMAT_R32_SNORM:
|
||||
case ISL_FORMAT_R32_SINT:
|
||||
case ISL_FORMAT_R32_FLOAT:
|
||||
case ISL_FORMAT_R32_UINT:
|
||||
return CMF_R32;
|
||||
case ISL_FORMAT_R32G32_FLOAT:
|
||||
case ISL_FORMAT_R32G32_SINT:
|
||||
case ISL_FORMAT_R32G32_UNORM:
|
||||
case ISL_FORMAT_R32G32_UINT:
|
||||
case ISL_FORMAT_R32G32_SNORM:
|
||||
case ISL_FORMAT_R32G32_SINT:
|
||||
case ISL_FORMAT_R32G32_FLOAT:
|
||||
return CMF_R32_G32;
|
||||
case ISL_FORMAT_R32G32B32A32_UNORM:
|
||||
case ISL_FORMAT_R32G32B32A32_UINT:
|
||||
case ISL_FORMAT_R32G32B32A32_SNORM:
|
||||
case ISL_FORMAT_R32G32B32A32_SINT:
|
||||
case ISL_FORMAT_R32G32B32A32_FLOAT:
|
||||
case ISL_FORMAT_R32G32B32X32_FLOAT:
|
||||
case ISL_FORMAT_R32G32B32A32_SINT:
|
||||
case ISL_FORMAT_R32G32B32A32_UINT:
|
||||
return CMF_R32_G32_B32_A32;
|
||||
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:
|
||||
case ISL_FORMAT_EAC_R11:
|
||||
case ISL_FORMAT_EAC_RG11:
|
||||
case ISL_FORMAT_EAC_SIGNED_R11:
|
||||
case ISL_FORMAT_EAC_SIGNED_RG11:
|
||||
case ISL_FORMAT_ETC1_RGB8:
|
||||
case ISL_FORMAT_ETC2_RGB8:
|
||||
case ISL_FORMAT_ETC2_SRGB8:
|
||||
case ISL_FORMAT_ETC2_RGB8_PTA:
|
||||
case ISL_FORMAT_ETC2_SRGB8_PTA:
|
||||
case ISL_FORMAT_ETC2_EAC_RGBA8:
|
||||
case ISL_FORMAT_ETC2_EAC_SRGB8_A8:
|
||||
case ISL_FORMAT_BC1_UNORM:
|
||||
case ISL_FORMAT_BC2_UNORM:
|
||||
case ISL_FORMAT_BC3_UNORM:
|
||||
case ISL_FORMAT_BC4_UNORM:
|
||||
case ISL_FORMAT_BC5_UNORM:
|
||||
case ISL_FORMAT_BC1_UNORM_SRGB:
|
||||
case ISL_FORMAT_BC2_UNORM_SRGB:
|
||||
case ISL_FORMAT_BC3_UNORM_SRGB:
|
||||
case ISL_FORMAT_BC4_SNORM:
|
||||
case ISL_FORMAT_BC5_SNORM:
|
||||
case ISL_FORMAT_BC6H_SF16:
|
||||
case ISL_FORMAT_BC7_UNORM:
|
||||
case ISL_FORMAT_BC7_UNORM_SRGB:
|
||||
case ISL_FORMAT_BC6H_UF16:
|
||||
return CMF_ML8;
|
||||
default:
|
||||
unreachable("Unsupported render compression format!");
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user