pvr: add support for VK_FORMAT_X8_D24_UNORM_PACK32

Fixes many test cases, including:
  dEQP-GLES3.functional.texture.specification.teximage2d_depth.depth_component24
  dEQP-GLES3.functional.fbo.render.shared_depth_stencil.tex2d_rgba8_depth_tex2d_depth_component24

Signed-off-by: Iliyan Dinev <iliyan.dinev@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Iliyan Dinev 2024-06-28 15:06:47 +01:00 committed by Marge Bot
parent 5fa1bb9194
commit 672f738e39
2 changed files with 7 additions and 0 deletions

View file

@ -1646,6 +1646,7 @@ static VkResult pvr_sub_cmd_gfx_job_init(const struct pvr_device_info *dev_info,
break;
case VK_FORMAT_D24_UNORM_S8_UINT:
case VK_FORMAT_X8_D24_UNORM_PACK32:
job->ds.zls_format = ROGUE_CR_ZLS_FORMAT_TYPE_24BITINT;
break;

View file

@ -199,6 +199,8 @@ static const struct pvr_format pvr_format_table[] = {
FORMAT(E5B9G9R9_UFLOAT_PACK32, SE9995, SE9995, INVALID),
/* VK_FORMAT_D16_UNORM = 124. */
FORMAT_DEPTH_STENCIL(D16_UNORM, U16, U16, INVALID),
/* VK_FORMAT_X8_D24_UNORM_PACK32 = 125. */
FORMAT_DEPTH_STENCIL(X8_D24_UNORM_PACK32, X8U24, X8U24, INVALID),
/* VK_FORMAT_D32_SFLOAT = 126. */
FORMAT_DEPTH_STENCIL(D32_SFLOAT, F32, F32, INVALID),
/* VK_FORMAT_S8_UINT = 127. */
@ -262,7 +264,9 @@ static const struct pvr_tex_format_table_entry {
/* 16 */ FORMAT(S16S16, R16G16_SINT, R16G16_SNORM),
/* 17 */ FORMAT(F16F16, NONE, R16G16_FLOAT),
/* 18 */ FORMAT(F32, NONE, R32_FLOAT),
/* 21 */ FORMAT(X8U24, NONE, Z24X8_UNORM),
/* 22 */ FORMAT(ST8U24, Z24_UNORM_S8_UINT, Z24_UNORM_S8_UINT),
/* 23 */ FORMAT(U8X24, X24S8_UINT, NONE),
/* 24 */ FORMAT(U32, R32_UINT, R32_UNORM),
/* 25 */ FORMAT(S32, R32_SINT, R32_SNORM),
/* 26 */ FORMAT(SE9995, NONE, R9G9B9E5_FLOAT),
@ -272,6 +276,8 @@ static const struct pvr_tex_format_table_entry {
/* 34 */ FORMAT(F32F32, NONE, R32G32_FLOAT),
/* 35 */ FORMAT(U32U32, R32G32_UINT, R32G32_UNORM),
/* 36 */ FORMAT(S32S32, R32G32_SINT, R32G32_SNORM),
/* 38 */ FORMAT(X24X8F32, NONE, Z32_FLOAT_S8X24_UINT),
/* 39 */ FORMAT(X24G8X32, X32_S8X24_UINT, NONE),
/* 61 */ FORMAT(F32F32F32F32, NONE, R32G32B32A32_FLOAT),
/* 62 */ FORMAT(U32U32U32U32, R32G32B32A32_UINT, R32G32B32A32_UNORM),
/* 63 */ FORMAT(S32S32S32S32, R32G32B32A32_SINT, R32G32B32A32_SNORM),