diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 94e55a0dec..2a3049a9b9 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -1866,11 +1866,6 @@ void VulkanReplay::SavePipelineState(uint32_t eventId) const VkOffset2D &o = state.fragmentDensityMapOffsets[i]; ret.currentPass.renderpass.fragmentDensityOffsets[i] = Offset(o.x, o.y); } - - ret.currentPass.renderArea.x = state.renderArea.offset.x; - ret.currentPass.renderArea.y = state.renderArea.offset.y; - ret.currentPass.renderArea.width = state.renderArea.extent.width; - ret.currentPass.renderArea.height = state.renderArea.extent.height; } else { @@ -1891,6 +1886,14 @@ void VulkanReplay::SavePipelineState(uint32_t eventId) ret.currentPass.framebuffer.attachments.clear(); } + if(state.GetRenderPass() != ResourceId() || (state.dynamicRendering.active)) + { + ret.currentPass.renderArea.x = state.renderArea.offset.x; + ret.currentPass.renderArea.y = state.renderArea.offset.y; + ret.currentPass.renderArea.width = state.renderArea.extent.width; + ret.currentPass.renderArea.height = state.renderArea.extent.height; + } + ret.currentPass.colorFeedbackAllowed = (state.feedbackAspects & VK_IMAGE_ASPECT_COLOR_BIT) != 0; ret.currentPass.depthFeedbackAllowed = (state.feedbackAspects & VK_IMAGE_ASPECT_DEPTH_BIT) != 0; ret.currentPass.stencilFeedbackAllowed = (state.feedbackAspects & VK_IMAGE_ASPECT_STENCIL_BIT) != 0;