diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Image/TextureCache.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Image/TextureCache.cs | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/Ryujinx.Graphics.Gpu/Image/TextureCache.cs b/Ryujinx.Graphics.Gpu/Image/TextureCache.cs index fab38e14..fed89770 100644 --- a/Ryujinx.Graphics.Gpu/Image/TextureCache.cs +++ b/Ryujinx.Graphics.Gpu/Image/TextureCache.cs @@ -582,7 +582,7 @@ namespace Ryujinx.Graphics.Gpu.Image if (oInfo.Compatibility <= TextureViewCompatibility.LayoutIncompatible) { - if (!overlap.IsView && texture.DataOverlaps(overlap)) + if (!overlap.IsView && texture.DataOverlaps(overlap, oInfo.Compatibility)) { texture.Group.RegisterIncompatibleOverlap(new TextureIncompatibleOverlap(overlap.Group, oInfo.Compatibility), true); } @@ -657,7 +657,7 @@ namespace Ryujinx.Graphics.Gpu.Image } else { - bool dataOverlaps = texture.DataOverlaps(overlap); + bool dataOverlaps = texture.DataOverlaps(overlap, compatibility); if (!overlap.IsView && dataOverlaps && !incompatibleOverlaps.Exists(incompatible => incompatible.Group == overlap.Group)) { @@ -676,12 +676,6 @@ namespace Ryujinx.Graphics.Gpu.Image continue; } - if (info.GobBlocksInZ > 1 && info.GobBlocksInZ == overlap.Info.GobBlocksInZ) - { - // Allow overlapping slices of 3D textures. Could be improved in future by making sure the textures don't overlap. - continue; - } - // The overlap texture is going to contain garbage data after we draw, or is generally incompatible. // The texture group will obtain copy dependencies for any subresources that are compatible between the two textures, // but sometimes its data must be flushed regardless. |