|
|
@@ -15,9 +15,9 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
{
|
|
|
private ulong _bufferHandle = 0;
|
|
|
|
|
|
- private Dictionary<BufferHandle, BufferHandle> _bufferMap = new Dictionary<BufferHandle, BufferHandle>();
|
|
|
- private HashSet<BufferHandle> _inFlight = new HashSet<BufferHandle>();
|
|
|
- private AutoResetEvent _inFlightChanged = new AutoResetEvent(false);
|
|
|
+ private readonly Dictionary<BufferHandle, BufferHandle> _bufferMap = new();
|
|
|
+ private readonly HashSet<BufferHandle> _inFlight = new();
|
|
|
+ private readonly AutoResetEvent _inFlightChanged = new(false);
|
|
|
|
|
|
internal BufferHandle CreateBufferHandle()
|
|
|
{
|
|
|
@@ -59,14 +59,12 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
internal BufferHandle MapBuffer(BufferHandle handle)
|
|
|
{
|
|
|
// Maps a threaded buffer to a backend one.
|
|
|
- // Threaded buffers are returned on creation as the buffer
|
|
|
+ // Threaded buffers are returned on creation as the buffer
|
|
|
// isn't actually created until the queue runs the command.
|
|
|
|
|
|
- BufferHandle result;
|
|
|
-
|
|
|
lock (_bufferMap)
|
|
|
{
|
|
|
- if (!_bufferMap.TryGetValue(handle, out result))
|
|
|
+ if (!_bufferMap.TryGetValue(handle, out BufferHandle result))
|
|
|
{
|
|
|
result = BufferHandle.Null;
|
|
|
}
|
|
|
@@ -79,11 +77,10 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
{
|
|
|
// Blocks until the handle is available.
|
|
|
|
|
|
- BufferHandle result;
|
|
|
|
|
|
lock (_bufferMap)
|
|
|
{
|
|
|
- if (_bufferMap.TryGetValue(handle, out result))
|
|
|
+ if (_bufferMap.TryGetValue(handle, out BufferHandle result))
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
@@ -128,9 +125,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
for (int i = 0; i < ranges.Length; i++)
|
|
|
{
|
|
|
ref BufferRange range = ref ranges[i];
|
|
|
- BufferHandle result;
|
|
|
|
|
|
- if (!_bufferMap.TryGetValue(range.Handle, out result))
|
|
|
+ if (!_bufferMap.TryGetValue(range.Handle, out BufferHandle result))
|
|
|
{
|
|
|
result = BufferHandle.Null;
|
|
|
}
|
|
|
@@ -152,9 +148,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
{
|
|
|
ref BufferAssignment assignment = ref ranges[i];
|
|
|
BufferRange range = assignment.Range;
|
|
|
- BufferHandle result;
|
|
|
|
|
|
- if (!_bufferMap.TryGetValue(range.Handle, out result))
|
|
|
+ if (!_bufferMap.TryGetValue(range.Handle, out BufferHandle result))
|
|
|
{
|
|
|
result = BufferHandle.Null;
|
|
|
}
|
|
|
@@ -175,9 +170,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
|
|
for (int i = 0; i < ranges.Length; i++)
|
|
|
{
|
|
|
BufferRange range = ranges[i].Buffer;
|
|
|
- BufferHandle result;
|
|
|
|
|
|
- if (!_bufferMap.TryGetValue(range.Handle, out result))
|
|
|
+ if (!_bufferMap.TryGetValue(range.Handle, out BufferHandle result))
|
|
|
{
|
|
|
result = BufferHandle.Null;
|
|
|
}
|