From 416e23fe768cf2f9e78f219627be501e2486eb74 Mon Sep 17 00:00:00 2001 From: "Daniel R." <47796739+polybiusproxy@users.noreply.github.com> Date: Fri, 6 Sep 2024 19:09:28 +0200 Subject: [PATCH] Fix incompatible format images being passed on overlap resolve (#794) --- src/video_core/texture_cache/texture_cache.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/video_core/texture_cache/texture_cache.cpp b/src/video_core/texture_cache/texture_cache.cpp index 0d0c81f5..996fcad0 100644 --- a/src/video_core/texture_cache/texture_cache.cpp +++ b/src/video_core/texture_cache/texture_cache.cpp @@ -109,9 +109,12 @@ ImageId TextureCache::ResolveOverlap(const ImageInfo& image_info, ImageId cache_ } if (image_info.pixel_format != tex_cache_image.info.pixel_format || - image_info.size != tex_cache_image.info.size || image_info.guest_size_bytes <= tex_cache_image.info.guest_size_bytes) { - return merged_image_id ? merged_image_id : cache_image_id; + auto result_id = merged_image_id ? merged_image_id : cache_image_id; + const auto& result_image = slot_images[result_id]; + return IsVulkanFormatCompatible(image_info.pixel_format, result_image.info.pixel_format) + ? result_id + : ImageId{}; } ImageId new_image_id{};