diff options
Diffstat (limited to 'src/video_core/texture_cache')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 8 |
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 | |||
| 1323 | all_siblings.push_back(overlap_id); | 1323 | all_siblings.push_back(overlap_id); |
| 1324 | } else { | 1324 | } else { |
| 1325 | bad_overlap_ids.push_back(overlap_id); | 1325 | bad_overlap_ids.push_back(overlap_id); |
| 1326 | overlap.flags |= ImageFlagBits::BadOverlap; | ||
| 1327 | } | 1326 | } |
| 1328 | }; | 1327 | }; |
| 1329 | ForEachImageInRegion(cpu_addr, size_bytes, region_check); | 1328 | ForEachImageInRegion(cpu_addr, size_bytes, region_check); |
| @@ -1434,7 +1433,12 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA | |||
| 1434 | ImageBase& aliased = slot_images[aliased_id]; | 1433 | ImageBase& aliased = slot_images[aliased_id]; |
| 1435 | aliased.overlapping_images.push_back(new_image_id); | 1434 | aliased.overlapping_images.push_back(new_image_id); |
| 1436 | new_image.overlapping_images.push_back(aliased_id); | 1435 | new_image.overlapping_images.push_back(aliased_id); |
| 1437 | new_image.flags |= ImageFlagBits::BadOverlap; | 1436 | if (aliased.info.resources.levels == 1 && aliased.overlapping_images.size() > 1) { |
| 1437 | aliased.flags |= ImageFlagBits::BadOverlap; | ||
| 1438 | } | ||
| 1439 | if (new_image.info.resources.levels == 1 && new_image.overlapping_images.size() > 1) { | ||
| 1440 | new_image.flags |= ImageFlagBits::BadOverlap; | ||
| 1441 | } | ||
| 1438 | } | 1442 | } |
| 1439 | RegisterImage(new_image_id); | 1443 | RegisterImage(new_image_id); |
| 1440 | return new_image_id; | 1444 | return new_image_id; |