summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2019-10-25 17:12:06 -0500
committerJason Ekstrand <[email protected]>2019-10-31 13:46:09 +0000
commite0ee23660fa2b38315ebc72aac5455cd064000fa (patch)
treede988b3c379cc6cc3c31d007f8ad2978779fb321 /src/intel
parentc3eb4b3ba53b23a4966b7dc79025a350245704fd (diff)
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 <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_descriptor_set.c9
1 files changed, 8 insertions, 1 deletions
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;