nvk: Implement VK_KHR_map_memory2

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
Faith Ekstrand 2023-03-31 11:11:22 -05:00 committed by Marge Bot
parent fc368b2b90
commit 86f960090e
2 changed files with 16 additions and 13 deletions

View file

@ -190,22 +190,22 @@ nvk_FreeMemory(VkDevice _device,
}
VKAPI_ATTR VkResult VKAPI_CALL
nvk_MapMemory(VkDevice _device,
VkDeviceMemory _memory,
VkDeviceSize offset,
VkDeviceSize size,
VkMemoryMapFlags flags,
void **ppData)
nvk_MapMemory2KHR(VkDevice _device,
const VkMemoryMapInfoKHR *pMemoryMapInfo,
void **ppData)
{
VK_FROM_HANDLE(nvk_device, device, _device);
VK_FROM_HANDLE(nvk_device_memory, mem, _memory);
VK_FROM_HANDLE(nvk_device_memory, mem, pMemoryMapInfo->memory);
if (mem == NULL) {
*ppData = NULL;
return VK_SUCCESS;
}
size = vk_device_memory_range(&mem->vk, offset, size);
const VkDeviceSize offset = pMemoryMapInfo->offset;
const VkDeviceSize size =
vk_device_memory_range(&mem->vk, pMemoryMapInfo->offset,
pMemoryMapInfo->size);
/* From the Vulkan spec version 1.0.32 docs for MapMemory:
*
@ -243,17 +243,19 @@ nvk_MapMemory(VkDevice _device,
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL
nvk_UnmapMemory(VkDevice _device,
VkDeviceMemory _memory)
VKAPI_ATTR VkResult VKAPI_CALL
nvk_UnmapMemory2KHR(VkDevice _device,
const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo)
{
VK_FROM_HANDLE(nvk_device_memory, mem, _memory);
VK_FROM_HANDLE(nvk_device_memory, mem, pMemoryUnmapInfo->memory);
if (mem == NULL)
return;
return VK_SUCCESS;
nouveau_ws_bo_unmap(mem->bo, mem->map);
mem->map = NULL;
return VK_SUCCESS;
}
VKAPI_ATTR VkResult VKAPI_CALL

View file

@ -289,6 +289,7 @@ nvk_get_device_extensions(const struct nv_device_info *dev,
.KHR_maintenance2 = true,
.KHR_maintenance3 = true,
.KHR_maintenance4 = true,
.KHR_map_memory2 = true,
.KHR_multiview = true,
.KHR_push_descriptor = true,
.KHR_relaxed_block_layout = true,