mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-21 06:51:35 +00:00
It is possible for the VkDescriptorUpdateTemplateCreateInfo to have its descriptorSetLayout or pipelineLayout be the only reference to the corresponding object, as vkCmdPushDescriptorSetWithTemplateKHR and vkUpdateDescriptorSetWithTemplate only require that the actual layout matches/is compatible with the one used by the template. Before, there was no dependency from the update template to the layout, so if it was the sole use of a layout, the layout would not be saved in the capture, resulting in a crash during playback. This change also modifies the vk_parameter_zoo to test this case. With those modifications, the change to vk_descriptor_funcs is required to prevent the crash. Note that on my machine, I needed to comment out other parts of vk_parameter_zoo, or else it would crash (even when not run under renderdoc) due to driver issues. For reference: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html#VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-07993 https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplate.html#VUID-vkUpdateDescriptorSetWithTemplate-pData-01685 https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfoKHR.html#_members