Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/intel/vulkan/anv_allocator.c | 10 ++-------- src/intel/vulkan/anv_device.c | 7 +------ src/intel/vulkan/anv_intel.c | 3 +-- src/intel/vulkan/anv_private.h | 20 ++++++++++++++++++++ 4 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_allocator.c index b767542aa5..1e4bb34ee2 100644 --- a/src/intel/vulkan/anv_allocator.c +++ b/src/intel/vulkan/anv_allocator.c @@ -535,8 +535,7 @@ anv_block_pool_grow(struct anv_block_pool *pool, struct anv_block_state *state) result = anv_block_pool_expand_range(pool, center_bo_offset, size); - if (pool->device->instance->physicalDevice.has_exec_async) - pool->bo.flags |= EXEC_OBJECT_ASYNC; + anv_bo_set_flags(pool->device, &pool->bo, EXEC_OBJECT_ASYNC); done: pthread_mutex_unlock(&pool->device->mutex); @@ -1308,12 +1307,7 @@ anv_bo_cache_import(struct anv_device *device, bo->refcount = 1; anv_bo_init(&bo->bo, gem_handle, size); - - if (device->instance->physicalDevice.supports_48bit_addresses) - bo->bo.flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; - - if (device->instance->physicalDevice.has_exec_async) - bo->bo.flags |= EXEC_OBJECT_ASYNC; + anv_bo_set_flags(device, &bo->bo, ANV_BO_DEFAULT_FLAGS); _mesa_hash_table_insert(cache->bo_map, (void *)(uintptr_t)gem_handle, bo); } diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 35e40301a3..e4c0a1551a 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1413,12 +1413,7 @@ anv_bo_init_new(struct anv_bo *bo, struct anv_device *device, uint64_t size) return vk_error(VK_ERROR_OUT_OF_DEVICE_MEMORY); anv_bo_init(bo, gem_handle, size); - - if (device->instance->physicalDevice.supports_48bit_addresses) - bo->flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; - - if (device->instance->physicalDevice.has_exec_async) - bo->flags |= EXEC_OBJECT_ASYNC; + anv_bo_set_flags(device, bo, ANV_BO_DEFAULT_FLAGS); return VK_SUCCESS; } diff --git a/src/intel/vulkan/anv_intel.c b/src/intel/vulkan/anv_intel.c index 991a93542d..f232411231 100644 --- a/src/intel/vulkan/anv_intel.c +++ b/src/intel/vulkan/anv_intel.c @@ -56,8 +56,7 @@ VkResult anv_CreateDmaBufImageINTEL( if (result != VK_SUCCESS) goto fail; - if (device->instance->physicalDevice.supports_48bit_addresses) - mem->bo->flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; + anv_bo_set_flags(device, mem->bo, EXEC_OBJECT_SUPPORTS_48B_ADDRESS); anv_image_create(_device, &(struct anv_image_create_info) { diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 9b0dd678fd..ebf9533390 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -808,6 +808,26 @@ int anv_gem_set_caching(struct anv_device *device, uint32_t gem_handle, uint32_t int anv_gem_set_domain(struct anv_device *device, uint32_t gem_handle, uint32_t read_domains, uint32_t write_domain); +static inline void +anv_bo_set_flags(const struct anv_device *device, + struct anv_bo *bo, + unsigned int flags) +{ + struct anv_physical_device *phys = &device->instance->physicalDevice; + + if (flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS && + phys->supports_48bit_addresses) + bo->flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; + + if (flags & EXEC_OBJECT_ASYNC && + phys->has_exec_async) + bo->flags |= EXEC_OBJECT_ASYNC; +} + +#define ANV_BO_DEFAULT_FLAGS \ + (EXEC_OBJECT_SUPPORTS_48B_ADDRESS | \ + EXEC_OBJECT_ASYNC) + VkResult anv_bo_init_new(struct anv_bo *bo, struct anv_device *device, uint64_t size); struct anv_reloc_list { -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev