Mesa (main): zink: always use slab allocation placement for domains

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 17 23:18:06 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Nov 17 16:41:34 2021 -0500

zink: always use slab allocation placement for domains

this allows the actual bo to have its memory type changed if necessary

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

---

 src/gallium/drivers/zink/zink_bo.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_bo.c b/src/gallium/drivers/zink/zink_bo.c
index a928053e0fc..862369ec2ec 100644
--- a/src/gallium/drivers/zink/zink_bo.c
+++ b/src/gallium/drivers/zink/zink_bo.c
@@ -826,7 +826,6 @@ static struct pb_slab *
 bo_slab_alloc(void *priv, unsigned heap, unsigned entry_size, unsigned group_index, bool encrypted)
 {
    struct zink_screen *screen = priv;
-   VkMemoryPropertyFlags domains = vk_domain_from_heap(heap);
    uint32_t base_id;
    unsigned slab_size = 0;
    struct zink_slab *slab = CALLOC_STRUCT(zink_slab);
@@ -895,7 +894,6 @@ bo_slab_alloc(void *priv, unsigned heap, unsigned entry_size, unsigned group_ind
       bo->base.size = entry_size;
       bo->base.vtbl = &bo_slab_vtbl;
       bo->offset = slab->buffer->offset + i * entry_size;
-      bo->base.placement = domains;
       bo->unique_id = base_id + i;
       bo->u.slab.entry.slab = &slab->base;
       bo->u.slab.entry.group_index = group_index;
@@ -909,6 +907,7 @@ bo_slab_alloc(void *priv, unsigned heap, unsigned entry_size, unsigned group_ind
          bo->u.slab.real = slab->buffer->u.slab.real;
          assert(bo->u.slab.real->mem);
       }
+      bo->base.placement = bo->u.slab.real->base.placement;
 
       list_addtail(&bo->u.slab.entry.head, &slab->base.free);
    }



More information about the mesa-commit mailing list