diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index d02abc8944..dc3e8dfe2d 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -180,8 +180,13 @@ u64 TextureCache
::ReclaimMemory(u64 target_bytes, bool allow_download) {
if (True(image.flags & ImageFlagBits::IsDecoding)) {
return false;
}
- const bool must_download =
- image.IsSafeDownload() && False(image.flags & ImageFlagBits::BadOverlap);
+ const bool must_download = image.IsSafeDownload();
+ if (must_download && True(image.flags & ImageFlagBits::BadOverlap)) {
+ LOG_WARNING(HW_GPU,
+ "Recovering bad overlap on eviction: gpu_addr=0x{:x} fmt={} {}x{}x{}",
+ image.gpu_addr, static_cast ::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, DA
join_copies_to_do.emplace_back(JoinCopy{false, overlap_id});
continue;
}
- if (overlap.IsSafeDownload() && False(overlap.flags & ImageFlagBits::BadOverlap) &&
+ if (overlap.IsSafeDownload() &&
gpu_memory->GpuToCpuAddress(overlap.gpu_addr).has_value()) {
+ if (True(overlap.flags & ImageFlagBits::BadOverlap)) {
+ LOG_WARNING(HW_GPU,
+ "Recovering bad overlap on join: gpu_addr=0x{:x} fmt={} {}x{}x{}",
+ overlap.gpu_addr, static_cast