diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2016-11-07 17:25:07 -0800 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-12-15 16:14:55 +0000 |
commit | 626b85cc15d8a57954f956620c0b89c3a06559af (patch) | |
tree | 59cb6805517705b2f0acbb99be6b3a7e732144a6 | |
parent | 23f1e04abbc6cb97b18a2902e9231983856672dd (diff) | |
download | external_mesa3d-626b85cc15d8a57954f956620c0b89c3a06559af.zip external_mesa3d-626b85cc15d8a57954f956620c0b89c3a06559af.tar.gz external_mesa3d-626b85cc15d8a57954f956620c0b89c3a06559af.tar.bz2 |
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>
(cherry picked from commit b1217eada9e32bf387d4d14615340aa5b5fd1f5c)
-rw-r--r-- | src/intel/vulkan/anv_device.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 9595fe3..5333856 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1243,6 +1243,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; @@ -1264,6 +1267,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); @@ -1333,6 +1339,9 @@ void anv_UnmapMemory( return; anv_gem_munmap(mem->map, mem->map_size); + + mem->map = NULL; + mem->map_size = 0; } static void |