From e0ee23660fa2b38315ebc72aac5455cd064000fa Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 25 Oct 2019 17:12:06 -0500 Subject: [PATCH] anv: Set more flags on descriptor pool buffers the ASYNC flag, in particular, has the potential to help performance because it means less sync tracking in the kernel. Reviewed-by: Lionel Landwerlin --- src/intel/vulkan/anv_descriptor_set.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 80a34695e08..3951a665e18 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -663,6 +663,7 @@ VkResult anv_CreateDescriptorPool( VkDescriptorPool* pDescriptorPool) { ANV_FROM_HANDLE(anv_device, device, _device); + const struct anv_physical_device *pdevice = &device->instance->physicalDevice; struct anv_descriptor_pool *pool; const VkDescriptorPoolInlineUniformBlockCreateInfoEXT *inline_info = @@ -749,11 +750,17 @@ VkResult anv_CreateDescriptorPool( return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); } - if (device->instance->physicalDevice.use_softpin) { + if (pdevice->supports_48bit_addresses) + pool->bo.flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; + + if (pdevice->use_softpin) { pool->bo.flags |= EXEC_OBJECT_PINNED; anv_vma_alloc(device, &pool->bo); } + if (pdevice->has_exec_async) + pool->bo.flags |= EXEC_OBJECT_ASYNC; + util_vma_heap_init(&pool->bo_heap, POOL_HEAP_OFFSET, descriptor_bo_size); } else { pool->bo.size = 0; -- 2.30.2