From: Jason Ekstrand Date: Fri, 25 Oct 2019 22:12:06 +0000 (-0500) Subject: anv: Set more flags on descriptor pool buffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e0ee23660fa2b38315ebc72aac5455cd064000fa;p=mesa.git 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 --- 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;