nvk/nvkmd: Plumb map_flags through to unmap/overmap
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31004>
This commit is contained in:

committed by
Marge Bot

parent
6c782b8a12
commit
37bbb47e86
@@ -164,7 +164,7 @@ nvk_CreateDevice(VkPhysicalDevice physicalDevice,
|
||||
goto fail_upload;
|
||||
|
||||
memset(dev->zero_page->map, 0, 0x1000);
|
||||
nvkmd_mem_unmap(dev->zero_page);
|
||||
nvkmd_mem_unmap(dev->zero_page, 0);
|
||||
|
||||
result = nvk_descriptor_table_init(dev, &dev->images,
|
||||
8 * 4 /* tic entry size */,
|
||||
|
@@ -197,7 +197,7 @@ nvk_AllocateMemory(VkDevice device,
|
||||
goto fail_mem;
|
||||
|
||||
memset(map, 0, mem->mem->size_B);
|
||||
nvkmd_mem_unmap(mem->mem);
|
||||
nvkmd_mem_unmap(mem->mem, 0);
|
||||
} else {
|
||||
result = nvk_upload_queue_fill(dev, &dev->upload,
|
||||
mem->mem->va->addr,
|
||||
@@ -334,9 +334,9 @@ nvk_UnmapMemory2KHR(VkDevice device,
|
||||
return VK_SUCCESS;
|
||||
|
||||
if (pMemoryUnmapInfo->flags & VK_MEMORY_UNMAP_RESERVE_BIT_EXT) {
|
||||
return nvkmd_mem_overmap(mem->mem, &mem->vk.base);
|
||||
return nvkmd_mem_overmap(mem->mem, &mem->vk.base, 0);
|
||||
} else {
|
||||
nvkmd_mem_unmap(mem->mem);
|
||||
nvkmd_mem_unmap(mem->mem, 0);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@@ -208,7 +208,9 @@ nvkmd_nouveau_mem_map(struct nvkmd_mem *_mem,
|
||||
}
|
||||
|
||||
static void
|
||||
nvkmd_nouveau_mem_unmap(struct nvkmd_mem *_mem, void *map)
|
||||
nvkmd_nouveau_mem_unmap(struct nvkmd_mem *_mem,
|
||||
enum nvkmd_mem_map_flags flags,
|
||||
void *map)
|
||||
{
|
||||
struct nvkmd_nouveau_mem *mem = nvkmd_nouveau_mem(_mem);
|
||||
|
||||
@@ -218,6 +220,7 @@ nvkmd_nouveau_mem_unmap(struct nvkmd_mem *_mem, void *map)
|
||||
static VkResult
|
||||
nvkmd_nouveau_mem_overmap(struct nvkmd_mem *_mem,
|
||||
struct vk_object_base *log_obj,
|
||||
enum nvkmd_mem_map_flags flags,
|
||||
void *map)
|
||||
{
|
||||
struct nvkmd_nouveau_mem *mem = nvkmd_nouveau_mem(_mem);
|
||||
|
@@ -208,7 +208,7 @@ nvkmd_mem_unref(struct nvkmd_mem *mem)
|
||||
return;
|
||||
|
||||
if (mem->map != NULL)
|
||||
mem->ops->unmap(mem, mem->map);
|
||||
mem->ops->unmap(mem, 0, mem->map);
|
||||
|
||||
mem->ops->free(mem);
|
||||
}
|
||||
|
@@ -193,10 +193,13 @@ struct nvkmd_mem_ops {
|
||||
void *fixed_addr,
|
||||
void **map_out);
|
||||
|
||||
void (*unmap)(struct nvkmd_mem *mem, void *map);
|
||||
void (*unmap)(struct nvkmd_mem *mem,
|
||||
enum nvkmd_mem_map_flags flags,
|
||||
void *map);
|
||||
|
||||
VkResult (*overmap)(struct nvkmd_mem *mem,
|
||||
struct vk_object_base *log_obj,
|
||||
enum nvkmd_mem_map_flags flags,
|
||||
void *map);
|
||||
|
||||
VkResult (*export_dma_buf)(struct nvkmd_mem *mem,
|
||||
@@ -473,18 +476,19 @@ nvkmd_mem_map(struct nvkmd_mem *mem, struct vk_object_base *log_obj,
|
||||
}
|
||||
|
||||
static inline void
|
||||
nvkmd_mem_unmap(struct nvkmd_mem *mem)
|
||||
nvkmd_mem_unmap(struct nvkmd_mem *mem, enum nvkmd_mem_map_flags flags)
|
||||
{
|
||||
assert(mem->map != NULL);
|
||||
mem->ops->unmap(mem, mem->map);
|
||||
mem->ops->unmap(mem, flags, mem->map);
|
||||
mem->map = NULL;
|
||||
}
|
||||
|
||||
static inline VkResult MUST_CHECK
|
||||
nvkmd_mem_overmap(struct nvkmd_mem *mem, struct vk_object_base *log_obj)
|
||||
nvkmd_mem_overmap(struct nvkmd_mem *mem, struct vk_object_base *log_obj,
|
||||
enum nvkmd_mem_map_flags flags)
|
||||
{
|
||||
assert(mem->map != NULL);
|
||||
VkResult result = mem->ops->overmap(mem, log_obj, mem->map);
|
||||
VkResult result = mem->ops->overmap(mem, log_obj, flags, mem->map);
|
||||
if (result == VK_SUCCESS)
|
||||
mem->map = NULL;
|
||||
return result;
|
||||
|
Reference in New Issue
Block a user