anv: Add anv_device parameter to anv_gem_munmap.
authorRafael Antognolli <rafael.antognolli@intel.com>
Wed, 20 Feb 2019 23:26:43 +0000 (15:26 -0800)
committerRafael Antognolli <rafael.antognolli@intel.com>
Mon, 20 Apr 2020 17:59:06 +0000 (10:59 -0700)
Also update all of its callers.

On the next commit, the device will be used by anv_gem_munmap to choose
whether we need to call the valgrind code or not, depending on which
type of mmap we are using.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1675>

src/intel/vulkan/anv_allocator.c
src/intel/vulkan/anv_device.c
src/intel/vulkan/anv_gem.c
src/intel/vulkan/anv_gem_stubs.c
src/intel/vulkan/anv_private.h

index 010da4b8c4e70da9ddb9b17609bef3e5ac93fa86..42bc0405e81b80d2aa5611fb89c3aaac0dbd4948 100644 (file)
@@ -434,7 +434,7 @@ anv_block_pool_finish(struct anv_block_pool *pool)
 {
    anv_block_pool_foreach_bo(bo, pool) {
       if (bo->map)
-         anv_gem_munmap(bo->map, bo->size);
+         anv_gem_munmap(pool->device, bo->map, bo->size);
       anv_gem_close(pool->device, bo->gem_handle);
    }
 
@@ -1643,7 +1643,7 @@ anv_device_alloc_bo(struct anv_device *device,
                                     align, alloc_flags, explicit_address);
       if (new_bo.offset == 0) {
          if (new_bo.map)
-            anv_gem_munmap(new_bo.map, size);
+            anv_gem_munmap(device, new_bo.map, size);
          anv_gem_close(device, new_bo.gem_handle);
          return vk_errorf(device, NULL, VK_ERROR_OUT_OF_DEVICE_MEMORY,
                           "failed to allocate virtual address for BO");
@@ -1968,7 +1968,7 @@ anv_device_release_bo(struct anv_device *device,
    assert(bo->refcount == 0);
 
    if (bo->map && !bo->from_host_ptr)
-      anv_gem_munmap(bo->map, bo->size);
+      anv_gem_munmap(device, bo->map, bo->size);
 
    if (bo->_ccs_size > 0) {
       assert(device->physical->has_implicit_ccs);
index 11fb4f6c3fc43743a2820228c5e50fefe323db30..f80b4f6676335c673522fa7d4f117431f730f37c 100644 (file)
@@ -3721,12 +3721,13 @@ void anv_UnmapMemory(
     VkDevice                                    _device,
     VkDeviceMemory                              _memory)
 {
+   ANV_FROM_HANDLE(anv_device, device, _device);
    ANV_FROM_HANDLE(anv_device_memory, mem, _memory);
 
    if (mem == NULL || mem->host_ptr)
       return;
 
-   anv_gem_munmap(mem->map, mem->map_size);
+   anv_gem_munmap(device, mem->map, mem->map_size);
 
    mem->map = NULL;
    mem->map_size = 0;
index 2deccb88b97a0c2b8f70f0a01c56b879806ac5ca..bdaebb9bc27c054cbfc177b45ef69c664f3333bb 100644 (file)
@@ -90,7 +90,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
  * this map is no longer valid.  Pair this with anv_gem_mmap().
  */
 void
-anv_gem_munmap(void *p, uint64_t size)
+anv_gem_munmap(struct anv_device *device, void *p, uint64_t size)
 {
    VG(VALGRIND_FREELIKE_BLOCK(p, 0));
    munmap(p, size);
index bc9d7e066ba93ea5837e03ed7e32ff11b4e47fe3..c4d1c87b75a90439880fffffd48c9f02cfe2a517 100644 (file)
@@ -60,7 +60,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
  * this map is no longer valid.  Pair this with anv_gem_mmap().
  */
 void
-anv_gem_munmap(void *p, uint64_t size)
+anv_gem_munmap(struct anv_device *device, void *p, uint64_t size)
 {
    munmap(p, size);
 }
index 20ed281d062617ba7ef25bc880869fbf17d90303..a0d954df5ef79bc81c471deffa890d6479cf4d25 100644 (file)
@@ -1471,7 +1471,7 @@ uint64_t anv_get_absolute_timeout(uint64_t timeout);
 
 void* anv_gem_mmap(struct anv_device *device,
                    uint32_t gem_handle, uint64_t offset, uint64_t size, uint32_t flags);
-void anv_gem_munmap(void *p, uint64_t size);
+void anv_gem_munmap(struct anv_device *device, void *p, uint64_t size);
 uint32_t anv_gem_create(struct anv_device *device, uint64_t size);
 void anv_gem_close(struct anv_device *device, uint32_t gem_handle);
 uint32_t anv_gem_userptr(struct anv_device *device, void *mem, size_t size);