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:

committed by
Marge Bot

parent
3123bdbc66
commit
b130c6dae4
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user