From a1ee01e89cbc72c52ce231df90765e05b39833e3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 22 May 2025 13:46:51 +0100 Subject: [PATCH] Force reported descriptor buffer sizes to be robust sizes --- .../driver/vulkan/wrappers/vk_get_funcs.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_get_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_get_funcs.cpp index 650ee766e..a68260b80 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_get_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_get_funcs.cpp @@ -878,6 +878,24 @@ void WrappedVulkan::vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevi memcpy(shadObj->shaderBinaryUUID, fakeRenderDocUUID, VK_UUID_SIZE); } + + VkPhysicalDeviceDescriptorBufferPropertiesEXT *descBufferProperties = + (VkPhysicalDeviceDescriptorBufferPropertiesEXT *)FindNextStruct( + pProperties, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT); + + // we force the use of robustness, so tweak sizes to be robust sizes as the application doesn't + // know we forced robustness + if(descBufferProperties) + { + descBufferProperties->uniformBufferDescriptorSize = + descBufferProperties->robustUniformBufferDescriptorSize; + descBufferProperties->storageBufferDescriptorSize = + descBufferProperties->robustStorageBufferDescriptorSize; + descBufferProperties->uniformTexelBufferDescriptorSize = + descBufferProperties->robustUniformTexelBufferDescriptorSize; + descBufferProperties->storageTexelBufferDescriptorSize = + descBufferProperties->robustStorageTexelBufferDescriptorSize; + } } void WrappedVulkan::vkGetPhysicalDeviceQueueFamilyProperties2(