From 161b218fa148931976aa2d12246d1ad70f3e08aa Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 3 Apr 2026 21:13:35 -0700 Subject: [PATCH] fix(rendering): FSR1/FXAA paths not signaling inline mode to endFrame MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit executePostProcessing() only set inlineMode=true in the FSR2 path. The FXAA and FSR1 paths both start INLINE render passes but returned false, causing endFrame() to record ImGui into a secondary command buffer and execute it inside the INLINE pass — validation errors and UI disappearing on AMD RADV when FSR1+MSAA are both enabled. --- src/rendering/post_process_pipeline.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rendering/post_process_pipeline.cpp b/src/rendering/post_process_pipeline.cpp index ad627c7c..a8213a7c 100644 --- a/src/rendering/post_process_pipeline.cpp +++ b/src/rendering/post_process_pipeline.cpp @@ -293,6 +293,7 @@ bool PostProcessPipeline::executePostProcessing(VkCommandBuffer cmd, uint32_t im fsr2_.frameIndex = (fsr2_.frameIndex + 1) % 256; // Wrap to keep Halton values well-distributed } else if (fxaa_.enabled && fxaa_.sceneFramebuffer) { + inlineMode = true; // End the off-screen scene render pass vkCmdEndRenderPass(currentCmd_); @@ -333,6 +334,7 @@ bool PostProcessPipeline::executePostProcessing(VkCommandBuffer cmd, uint32_t im renderFXAAPass(); } else if (fsr_.enabled && fsr_.sceneFramebuffer) { + inlineMode = true; // FSR1 upscale path — only runs when FXAA is not active. // When both FSR1 and FXAA are enabled, FXAA took priority above. vkCmdEndRenderPass(currentCmd_);