nvk/nvkmd: Plumb map_out through to the back-end nvkmd_mem_ops::map

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31004>
This commit is contained in:
Faith Ekstrand
2024-09-03 10:49:52 -05:00
committed by Marge Bot
parent 3123bdbc66
commit b130c6dae4
3 changed files with 11 additions and 6 deletions

View File

@@ -179,7 +179,8 @@ static VkResult
nvkmd_nouveau_mem_map(struct nvkmd_mem *_mem,
struct vk_object_base *log_obj,
enum nvkmd_mem_map_flags map_flags,
void *fixed_addr)
void *fixed_addr,
void **map_out)
{
struct nvkmd_nouveau_mem *mem = nvkmd_nouveau_mem(_mem);
struct nvkmd_nouveau_dev *dev = nvkmd_nouveau_dev(_mem->dev);
@@ -201,7 +202,7 @@ nvkmd_nouveau_mem_map(struct nvkmd_mem *_mem,
if (map == MAP_FAILED)
return vk_error(log_obj, VK_ERROR_MEMORY_MAP_FAILED);
mem->base.map = map;
*map_out = map;
return VK_SUCCESS;
}

View File

@@ -53,7 +53,7 @@ nvkmd_dev_alloc_mapped_mem(struct nvkmd_dev *dev,
return result;
assert(!(map_flags & NVKMD_MEM_MAP_FIXED));
result = mem->ops->map(mem, log_obj, map_flags, NULL);
result = nvkmd_mem_map(mem, log_obj, map_flags, NULL, NULL);
if (result != VK_SUCCESS) {
mem->ops->free(mem);
return result;

View File

@@ -190,7 +190,8 @@ struct nvkmd_mem_ops {
VkResult (*map)(struct nvkmd_mem *mem,
struct vk_object_base *log_obj,
enum nvkmd_mem_map_flags flags,
void *fixed_addr);
void *fixed_addr,
void **map_out);
void (*unmap)(struct nvkmd_mem *mem);
@@ -458,11 +459,14 @@ nvkmd_mem_map(struct nvkmd_mem *mem, struct vk_object_base *log_obj,
{
assert(mem->map == NULL);
VkResult result = mem->ops->map(mem, log_obj, flags, fixed_addr);
void *map = NULL;
VkResult result = mem->ops->map(mem, log_obj, flags, fixed_addr, &map);
if (result != VK_SUCCESS)
return result;
*map_out = mem->map;
mem->map = map;
if (map_out != NULL)
*map_out = map;
return VK_SUCCESS;
}