Mesa (master): zink: add a VkExternalMemoryImageCreateInfo for PIPE_BIND_SHARED images

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jan 25 16:21:03 UTC 2021


Module: Mesa
Branch: master
Commit: b415211ce9c20941eb2b80a7b1b996742d891f2a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b415211ce9c20941eb2b80a7b1b996742d891f2a

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Sep  9 15:16:42 2020 -0400

zink: add a VkExternalMemoryImageCreateInfo for PIPE_BIND_SHARED images

required by spec

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8273>

---

 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;
 



More information about the mesa-commit mailing list