[Ryujinx.Graphics.GAL] Address dotnet-format issues (#5366)

* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Silence dotnet format IDE0052 warnings

* Address dotnet format CA1816 warnings

* Address or silence dotnet format CA1069 warnings

* Address remaining dotnet format analyzer warnings

* Address review comments

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

A few of them have been manually reverted and the corresponding warning was silenced

* Revert formatting changes for while and for-loops

* Another rebase, another dotnet format run

* Run dotnet format whitespace after rebase

* Run dotnet format style after rebase

* Run dotnet format analyzers after rebase

* Run dotnet format after rebase and remove unused usings

- analyzers
- style
- whitespace

* Disable 'prefer switch expression' rule

* Add comments to disabled warnings

* Simplify properties and array initialization, Use const when possible, Remove trailing commas

* Start working on disabled warnings

* Address IDE0251 warnings

* Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas"

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* First dotnet format pass

* Address review feedback

* Add trailing commas

* Remove SuppressMessage for IDE0066

* Make explicit Equals implementation implicit
This commit is contained in:
TSRBerry 2023-06-28 20:20:10 +02:00 committed by GitHub
parent 16fa983704
commit 7c989f88bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
161 changed files with 481 additions and 439 deletions

View file

@ -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();
}
}
}
}