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