From 808cf2c7d2edcb2d0ebea40eb12afb809b7e5397 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Tue, 28 Apr 2026 21:43:05 -0700 Subject: [PATCH] renderer_vulkan: Fix `Surface::ScaleUp` scale/sample increase This should be checking the _new_ value to possibly cull upscaled texture creation rather than the current value of the surface. Fixes broken up render passes when drawing UI in some games. --- src/video_core/renderer_vulkan/vk_texture_runtime.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_texture_runtime.cpp b/src/video_core/renderer_vulkan/vk_texture_runtime.cpp index d83c45a0a..f8e267996 100644 --- a/src/video_core/renderer_vulkan/vk_texture_runtime.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_runtime.cpp @@ -1234,9 +1234,8 @@ void Surface::ScaleUp(u32 new_scale, u8 new_sample_count) { flags |= vk::ImageCreateFlagBits::eMutableFormat; } - bool res_scale_modified = false; - if (res_scale != new_scale && res_scale > 1) { - res_scale_modified = res_scale != new_scale; + const bool res_scale_modified = res_scale != new_scale; + if (res_scale_modified && new_scale > 1) { res_scale = new_scale; handles[Type::Scaled].Create(GetScaledWidth(), GetScaledHeight(), levels, texture_type, @@ -1265,7 +1264,7 @@ void Surface::ScaleUp(u32 new_scale, u8 new_sample_count) { } } - if ((res_scale_modified || sample_count != new_sample_count) && sample_count > 1) { + if ((res_scale_modified || sample_count != new_sample_count) && new_sample_count > 1) { sample_count = new_sample_count; handles[Type::MultiSampled].Create(GetScaledWidth(), GetScaledHeight(), levels, texture_type, traits.native,