diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index 795921d0999..b6df00a323e 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -1576,7 +1576,7 @@ anv_device_map_bo(struct anv_device *device, if (bo->map_wc) gem_flags |= I915_MMAP_WC; - void *map = anv_gem_mmap(device, bo->gem_handle, offset, size, gem_flags); + void *map = anv_gem_mmap(device, bo, offset, size, gem_flags); if (unlikely(map == MAP_FAILED)) return vk_errorf(device, VK_ERROR_MEMORY_MAP_FAILED, "mmap failed: %m"); diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c index c1d471cb122..80b45e344c5 100644 --- a/src/intel/vulkan/anv_gem.c +++ b/src/intel/vulkan/anv_gem.c @@ -142,9 +142,10 @@ anv_gem_mmap_legacy(struct anv_device *device, uint32_t gem_handle, * Wrapper around DRM_IOCTL_I915_GEM_MMAP. Returns MAP_FAILED on error. */ void* -anv_gem_mmap(struct anv_device *device, uint32_t gem_handle, +anv_gem_mmap(struct anv_device *device, struct anv_bo *bo, uint64_t offset, uint64_t size, uint32_t flags) { + uint32_t gem_handle = bo->gem_handle; void *map; if (device->physical->info.has_mmap_offset) map = anv_gem_mmap_offset(device, gem_handle, offset, size, flags); diff --git a/src/intel/vulkan/anv_gem_stubs.c b/src/intel/vulkan/anv_gem_stubs.c index c190471273a..89e870f8898 100644 --- a/src/intel/vulkan/anv_gem_stubs.c +++ b/src/intel/vulkan/anv_gem_stubs.c @@ -54,14 +54,14 @@ anv_gem_create_regions(struct anv_device *device, uint64_t anv_bo_size, } void* -anv_gem_mmap(struct anv_device *device, uint32_t gem_handle, +anv_gem_mmap(struct anv_device *device, struct anv_bo *bo, uint64_t offset, uint64_t size, uint32_t flags) { /* Ignore flags, as they're specific to I915_GEM_MMAP. */ (void) flags; return mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, - gem_handle, offset); + bo->gem_handle, offset); } /* This is just a wrapper around munmap, but it also notifies valgrind that diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 5486e2c30da..889393c0d80 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1360,8 +1360,8 @@ VkResult anv_queue_submit(struct vk_queue *queue, VkResult anv_queue_submit_simple_batch(struct anv_queue *queue, struct anv_batch *batch); -void* anv_gem_mmap(struct anv_device *device, - uint32_t gem_handle, uint64_t offset, uint64_t size, uint32_t flags); +void* anv_gem_mmap(struct anv_device *device, struct anv_bo *bo, + uint64_t offset, uint64_t size, uint32_t flags); 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);