From 6feafaf74e0cd65e58b8aa9eecbe7c8c4fcf0025 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 14 Jan 2025 15:22:10 +0000 Subject: [PATCH] Workaround AMD driver bug * This may be present on other drivers - the vulkan spec allows a NULL pointer (or really garbage) --- renderdoc/driver/vulkan/vk_acceleration_structure.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_acceleration_structure.cpp b/renderdoc/driver/vulkan/vk_acceleration_structure.cpp index f2ecce991..596e9e8cf 100644 --- a/renderdoc/driver/vulkan/vk_acceleration_structure.cpp +++ b/renderdoc/driver/vulkan/vk_acceleration_structure.cpp @@ -742,6 +742,10 @@ void VulkanAccelerationStructureManager::Apply(ResourceId id, VkInitialContents for(VkAccelerationStructureBuildRangeInfoKHR numPrims : buildRangeInfos) counts.push_back(numPrims.primitiveCount); + // ensure counts is non-empty even if there are no geometries, to work around AMD (at least) + // driver bug reading from NULL otherwise + counts.resize_for_index(0); + ObjDisp(d)->GetAccelerationStructureBuildSizesKHR( Unwrap(d), VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR, &sizeInfo, counts.data(), &sizeResult);