diff options
Diffstat (limited to 'src/intel/vulkan/anv_device.c')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 3aa213e205b..fccf6a63778 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1211,21 +1211,31 @@ VkResult anv_CreateDevice( } pthread_condattr_destroy(&condattr); - anv_bo_pool_init(&device->batch_bo_pool, device); + uint64_t bo_flags = + (physical_device->supports_48bit_addresses ? EXEC_OBJECT_SUPPORTS_48B_ADDRESS : 0) | + (physical_device->has_exec_async ? EXEC_OBJECT_ASYNC : 0); + + anv_bo_pool_init(&device->batch_bo_pool, device, bo_flags); result = anv_bo_cache_init(&device->bo_cache); if (result != VK_SUCCESS) goto fail_batch_bo_pool; - result = anv_state_pool_init(&device->dynamic_state_pool, device, 16384); + /* For the state pools we explicitly disable 48bit. */ + bo_flags = physical_device->has_exec_async ? EXEC_OBJECT_ASYNC : 0; + + result = anv_state_pool_init(&device->dynamic_state_pool, device, 16384, + bo_flags); if (result != VK_SUCCESS) goto fail_bo_cache; - result = anv_state_pool_init(&device->instruction_state_pool, device, 16384); + result = anv_state_pool_init(&device->instruction_state_pool, device, 16384, + bo_flags); if (result != VK_SUCCESS) goto fail_dynamic_state_pool; - result = anv_state_pool_init(&device->surface_state_pool, device, 4096); + result = anv_state_pool_init(&device->surface_state_pool, device, 4096, + bo_flags); if (result != VK_SUCCESS) goto fail_instruction_state_pool; |