From b215fbe306b1177b1418aff30a0d01f2f9109ace Mon Sep 17 00:00:00 2001 From: Tatsuyuki Ishi Date: Fri, 1 Apr 2022 18:57:30 +0900 Subject: [PATCH] vk_shader_feedback: Fix crash with dynamic rendering RenderPass can be null handle when dynamic rendering is used. Retrieve the respective information from pipeline info instead. --- renderdoc/driver/vulkan/vk_shader_feedback.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_shader_feedback.cpp b/renderdoc/driver/vulkan/vk_shader_feedback.cpp index 315263c09..a5bb16cb6 100644 --- a/renderdoc/driver/vulkan/vk_shader_feedback.cpp +++ b/renderdoc/driver/vulkan/vk_shader_feedback.cpp @@ -1632,9 +1632,11 @@ void VulkanReplay::FetchShaderFeedback(uint32_t eventId) bool usePrimitiveID = !hasGeom && m_pDriver->GetDeviceEnabledFeatures().geometryShader != VK_FALSE; - bool usesMultiview = - creationInfo.m_RenderPass[state.GetRenderPass()].subpasses[state.subpass].multiviews.size() > - 1; + bool usesMultiview = state.GetRenderPass() != ResourceId() + ? creationInfo.m_RenderPass[state.GetRenderPass()] + .subpasses[state.subpass] + .multiviews.size() > 1 + : pipeInfo.viewMask != 0; for(uint32_t i = 0; i < graphicsInfo.stageCount; i++) {