diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2024-04-20 22:35:20 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-20 22:35:20 -0300 |
| commit | 7070cf6ae502b5c11551fceb164bc9f158ba980b (patch) | |
| tree | 3d6b51cf2dcc70365c88d49bb628e5cbac7d0eb0 /src/Ryujinx.Graphics.Gpu/Engine | |
| parent | 9839cd56fbab2412742bf5e8643761aa5bc93e30 (diff) | |
End render target lifetime on syncpoint increment (#6687)
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Engine')
| -rw-r--r-- | src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs | 3 | ||||
| -rw-r--r-- | src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs b/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs index 5bd8ec72..cedd824a 100644 --- a/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs +++ b/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs @@ -157,6 +157,9 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo } else if (operation == SyncpointbOperation.Incr) { + // "Unbind" render targets since a syncpoint increment might indicate future CPU access for the textures. + _parent.TextureManager.RefreshModifiedTextures(); + _context.CreateHostSyncIfNeeded(HostSyncFlags.StrictSyncpoint); _context.Synchronization.IncrementSyncpoint(syncpointId); } diff --git a/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs b/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs index b57109c7..984a9cff 100644 --- a/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs +++ b/src/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs @@ -4,6 +4,7 @@ using Ryujinx.Graphics.Gpu.Engine.Dma; using Ryujinx.Graphics.Gpu.Engine.InlineToMemory; using Ryujinx.Graphics.Gpu.Engine.Threed; using Ryujinx.Graphics.Gpu.Engine.Twod; +using Ryujinx.Graphics.Gpu.Image; using Ryujinx.Graphics.Gpu.Memory; using System; using System.Runtime.CompilerServices; @@ -29,6 +30,11 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo public MemoryManager MemoryManager => _channel.MemoryManager; /// <summary> + /// Channel texture manager. + /// </summary> + public TextureManager TextureManager => _channel.TextureManager; + + /// <summary> /// 3D Engine. /// </summary> public ThreedClass ThreedClass => _3dClass; |
