From 085fd09b9d8b68d3371a9e53ca175f0498597713 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sun, 22 Feb 2026 22:42:58 -0800 Subject: [PATCH] Fix water transparency on resize by rebuilding scene history resources Water scene history textures and 1x pass resources were not recreated on window resize/fullscreen, causing stale undersized textures that produced directional transparency artifacts. --- src/rendering/renderer.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/rendering/renderer.cpp b/src/rendering/renderer.cpp index 3db966a3..598f3741 100644 --- a/src/rendering/renderer.cpp +++ b/src/rendering/renderer.cpp @@ -914,13 +914,13 @@ void Renderer::beginFrame() { // Handle swapchain recreation if needed if (vkCtx->isSwapchainDirty()) { vkCtx->recreateSwapchain(window->getWidth(), window->getHeight()); - // Rebuild water 1x framebuffers (they reference swapchain image views) - if (waterRenderer && waterRenderer->hasWater1xPass() - && vkCtx->getMsaaSamples() != VK_SAMPLE_COUNT_1_BIT) { - VkImageView depthView = vkCtx->getDepthResolveImageView(); - if (depthView) { - waterRenderer->createWater1xFramebuffers( - vkCtx->getSwapchainImageViews(), depthView, vkCtx->getSwapchainExtent()); + // Rebuild water resources that reference swapchain extent/views + if (waterRenderer) { + waterRenderer->recreatePipelines(); + if (waterRenderer->hasWater1xPass() + && vkCtx->getMsaaSamples() != VK_SAMPLE_COUNT_1_BIT) { + waterRenderer->destroyWater1xResources(); + setupWater1xPass(); } } }