summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-10-06 08:02:05 +0200
committerFernando Sahmkow <fsahmkow27@gmail.com>2021-11-16 22:11:30 +0100
commitf8339cd703c2e6d24477be211e1fd91a6e1ef334 (patch)
treef02b34bbbbbabe6a5c1f4a8a7cdacbe13a39731f /src/video_core/renderer_vulkan
parentvideo_core: Misc resolution scaling related refactoring (diff)
downloadyuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar.gz
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar.bz2
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar.lz
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar.xz
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.tar.zst
yuzu-f8339cd703c2e6d24477be211e1fd91a6e1ef334.zip
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index 930c7d569..1ab2b1fe9 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -1130,13 +1130,19 @@ bool Image::ScaleUp() {
return false;
}
ASSERT(info.type != ImageType::Linear);
- flags |= ImageFlagBits::Rescaled;
-
const auto& resolution = runtime->resolution;
if (!resolution.active) {
- return true;
+ return false;
}
const auto& device = runtime->device;
+ const PixelFormat format = StorageFormat(info.format);
+ const auto format_info = MaxwellToVK::SurfaceFormat(device, FormatType::Optimal, false, format);
+ const auto similar = device.GetSupportedFormat(
+ format_info.format, (VK_FORMAT_FEATURE_BLIT_SRC_BIT | VK_FORMAT_FEATURE_BLIT_DST_BIT),
+ FormatType::Optimal);
+ if (similar != format_info.format) {
+ return true;
+ }
if (!scaled_image) {
const u32 up = resolution.up_scale;
const u32 down = resolution.down_shift;
@@ -1155,23 +1161,9 @@ bool Image::ScaleUp() {
if (aspect_mask == 0) {
aspect_mask = ImageAspectMask(info.format);
}
- if (info.num_samples > 1) {
- return true;
- }
- const PixelFormat format = StorageFormat(info.format);
- const auto format_info = MaxwellToVK::SurfaceFormat(device, FormatType::Optimal, false, format);
- const auto similar = device.GetSupportedFormat(
- format_info.format, (VK_FORMAT_FEATURE_BLIT_SRC_BIT | VK_FORMAT_FEATURE_BLIT_DST_BIT),
- FormatType::Optimal);
-
- if (similar != format_info.format) {
- return true;
- }
- if (aspect_mask == 0) {
- aspect_mask = ImageAspectMask(info.format);
- }
BlitScale(*scheduler, *original_image, *scaled_image, info, aspect_mask, resolution, true);
current_image = *scaled_image;
+ flags |= ImageFlagBits::Rescaled;
return true;
}