diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/SyncManager.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/SyncManager.cs | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/SyncManager.cs b/src/Ryujinx.Graphics.Vulkan/SyncManager.cs index b3f6e8e5..35e9ab97 100644 --- a/src/Ryujinx.Graphics.Vulkan/SyncManager.cs +++ b/src/Ryujinx.Graphics.Vulkan/SyncManager.cs @@ -21,13 +21,13 @@ namespace Ryujinx.Graphics.Vulkan } } - private ulong _firstHandle = 0; + private ulong _firstHandle; private readonly VulkanRenderer _gd; private readonly Device _device; - private List<SyncHandle> _handles; - private ulong FlushId; - private long WaitTicks; + private readonly List<SyncHandle> _handles; + private ulong _flushId; + private long _waitTicks; public SyncManager(VulkanRenderer gd, Device device) { @@ -38,13 +38,13 @@ namespace Ryujinx.Graphics.Vulkan public void RegisterFlush() { - FlushId++; + _flushId++; } public void Create(ulong id, bool strict) { - ulong flushId = FlushId; - MultiFenceHolder waitable = new MultiFenceHolder(); + ulong flushId = _flushId; + MultiFenceHolder waitable = new(); if (strict || _gd.InterruptAction == null) { _gd.FlushAllCommands(); @@ -58,11 +58,11 @@ namespace Ryujinx.Graphics.Vulkan _gd.CommandBufferPool.AddInUseWaitable(waitable); } - SyncHandle handle = new SyncHandle + SyncHandle handle = new() { ID = id, Waitable = waitable, - FlushId = flushId + FlushId = flushId, }; lock (_handles) @@ -132,11 +132,11 @@ namespace Ryujinx.Graphics.Vulkan long beforeTicks = Stopwatch.GetTimestamp(); - if (result.NeedsFlush(FlushId)) + if (result.NeedsFlush(_flushId)) { _gd.InterruptAction(() => { - if (result.NeedsFlush(FlushId)) + if (result.NeedsFlush(_flushId)) { _gd.FlushAllCommands(); } @@ -158,7 +158,7 @@ namespace Ryujinx.Graphics.Vulkan } else { - WaitTicks += Stopwatch.GetTimestamp() - beforeTicks; + _waitTicks += Stopwatch.GetTimestamp() - beforeTicks; result.Signalled = true; } } @@ -177,7 +177,10 @@ namespace Ryujinx.Graphics.Vulkan first = _handles.FirstOrDefault(); } - if (first == null || first.NeedsFlush(FlushId)) break; + if (first == null || first.NeedsFlush(_flushId)) + { + break; + } bool signaled = first.Waitable.WaitForFences(_gd.Api, _device, 0); if (signaled) @@ -192,7 +195,8 @@ namespace Ryujinx.Graphics.Vulkan first.Waitable = null; } } - } else + } + else { // This sync handle and any following have not been reached yet. break; @@ -202,8 +206,8 @@ namespace Ryujinx.Graphics.Vulkan public long GetAndResetWaitTicks() { - long result = WaitTicks; - WaitTicks = 0; + long result = _waitTicks; + _waitTicks = 0; return result; } |