aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Synchronization
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Synchronization')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Synchronization/HostSyncFlags.cs2
-rw-r--r--src/Ryujinx.Graphics.Gpu/Synchronization/SynchronizationManager.cs30
-rw-r--r--src/Ryujinx.Graphics.Gpu/Synchronization/Syncpoint.cs11
3 files changed, 19 insertions, 24 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Synchronization/HostSyncFlags.cs b/src/Ryujinx.Graphics.Gpu/Synchronization/HostSyncFlags.cs
index 42666991..1b4df37e 100644
--- a/src/Ryujinx.Graphics.Gpu/Synchronization/HostSyncFlags.cs
+++ b/src/Ryujinx.Graphics.Gpu/Synchronization/HostSyncFlags.cs
@@ -25,6 +25,6 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
/// </summary>
Force = 1 << 2,
- StrictSyncpoint = Strict | Syncpoint
+ StrictSyncpoint = Strict | Syncpoint,
}
}
diff --git a/src/Ryujinx.Graphics.Gpu/Synchronization/SynchronizationManager.cs b/src/Ryujinx.Graphics.Gpu/Synchronization/SynchronizationManager.cs
index 968de930..ccec763e 100644
--- a/src/Ryujinx.Graphics.Gpu/Synchronization/SynchronizationManager.cs
+++ b/src/Ryujinx.Graphics.Gpu/Synchronization/SynchronizationManager.cs
@@ -17,7 +17,7 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
/// <summary>
/// Array containing all hardware syncpoints.
/// </summary>
- private Syncpoint[] _syncpoints;
+ private readonly Syncpoint[] _syncpoints;
public SynchronizationManager()
{
@@ -118,26 +118,24 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
timeout = TimeSpan.FromSeconds(1);
}
- using (ManualResetEvent waitEvent = new ManualResetEvent(false))
- {
- var info = _syncpoints[id].RegisterCallback(threshold, (x) => waitEvent.Set());
-
- if (info == null)
- {
- return false;
- }
+ using ManualResetEvent waitEvent = new(false);
+ var info = _syncpoints[id].RegisterCallback(threshold, (x) => waitEvent.Set());
- bool signaled = waitEvent.WaitOne(timeout);
+ if (info == null)
+ {
+ return false;
+ }
- if (!signaled && info != null)
- {
- Logger.Error?.Print(LogClass.Gpu, $"Wait on syncpoint {id} for threshold {threshold} took more than {timeout.TotalMilliseconds}ms, resuming execution...");
+ bool signaled = waitEvent.WaitOne(timeout);
- _syncpoints[id].UnregisterCallback(info);
- }
+ if (!signaled && info != null)
+ {
+ Logger.Error?.Print(LogClass.Gpu, $"Wait on syncpoint {id} for threshold {threshold} took more than {timeout.TotalMilliseconds}ms, resuming execution...");
- return !signaled;
+ _syncpoints[id].UnregisterCallback(info);
}
+
+ return !signaled;
}
}
}
diff --git a/src/Ryujinx.Graphics.Gpu/Synchronization/Syncpoint.cs b/src/Ryujinx.Graphics.Gpu/Synchronization/Syncpoint.cs
index 39fb83c0..16f4d971 100644
--- a/src/Ryujinx.Graphics.Gpu/Synchronization/Syncpoint.cs
+++ b/src/Ryujinx.Graphics.Gpu/Synchronization/Syncpoint.cs
@@ -23,7 +23,7 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
public Syncpoint(uint id)
{
- Id = id;
+ Id = id;
_waiters = new List<SyncpointWaiterHandle>();
}
@@ -46,10 +46,10 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
}
else
{
- SyncpointWaiterHandle waiterInformation = new SyncpointWaiterHandle
+ SyncpointWaiterHandle waiterInformation = new()
{
Threshold = threshold,
- Callback = callback
+ Callback = callback,
};
_waiters.Add(waiterInformation);
@@ -92,10 +92,7 @@ namespace Ryujinx.Graphics.Gpu.Synchronization
}
else
{
- if (expiredList == null)
- {
- expiredList = new List<SyncpointWaiterHandle>();
- }
+ expiredList ??= new List<SyncpointWaiterHandle>();
expiredList.Add(item);
}