panvk: Temporarily disable VK_FORMAT_D32_SFLOAT_S8_UINT on Valhall

Valhall doesn't support interleaved D32_S8X24 so let's not advertise
this format for now. Ultimately, we want to support it as a
multi-plane D32 + S8 format, and we probably want to switch Bifrost
to this layout too.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Tested-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31165>
This commit is contained in:
Boris Brezillon 2024-09-13 15:48:32 +02:00 committed by Marge Bot
parent 7dc350ad76
commit b40ec57e36

View file

@ -963,6 +963,18 @@ get_format_properties(struct panvk_physical_device *physical_device,
{
VkFormatFeatureFlags tex = 0, buffer = 0;
enum pipe_format pfmt = vk_format_to_pipe_format(format);
unsigned arch = pan_arch(physical_device->kmod.props.gpu_prod_id);
/* FIXME: Valhall doesn't support interleaved D32_S8X24. Implement it as
* a multi-plane format, and we probably want to switch Bifrost to this
* layout too, since:
* - it's more cache-friendly (you load more samples on a cache-line if you don't
* have those 24 dummy bits)
* - it takes less memory (you don't lose those 24bits per texel)
* - we can use AFBC
*/
if (arch >= 9 && format == VK_FORMAT_D32_SFLOAT_S8_UINT)
goto end;
if (pfmt == PIPE_FORMAT_NONE)
goto end;