Browse Source
Merge pull request #11744 from Kelebek1/no_res_no_rescaled
Do not set rescaled flag when rescaling is disabled
pull/15/merge
liamwhite
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
16 additions and
14 deletions
-
src/video_core/renderer_opengl/gl_texture_cache.cpp
-
src/video_core/renderer_vulkan/vk_texture_cache.cpp
|
|
|
@ -1048,6 +1048,10 @@ void Image::Scale(bool up_scale) { |
|
|
|
} |
|
|
|
|
|
|
|
bool Image::ScaleUp(bool ignore) { |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (True(flags & ImageFlagBits::Rescaled)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
@ -1060,9 +1064,6 @@ bool Image::ScaleUp(bool ignore) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
flags |= ImageFlagBits::Rescaled; |
|
|
|
if (!runtime->resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
has_scaled = true; |
|
|
|
if (ignore) { |
|
|
|
current_texture = upscaled_backup.handle; |
|
|
|
@ -1073,13 +1074,14 @@ bool Image::ScaleUp(bool ignore) { |
|
|
|
} |
|
|
|
|
|
|
|
bool Image::ScaleDown(bool ignore) { |
|
|
|
if (False(flags & ImageFlagBits::Rescaled)) { |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
flags &= ~ImageFlagBits::Rescaled; |
|
|
|
if (!runtime->resolution.active) { |
|
|
|
if (False(flags & ImageFlagBits::Rescaled)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
flags &= ~ImageFlagBits::Rescaled; |
|
|
|
if (ignore) { |
|
|
|
current_texture = texture.handle; |
|
|
|
return true; |
|
|
|
|
|
|
|
@ -1530,15 +1530,15 @@ bool Image::IsRescaled() const noexcept { |
|
|
|
} |
|
|
|
|
|
|
|
bool Image::ScaleUp(bool ignore) { |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (True(flags & ImageFlagBits::Rescaled)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
ASSERT(info.type != ImageType::Linear); |
|
|
|
flags |= ImageFlagBits::Rescaled; |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
has_scaled = true; |
|
|
|
if (!scaled_image) { |
|
|
|
const bool is_2d = info.type == ImageType::e2D; |
|
|
|
@ -1567,15 +1567,15 @@ bool Image::ScaleUp(bool ignore) { |
|
|
|
} |
|
|
|
|
|
|
|
bool Image::ScaleDown(bool ignore) { |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (False(flags & ImageFlagBits::Rescaled)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
ASSERT(info.type != ImageType::Linear); |
|
|
|
flags &= ~ImageFlagBits::Rescaled; |
|
|
|
const auto& resolution = runtime->resolution; |
|
|
|
if (!resolution.active) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
current_image = *original_image; |
|
|
|
if (ignore) { |
|
|
|
return true; |
|
|
|
|