radv: Disable EXT BDA capture and replay.

Spec allows calling VkBufferGetDeviceAddressInfo without binding to memory:

VUID-VkBufferDeviceAddressInfo-buffer-02600
If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object

Which  we can only do by making it sparse unconditionally, which feels very wrong to me for a capture & replay extension as that significantly impacts execution.

Current theory is that this was only intended for the EXT and not the core functionality. As such, let's disable capture using the EXT.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31140>
(cherry picked from commit c8c354d9c3)
This commit is contained in:
Bas Nieuwenhuizen 2024-09-12 10:34:09 +02:00 committed by Eric Engestrom
parent a1689bcea4
commit ce52e7b1ef
2 changed files with 2 additions and 2 deletions

View file

@ -4,7 +4,7 @@
"description": "radv: Disable EXT BDA capture and replay.",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -983,7 +983,7 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc
.descriptorBindingAccelerationStructureUpdateAfterBind = true,
/* VK_EXT_buffer_device_address */
.bufferDeviceAddressCaptureReplayEXT = true,
.bufferDeviceAddressCaptureReplayEXT = false,
/* VK_KHR_shader_subgroup_uniform_control_flow */
.shaderSubgroupUniformControlFlow = true,