diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 8b1aa8122..e3542301e 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -1169,7 +1169,12 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA | |||
| 1169 | ForEachImageInRegion(cpu_addr, size_bytes, region_check); | 1169 | ForEachImageInRegion(cpu_addr, size_bytes, region_check); |
| 1170 | const auto region_check_gpu = [&](ImageId overlap_id, ImageBase& overlap) { | 1170 | const auto region_check_gpu = [&](ImageId overlap_id, ImageBase& overlap) { |
| 1171 | if (!overlaps_found.contains(overlap_id)) { | 1171 | if (!overlaps_found.contains(overlap_id)) { |
| 1172 | ignore_textures.insert(overlap_id); | 1172 | if (True(overlap.flags & ImageFlagBits::Remapped)) { |
| 1173 | ignore_textures.insert(overlap_id); | ||
| 1174 | } | ||
| 1175 | if (overlap.gpu_addr == gpu_addr && overlap.guest_size_bytes == size_bytes) { | ||
| 1176 | ignore_textures.insert(overlap_id); | ||
| 1177 | } | ||
| 1173 | } | 1178 | } |
| 1174 | }; | 1179 | }; |
| 1175 | ForEachSparseImageInRegion(gpu_addr, size_bytes, region_check_gpu); | 1180 | ForEachSparseImageInRegion(gpu_addr, size_bytes, region_check_gpu); |