From 1cf6b8d461680d9c4121ba85630a46e844fb8b36 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 14 Apr 2021 13:35:34 +0200 Subject: [PATCH] zink: fall back from cached to non-cached memory This fixes basic rendering on top of V3DV, which doesn't seem to expose the cached memory we expect and love. Fixes: 598dc3dca41 ("zink: use cached memory for all resources when possible") Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_resource.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 57434a8a4d3..5cf4e812fa8 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -187,6 +187,14 @@ get_memory_type_index(struct zink_screen *screen, if (idx >= 0) return idx; + if (props & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) { + /* if no suitable cached memory can be found, fall back + * to non-cached memory instead. + */ + return get_memory_type_index(screen, reqs, + props & ~VK_MEMORY_PROPERTY_HOST_CACHED_BIT); + } + unreachable("Unsupported memory-type"); return 0; }