From 8f56228ace6923a488abcf4a8dd3b52e5957f9cb Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 7 Jun 2023 21:21:04 -0400 Subject: [PATCH] zink: only try to create srgb mutable images if the vk format is supported otherwise this is just a regular single-format image cc: mesa-stable Part-of: --- src/gallium/drivers/zink/zink_resource.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 4046996b4aa..d6851178c2e 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -741,14 +741,19 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t VkFormat formats[2]; VkImageFormatListCreateInfo format_list; if (srgb) { - format_list.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO; - format_list.pNext = NULL; - format_list.viewFormatCount = 2; - format_list.pViewFormats = formats; - formats[0] = zink_get_format(screen, templ->format); formats[1] = zink_get_format(screen, srgb); - ici.pNext = &format_list; + /* only use format list if both formats have supported vk equivalents */ + if (formats[0] && formats[1]) { + format_list.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO; + format_list.pNext = NULL; + format_list.viewFormatCount = 2; + format_list.pViewFormats = formats; + + ici.pNext = &format_list; + } else { + ici.pNext = NULL; + } } else { ici.pNext = NULL; }