mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-29 07:20:23 +01:00
zink: add ZINK_HEAP_DEVICE_LOCAL_LAZY
this is for lazily allocated resources Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
This commit is contained in:
parent
584d705dd7
commit
de3931cda7
2 changed files with 10 additions and 2 deletions
|
|
@ -32,6 +32,7 @@
|
|||
#include "zink_batch.h"
|
||||
|
||||
#define VK_VIS_VRAM (VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)
|
||||
#define VK_LAZY_VRAM (VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)
|
||||
enum zink_resource_access {
|
||||
ZINK_RESOURCE_ACCESS_READ = 1,
|
||||
ZINK_RESOURCE_ACCESS_WRITE = 32,
|
||||
|
|
@ -42,6 +43,7 @@ enum zink_resource_access {
|
|||
enum zink_heap {
|
||||
ZINK_HEAP_DEVICE_LOCAL,
|
||||
ZINK_HEAP_DEVICE_LOCAL_SPARSE,
|
||||
ZINK_HEAP_DEVICE_LOCAL_LAZY,
|
||||
ZINK_HEAP_DEVICE_LOCAL_VISIBLE,
|
||||
ZINK_HEAP_HOST_VISIBLE_COHERENT,
|
||||
ZINK_HEAP_HOST_VISIBLE_CACHED,
|
||||
|
|
@ -128,6 +130,9 @@ vk_domain_from_heap(enum zink_heap heap)
|
|||
case ZINK_HEAP_DEVICE_LOCAL_SPARSE:
|
||||
domains = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
|
||||
break;
|
||||
case ZINK_HEAP_DEVICE_LOCAL_LAZY:
|
||||
domains = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
|
||||
break;
|
||||
case ZINK_HEAP_DEVICE_LOCAL_VISIBLE:
|
||||
domains = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1961,8 +1961,11 @@ zink_internal_create_screen(const struct pipe_screen_config *config)
|
|||
/* not found: use compatible heap */
|
||||
if (screen->heap_map[i] == UINT8_MAX) {
|
||||
/* only cached mem has a failure case for now */
|
||||
assert(i == ZINK_HEAP_HOST_VISIBLE_CACHED);
|
||||
screen->heap_map[i] = screen->heap_map[ZINK_HEAP_HOST_VISIBLE_COHERENT];
|
||||
assert(i == ZINK_HEAP_HOST_VISIBLE_CACHED || i == ZINK_HEAP_DEVICE_LOCAL_LAZY);
|
||||
if (i == ZINK_HEAP_HOST_VISIBLE_CACHED)
|
||||
screen->heap_map[i] = screen->heap_map[ZINK_HEAP_HOST_VISIBLE_COHERENT];
|
||||
else
|
||||
screen->heap_map[i] = screen->heap_map[ZINK_HEAP_DEVICE_LOCAL];
|
||||
}
|
||||
}
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue