From 80a7ed273a32c35fe3bdd9a8aec881a554b8bbfe Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Thu, 31 Mar 2022 21:32:41 +0200 Subject: [PATCH] radv: Enable global bo list if 1.2 features are used. These features require the global bo list and the existing code only checked if the extensions which were promoted to 1.2 are enabled. Found by inspection. Cc: mesa-stable Signed-off-by: Georg Lehmann Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_device.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 56b8d34f6ba..12c15d41d81 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -3124,6 +3124,7 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr bool attachment_vrs_enabled = false; bool image_float32_atomics = false; bool vs_prologs = false; + bool global_bo_list = false; /* Check enabled features */ if (pCreateInfo->pEnabledFeatures) { @@ -3184,6 +3185,12 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr vs_prologs = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: { + const VkPhysicalDeviceVulkan12Features *features = (const void *)ext; + if (features->bufferDeviceAddress || features->descriptorIndexing) + global_bo_list = true; + break; + } default: break; } @@ -3230,7 +3237,8 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr /* With update after bind we can't attach bo's to the command buffer * from the descriptor set anymore, so we have to use a global BO list. */ - device->use_global_bo_list = (device->instance->perftest_flags & RADV_PERFTEST_BO_LIST) || + device->use_global_bo_list = global_bo_list || + (device->instance->perftest_flags & RADV_PERFTEST_BO_LIST) || device->vk.enabled_extensions.EXT_descriptor_indexing || device->vk.enabled_extensions.EXT_buffer_device_address || device->vk.enabled_extensions.KHR_buffer_device_address || -- 2.34.1