diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index c612773a3ed..ea1221148fb 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);