From 1f4cc88d2a789d586826a7820e8d4c5df00bd698 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 2 Feb 2022 14:05:55 -0500 Subject: [PATCH 1/3] texture_cache: Amend unintended bitwise OR in SynchronizeAliases --- src/video_core/texture_cache/texture_cache.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 198bb0cfb4..bc45720b6f 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1725,7 +1725,7 @@ void TextureCache

::SynchronizeAliases(ImageId image_id) { }); const auto& resolution = Settings::values.resolution_info; for (const AliasedImage* const aliased : aliased_images) { - if (!resolution.active | !any_rescaled) { + if (!resolution.active || !any_rescaled) { CopyImage(image_id, aliased->id, aliased->copies); continue; } From 6419acdd76049ee491bd7317b2ea41482f4ba5a3 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 2 Feb 2022 14:10:06 -0500 Subject: [PATCH 2/3] texture_cache: Remove dead code within SynchronizeAliases Since these were being copied by value, none of the changes applied in the loop would be reflected. However, from the looks of it, this would already be applied within CopyImage() anyways, so this can be removed. --- src/video_core/texture_cache/texture_cache.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index bc45720b6f..d57c0c41af 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1736,19 +1736,7 @@ void TextureCache

::SynchronizeAliases(ImageId image_id) { continue; } ScaleUp(aliased_image); - - const bool both_2d{image.info.type == ImageType::e2D && - aliased_image.info.type == ImageType::e2D}; - auto copies = aliased->copies; - for (auto copy : copies) { - copy.extent.width = std::max( - (copy.extent.width * resolution.up_scale) >> resolution.down_shift, 1); - if (both_2d) { - copy.extent.height = std::max( - (copy.extent.height * resolution.up_scale) >> resolution.down_shift, 1); - } - } - CopyImage(image_id, aliased->id, copies); + CopyImage(image_id, aliased->id, aliased->copies); } } From fd12153c52e1cd306c74f0d57793d9c8c4d773f8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 2 Feb 2022 14:12:31 -0500 Subject: [PATCH 3/3] texture_cache: Ensure has_blacklisted is always initialized Resolves a -Wmaybe_uninitialized warning --- src/video_core/texture_cache/texture_cache.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index d57c0c41af..72eeb8bbd0 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -343,7 +343,7 @@ template void TextureCache

::FillImageViews(DescriptorTable& table, std::span cached_image_view_ids, std::span views) { - bool has_blacklisted; + bool has_blacklisted = false; do { has_deleted_images = false; if constexpr (has_blacklists) {