From b415211ce9c20941eb2b80a7b1b996742d891f2a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 9 Sep 2020 15:16:42 -0400 Subject: [PATCH] zink: add a VkExternalMemoryImageCreateInfo for PIPE_BIND_SHARED images required by spec Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_resource.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 15b16f1788a..1418ca0bd27 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -171,6 +171,7 @@ resource_create(struct pipe_screen *pscreen, res->format = zink_get_format(screen, templ->format); VkImageCreateInfo ici = {}; + VkExternalMemoryImageCreateInfo emici = {}; ici.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; ici.flags = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; @@ -221,6 +222,12 @@ resource_create(struct pipe_screen *pscreen, ici.tiling = VK_IMAGE_TILING_LINEAR; } + if (templ->bind & PIPE_BIND_SHARED) { + emici.sType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO; + emici.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; + ici.pNext = &emici; + } + if (templ->usage == PIPE_USAGE_STAGING) ici.tiling = VK_IMAGE_TILING_LINEAR;