Mesa (main): zink: add a LINEAR drm modifier if rebinding to add dmabuf export

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 11 01:43:41 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Apr 29 11:01:49 2022 -0400

zink: add a LINEAR drm modifier if rebinding to add dmabuf export

this needs to have some kind of modifier, so be conservative here

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

---

 src/gallium/drivers/zink/zink_resource.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index 0c3c67870c4..a31173a3ea0 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -1027,6 +1027,11 @@ add_resource_bind(struct zink_context *ctx, struct zink_resource *res, unsigned
    zink_resource_image_barrier(ctx, res, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 0, 0);
    res->base.b.bind |= bind;
    struct zink_resource_object *old_obj = res->obj;
+   if (bind & ZINK_BIND_DMABUF && !res->modifiers_count) {
+      res->modifiers_count = 1;
+      res->modifiers = malloc(res->modifiers_count * sizeof(uint64_t));
+      res->modifiers[0] = DRM_FORMAT_MOD_LINEAR;
+   }
    struct zink_resource_object *new_obj = resource_object_create(screen, &res->base.b, NULL, &res->optimal_tiling, res->modifiers, res->modifiers_count, NULL);
    if (!new_obj) {
       debug_printf("new backing resource alloc failed!");



More information about the mesa-commit mailing list