anv/device: Implicitly unmap memory objects in FreeMemory
From the Vulkan spec version 1.0.32 docs for vkFreeMemory: "If a memory object is mapped at the time it is freed, it is implicitly unmapped." Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Cc: "12.0 13.0" <mesa-dev@lists.freedesktop.org>
This commit is contained in:
@@ -1235,6 +1235,9 @@ VkResult anv_AllocateMemory(
|
|||||||
|
|
||||||
mem->type_index = pAllocateInfo->memoryTypeIndex;
|
mem->type_index = pAllocateInfo->memoryTypeIndex;
|
||||||
|
|
||||||
|
mem->map = NULL;
|
||||||
|
mem->map_size = 0;
|
||||||
|
|
||||||
*pMem = anv_device_memory_to_handle(mem);
|
*pMem = anv_device_memory_to_handle(mem);
|
||||||
|
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
@@ -1256,6 +1259,9 @@ void anv_FreeMemory(
|
|||||||
if (mem == NULL)
|
if (mem == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (mem->map)
|
||||||
|
anv_UnmapMemory(_device, _mem);
|
||||||
|
|
||||||
if (mem->bo.map)
|
if (mem->bo.map)
|
||||||
anv_gem_munmap(mem->bo.map, mem->bo.size);
|
anv_gem_munmap(mem->bo.map, mem->bo.size);
|
||||||
|
|
||||||
@@ -1335,6 +1341,9 @@ void anv_UnmapMemory(
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
anv_gem_munmap(mem->map, mem->map_size);
|
anv_gem_munmap(mem->map, mem->map_size);
|
||||||
|
|
||||||
|
mem->map = NULL;
|
||||||
|
mem->map_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user