diff options
Diffstat (limited to 'src/Ryujinx.Graphics.GAL/Multithreading')
108 files changed, 164 insertions, 170 deletions
diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs b/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs index 24b0af2d..c30df046 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/BufferMap.cs @@ -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; } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs b/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs index 9f6e483c..12c5245a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/CommandHelper.cs @@ -17,8 +17,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading { private delegate void CommandDelegate(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer); - private static int _totalCommands = (int)Enum.GetValues<CommandType>().Max() + 1; - private static CommandDelegate[] _lookup = new CommandDelegate[_totalCommands]; + private static readonly int _totalCommands = (int)Enum.GetValues<CommandType>().Max() + 1; + private static readonly CommandDelegate[] _lookup = new CommandDelegate[_totalCommands]; [MethodImpl(MethodImplOptions.AggressiveInlining)] private static ref T GetCommand<T>(Span<byte> memory) @@ -146,7 +146,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void RunCommand(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer) { - _lookup[memory[memory.Length - 1]](memory, threaded, renderer); + _lookup[memory[^1]](memory, threaded, renderer); } } } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/CommandType.cs b/src/Ryujinx.Graphics.GAL/Multithreading/CommandType.cs index 8d9c1ec8..1e73fba6 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/CommandType.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/CommandType.cs @@ -100,6 +100,6 @@ TextureBarrierTiled, TryHostConditionalRendering, TryHostConditionalRenderingFlush, - UpdateRenderScale + UpdateRenderScale, } } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BarrierCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BarrierCommand.cs index 4f8e1b08..4a73a3bc 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BarrierCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BarrierCommand.cs @@ -2,7 +2,7 @@ { struct BarrierCommand : IGALCommand, IGALCommand<BarrierCommand> { - public CommandType CommandType => CommandType.Barrier; + public readonly CommandType CommandType => CommandType.Barrier; public static void Run(ref BarrierCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BeginTransformFeedbackCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BeginTransformFeedbackCommand.cs index 50032635..538ff98d 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BeginTransformFeedbackCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/BeginTransformFeedbackCommand.cs @@ -2,7 +2,7 @@ { struct BeginTransformFeedbackCommand : IGALCommand, IGALCommand<BeginTransformFeedbackCommand> { - public CommandType CommandType => CommandType.BeginTransformFeedback; + public readonly CommandType CommandType => CommandType.BeginTransformFeedback; private PrimitiveTopology _topology; public void Set(PrimitiveTopology topology) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferDisposeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferDisposeCommand.cs index 5be42fff..03ee8560 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferDisposeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferDisposeCommand.cs @@ -2,7 +2,7 @@ { struct BufferDisposeCommand : IGALCommand, IGALCommand<BufferDisposeCommand> { - public CommandType CommandType => CommandType.BufferDispose; + public readonly CommandType CommandType => CommandType.BufferDispose; private BufferHandle _buffer; public void Set(BufferHandle buffer) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferGetDataCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferGetDataCommand.cs index 031c6153..0e395022 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferGetDataCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferGetDataCommand.cs @@ -1,11 +1,10 @@ using Ryujinx.Graphics.GAL.Multithreading.Model; -using System; namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Buffer { struct BufferGetDataCommand : IGALCommand, IGALCommand<BufferGetDataCommand> { - public CommandType CommandType => CommandType.BufferGetData; + public readonly CommandType CommandType => CommandType.BufferGetData; private BufferHandle _buffer; private int _offset; private int _size; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferSetDataCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferSetDataCommand.cs index dcb8c2f2..30daf382 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferSetDataCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Buffer/BufferSetDataCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Buffer { struct BufferSetDataCommand : IGALCommand, IGALCommand<BufferSetDataCommand> { - public CommandType CommandType => CommandType.BufferSetData; + public readonly CommandType CommandType => CommandType.BufferSetData; private BufferHandle _buffer; private int _offset; private SpanRef<byte> _data; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearBufferCommand.cs index 1d70460a..777a8460 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearBufferCommand.cs @@ -2,7 +2,7 @@ { struct ClearBufferCommand : IGALCommand, IGALCommand<ClearBufferCommand> { - public CommandType CommandType => CommandType.ClearBuffer; + public readonly CommandType CommandType => CommandType.ClearBuffer; private BufferHandle _destination; private int _offset; private int _size; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetColorCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetColorCommand.cs index f8c2bdfe..3a24e181 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetColorCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetColorCommand.cs @@ -2,7 +2,7 @@ { struct ClearRenderTargetColorCommand : IGALCommand, IGALCommand<ClearRenderTargetColorCommand> { - public CommandType CommandType => CommandType.ClearRenderTargetColor; + public readonly CommandType CommandType => CommandType.ClearRenderTargetColor; private int _index; private int _layer; private int _layerCount; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetDepthStencilCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetDepthStencilCommand.cs index ca86673e..43c0e89a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetDepthStencilCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/ClearRenderTargetDepthStencilCommand.cs @@ -2,7 +2,7 @@ { struct ClearRenderTargetDepthStencilCommand : IGALCommand, IGALCommand<ClearRenderTargetDepthStencilCommand> { - public CommandType CommandType => CommandType.ClearRenderTargetDepthStencil; + public readonly CommandType CommandType => CommandType.ClearRenderTargetDepthStencil; private int _layer; private int _layerCount; private float _depthValue; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CommandBufferBarrierCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CommandBufferBarrierCommand.cs index ad3ab0f8..97556233 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CommandBufferBarrierCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CommandBufferBarrierCommand.cs @@ -2,7 +2,7 @@ { struct CommandBufferBarrierCommand : IGALCommand, IGALCommand<CommandBufferBarrierCommand> { - public CommandType CommandType => CommandType.CommandBufferBarrier; + public readonly CommandType CommandType => CommandType.CommandBufferBarrier; public static void Run(ref CommandBufferBarrierCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CopyBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CopyBufferCommand.cs index 43111bce..8cd9e7f1 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CopyBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CopyBufferCommand.cs @@ -2,7 +2,7 @@ { struct CopyBufferCommand : IGALCommand, IGALCommand<CopyBufferCommand> { - public CommandType CommandType => CommandType.CopyBuffer; + public readonly CommandType CommandType => CommandType.CopyBuffer; private BufferHandle _source; private BufferHandle _destination; private int _srcOffset; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventDisposeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventDisposeCommand.cs index e5250212..fd9868b1 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventDisposeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventDisposeCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.CounterEvent { struct CounterEventDisposeCommand : IGALCommand, IGALCommand<CounterEventDisposeCommand> { - public CommandType CommandType => CommandType.CounterEventDispose; + public readonly CommandType CommandType => CommandType.CounterEventDispose; private TableRef<ThreadedCounterEvent> _event; public void Set(TableRef<ThreadedCounterEvent> evt) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventFlushCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventFlushCommand.cs index 608cf8f9..590169bc 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventFlushCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/CounterEvent/CounterEventFlushCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.CounterEvent { struct CounterEventFlushCommand : IGALCommand, IGALCommand<CounterEventFlushCommand> { - public CommandType CommandType => CommandType.CounterEventFlush; + public readonly CommandType CommandType => CommandType.CounterEventFlush; private TableRef<ThreadedCounterEvent> _event; public void Set(TableRef<ThreadedCounterEvent> evt) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DispatchComputeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DispatchComputeCommand.cs index 29568837..1a7c94f4 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DispatchComputeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DispatchComputeCommand.cs @@ -2,7 +2,7 @@ { struct DispatchComputeCommand : IGALCommand, IGALCommand<DispatchComputeCommand> { - public CommandType CommandType => CommandType.DispatchCompute; + public readonly CommandType CommandType => CommandType.DispatchCompute; private int _groupsX; private int _groupsY; private int _groupsZ; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawCommand.cs index 804eaa49..bd3cb89b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawCommand.cs @@ -2,7 +2,7 @@ { struct DrawIndexedCommand : IGALCommand, IGALCommand<DrawIndexedCommand> { - public CommandType CommandType => CommandType.DrawIndexed; + public readonly CommandType CommandType => CommandType.DrawIndexed; private int _indexCount; private int _instanceCount; private int _firstIndex; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedCommand.cs index 1b28afcd..c4d5ce66 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedCommand.cs @@ -2,7 +2,7 @@ { struct DrawCommand : IGALCommand, IGALCommand<DrawCommand> { - public CommandType CommandType => CommandType.Draw; + public readonly CommandType CommandType => CommandType.Draw; private int _vertexCount; private int _instanceCount; private int _firstVertex; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs index 521b2f0c..e4156e2b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCommand.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct DrawIndexedIndirectCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCommand> { - public CommandType CommandType => CommandType.DrawIndexedIndirect; + public readonly CommandType CommandType => CommandType.DrawIndexedIndirect; private BufferRange _indirectBuffer; public void Set(BufferRange indirectBuffer) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs index 6bdf376d..1f696622 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndexedIndirectCountCommand.cs @@ -2,7 +2,7 @@ { struct DrawIndexedIndirectCountCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCountCommand> { - public CommandType CommandType => CommandType.DrawIndexedIndirectCount; + public readonly CommandType CommandType => CommandType.DrawIndexedIndirectCount; private BufferRange _indirectBuffer; private BufferRange _parameterBuffer; private int _maxDrawCount; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs index e1947084..e2e93d3c 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCommand.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct DrawIndirectCommand : IGALCommand, IGALCommand<DrawIndirectCommand> { - public CommandType CommandType => CommandType.DrawIndirect; + public readonly CommandType CommandType => CommandType.DrawIndirect; private BufferRange _indirectBuffer; public void Set(BufferRange indirectBuffer) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs index ef56ffb2..eae98e4b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawIndirectCountCommand.cs @@ -2,7 +2,7 @@ { struct DrawIndirectCountCommand : IGALCommand, IGALCommand<DrawIndirectCountCommand> { - public CommandType CommandType => CommandType.DrawIndirectCount; + public readonly CommandType CommandType => CommandType.DrawIndirectCount; private BufferRange _indirectBuffer; private BufferRange _parameterBuffer; private int _maxDrawCount; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawTextureCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawTextureCommand.cs index b3e9c4b5..1e9cfd83 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawTextureCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/DrawTextureCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct DrawTextureCommand : IGALCommand, IGALCommand<DrawTextureCommand> { - public CommandType CommandType => CommandType.DrawTexture; + public readonly CommandType CommandType => CommandType.DrawTexture; private TableRef<ITexture> _texture; private TableRef<ISampler> _sampler; private Extents2DF _srcRegion; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndHostConditionalRenderingCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndHostConditionalRenderingCommand.cs index 877af23b..5d30a901 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndHostConditionalRenderingCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndHostConditionalRenderingCommand.cs @@ -2,7 +2,7 @@ { struct EndHostConditionalRenderingCommand : IGALCommand, IGALCommand<EndHostConditionalRenderingCommand> { - public CommandType CommandType => CommandType.EndHostConditionalRendering; + public readonly CommandType CommandType => CommandType.EndHostConditionalRendering; public static void Run(ref EndHostConditionalRenderingCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndTransformFeedbackCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndTransformFeedbackCommand.cs index 33df325f..d050f477 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndTransformFeedbackCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/EndTransformFeedbackCommand.cs @@ -2,7 +2,7 @@ { struct EndTransformFeedbackCommand : IGALCommand, IGALCommand<EndTransformFeedbackCommand> { - public CommandType CommandType => CommandType.EndTransformFeedback; + public readonly CommandType CommandType => CommandType.EndTransformFeedback; public static void Run(ref EndTransformFeedbackCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs index f3662424..b9c6e286 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program { struct ProgramCheckLinkCommand : IGALCommand, IGALCommand<ProgramCheckLinkCommand> { - public CommandType CommandType => CommandType.ProgramCheckLink; + public readonly CommandType CommandType => CommandType.ProgramCheckLink; private TableRef<ThreadedProgram> _program; private bool _blocking; private TableRef<ResultBox<ProgramLinkStatus>> _result; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs index d1ec4298..839a05bc 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program { struct ProgramDisposeCommand : IGALCommand, IGALCommand<ProgramDisposeCommand> { - public CommandType CommandType => CommandType.ProgramDispose; + public readonly CommandType CommandType => CommandType.ProgramDispose; private TableRef<ThreadedProgram> _program; public void Set(TableRef<ThreadedProgram> program) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs index 16963245..b53fc8ac 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program { struct ProgramGetBinaryCommand : IGALCommand, IGALCommand<ProgramGetBinaryCommand> { - public CommandType CommandType => CommandType.ProgramGetBinary; + public readonly CommandType CommandType => CommandType.ProgramGetBinary; private TableRef<ThreadedProgram> _program; private TableRef<ResultBox<byte[]>> _result; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ActionCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ActionCommand.cs index 41987da1..309a9cd0 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ActionCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ActionCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct ActionCommand : IGALCommand, IGALCommand<ActionCommand> { - public CommandType CommandType => CommandType.Action; + public readonly CommandType CommandType => CommandType.Action; private TableRef<Action> _action; public void Set(TableRef<Action> action) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferAccessCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferAccessCommand.cs index ece98b70..5efa0a7a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferAccessCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferAccessCommand.cs @@ -2,7 +2,7 @@ { struct CreateBufferAccessCommand : IGALCommand, IGALCommand<CreateBufferAccessCommand> { - public CommandType CommandType => CommandType.CreateBufferAccess; + public readonly CommandType CommandType => CommandType.CreateBufferAccess; private BufferHandle _threadedHandle; private int _size; private BufferAccess _access; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferCommand.cs index b36d8bbe..214b3589 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateBufferCommand.cs @@ -2,7 +2,7 @@ { struct CreateBufferCommand : IGALCommand, IGALCommand<CreateBufferCommand> { - public CommandType CommandType => CommandType.CreateBuffer; + public readonly CommandType CommandType => CommandType.CreateBuffer; private BufferHandle _threadedHandle; private int _size; private BufferHandle _storageHint; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateHostBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateHostBufferCommand.cs index e25f8468..1036e997 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateHostBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateHostBufferCommand.cs @@ -2,7 +2,7 @@ { struct CreateHostBufferCommand : IGALCommand, IGALCommand<CreateHostBufferCommand> { - public CommandType CommandType => CommandType.CreateHostBuffer; + public readonly CommandType CommandType => CommandType.CreateHostBuffer; private BufferHandle _threadedHandle; private nint _pointer; private int _size; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateProgramCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateProgramCommand.cs index 19563e12..b0d24b99 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateProgramCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateProgramCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct CreateProgramCommand : IGALCommand, IGALCommand<CreateProgramCommand> { - public CommandType CommandType => CommandType.CreateProgram; + public readonly CommandType CommandType => CommandType.CreateProgram; private TableRef<IProgramRequest> _request; public void Set(TableRef<IProgramRequest> request) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSamplerCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSamplerCommand.cs index 6ab862d4..76188268 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSamplerCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSamplerCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct CreateSamplerCommand : IGALCommand, IGALCommand<CreateSamplerCommand> { - public CommandType CommandType => CommandType.CreateSampler; + public readonly CommandType CommandType => CommandType.CreateSampler; private TableRef<ThreadedSampler> _sampler; private SamplerCreateInfo _info; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSyncCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSyncCommand.cs index 32afb051..138a4591 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSyncCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateSyncCommand.cs @@ -2,7 +2,7 @@ { struct CreateSyncCommand : IGALCommand, IGALCommand<CreateSyncCommand> { - public CommandType CommandType => CommandType.CreateSync; + public readonly CommandType CommandType => CommandType.CreateSync; private ulong _id; private bool _strict; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateTextureCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateTextureCommand.cs index 0347ded4..f52db30a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateTextureCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateTextureCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct CreateTextureCommand : IGALCommand, IGALCommand<CreateTextureCommand> { - public CommandType CommandType => CommandType.CreateTexture; + public readonly CommandType CommandType => CommandType.CreateTexture; private TableRef<ThreadedTexture> _texture; private TextureCreateInfo _info; private float _scale; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/GetCapabilitiesCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/GetCapabilitiesCommand.cs index 4111dcfd..ade13ddf 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/GetCapabilitiesCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/GetCapabilitiesCommand.cs @@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct GetCapabilitiesCommand : IGALCommand, IGALCommand<GetCapabilitiesCommand> { - public CommandType CommandType => CommandType.GetCapabilities; + public readonly CommandType CommandType => CommandType.GetCapabilities; private TableRef<ResultBox<Capabilities>> _result; public void Set(TableRef<ResultBox<Capabilities>> result) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/PreFrameCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/PreFrameCommand.cs index 820908f3..cf26194b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/PreFrameCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/PreFrameCommand.cs @@ -2,7 +2,7 @@ { struct PreFrameCommand : IGALCommand, IGALCommand<PreFrameCommand> { - public CommandType CommandType => CommandType.PreFrame; + public readonly CommandType CommandType => CommandType.PreFrame; public static void Run(ref PreFrameCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ReportCounterCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ReportCounterCommand.cs index 4b0210cb..2a373f5b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ReportCounterCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ReportCounterCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct ReportCounterCommand : IGALCommand, IGALCommand<ReportCounterCommand> { - public CommandType CommandType => CommandType.ReportCounter; + public readonly CommandType CommandType => CommandType.ReportCounter; private TableRef<ThreadedCounterEvent> _event; private CounterType _type; private TableRef<EventHandler<ulong>> _resultHandler; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ResetCounterCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ResetCounterCommand.cs index 3d796041..a20a6ca2 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ResetCounterCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/ResetCounterCommand.cs @@ -2,7 +2,7 @@ { struct ResetCounterCommand : IGALCommand, IGALCommand<ResetCounterCommand> { - public CommandType CommandType => CommandType.ResetCounter; + public readonly CommandType CommandType => CommandType.ResetCounter; private CounterType _type; public void Set(CounterType type) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/UpdateCountersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/UpdateCountersCommand.cs index c7076c0e..e04304c1 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/UpdateCountersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/UpdateCountersCommand.cs @@ -2,7 +2,7 @@ { struct UpdateCountersCommand : IGALCommand, IGALCommand<UpdateCountersCommand> { - public CommandType CommandType => CommandType.UpdateCounters; + public readonly CommandType CommandType => CommandType.UpdateCounters; public static void Run(ref UpdateCountersCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Sampler/SamplerDisposeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Sampler/SamplerDisposeCommand.cs index 9485e9a1..4a68a35d 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Sampler/SamplerDisposeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Sampler/SamplerDisposeCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Sampler { struct SamplerDisposeCommand : IGALCommand, IGALCommand<SamplerDisposeCommand> { - public CommandType CommandType => CommandType.SamplerDispose; + public readonly CommandType CommandType => CommandType.SamplerDispose; private TableRef<ThreadedSampler> _sampler; public void Set(TableRef<ThreadedSampler> sampler) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetAlphaTestCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetAlphaTestCommand.cs index a96879ff..10bd3c5c 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetAlphaTestCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetAlphaTestCommand.cs @@ -2,7 +2,7 @@ { struct SetAlphaTestCommand : IGALCommand, IGALCommand<SetAlphaTestCommand> { - public CommandType CommandType => CommandType.SetAlphaTest; + public readonly CommandType CommandType => CommandType.SetAlphaTest; private bool _enable; private float _reference; private CompareOp _op; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateAdvancedCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateAdvancedCommand.cs index 2ec10a50..8405a8ee 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateAdvancedCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateAdvancedCommand.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetBlendStateAdvancedCommand : IGALCommand, IGALCommand<SetBlendStateAdvancedCommand> { - public CommandType CommandType => CommandType.SetBlendStateAdvanced; + public readonly CommandType CommandType => CommandType.SetBlendStateAdvanced; private AdvancedBlendDescriptor _blend; public void Set(AdvancedBlendDescriptor blend) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateCommand.cs index 68e48da5..de430b78 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetBlendStateCommand.cs @@ -2,7 +2,7 @@ { struct SetBlendStateCommand : IGALCommand, IGALCommand<SetBlendStateCommand> { - public CommandType CommandType => CommandType.SetBlendState; + public readonly CommandType CommandType => CommandType.SetBlendState; private int _index; private BlendDescriptor _blend; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthBiasCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthBiasCommand.cs index eb8d4a72..c8bb8472 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthBiasCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthBiasCommand.cs @@ -2,7 +2,7 @@ { struct SetDepthBiasCommand : IGALCommand, IGALCommand<SetDepthBiasCommand> { - public CommandType CommandType => CommandType.SetDepthBias; + public readonly CommandType CommandType => CommandType.SetDepthBias; private PolygonModeMask _enables; private float _factor; private float _units; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthClampCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthClampCommand.cs index 15159cb4..b7cd2db9 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthClampCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthClampCommand.cs @@ -2,7 +2,7 @@ { struct SetDepthClampCommand : IGALCommand, IGALCommand<SetDepthClampCommand> { - public CommandType CommandType => CommandType.SetDepthClamp; + public readonly CommandType CommandType => CommandType.SetDepthClamp; private bool _clamp; public void Set(bool clamp) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthModeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthModeCommand.cs index 3e169164..94bb6d49 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthModeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthModeCommand.cs @@ -2,7 +2,7 @@ { struct SetDepthModeCommand : IGALCommand, IGALCommand<SetDepthModeCommand> { - public CommandType CommandType => CommandType.SetDepthMode; + public readonly CommandType CommandType => CommandType.SetDepthMode; private DepthMode _mode; public void Set(DepthMode mode) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthTestCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthTestCommand.cs index 2abaeb78..1b316c1a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthTestCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetDepthTestCommand.cs @@ -2,7 +2,7 @@ { struct SetDepthTestCommand : IGALCommand, IGALCommand<SetDepthTestCommand> { - public CommandType CommandType => CommandType.SetDepthTest; + public readonly CommandType CommandType => CommandType.SetDepthTest; private DepthTestDescriptor _depthTest; public void Set(DepthTestDescriptor depthTest) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFaceCullingCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFaceCullingCommand.cs index 54311e95..7823ab05 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFaceCullingCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFaceCullingCommand.cs @@ -2,7 +2,7 @@ { struct SetFaceCullingCommand : IGALCommand, IGALCommand<SetFaceCullingCommand> { - public CommandType CommandType => CommandType.SetFaceCulling; + public readonly CommandType CommandType => CommandType.SetFaceCulling; private bool _enable; private Face _face; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFrontFaceCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFrontFaceCommand.cs index e4d7b814..5d469447 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFrontFaceCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetFrontFaceCommand.cs @@ -2,7 +2,7 @@ { struct SetFrontFaceCommand : IGALCommand, IGALCommand<SetFrontFaceCommand> { - public CommandType CommandType => CommandType.SetFrontFace; + public readonly CommandType CommandType => CommandType.SetFrontFace; private FrontFace _frontFace; public void Set(FrontFace frontFace) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetImageCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetImageCommand.cs index 7836acd7..d24174fe 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetImageCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetImageCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetImageCommand : IGALCommand, IGALCommand<SetImageCommand> { - public CommandType CommandType => CommandType.SetImage; + public readonly CommandType CommandType => CommandType.SetImage; private int _binding; private TableRef<ITexture> _texture; private Format _imageFormat; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetIndexBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetIndexBufferCommand.cs index ded44c55..6a06ab9b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetIndexBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetIndexBufferCommand.cs @@ -2,7 +2,7 @@ { struct SetIndexBufferCommand : IGALCommand, IGALCommand<SetIndexBufferCommand> { - public CommandType CommandType => CommandType.SetIndexBuffer; + public readonly CommandType CommandType => CommandType.SetIndexBuffer; private BufferRange _buffer; private IndexType _type; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLineParametersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLineParametersCommand.cs index 68331932..4928360a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLineParametersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLineParametersCommand.cs @@ -2,7 +2,7 @@ { struct SetLineParametersCommand : IGALCommand, IGALCommand<SetLineParametersCommand> { - public CommandType CommandType => CommandType.SetLineParameters; + public readonly CommandType CommandType => CommandType.SetLineParameters; private float _width; private bool _smooth; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLogicOpStateCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLogicOpStateCommand.cs index 2d7fc169..5aecc777 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLogicOpStateCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetLogicOpStateCommand.cs @@ -2,7 +2,7 @@ { struct SetLogicOpStateCommand : IGALCommand, IGALCommand<SetLogicOpStateCommand> { - public CommandType CommandType => CommandType.SetLogicOpState; + public readonly CommandType CommandType => CommandType.SetLogicOpState; private bool _enable; private LogicalOp _op; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetMultisampleStateCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetMultisampleStateCommand.cs index f7b4969a..f30140c7 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetMultisampleStateCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetMultisampleStateCommand.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetMultisampleStateCommand : IGALCommand, IGALCommand<SetMultisampleStateCommand> { - public CommandType CommandType => CommandType.SetMultisampleState; + public readonly CommandType CommandType => CommandType.SetMultisampleState; private MultisampleDescriptor _multisample; public void Set(MultisampleDescriptor multisample) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPatchParametersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPatchParametersCommand.cs index 815bc3c2..6dbe4b7b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPatchParametersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPatchParametersCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetPatchParametersCommand : IGALCommand, IGALCommand<SetPatchParametersCommand> { - public CommandType CommandType => CommandType.SetPatchParameters; + public readonly CommandType CommandType => CommandType.SetPatchParameters; private int _vertices; private Array4<float> _defaultOuterLevel; private Array2<float> _defaultInnerLevel; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPointParametersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPointParametersCommand.cs index e3fad0f8..a0993fb2 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPointParametersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPointParametersCommand.cs @@ -2,7 +2,7 @@ { struct SetPointParametersCommand : IGALCommand, IGALCommand<SetPointParametersCommand> { - public CommandType CommandType => CommandType.SetPointParameters; + public readonly CommandType CommandType => CommandType.SetPointParameters; private float _size; private bool _isProgramPointSize; private bool _enablePointSprite; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPolygonModeCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPolygonModeCommand.cs index ea2f838b..caa362c0 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPolygonModeCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPolygonModeCommand.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetPolygonModeCommand : IGALCommand, IGALCommand<SetPolygonModeCommand> { - public CommandType CommandType => CommandType.SetPolygonMode; + public readonly CommandType CommandType => CommandType.SetPolygonMode; private PolygonMode _frontMode; private PolygonMode _backMode; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveRestartCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveRestartCommand.cs index 26b88b01..2289d8bd 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveRestartCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveRestartCommand.cs @@ -2,7 +2,7 @@ { struct SetPrimitiveRestartCommand : IGALCommand, IGALCommand<SetPrimitiveRestartCommand> { - public CommandType CommandType => CommandType.SetPrimitiveRestart; + public readonly CommandType CommandType => CommandType.SetPrimitiveRestart; private bool _enable; private int _index; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveTopologyCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveTopologyCommand.cs index 062c4e57..1458a1fc 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveTopologyCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetPrimitiveTopologyCommand.cs @@ -2,7 +2,7 @@ { struct SetPrimitiveTopologyCommand : IGALCommand, IGALCommand<SetPrimitiveTopologyCommand> { - public CommandType CommandType => CommandType.SetPrimitiveTopology; + public readonly CommandType CommandType => CommandType.SetPrimitiveTopology; private PrimitiveTopology _topology; public void Set(PrimitiveTopology topology) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetProgramCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetProgramCommand.cs index fa2e9a8a..5b011433 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetProgramCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetProgramCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetProgramCommand : IGALCommand, IGALCommand<SetProgramCommand> { - public CommandType CommandType => CommandType.SetProgram; + public readonly CommandType CommandType => CommandType.SetProgram; private TableRef<IProgram> _program; public void Set(TableRef<IProgram> program) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRasterizerDiscardCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRasterizerDiscardCommand.cs index d2095a4f..64091100 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRasterizerDiscardCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRasterizerDiscardCommand.cs @@ -2,7 +2,7 @@ { struct SetRasterizerDiscardCommand : IGALCommand, IGALCommand<SetRasterizerDiscardCommand> { - public CommandType CommandType => CommandType.SetRasterizerDiscard; + public readonly CommandType CommandType => CommandType.SetRasterizerDiscard; private bool _discard; public void Set(bool discard) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetColorMasksCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetColorMasksCommand.cs index c247ff3a..78d357ae 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetColorMasksCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetColorMasksCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetRenderTargetColorMasksCommand : IGALCommand, IGALCommand<SetRenderTargetColorMasksCommand> { - public CommandType CommandType => CommandType.SetRenderTargetColorMasks; + public readonly CommandType CommandType => CommandType.SetRenderTargetColorMasks; private SpanRef<uint> _componentMask; public void Set(SpanRef<uint> componentMask) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetScaleCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetScaleCommand.cs index 7cb5ec11..7207fd9d 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetScaleCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetScaleCommand.cs @@ -2,7 +2,7 @@ { struct SetRenderTargetScaleCommand : IGALCommand, IGALCommand<SetRenderTargetScaleCommand> { - public CommandType CommandType => CommandType.SetRenderTargetScale; + public readonly CommandType CommandType => CommandType.SetRenderTargetScale; private float _scale; public void Set(float scale) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetsCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetsCommand.cs index 0b175a72..13ef32b5 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetsCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetRenderTargetsCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetRenderTargetsCommand : IGALCommand, IGALCommand<SetRenderTargetsCommand> { - public CommandType CommandType => CommandType.SetRenderTargets; + public readonly CommandType CommandType => CommandType.SetRenderTargets; private TableRef<ITexture[]> _colors; private TableRef<ITexture> _depthStencil; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetScissorsCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetScissorsCommand.cs index 985d775e..9d7d59e2 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetScissorsCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetScissorsCommand.cs @@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetScissorsCommand : IGALCommand, IGALCommand<SetScissorsCommand> { - public CommandType CommandType => CommandType.SetScissor; + public readonly CommandType CommandType => CommandType.SetScissor; private SpanRef<Rectangle<int>> _scissors; public void Set(SpanRef<Rectangle<int>> scissors) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStencilTestCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStencilTestCommand.cs index 41bff97e..23bea88b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStencilTestCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStencilTestCommand.cs @@ -2,7 +2,7 @@ { struct SetStencilTestCommand : IGALCommand, IGALCommand<SetStencilTestCommand> { - public CommandType CommandType => CommandType.SetStencilTest; + public readonly CommandType CommandType => CommandType.SetStencilTest; private StencilTestDescriptor _stencilTest; public void Set(StencilTestDescriptor stencilTest) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStorageBuffersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStorageBuffersCommand.cs index 6ecb0989..525576c6 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStorageBuffersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetStorageBuffersCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetStorageBuffersCommand : IGALCommand, IGALCommand<SetStorageBuffersCommand> { - public CommandType CommandType => CommandType.SetStorageBuffers; + public readonly CommandType CommandType => CommandType.SetStorageBuffers; private SpanRef<BufferAssignment> _buffers; public void Set(SpanRef<BufferAssignment> buffers) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTextureAndSamplerCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTextureAndSamplerCommand.cs index 5e8e0854..673da496 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTextureAndSamplerCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTextureAndSamplerCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetTextureAndSamplerCommand : IGALCommand, IGALCommand<SetTextureAndSamplerCommand> { - public CommandType CommandType => CommandType.SetTextureAndSampler; + public readonly CommandType CommandType => CommandType.SetTextureAndSampler; private ShaderStage _stage; private int _binding; private TableRef<ITexture> _texture; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTransformFeedbackBuffersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTransformFeedbackBuffersCommand.cs index e0d4ef2d..cac837d9 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTransformFeedbackBuffersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetTransformFeedbackBuffersCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetTransformFeedbackBuffersCommand : IGALCommand, IGALCommand<SetTransformFeedbackBuffersCommand> { - public CommandType CommandType => CommandType.SetTransformFeedbackBuffers; + public readonly CommandType CommandType => CommandType.SetTransformFeedbackBuffers; private SpanRef<BufferRange> _buffers; public void Set(SpanRef<BufferRange> buffers) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUniformBuffersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUniformBuffersCommand.cs index 9e93db9e..516a2bd3 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUniformBuffersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUniformBuffersCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetUniformBuffersCommand : IGALCommand, IGALCommand<SetUniformBuffersCommand> { - public CommandType CommandType => CommandType.SetUniformBuffers; + public readonly CommandType CommandType => CommandType.SetUniformBuffers; private SpanRef<BufferAssignment> _buffers; public void Set(SpanRef<BufferAssignment> buffers) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUserClipDistanceCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUserClipDistanceCommand.cs index 4336ce49..d7500900 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUserClipDistanceCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetUserClipDistanceCommand.cs @@ -2,7 +2,7 @@ { struct SetUserClipDistanceCommand : IGALCommand, IGALCommand<SetUserClipDistanceCommand> { - public CommandType CommandType => CommandType.SetUserClipDistance; + public readonly CommandType CommandType => CommandType.SetUserClipDistance; private int _index; private bool _enableClip; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexAttribsCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexAttribsCommand.cs index e442c72d..18decb0b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexAttribsCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexAttribsCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetVertexAttribsCommand : IGALCommand, IGALCommand<SetVertexAttribsCommand> { - public CommandType CommandType => CommandType.SetVertexAttribs; + public readonly CommandType CommandType => CommandType.SetVertexAttribs; private SpanRef<VertexAttribDescriptor> _vertexAttribs; public void Set(SpanRef<VertexAttribDescriptor> vertexAttribs) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexBuffersCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexBuffersCommand.cs index 585da2a4..bcfb553d 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexBuffersCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetVertexBuffersCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetVertexBuffersCommand : IGALCommand, IGALCommand<SetVertexBuffersCommand> { - public CommandType CommandType => CommandType.SetVertexBuffers; + public readonly CommandType CommandType => CommandType.SetVertexBuffers; private SpanRef<VertexBufferDescriptor> _vertexBuffers; public void Set(SpanRef<VertexBufferDescriptor> vertexBuffers) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetViewportsCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetViewportsCommand.cs index c18bd811..a0ad026a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetViewportsCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/SetViewportsCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetViewportsCommand : IGALCommand, IGALCommand<SetViewportsCommand> { - public CommandType CommandType => CommandType.SetViewports; + public readonly CommandType CommandType => CommandType.SetViewports; private SpanRef<Viewport> _viewports; private bool _disableTransform; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToBufferCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToBufferCommand.cs index ac0e07d6..d22cc9b7 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToBufferCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToBufferCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureCopyToBufferCommand : IGALCommand, IGALCommand<TextureCopyToBufferCommand> { - public CommandType CommandType => CommandType.TextureCopyToBuffer; + public readonly CommandType CommandType => CommandType.TextureCopyToBuffer; private TableRef<ThreadedTexture> _texture; private BufferRange _range; private int _layer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToCommand.cs index 02d0b639..ddbf0e67 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureCopyToCommand : IGALCommand, IGALCommand<TextureCopyToCommand> { - public CommandType CommandType => CommandType.TextureCopyTo; + public readonly CommandType CommandType => CommandType.TextureCopyTo; private TableRef<ThreadedTexture> _texture; private TableRef<ThreadedTexture> _destination; private int _firstLayer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToScaledCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToScaledCommand.cs index 6b83d3f8..b43ffea5 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToScaledCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToScaledCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureCopyToScaledCommand : IGALCommand, IGALCommand<TextureCopyToScaledCommand> { - public CommandType CommandType => CommandType.TextureCopyToScaled; + public readonly CommandType CommandType => CommandType.TextureCopyToScaled; private TableRef<ThreadedTexture> _texture; private TableRef<ThreadedTexture> _destination; private Extents2D _srcRegion; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToSliceCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToSliceCommand.cs index 2a340a70..4f5ab36f 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToSliceCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCopyToSliceCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureCopyToSliceCommand : IGALCommand, IGALCommand<TextureCopyToSliceCommand> { - public CommandType CommandType => CommandType.TextureCopyToSlice; + public readonly CommandType CommandType => CommandType.TextureCopyToSlice; private TableRef<ThreadedTexture> _texture; private TableRef<ThreadedTexture> _destination; private int _srcLayer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCreateViewCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCreateViewCommand.cs index 09e9ca2f..9216e968 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCreateViewCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureCreateViewCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureCreateViewCommand : IGALCommand, IGALCommand<TextureCreateViewCommand> { - public CommandType CommandType => CommandType.TextureCreateView; + public readonly CommandType CommandType => CommandType.TextureCreateView; private TableRef<ThreadedTexture> _texture; private TableRef<ThreadedTexture> _destination; private TextureCreateInfo _info; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataCommand.cs index 91320d45..38010467 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataCommand.cs @@ -1,12 +1,11 @@ using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Resources; -using System; namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureGetDataCommand : IGALCommand, IGALCommand<TextureGetDataCommand> { - public CommandType CommandType => CommandType.TextureGetData; + public readonly CommandType CommandType => CommandType.TextureGetData; private TableRef<ThreadedTexture> _texture; private TableRef<ResultBox<PinnedSpan<byte>>> _result; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataSliceCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataSliceCommand.cs index ec06cc4d..e84cf2d2 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataSliceCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureGetDataSliceCommand.cs @@ -1,12 +1,11 @@ using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Resources; -using System; namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureGetDataSliceCommand : IGALCommand, IGALCommand<TextureGetDataSliceCommand> { - public CommandType CommandType => CommandType.TextureGetDataSlice; + public readonly CommandType CommandType => CommandType.TextureGetDataSlice; private TableRef<ThreadedTexture> _texture; private TableRef<ResultBox<PinnedSpan<byte>>> _result; private int _layer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureReleaseCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureReleaseCommand.cs index 61486e09..a9c528ae 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureReleaseCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureReleaseCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureReleaseCommand : IGALCommand, IGALCommand<TextureReleaseCommand> { - public CommandType CommandType => CommandType.TextureRelease; + public readonly CommandType CommandType => CommandType.TextureRelease; private TableRef<ThreadedTexture> _texture; public void Set(TableRef<ThreadedTexture> texture) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataCommand.cs index cfbaffd3..9aa2e4ee 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureSetDataCommand : IGALCommand, IGALCommand<TextureSetDataCommand> { - public CommandType CommandType => CommandType.TextureSetData; + public readonly CommandType CommandType => CommandType.TextureSetData; private TableRef<ThreadedTexture> _texture; private TableRef<byte[]> _data; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceCommand.cs index a7126f61..14fecadf 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureSetDataSliceCommand : IGALCommand, IGALCommand<TextureSetDataSliceCommand> { - public CommandType CommandType => CommandType.TextureSetDataSlice; + public readonly CommandType CommandType => CommandType.TextureSetDataSlice; private TableRef<ThreadedTexture> _texture; private TableRef<byte[]> _data; private int _layer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceRegionCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceRegionCommand.cs index 4df83e08..4c80d9bc 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceRegionCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetDataSliceRegionCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureSetDataSliceRegionCommand : IGALCommand, IGALCommand<TextureSetDataSliceRegionCommand> { - public CommandType CommandType => CommandType.TextureSetDataSliceRegion; + public readonly CommandType CommandType => CommandType.TextureSetDataSliceRegion; private TableRef<ThreadedTexture> _texture; private TableRef<byte[]> _data; private int _layer; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetStorageCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetStorageCommand.cs index 2a1943a9..fafaa557 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetStorageCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Texture/TextureSetStorageCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Texture { struct TextureSetStorageCommand : IGALCommand, IGALCommand<TextureSetStorageCommand> { - public CommandType CommandType => CommandType.TextureSetStorage; + public readonly CommandType CommandType => CommandType.TextureSetStorage; private TableRef<ThreadedTexture> _texture; private BufferRange _storage; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierCommand.cs index ce1a83a7..8b62d1ef 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierCommand.cs @@ -2,7 +2,7 @@ { struct TextureBarrierCommand : IGALCommand, IGALCommand<TextureBarrierCommand> { - public CommandType CommandType => CommandType.TextureBarrier; + public readonly CommandType CommandType => CommandType.TextureBarrier; public static void Run(ref TextureBarrierCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierTiledCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierTiledCommand.cs index c65ffe2e..1cae4109 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierTiledCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TextureBarrierTiledCommand.cs @@ -2,7 +2,7 @@ { struct TextureBarrierTiledCommand : IGALCommand, IGALCommand<TextureBarrierTiledCommand> { - public CommandType CommandType => CommandType.TextureBarrierTiled; + public readonly CommandType CommandType => CommandType.TextureBarrierTiled; public static void Run(ref TextureBarrierTiledCommand command, ThreadedRenderer threaded, IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingCommand.cs index 9124ca1f..a06f0b5a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct TryHostConditionalRenderingCommand : IGALCommand, IGALCommand<TryHostConditionalRenderingCommand> { - public CommandType CommandType => CommandType.TryHostConditionalRendering; + public readonly CommandType CommandType => CommandType.TryHostConditionalRendering; private TableRef<ThreadedCounterEvent> _value; private ulong _compare; private bool _isEqual; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingFlushCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingFlushCommand.cs index a5d07640..eb920788 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingFlushCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/TryHostConditionalRenderingFlushCommand.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct TryHostConditionalRenderingFlushCommand : IGALCommand, IGALCommand<TryHostConditionalRenderingFlushCommand> { - public CommandType CommandType => CommandType.TryHostConditionalRenderingFlush; + public readonly CommandType CommandType => CommandType.TryHostConditionalRenderingFlush; private TableRef<ThreadedCounterEvent> _value; private TableRef<ThreadedCounterEvent> _compare; private bool _isEqual; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/UpdateRenderScaleCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/UpdateRenderScaleCommand.cs index ebe14150..c3c24045 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/UpdateRenderScaleCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/UpdateRenderScaleCommand.cs @@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct UpdateRenderScaleCommand : IGALCommand, IGALCommand<UpdateRenderScaleCommand> { - public CommandType CommandType => CommandType.UpdateRenderScale; + public readonly CommandType CommandType => CommandType.UpdateRenderScale; private SpanRef<float> _scales; private int _totalCount; private int _fragmentCount; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Window/WindowPresentCommand.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Window/WindowPresentCommand.cs index 6a24cd35..67ec3521 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Window/WindowPresentCommand.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Window/WindowPresentCommand.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Window { struct WindowPresentCommand : IGALCommand, IGALCommand<WindowPresentCommand> { - public CommandType CommandType => CommandType.WindowPresent; + public readonly CommandType CommandType => CommandType.WindowPresent; private TableRef<ThreadedTexture> _texture; private ImageCrop _crop; private TableRef<Action> _swapBuffersCallback; diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Model/CircularSpanPool.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Model/CircularSpanPool.cs index 4ea1a2c7..10cab84c 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Model/CircularSpanPool.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Model/CircularSpanPool.cs @@ -12,9 +12,9 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Model /// </summary> class CircularSpanPool { - private ThreadedRenderer _renderer; - private byte[] _pool; - private int _size; + private readonly ThreadedRenderer _renderer; + private readonly byte[] _pool; + private readonly int _size; private int _producerPtr; private int _producerSkipPosition = -1; @@ -83,7 +83,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Model { int size = length * Unsafe.SizeOf<T>(); - _consumerPtr = _consumerPtr + size; + _consumerPtr += size; } } } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs index 7dbebc76..1ed719a0 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs @@ -2,9 +2,9 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Model { - struct SpanRef<T> where T : unmanaged + readonly struct SpanRef<T> where T : unmanaged { - private int _packedLengthId; + private readonly int _packedLengthId; public SpanRef(ThreadedRenderer renderer, T[] data) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Model/TableRef.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Model/TableRef.cs index 166aa71a..e454df21 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Model/TableRef.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Model/TableRef.cs @@ -1,8 +1,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Model { - struct TableRef<T> + readonly struct TableRef<T> { - private int _index; + private readonly int _index; public TableRef(ThreadedRenderer renderer, T reference) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ProgramQueue.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ProgramQueue.cs index 3f982d31..87ab2f1b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ProgramQueue.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ProgramQueue.cs @@ -12,10 +12,10 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { private const int MaxConcurrentCompilations = 8; - private IRenderer _renderer; + private readonly IRenderer _renderer; - private Queue<IProgramRequest> _toCompile; - private List<ThreadedProgram> _inProgress; + private readonly Queue<IProgramRequest> _toCompile; + private readonly List<ThreadedProgram> _inProgress; public ProgramQueue(IRenderer renderer) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs index b4c6853f..e4df1c1b 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs @@ -4,8 +4,8 @@ { public ThreadedProgram Threaded { get; set; } - private byte[] _data; - private bool _hasFragmentShader; + private readonly byte[] _data; + private readonly bool _hasFragmentShader; private ShaderInfo _info; public BinaryProgramRequest(ThreadedProgram program, byte[] data, bool hasFragmentShader, ShaderInfo info) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs index ff06abb1..744b77e1 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs @@ -4,7 +4,7 @@ { public ThreadedProgram Threaded { get; set; } - private ShaderSource[] _shaders; + private readonly ShaderSource[] _shaders; private ShaderInfo _info; public SourceProgramRequest(ThreadedProgram program, ShaderSource[] shaders, ShaderInfo info) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedCounterEvent.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedCounterEvent.cs index 4b7471d6..e4e197eb 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedCounterEvent.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedCounterEvent.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { class ThreadedCounterEvent : ICounterEvent { - private ThreadedRenderer _renderer; + private readonly ThreadedRenderer _renderer; public ICounterEvent Base; public bool Invalid { get; set; } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs index 068d058e..7cbbce45 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { class ThreadedProgram : IProgram { - private ThreadedRenderer _renderer; + private readonly ThreadedRenderer _renderer; public IProgram Base; @@ -29,7 +29,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources public byte[] GetBinary() { - ResultBox<byte[]> box = new ResultBox<byte[]>(); + ResultBox<byte[]> box = new(); _renderer.New<ProgramGetBinaryCommand>().Set(Ref(this), Ref(box)); _renderer.InvokeCommand(); @@ -38,7 +38,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources public ProgramLinkStatus CheckProgramLink(bool blocking) { - ResultBox<ProgramLinkStatus> box = new ResultBox<ProgramLinkStatus>(); + ResultBox<ProgramLinkStatus> box = new(); _renderer.New<ProgramCheckLinkCommand>().Set(Ref(this), blocking, Ref(box)); _renderer.InvokeCommand(); diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedSampler.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedSampler.cs index d8de9a70..62e628a7 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedSampler.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedSampler.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { class ThreadedSampler : ISampler { - private ThreadedRenderer _renderer; + private readonly ThreadedRenderer _renderer; public ISampler Base; public ThreadedSampler(ThreadedRenderer renderer) diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs index bb0b05fb..b82e286a 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedTexture.cs @@ -1,7 +1,6 @@ using Ryujinx.Common.Memory; using Ryujinx.Graphics.GAL.Multithreading.Commands.Texture; using Ryujinx.Graphics.GAL.Multithreading.Model; -using System; namespace Ryujinx.Graphics.GAL.Multithreading.Resources { @@ -10,8 +9,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources /// </summary> class ThreadedTexture : ITexture { - private ThreadedRenderer _renderer; - private TextureCreateInfo _info; + private readonly ThreadedRenderer _renderer; + private readonly TextureCreateInfo _info; public ITexture Base; public int Width => _info.Width; @@ -65,7 +64,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources public ITexture CreateView(TextureCreateInfo info, int firstLayer, int firstLevel) { - ThreadedTexture newTex = new ThreadedTexture(_renderer, info, ScaleFactor); + ThreadedTexture newTex = new(_renderer, info, ScaleFactor); _renderer.New<TextureCreateViewCommand>().Set(Ref(this), Ref(newTex), info, firstLayer, firstLevel); _renderer.QueueCommand(); @@ -76,7 +75,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { if (_renderer.IsGpuThread()) { - ResultBox<PinnedSpan<byte>> box = new ResultBox<PinnedSpan<byte>>(); + ResultBox<PinnedSpan<byte>> box = new(); _renderer.New<TextureGetDataCommand>().Set(Ref(this), Ref(box)); _renderer.InvokeCommand(); @@ -94,7 +93,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources { if (_renderer.IsGpuThread()) { - ResultBox<PinnedSpan<byte>> box = new ResultBox<PinnedSpan<byte>>(); + ResultBox<PinnedSpan<byte>> box = new(); _renderer.New<TextureGetDataSliceCommand>().Set(Ref(this), Ref(box), layer, level); _renderer.InvokeCommand(); diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/SyncMap.cs b/src/Ryujinx.Graphics.GAL/Multithreading/SyncMap.cs index ae09e852..d6e416ef 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/SyncMap.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/SyncMap.cs @@ -6,8 +6,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading { class SyncMap : IDisposable { - private HashSet<ulong> _inFlight = new HashSet<ulong>(); - private AutoResetEvent _inFlightChanged = new AutoResetEvent(false); + private readonly HashSet<ulong> _inFlight = new(); + private readonly AutoResetEvent _inFlightChanged = new(false); internal void CreateSyncHandle(ulong id) { diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedPipeline.cs b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedPipeline.cs index 1bdc9cf4..de6ba18d 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedPipeline.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedPipeline.cs @@ -9,13 +9,11 @@ namespace Ryujinx.Graphics.GAL.Multithreading { public class ThreadedPipeline : IPipeline { - private ThreadedRenderer _renderer; - private IPipeline _impl; + private readonly ThreadedRenderer _renderer; - public ThreadedPipeline(ThreadedRenderer renderer, IPipeline impl) + public ThreadedPipeline(ThreadedRenderer renderer) { _renderer = renderer; - _impl = impl; } private TableRef<T> Ref<T>(T reference) @@ -373,7 +371,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading public void UpdateRenderScale(ReadOnlySpan<float> scales, int totalCount, int fragmentCount) { - _renderer.New<UpdateRenderScaleCommand>().Set(_renderer.CopySpan(scales.Slice(0, totalCount)), totalCount, fragmentCount); + _renderer.New<UpdateRenderScaleCommand>().Set(_renderer.CopySpan(scales[..totalCount]), totalCount, fragmentCount); _renderer.QueueCommand(); } } diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs index bc96f222..dc7aab36 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs @@ -26,24 +26,24 @@ namespace Ryujinx.Graphics.GAL.Multithreading private const int MaxRefsPerCommand = 2; private const int QueueCount = 10000; - private int _elementSize; - private IRenderer _baseRenderer; + private readonly int _elementSize; + private readonly IRenderer _baseRenderer; private Thread _gpuThread; private Thread _backendThread; private bool _running; - private AutoResetEvent _frameComplete = new AutoResetEvent(true); + private readonly AutoResetEvent _frameComplete = new(true); - private ManualResetEventSlim _galWorkAvailable; - private CircularSpanPool _spanPool; + private readonly ManualResetEventSlim _galWorkAvailable; + private readonly CircularSpanPool _spanPool; - private ManualResetEventSlim _invokeRun; - private AutoResetEvent _interruptRun; + private readonly ManualResetEventSlim _invokeRun; + private readonly AutoResetEvent _interruptRun; private bool _lastSampleCounterClear = true; - private byte[] _commandQueue; - private object[] _refQueue; + private readonly byte[] _commandQueue; + private readonly object[] _refQueue; private int _consumerPtr; private int _commandCount; @@ -79,7 +79,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading renderer.ScreenCaptured += (sender, info) => ScreenCaptured?.Invoke(this, info); renderer.SetInterruptAction(Interrupt); - Pipeline = new ThreadedPipeline(this, renderer.Pipeline); + Pipeline = new ThreadedPipeline(this); Window = new ThreadedWindow(this, renderer); Buffers = new BufferMap(); Sync = new SyncMap(); @@ -105,7 +105,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading _gpuThread = new Thread(gpuLoop) { - Name = "GPU.MainThread" + Name = "GPU.MainThread", }; _gpuThread.Start(); @@ -137,7 +137,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading { int commandPtr = _consumerPtr; - Span<byte> command = new Span<byte>(_commandQueue, commandPtr * _elementSize, _elementSize); + Span<byte> command = new(_commandQueue, commandPtr * _elementSize, _elementSize); // Run the command. @@ -180,10 +180,10 @@ namespace Ryujinx.Graphics.GAL.Multithreading _producerPtr = (_producerPtr + 1) % QueueCount; - Span<byte> memory = new Span<byte>(_commandQueue, taken * _elementSize, _elementSize); + Span<byte> memory = new(_commandQueue, taken * _elementSize, _elementSize); ref T result = ref Unsafe.As<byte, T>(ref MemoryMarshal.GetReference(memory)); - memory[memory.Length - 1] = (byte)((IGALCommand)result).CommandType; + memory[^1] = (byte)((IGALCommand)result).CommandType; return ref result; } @@ -294,7 +294,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading { var program = new ThreadedProgram(this); - SourceProgramRequest request = new SourceProgramRequest(program, shaders, info); + SourceProgramRequest request = new(program, shaders, info); Programs.Add(request); @@ -332,8 +332,10 @@ namespace Ryujinx.Graphics.GAL.Multithreading } else { - var texture = new ThreadedTexture(this, info, scale); - texture.Base = _baseRenderer.CreateTexture(info, scale); + var texture = new ThreadedTexture(this, info, scale) + { + Base = _baseRenderer.CreateTexture(info, scale), + }; return texture; } @@ -349,7 +351,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading { if (IsGpuThread()) { - ResultBox<PinnedSpan<byte>> box = new ResultBox<PinnedSpan<byte>>(); + ResultBox<PinnedSpan<byte>> box = new(); New<BufferGetDataCommand>().Set(buffer, offset, size, Ref(box)); InvokeCommand(); @@ -363,7 +365,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading public Capabilities GetCapabilities() { - ResultBox<Capabilities> box = new ResultBox<Capabilities>(); + ResultBox<Capabilities> box = new(); New<GetCapabilitiesCommand>().Set(Ref(box)); InvokeCommand(); @@ -393,7 +395,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading { var program = new ThreadedProgram(this); - BinaryProgramRequest request = new BinaryProgramRequest(program, programBinary, hasFragmentShader, info); + BinaryProgramRequest request = new(program, programBinary, hasFragmentShader, info); Programs.Add(request); New<CreateProgramCommand>().Set(Ref((IProgramRequest)request)); @@ -410,7 +412,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading public ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, bool hostReserved) { - ThreadedCounterEvent evt = new ThreadedCounterEvent(this, type, _lastSampleCounterClear); + ThreadedCounterEvent evt = new(this, type, _lastSampleCounterClear); New<ReportCounterCommand>().Set(Ref(evt), type, Ref(resultHandler), hostReserved); QueueCommand(); @@ -466,7 +468,9 @@ namespace Ryujinx.Graphics.GAL.Multithreading { lock (_interruptLock) { - while (Interlocked.CompareExchange(ref _interruptAction, action, null) != null) { } + while (Interlocked.CompareExchange(ref _interruptAction, action, null) != null) + { + } _galWorkAvailable.Set(); @@ -497,6 +501,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading public void Dispose() { + GC.SuppressFinalize(this); + // Dispose must happen from the render thread, after all commands have completed. // Stop the GPU thread. @@ -520,4 +526,4 @@ namespace Ryujinx.Graphics.GAL.Multithreading Sync.Dispose(); } } -}
\ No newline at end of file +} diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs index a647d37e..3c4d5414 100644 --- a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs +++ b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs @@ -7,8 +7,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading { public class ThreadedWindow : IWindow { - private ThreadedRenderer _renderer; - private IRenderer _impl; + private readonly ThreadedRenderer _renderer; + private readonly IRenderer _impl; public ThreadedWindow(ThreadedRenderer renderer, IRenderer impl) { |