radv: stop allowing users to disable the global BO list

The global BO list for app allocations has been enabled by default
since Mesa 25.3 and we didn't find any blockers, so let's make it the
default for real. Note that vkd3d-proton and Zink always used that
path and DXVK started to use it in August 2025 after requiring BDA.

This removes RADV_DEBUG=nobolist which was added only for debugging
purposes since the global BO list was enabled by default for app
allocations.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40466>
This commit is contained in:
Samuel Pitoiset 2026-03-17 12:24:01 +01:00 committed by Marge Bot
parent 559a35dcb3
commit 09f83982e2
4 changed files with 3 additions and 25 deletions

View file

@ -1450,8 +1450,6 @@ RADV driver environment variables
disable dithering for alpha to coverage
``nobinning``
disable primitive binning
``nobolist``
disable the global BO list when no features require it
``nocache``
disable shaders cache
``nocompute``

View file

@ -70,10 +70,9 @@ enum {
RADV_DEBUG_NO_VIDEO = 1ull << 55,
RADV_DEBUG_VALIDATE_VAS = 1ull << 56,
RADV_DEBUG_DUMP_BO_HISTORY = 1ull << 57,
RADV_DEBUG_NO_BO_LIST = 1ull << 58,
RADV_DEBUG_DUMP_IBS = 1ull << 59,
RADV_DEBUG_VM = 1ull << 60,
RADV_DEBUG_NO_SMEM_MITIGATION = 1ull << 61,
RADV_DEBUG_DUMP_IBS = 1ull << 58,
RADV_DEBUG_VM = 1ull << 59,
RADV_DEBUG_NO_SMEM_MITIGATION = 1ull << 60,
RADV_DEBUG_DUMP_SHADERS = RADV_DEBUG_DUMP_VS | RADV_DEBUG_DUMP_TCS | RADV_DEBUG_DUMP_TES | RADV_DEBUG_DUMP_GS |
RADV_DEBUG_DUMP_PS | RADV_DEBUG_DUMP_TASK | RADV_DEBUG_DUMP_MESH | RADV_DEBUG_DUMP_CS |
RADV_DEBUG_DUMP_NIR | RADV_DEBUG_DUMP_ASM | RADV_DEBUG_DUMP_BACKEND_IR,

View file

@ -1268,24 +1268,6 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
/* TODO: Remove the per cmdbuf BO list tracking after few Mesa releases if no blockers. */
device->use_global_bo_list = pdev->info.has_vm_always_valid;
/* Disable it for debugging purposes if no features require it. */
if (instance->debug_flags & RADV_DEBUG_NO_BO_LIST) {
if (!device->vk.enabled_features.bufferDeviceAddress && !device->vk.enabled_features.descriptorIndexing &&
!device->vk.enabled_features.descriptorBindingUniformBufferUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingSampledImageUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingStorageImageUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingStorageBufferUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingUniformTexelBufferUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingStorageTexelBufferUpdateAfterBind &&
!device->vk.enabled_features.descriptorBindingUpdateUnusedWhilePending &&
!device->vk.enabled_features.descriptorBindingPartiallyBound &&
!device->vk.enabled_features.indirectMemoryCopy && !device->vk.enabled_features.indirectMemoryToImageCopy) {
device->use_global_bo_list = false;
} else {
fprintf(stderr, "radv: Can't disable the global BO list because some features require it!\n");
}
}
device->overallocation_disallowed = overallocation_disallowed;
mtx_init(&device->overallocation_mutex, mtx_plain);

View file

@ -86,7 +86,6 @@ static const struct debug_control radv_debug_options[] = {
{"novideo", RADV_DEBUG_NO_VIDEO},
{"validatevas", RADV_DEBUG_VALIDATE_VAS},
{"bo_history", RADV_DEBUG_DUMP_BO_HISTORY},
{"nobolist", RADV_DEBUG_NO_BO_LIST},
{"dumpibs", RADV_DEBUG_DUMP_IBS},
{"vm", RADV_DEBUG_VM},
{"nosmemmitigation", RADV_DEBUG_NO_SMEM_MITIGATION},