Mesa (main): zink: only infer modifiers if winsys handle has a stride

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 1 02:01:11 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Thu May 26 09:17:44 2022 -0400

zink: only infer modifiers if winsys handle has a stride

if no stride is passed, the image creation will fail, so avoid this case

fixes:
spec at ext_external_objects@vk-image-overwrite

Fixes: d79c716331f ("zink: create images with modifiers any time there is an import handle")

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16722>

---

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

diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index 770b225e2ae..b144ab49d4f 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -606,7 +606,8 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
       bool winsys_modifier = (export_types & VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT) && whandle && whandle->modifier != DRM_FORMAT_MOD_INVALID;
       uint64_t mods[10];
       bool try_modifiers = false;
-      if ((export_types & VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT) && whandle && whandle->modifier == DRM_FORMAT_MOD_INVALID) {
+      if ((export_types & VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT) &&
+          whandle && whandle->modifier == DRM_FORMAT_MOD_INVALID && whandle->stride) {
          modifiers = mods;
          modifiers_count = screen->modifier_props[templ->format].drmFormatModifierCount;
          for (unsigned j = 0; j < modifiers_count; j++)



More information about the mesa-commit mailing list