Mesa (main): zink: use VkImageDrmFormatModifierListCreateInfoEXT for creating from modifier array

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 13 00:32:41 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Apr  9 10:13:53 2021 -0400

zink: use VkImageDrmFormatModifierListCreateInfoEXT for creating from modifier array

Acked-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10782>

---

 src/gallium/drivers/zink/zink_resource.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index b82bc90673a..8ee0f20ef1b 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -541,8 +541,10 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
       VkImageCreateInfo ici = {0};
       uint64_t mod = create_ici(screen, &ici, templ, templ->bind, ici_modifier_count, ici_modifiers, &success);
       VkExternalMemoryImageCreateInfo emici = {0};
+#ifdef ZINK_USE_DMABUF
       VkImageDrmFormatModifierExplicitCreateInfoEXT idfmeci = {0};
-
+      VkImageDrmFormatModifierListCreateInfoEXT idfmlci;
+#endif
       if (!success)
          goto fail1;
 
@@ -575,6 +577,12 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
             idfmeci.pPlaneLayouts = &plane_layout;
 
             ici.pNext = &idfmeci;
+         } else if (ici.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) {
+            idfmlci.sType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
+            idfmlci.pNext = ici.pNext;
+            idfmlci.drmFormatModifierCount = 1;
+            idfmlci.pDrmFormatModifiers = &mod;
+            ici.pNext = &idfmlci;
          } else
 #endif
          if (ici.tiling == VK_IMAGE_TILING_OPTIMAL) {



More information about the mesa-commit mailing list