From b1217eada9e32bf387d4d14615340aa5b5fd1f5c Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 7 Nov 2016 17:25:07 -0800 Subject: 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 Reviewed-by: Nanley Chery Cc: "12.0 13.0" --- src/intel/vulkan/anv_device.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/intel') diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 528cbe1b59c..0999fcf63fe 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1235,6 +1235,9 @@ VkResult anv_AllocateMemory( mem->type_index = pAllocateInfo->memoryTypeIndex; + mem->map = NULL; + mem->map_size = 0; + *pMem = anv_device_memory_to_handle(mem); return VK_SUCCESS; @@ -1256,6 +1259,9 @@ void anv_FreeMemory( if (mem == NULL) return; + if (mem->map) + anv_UnmapMemory(_device, _mem); + if (mem->bo.map) anv_gem_munmap(mem->bo.map, mem->bo.size); @@ -1335,6 +1341,9 @@ void anv_UnmapMemory( return; anv_gem_munmap(mem->map, mem->map_size); + + mem->map = NULL; + mem->map_size = 0; } static void -- cgit v1.2.3