From 32e43fe77cc6c76df621ecbb8869755967cf4ff7 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 20 May 2024 16:13:35 +0200 Subject: [PATCH] ac,radv,radeonsi: add helper to know if a format is supported by DB Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_formats.c | 6 ++++++ src/amd/common/ac_formats.h | 3 +++ src/amd/vulkan/radv_formats.c | 2 +- src/gallium/drivers/radeonsi/si_state.c | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/amd/common/ac_formats.c b/src/amd/common/ac_formats.c index 427ab8eb1aa..74c0e4e9af2 100644 --- a/src/amd/common/ac_formats.c +++ b/src/amd/common/ac_formats.c @@ -445,3 +445,9 @@ ac_translate_dbformat(enum pipe_format format) return V_028040_Z_INVALID; } } + +bool +ac_is_zs_format_supported(enum pipe_format format) +{ + return ac_translate_dbformat(format) != V_028040_Z_INVALID; +} diff --git a/src/amd/common/ac_formats.h b/src/amd/common/ac_formats.h index e11c16a9b7d..761e052c624 100644 --- a/src/amd/common/ac_formats.h +++ b/src/amd/common/ac_formats.h @@ -49,6 +49,9 @@ ac_colorformat_endian_swap(uint32_t colorformat); uint32_t ac_translate_dbformat(enum pipe_format format); +bool +ac_is_zs_format_supported(enum pipe_format format); + #ifdef __cplusplus } #endif diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index 4a832efc5c5..92114359d4c 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -470,7 +470,7 @@ radv_is_zs_format_supported(VkFormat format) if (format == VK_FORMAT_D24_UNORM_S8_UINT || format == VK_FORMAT_X8_D24_UNORM_PACK32) return false; - return ac_translate_dbformat(vk_format_to_pipe_format(format)) != V_028040_Z_INVALID || format == VK_FORMAT_S8_UINT; + return ac_is_zs_format_supported(vk_format_to_pipe_format(format)) || format == VK_FORMAT_S8_UINT; } static bool diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index d01a77d97dc..b3c91d6d58e 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -2461,7 +2461,7 @@ static bool si_is_zs_format_supported(enum pipe_format format) if (format == PIPE_FORMAT_Z16_UNORM_S8_UINT) return false; - return ac_translate_dbformat(format) != V_028040_Z_INVALID; + return ac_is_zs_format_supported(format); } static bool si_is_format_supported(struct pipe_screen *screen, enum pipe_format format,