From 3e28c5b9f96b3209fdb017c0715669aae590e7e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Wed, 28 Sep 2022 13:42:26 -0700 Subject: [PATCH] anv: Pass anv_bo as parameter to anv_gem_mmap() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit anv_bo has information that will be needed by a future patch in anv_gem_mmap(), so here already preparing for that. Signed-off-by: José Roberto de Souza Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/anv_allocator.c | 2 +- src/intel/vulkan/anv_gem.c | 3 ++- src/intel/vulkan/anv_gem_stubs.c | 4 ++-- src/intel/vulkan/anv_private.h | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) 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);