diff --git a/ext/native/thin3d/VulkanQueueRunner.cpp b/ext/native/thin3d/VulkanQueueRunner.cpp index 77c1c603f5..df2d386255 100644 --- a/ext/native/thin3d/VulkanQueueRunner.cpp +++ b/ext/native/thin3d/VulkanQueueRunner.cpp @@ -776,7 +776,10 @@ void VulkanQueueRunner::ApplyRenderPassMerge(std::vector &steps) { if (steps[j]->dependencies.contains(touchedFramebuffers)) { goto done_fb; } - if (steps[j]->render.framebuffer == fb) { + if (steps[j]->render.framebuffer == fb && + steps[j]->render.color != VKRRenderPassAction::CLEAR && + steps[j]->render.depth != VKRRenderPassAction::CLEAR && + steps[j]->render.stencil != VKRRenderPassAction::CLEAR) { // ok. Now, if it's a render, slurp up all the commands // and kill the step. // Also slurp up any pretransitions.