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>
This commit is contained in:
Bas Nieuwenhuizen
2024-09-12 10:34:09 +02:00
committed by Marge Bot
parent 40557383dd
commit c8c354d9c3
+1 -1
View File
@@ -1024,7 +1024,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,