From c56a10049419401f3b28dc74d18bf6ecb82081b2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 6 May 2021 09:52:08 -0400 Subject: [PATCH] zink: avoid caching visible vram allocations the visible vram heap is potentially going to be limited in size, so avoid caching these allocations since that locks them to a given allocation size Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_resource.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index c612773..ea12211 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -537,7 +537,9 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t mai.pNext = &memory_wsi_info; } - if (!mai.pNext && !(templ->flags & (PIPE_RESOURCE_FLAG_MAP_COHERENT | PIPE_RESOURCE_FLAG_SPARSE))) { + /* don't cache visible vram because it's more likely to be limited */ + VkMemoryPropertyFlags visible_vram = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + if (!mai.pNext && !(templ->flags & (PIPE_RESOURCE_FLAG_MAP_COHERENT | PIPE_RESOURCE_FLAG_SPARSE)) && ((flags & visible_vram) != visible_vram)) { obj->mkey.reqs = reqs; obj->mkey.flags = flags; obj->mem_hash = mem_hash(&obj->mkey); -- 2.7.4