diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs | 6 | ||||
-rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/Threed/ThreedClass.cs | 2 | ||||
-rw-r--r-- | Ryujinx.Graphics.Gpu/GpuContext.cs | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs index 9cb97983..e80d98a1 100644 --- a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs +++ b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs @@ -59,7 +59,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo if (_createSyncPending) { _createSyncPending = false; - _context.CreateHostSyncIfNeeded(false); + _context.CreateHostSyncIfNeeded(false, false); } } @@ -157,7 +157,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo } else if (operation == SyncpointbOperation.Incr) { - _context.CreateHostSyncIfNeeded(true); + _context.CreateHostSyncIfNeeded(true, true); _context.Synchronization.IncrementSyncpoint(syncpointId); } @@ -184,7 +184,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo { _context.Renderer.Pipeline.CommandBufferBarrier(); - _context.CreateHostSyncIfNeeded(false); + _context.CreateHostSyncIfNeeded(false, true); } /// <summary> diff --git a/Ryujinx.Graphics.Gpu/Engine/Threed/ThreedClass.cs b/Ryujinx.Graphics.Gpu/Engine/Threed/ThreedClass.cs index 87dd1d8e..a38c0987 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Threed/ThreedClass.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Threed/ThreedClass.cs @@ -250,7 +250,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed uint syncpointId = (uint)argument & 0xFFFF; _context.AdvanceSequence(); - _context.CreateHostSyncIfNeeded(true); + _context.CreateHostSyncIfNeeded(true, true); _context.Renderer.UpdateCounters(); // Poll the query counters, the game may want an updated result. _context.Synchronization.IncrementSyncpoint(syncpointId); } diff --git a/Ryujinx.Graphics.Gpu/GpuContext.cs b/Ryujinx.Graphics.Gpu/GpuContext.cs index 52733165..91758863 100644 --- a/Ryujinx.Graphics.Gpu/GpuContext.cs +++ b/Ryujinx.Graphics.Gpu/GpuContext.cs @@ -316,7 +316,8 @@ namespace Ryujinx.Graphics.Gpu /// If no actions are present, a host sync object is not created. /// </summary> /// <param name="syncpoint">True if host sync is being created by a syncpoint</param> - public void CreateHostSyncIfNeeded(bool syncpoint) + /// <param name="strict">True if the sync should signal as soon as possible</param> + public void CreateHostSyncIfNeeded(bool syncpoint, bool strict) { if (BufferMigrations.Count > 0) { @@ -337,7 +338,7 @@ namespace Ryujinx.Graphics.Gpu if (_pendingSync || (syncpoint && SyncpointActions.Count > 0)) { - Renderer.CreateSync(SyncNumber); + Renderer.CreateSync(SyncNumber, strict); SyncNumber++; |