From 357e2e71096ec22bbbfa64fdd00d8600a3b9f216 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Fri, 28 Aug 2026 14:28:09 -0400 Subject: [PATCH] Refining fix --- src/common/settings.cpp | 2 +- src/video_core/renderer_vulkan/vk_texture_cache.cpp | 2 -- src/video_core/texture_cache/texture_cache.h | 5 +++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index e1625c81f2..e2c5b532ac 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -369,7 +369,7 @@ void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) } info.up_factor = static_cast(info.up_scale) / (1U << info.down_shift); info.down_factor = static_cast(1U << info.down_shift) / info.up_scale; - info.active = true; + info.active = info.up_scale != 1 || info.down_shift != 0; } void UpdateRescalingInfo() { diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index a3babccb3c..d9c9a807cc 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -2440,7 +2440,6 @@ bool Image::ScaleUp(bool ignore) { runtime->ViewFormats(info.format)); ignore = false; } - ignore = true; current_image = &Image::scaled_image; if (ignore) { return true; @@ -2469,7 +2468,6 @@ bool Image::ScaleDown(bool ignore) { } ASSERT(info.type != ImageType::Linear); flags &= ~ImageFlagBits::Rescaled; - ignore = true; current_image = &Image::original_image; if (ignore) { return true; diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index ce85bfead9..4b86f151ca 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1122,6 +1122,11 @@ void TextureCache

::RefreshContents(Image& image, ImageId image_id) { TrackImage(image, image_id); + if (True(image.flags & ImageFlagBits::GpuModified) && image.info.rescaleable) { + runtime.TransitionImageLayout(image); + return; + } + if (image.info.num_samples > 1 && !runtime.CanUploadMSAA()) { LOG_WARNING(HW_GPU, "MSAA image uploads are not implemented"); runtime.TransitionImageLayout(image);