From be4f120476cb2b537126d34949f497210cc4586a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 16 Jun 2022 17:55:50 -0400 Subject: [PATCH] zink: be a little selective about BAR fallback memory type some resources MUST be host-visible, so use the appropriate heap for them cc: mesa-stable Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_resource.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index f4e0bb82b84..7c01fd03d2c 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -961,7 +961,10 @@ retry: obj->bo = zink_bo(zink_bo_create(screen, reqs.size, alignment, heap, mai.pNext ? ZINK_ALLOC_NO_SUBALLOC : 0, mai.pNext)); if (!obj->bo) { if (heap == ZINK_HEAP_DEVICE_LOCAL_VISIBLE) { - heap = ZINK_HEAP_DEVICE_LOCAL; + if (templ->flags & PIPE_RESOURCE_FLAG_MAP_COHERENT || templ->usage == PIPE_USAGE_DYNAMIC) + heap = ZINK_HEAP_HOST_VISIBLE_COHERENT; + else + heap = ZINK_HEAP_DEVICE_LOCAL; goto retry; } goto fail2;