summaryrefslogtreecommitdiffstats
path: root/src/video_core/texture_cache/texture_cache.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2023-05-07 23:25:34 +0200
committerFernando Sahmkow <fsahmkow27@gmail.com>2023-05-07 23:46:12 +0200
commit2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc (patch)
tree2007ab777f557eba09cc85326438db0be943d980 /src/video_core/texture_cache/texture_cache.h
parentTexture cache: reverse inmediate flush changes (diff)
downloadyuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar.gz
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar.bz2
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar.lz
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar.xz
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.tar.zst
yuzu-2df19ef0fd5a91ca87e2c2cf201166a40c9d44dc.zip
Diffstat (limited to 'src/video_core/texture_cache/texture_cache.h')
-rw-r--r--src/video_core/texture_cache/texture_cache.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 29ac01eb4..d49f3a7a0 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -1323,7 +1323,6 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA
all_siblings.push_back(overlap_id);
} else {
bad_overlap_ids.push_back(overlap_id);
- overlap.flags |= ImageFlagBits::BadOverlap;
}
};
ForEachImageInRegion(cpu_addr, size_bytes, region_check);
@@ -1434,7 +1433,12 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA
ImageBase& aliased = slot_images[aliased_id];
aliased.overlapping_images.push_back(new_image_id);
new_image.overlapping_images.push_back(aliased_id);
- new_image.flags |= ImageFlagBits::BadOverlap;
+ if (aliased.info.resources.levels == 1 && aliased.overlapping_images.size() > 1) {
+ aliased.flags |= ImageFlagBits::BadOverlap;
+ }
+ if (new_image.info.resources.levels == 1 && new_image.overlapping_images.size() > 1) {
+ new_image.flags |= ImageFlagBits::BadOverlap;
+ }
}
RegisterImage(new_image_id);
return new_image_id;