Add workflow to automatically check code style issues for PRs (#4670)

* Add workflow to perform automated checks for PRs

* Downgrade Microsoft.CodeAnalysis to 4.4.0

This is a workaround to fix issues with dotnet-format.
See:
- https://github.com/dotnet/format/issues/1805
- https://github.com/dotnet/format/issues/1800

* Adjust editorconfig to be more compatible with Ryujinx code-style

* Adjust .editorconfig line endings to match .gitattributes

* Disable 'prefer switch expression' rule

* Remove naming styles

These are the default rules, so we don't need to override them.

* Silence IDE0060 in .editorconfig

* Slightly adjust .editorconfig

* Add lost workflow changes

* Move .editorconfig comment to the top

* .editorconfig: private static readonly fields should be _lowerCamelCase

* .editorconfig: Remove alignment for declarations as well

* editorconfig: Add rule for local constants

* Disable CA1822 for HLE services

* Disable CA1822 for ViewModels

Bindings won't work with static members, but this issue is silently ignored.

* Run dotnet format for the whole solution

* Check result code of SDL_GetDisplayBounds

* Fix dotnet format style issues

* Add missing trailing commas

* Update Microsoft.CodeAnalysis.CSharp to 4.6.0

Skipping 4.5.0 since it breaks dotnet format

* Restore old default naming rules for dotnet format

* Add naming rule exception for CPU tests

* checks: Include all files before excluding paths

* Fix dotnet format issues

* Check dotnet format version

* checks: Run dotnet format with severity info again

* checks: Disable naming style rules until they won't crash the process anymore

* Remove unread private member

* checks: Attempt to run analyzers 3 times before giving up

* checks: Enable naming style rules again with the new retry logic
This commit is contained in:
TSRBerry
2023-07-24 18:35:04 +02:00
committed by GitHub
parent 487261592e
commit eb528ae0f0
84 changed files with 252 additions and 160 deletions
@@ -20,4 +20,4 @@
}
}
}
}
}
@@ -31,7 +31,7 @@ namespace Ryujinx.Audio.Backends.OpenAL
_stillRunning = true;
_updaterThread = new Thread(Update)
{
Name = "HardwareDeviceDriver.OpenAL"
Name = "HardwareDeviceDriver.OpenAL",
};
_updaterThread.Start();
@@ -67,7 +67,7 @@ namespace Ryujinx.Audio.Backends.OpenAL
{
DriverIdentifier = buffer.DataPointer,
BufferId = AL.GenBuffer(),
SampleCount = GetSampleCount(buffer)
SampleCount = GetSampleCount(buffer),
};
AL.BufferData(driverBuffer.BufferId, _targetFormat, buffer.Data, (int)RequestedSampleRate);
@@ -7,7 +7,6 @@ using System;
using System.Collections.Concurrent;
using System.Runtime.InteropServices;
using System.Threading;
using static Ryujinx.Audio.Integration.IHardwareDeviceDriver;
using static SDL2.SDL;
@@ -111,7 +110,7 @@ namespace Ryujinx.Audio.Backends.SDL2
channels = (byte)requestedChannelCount,
format = GetSDL2Format(requestedSampleFormat),
freq = (int)requestedSampleRate,
samples = (ushort)sampleCount
samples = (ushort)sampleCount,
};
}
@@ -8,6 +8,6 @@
Alsa = 3,
CoreAudio = 4,
Wasapi = 5,
Dummy = 6
Dummy = 6,
}
}
@@ -3,6 +3,6 @@
public enum SoundIoDeviceAim
{
SoundIoDeviceAimInput = 0,
SoundIoDeviceAimOutput = 1
SoundIoDeviceAimOutput = 1,
}
}
+1 -1
View File
@@ -4,6 +4,6 @@
{
List,
Grid,
Chip
Chip,
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ namespace Ryujinx.Common
_workerThread = new Thread(DoWork)
{
Name = name,
IsBackground = true
IsBackground = true,
};
_workerThread.Start();
}
@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration
{
Auto,
Off,
On
On,
}
}
@@ -7,6 +7,6 @@ namespace Ryujinx.Common.Configuration
public enum GraphicsBackend
{
Vulkan,
OpenGl
OpenGl,
}
}
@@ -9,6 +9,6 @@ namespace Ryujinx.Common.Configuration
None,
Error,
Slowdowns,
All
All,
}
}
@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
{
Invalid,
GamepadDriver,
CemuHook
CemuHook,
}
}
@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration
{
SoftwarePageTable,
HostMapped,
HostMappedUnsafe
HostMappedUnsafe,
}
}
@@ -6,6 +6,6 @@
OglThreadControlDefault = 0,
OglThreadControlEnable = 1,
OglThreadControlDisable = 2
OglThreadControlDisable = 2,
}
}
+1 -1
View File
@@ -14,6 +14,6 @@ namespace Ryujinx.Common.Logging
Guest,
AccessLog,
Notice,
Trace
Trace,
}
}
+3 -3
View File
@@ -179,7 +179,7 @@ namespace Ryujinx.Cpu
{
addressSpace = null;
const MemoryAllocationFlags asFlags = MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible;
const MemoryAllocationFlags AsFlags = MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible;
ulong minAddressSpaceSize = Math.Min(asSize, 1UL << 36);
@@ -191,8 +191,8 @@ namespace Ryujinx.Cpu
try
{
baseMemory = new MemoryBlock(addressSpaceSize, asFlags);
mirrorMemory = new MemoryBlock(addressSpaceSize, asFlags);
baseMemory = new MemoryBlock(addressSpaceSize, AsFlags);
mirrorMemory = new MemoryBlock(addressSpaceSize, AsFlags);
addressSpace = new AddressSpace(backingMemory, baseMemory, mirrorMemory, addressSpaceSize, supports4KBPages);
break;
+1 -1
View File
@@ -22,6 +22,6 @@ namespace Ryujinx.Cpu.AppleHv.Arm
UserNoneKernelReadWrite = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (0UL << (int)ApShift),
UserNoneKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (2UL << (int)ApShift),
UserReadKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (3UL << (int)ApShift)
UserReadKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (3UL << (int)ApShift),
}
}
@@ -56,7 +56,7 @@ namespace Ryujinx.Graphics.Device
TypeCode.Double => sizeof(double),
TypeCode.Decimal => sizeof(decimal),
TypeCode.Boolean => sizeof(bool),
_ => throw new ArgumentException($"Length for type \"{type.Name}\" is unknown.")
_ => throw new ArgumentException($"Length for type \"{type.Name}\" is unknown."),
};
}
}
@@ -412,7 +412,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
public ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, float divisor, bool hostReserved)
{
ThreadedCounterEvent evt = new ThreadedCounterEvent(this, type, _lastSampleCounterClear);
ThreadedCounterEvent evt = new(this, type, _lastSampleCounterClear);
New<ReportCounterCommand>().Set(Ref(evt), type, Ref(resultHandler), divisor, hostReserved);
QueueCommand();
@@ -187,7 +187,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
X = scale * 2f / viewportWidth,
Y = scale * 2f / viewportHeight,
Z = 1,
W = disableTransformF
W = disableTransformF,
});
}
}
@@ -210,7 +210,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
ReadOnlySpan<byte> data = MemoryMarshal.Cast<SupportBuffer, byte>(MemoryMarshal.CreateSpan(ref _data, 1));
_renderer.SetBufferData(_handle, _startOffset, data.Slice(_startOffset, _endOffset - _startOffset));
_renderer.SetBufferData(_handle, _startOffset, data[_startOffset.._endOffset]);
_startOffset = -1;
_endOffset = -1;
+2 -4
View File
@@ -8,8 +8,6 @@ using System.Threading;
namespace Ryujinx.Graphics.Gpu
{
using Texture = Image.Texture;
/// <summary>
/// GPU image presentation window.
/// </summary>
@@ -202,13 +200,13 @@ namespace Ryujinx.Graphics.Gpu
{
pt.AcquireCallback(_context, pt.UserObj);
Texture texture = pt.Cache.FindOrCreateTexture(null, TextureSearchFlags.WithUpscale, pt.Info, 0, pt.Range);
Image.Texture texture = pt.Cache.FindOrCreateTexture(null, TextureSearchFlags.WithUpscale, pt.Info, 0, pt.Range);
pt.Cache.Tick();
texture.SynchronizeMemory();
ImageCrop crop = new ImageCrop(
ImageCrop crop = new(
(int)(pt.Crop.Left * texture.ScaleFactor),
(int)MathF.Ceiling(pt.Crop.Right * texture.ScaleFactor),
(int)(pt.Crop.Top * texture.ScaleFactor),
+1 -1
View File
@@ -15,6 +15,6 @@
Tsec = 0xe0,
Tsecb = 0xe1,
Nvjpg = 0xc0,
Nvdec = 0xf0
Nvdec = 0xf0,
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ namespace Ryujinx.Graphics.Host1x
_syncMgr = syncMgr;
_state = new DeviceState<Host1xClassRegisters>(new Dictionary<string, RwCallback>
{
{ nameof(Host1xClassRegisters.WaitSyncpt32), new RwCallback(WaitSyncpt32, null) }
{ nameof(Host1xClassRegisters.WaitSyncpt32), new RwCallback(WaitSyncpt32, null) },
});
}
+1 -1
View File
@@ -16,6 +16,6 @@
NonIncrW,
GatherW,
RestartW,
Extend
Extend,
}
}
+1 -1
View File
@@ -57,7 +57,7 @@ namespace Ryujinx.Graphics.Host1x
_state = new DeviceState<ThiRegisters>(new Dictionary<string, RwCallback>
{
{ nameof(ThiRegisters.IncrSyncpt), new RwCallback(IncrSyncpt, null) },
{ nameof(ThiRegisters.Method1), new RwCallback(Method1, null) }
{ nameof(ThiRegisters.Method1), new RwCallback(Method1, null) },
});
_previousContextId = -1;
@@ -127,7 +127,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.H264
35, 42, 49, 56, 57, 50, 43, 36,
29, 22, 15, 23, 30, 37, 44, 51,
58, 59, 52, 45, 38, 31, 39, 46,
53, 60, 61, 54, 47, 55, 62, 63
53, 60, 61, 54, 47, 55, 62, 63,
};
private static ReadOnlySpan<byte> ZigZagScan => new byte[]
@@ -135,7 +135,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.H264
0 + 0 * 4, 1 + 0 * 4, 0 + 1 * 4, 0 + 2 * 4,
1 + 1 * 4, 2 + 0 * 4, 3 + 0 * 4, 2 + 1 * 4,
1 + 2 * 4, 0 + 3 * 4, 1 + 3 * 4, 2 + 2 * 4,
3 + 1 * 4, 3 + 2 * 4, 2 + 3 * 4, 3 + 3 * 4
3 + 1 * 4, 3 + 2 * 4, 2 + 3 * 4, 3 + 3 * 4,
};
private static void WriteScalingList(ref H264BitStreamWriter writer, IArray<byte> list)
@@ -10,6 +10,6 @@
Verbose = 40,
Debug = 48,
Trace = 56,
MaxOffset = 64
MaxOffset = 64,
}
}
@@ -13,7 +13,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native
private static readonly Dictionary<string, (int, int)> _librariesWhitelist = new()
{
{ AvCodecLibraryName, (58, 59) },
{ AvUtilLibraryName, (56, 57) }
{ AvUtilLibraryName, (56, 57) },
};
private static string FormatLibraryNameForCurrentOs(string libraryName, int version)
+1 -1
View File
@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Nvdec
_rm = new ResourceManager(gmm, new SurfaceCache(gmm));
_state = new DeviceState<NvdecRegisters>(new Dictionary<string, RwCallback>
{
{ nameof(NvdecRegisters.Execute), new RwCallback(Execute, null) }
{ nameof(NvdecRegisters.Execute), new RwCallback(Execute, null) },
});
_contexts = new ConcurrentDictionary<long, NvdecDecoderContext>();
}
@@ -116,7 +116,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.H264
FrameType = 0,
PicWidthInMbsMinus1 = PicWidthInMbs - 1,
PicHeightInMapUnitsMinus1 = (PicHeightInMbs >> (FrameMbsOnlyFlag != 0 ? 0 : 1)) - 1,
QpprimeYZeroTransformBypassFlag = QpprimeYZeroTransformBypassFlag
QpprimeYZeroTransformBypassFlag = QpprimeYZeroTransformBypassFlag,
};
}
}
@@ -68,7 +68,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.Vp8
FirstPartSize = FirstPartSize,
Version = Version,
FrameWidth = FrameWidth,
FrameHeight = FrameHeight
FrameHeight = FrameHeight,
};
}
}
@@ -7,6 +7,6 @@
FrameSizeChanged = 1 << 2,
ErrorResilientMode = 1 << 3,
LastShowFrame = 1 << 4,
IntraOnly = 1 << 5
IntraOnly = 1 << 5,
}
}
@@ -80,7 +80,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.Vp9
SegmentFeatureData = Seg.FeatureData,
ModeRefDeltaEnabled = Lf.ModeRefDeltaEnabled != 0,
RefDeltas = Lf.RefDeltas,
ModeDeltas = Lf.ModeDeltas
ModeDeltas = Lf.ModeDeltas,
};
}
}
@@ -668,7 +668,7 @@ namespace Ryujinx.Graphics.OpenGL
ShaderStage.TessellationEvaluation => ShaderType.TessEvaluationShader,
ShaderStage.Geometry => ShaderType.GeometryShader,
ShaderStage.Fragment => ShaderType.FragmentShader,
_ => ShaderType.VertexShader
_ => ShaderType.VertexShader,
};
}
}
@@ -37,7 +37,7 @@ namespace Ryujinx.Graphics.OpenGL
AmdUnix,
IntelWindows,
IntelUnix,
Nvidia
Nvidia,
}
private static readonly Lazy<GpuVendor> _gpuVendor = new(GetGpuVendor);
+1 -1
View File
@@ -33,7 +33,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
info.BorderColor.Red,
info.BorderColor.Green,
info.BorderColor.Blue,
info.BorderColor.Alpha
info.BorderColor.Alpha,
};
GL.SamplerParameter(Handle, SamplerParameterName.TextureBorderColor, borderColor);
@@ -133,7 +133,7 @@ void main()
1 => SizedInternalFormat.R8ui,
2 => SizedInternalFormat.Rg8ui,
4 => SizedInternalFormat.Rgba8ui,
_ => throw new ArgumentException($"Invalid components count {componentsCount}.")
_ => throw new ArgumentException($"Invalid components count {componentsCount}."),
};
}
else if (componentSize == 2)
@@ -143,7 +143,7 @@ void main()
1 => SizedInternalFormat.R16ui,
2 => SizedInternalFormat.Rg16ui,
4 => SizedInternalFormat.Rgba16ui,
_ => throw new ArgumentException($"Invalid components count {componentsCount}.")
_ => throw new ArgumentException($"Invalid components count {componentsCount}."),
};
}
else if (componentSize == 4)
@@ -153,7 +153,7 @@ void main()
1 => SizedInternalFormat.R32ui,
2 => SizedInternalFormat.Rg32ui,
4 => SizedInternalFormat.Rgba32ui,
_ => throw new ArgumentException($"Invalid components count {componentsCount}.")
_ => throw new ArgumentException($"Invalid components count {componentsCount}."),
};
}
else
@@ -173,7 +173,7 @@ void main()
4 => SizedInternalFormat.R32ui,
8 => SizedInternalFormat.Rg32ui,
16 => SizedInternalFormat.Rgba32ui,
_ => throw new ArgumentException($"Invalid bytes per pixel {bytesPerPixel}.")
_ => throw new ArgumentException($"Invalid bytes per pixel {bytesPerPixel}."),
};
}
@@ -72,7 +72,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
(int)Info.SwizzleR.Convert(),
(int)Info.SwizzleG.Convert(),
(int)Info.SwizzleB.Convert(),
(int)Info.SwizzleA.Convert()
(int)Info.SwizzleA.Convert(),
};
if (Info.Format == Format.A1B5G5R5Unorm)
@@ -210,7 +210,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
{
Target.Texture2DMultisample => Target.Texture2D,
Target.Texture2DMultisampleArray => Target.Texture2DArray,
_ => Target
_ => Target,
};
TextureView intermmediate = _renderer.TextureCopy.IntermediatePool.GetOrCreateWithAtLeast(
@@ -354,7 +354,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
TextureTarget.TextureCubeMapArray => (layer / 6) * mipSize,
TextureTarget.Texture1DArray => layer * mipSize,
TextureTarget.Texture2DArray => layer * mipSize,
_ => 0
_ => 0,
};
}
@@ -210,7 +210,7 @@ namespace Ryujinx.Graphics.OpenGL
GL.Arb.MaxShaderCompilerThreads(Math.Min(Environment.ProcessorCount, 8));
}
_counters.Initialize(_pipeline);
_counters.Initialize();
// This is required to disable [0, 1] clamping for SNorm outputs on compatibility profiles.
// This call is expected to fail if we're running with a core profile,
+1 -2
View File
@@ -5,7 +5,6 @@ using Ryujinx.Graphics.OpenGL.Image;
using Ryujinx.Graphics.OpenGL.Queries;
using Ryujinx.Graphics.Shader;
using System;
using System.Runtime.CompilerServices;
namespace Ryujinx.Graphics.OpenGL
{
@@ -44,7 +43,7 @@ namespace Ryujinx.Graphics.OpenGL
private CounterQueueEvent _activeConditionalRender;
private Vector4<int>[] _fpIsBgra = new Vector4<int>[SupportBuffer.FragmentIsBgraCount];
private readonly Vector4<int>[] _fpIsBgra = new Vector4<int>[SupportBuffer.FragmentIsBgraCount];
private readonly (TextureBase, Format)[] _images;
private TextureBase _unit0Texture;
@@ -13,8 +13,6 @@ namespace Ryujinx.Graphics.OpenGL.Queries
public CounterType Type { get; }
public bool Disposed { get; private set; }
private readonly Pipeline _pipeline;
private readonly Queue<CounterQueueEvent> _events = new();
private CounterQueueEvent _current;
@@ -30,12 +28,10 @@ namespace Ryujinx.Graphics.OpenGL.Queries
private readonly Thread _consumerThread;
internal CounterQueue(Pipeline pipeline, CounterType type)
internal CounterQueue(CounterType type)
{
Type = type;
_pipeline = pipeline;
QueryTarget glType = GetTarget(Type);
_queryPool = new Queue<BufferedQuery>(QueryPoolInitialSize);
@@ -14,12 +14,12 @@ namespace Ryujinx.Graphics.OpenGL.Queries
_counterQueues = new CounterQueue[count];
}
public void Initialize(Pipeline pipeline)
public void Initialize()
{
for (int index = 0; index < _counterQueues.Length; index++)
{
CounterType type = (CounterType)index;
_counterQueues[index] = new CounterQueue(pipeline, type);
_counterQueues[index] = new CounterQueue(type);
}
}
+1 -1
View File
@@ -41,7 +41,7 @@ namespace Ryujinx.Graphics.OpenGL
{
Info = view.Info,
View = view,
RemainingFrames = DisposedLiveFrames
RemainingFrames = DisposedLiveFrames,
});
}
}
+1 -1
View File
@@ -24,7 +24,7 @@ namespace Ryujinx.Graphics.OpenGL
SyncHandle handle = new()
{
ID = id,
Handle = GL.FenceSync(SyncCondition.SyncGpuCommandsComplete, WaitSyncFlags.None)
Handle = GL.FenceSync(SyncCondition.SyncGpuCommandsComplete, WaitSyncFlags.None),
};
@@ -1,6 +1,6 @@
namespace Ryujinx.Graphics.Shader
{
public struct BufferDescriptor
public readonly struct BufferDescriptor
{
// New fields should be added to the end of the struct to keep disk shader cache compatibility.
@@ -11,7 +11,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
{
class OperandManager
{
private Dictionary<AstOperand, string> _locals;
private readonly Dictionary<AstOperand, string> _locals;
public OperandManager()
{
@@ -13,8 +13,6 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
{
static class Declarations
{
private static readonly string[] _stagePrefixes = { "cp", "vp", "tcp", "tep", "gp", "fp" };
public static void DeclareParameters(CodeGenContext context, StructuredFunction function)
{
DeclareParameters(context, function.InArguments, 0);
@@ -192,7 +190,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
SamplerType.Texture3D => Dim.Dim3D,
SamplerType.TextureCube => Dim.Cube,
SamplerType.TextureBuffer => Dim.Buffer,
_ => throw new InvalidOperationException($"Invalid sampler type \"{sampler.Type & SamplerType.Mask}\".")
_ => throw new InvalidOperationException($"Invalid sampler type \"{sampler.Type & SamplerType.Mask}\"."),
};
var imageType = context.TypeImage(
@@ -519,10 +517,5 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
: (isOutput ? context.Outputs : context.Inputs);
dict.Add(ioDefinition, spvVar);
}
private static string GetStagePrefix(ShaderStage stage)
{
return _stagePrefixes[(int)stage];
}
}
}
@@ -24,4 +24,4 @@ namespace Ryujinx.Graphics.Shader
return new TextureDefinition(Set, Binding, Name, Type, Format, Flags | flag);
}
}
}
}
@@ -1,6 +1,6 @@
namespace Ryujinx.Graphics.Shader
{
public struct TextureDescriptor
public readonly struct TextureDescriptor
{
// New fields should be added to the end of the struct to keep disk shader cache compatibility.
@@ -266,7 +266,7 @@ namespace Ryujinx.Graphics.Shader.Translation
{
AccurateType = accurateType,
Type = type,
UsageFlags = usageFlags
UsageFlags = usageFlags,
};
int binding;
@@ -889,7 +889,7 @@ namespace Ryujinx.Graphics.Texture.Astc
0 => 0,
1 => 32,
2 => 63,
_ => 0
_ => 0,
};
break;
@@ -942,7 +942,7 @@ namespace Ryujinx.Graphics.Texture.Astc
2 => 32,
3 => 47,
4 => 63,
_ => 0
_ => 0,
};
break;
@@ -12,7 +12,7 @@ namespace Ryujinx.Graphics.Texture.Astc
{
JustBits,
Quint,
Trit
Trit,
}
readonly EIntegerEncoding _encoding;
@@ -162,7 +162,7 @@ namespace Ryujinx.Graphics.Texture.Astc
IntegerEncoded intEncoded = new(EIntegerEncoding.Quint, numberBitsPerValue)
{
BitValue = m[i],
QuintValue = encodings[i]
QuintValue = encodings[i],
};
listIntegerEncoded.Add(ref intEncoded);
@@ -309,7 +309,7 @@ namespace Ryujinx.Graphics.Texture.Astc
2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 1, 1, 2,
1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2,
0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 1, 2, 2, 2
2, 1, 2, 2, 2,
};
private static ReadOnlySpan<byte> QuintEncodings => new byte[]
@@ -339,7 +339,7 @@ namespace Ryujinx.Graphics.Texture.Astc
0, 1, 4, 1, 1, 4, 0, 2, 3, 1, 2, 3, 2, 2, 3,
3, 2, 3, 4, 2, 3, 2, 4, 3, 0, 2, 4, 1, 2, 4,
0, 3, 3, 1, 3, 3, 2, 3, 3, 3, 3, 3, 4, 3, 3,
3, 4, 3, 0, 3, 4, 1, 3, 4
3, 4, 3, 0, 3, 4, 1, 3, 4,
};
}
}
+3 -3
View File
@@ -21,12 +21,12 @@ namespace Ryujinx.Graphics.Texture
new int[] { 18, 60, -18, -60 },
new int[] { 24, 80, -24, -80 },
new int[] { 33, 106, -33, -106 },
new int[] { 47, 183, -47, -183 }
new int[] { 47, 183, -47, -183 },
};
private static readonly int[] _etc2Lut =
{
3, 6, 11, 16, 23, 32, 41, 64
3, 6, 11, 16, 23, 32, 41, 64,
};
private static readonly int[][] _etc2AlphaLut =
@@ -46,7 +46,7 @@ namespace Ryujinx.Graphics.Texture
new int[] { -3, -4, -7, -10, 2, 3, 6, 9 },
new int[] { -1, -2, -3, -10, 0, 1, 2, 9 },
new int[] { -4, -6, -8, -9, 3, 5, 7, 8 },
new int[] { -3, -5, -7, -9, 2, 4, 6, 8 }
new int[] { -3, -5, -7, -9, 2, 4, 6, 8 },
};
public static byte[] DecodeRgb(ReadOnlySpan<byte> data, int width, int height, int depth, int levels, int layers)
@@ -59,7 +59,7 @@ namespace Ryujinx.Graphics.Texture.Encoders
private static readonly int[] _mostFrequentPartitions = new int[]
{
0, 13, 2, 1, 15, 14, 10, 23
0, 13, 2, 1, 15, 14, 10, 23,
};
private static Block CompressBlock(ReadOnlySpan<byte> data, int x, int y, int width, int height, bool fastMode)
@@ -233,7 +233,7 @@ namespace Ryujinx.Graphics.Texture.Encoders
1 => new RgbaColor8(255, 0, 0, 0).ToUInt32(),
2 => new RgbaColor8(0, 255, 0, 0).ToUInt32(),
3 => new RgbaColor8(0, 0, 255, 0).ToUInt32(),
_ => new RgbaColor8(0, 0, 0, 255).ToUInt32()
_ => new RgbaColor8(0, 0, 0, 255).ToUInt32(),
};
}
else
@@ -5,6 +5,6 @@
Fast,
Exhaustive,
ModeMask = 0xff,
Multithreaded = 1 << 8
Multithreaded = 1 << 8,
}
}
@@ -89,7 +89,7 @@ namespace Ryujinx.Graphics.Texture
8 => Convert<ulong>(dst, data),
12 => Convert<Bpp12Pixel>(dst, data),
16 => Convert<Vector128<byte>>(dst, data),
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format.")
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format."),
};
}
@@ -240,7 +240,7 @@ namespace Ryujinx.Graphics.Texture
8 => Convert<ulong>(output, data),
12 => Convert<Bpp12Pixel>(output, data),
16 => Convert<Vector128<byte>>(output, data),
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format.")
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format."),
};
}
return output;
@@ -359,7 +359,7 @@ namespace Ryujinx.Graphics.Texture
8 => Convert<ulong>(dst, data),
12 => Convert<Bpp12Pixel>(dst, data),
16 => Convert<Vector128<byte>>(dst, data),
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format.")
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format."),
};
}
@@ -504,7 +504,7 @@ namespace Ryujinx.Graphics.Texture
8 => Convert<ulong>(output, data),
12 => Convert<Bpp12Pixel>(output, data),
16 => Convert<Vector128<byte>>(output, data),
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format.")
_ => throw new NotSupportedException($"Unable to convert ${bytesPerPixel} bpp pixel format."),
};
}
@@ -11,21 +11,21 @@
new BC7ModeInfo(1, 0, 0, 2, 1, 2, 3, 5, 6),
new BC7ModeInfo(1, 0, 0, 2, 0, 2, 2, 7, 8),
new BC7ModeInfo(1, 0, 2, 0, 0, 4, 0, 7, 7),
new BC7ModeInfo(2, 6, 4, 0, 0, 2, 0, 5, 5)
new BC7ModeInfo(2, 6, 4, 0, 0, 2, 0, 5, 5),
};
public static readonly byte[][] Weights =
{
new byte[] { 0, 21, 43, 64 },
new byte[] { 0, 9, 18, 27, 37, 46, 55, 64 },
new byte[] { 0, 4, 9, 13, 17, 21, 26, 30, 34, 38, 43, 47, 51, 55, 60, 64 }
new byte[] { 0, 4, 9, 13, 17, 21, 26, 30, 34, 38, 43, 47, 51, 55, 60, 64 },
};
public static readonly byte[][] InverseWeights =
{
new byte[] { 64, 43, 21, 0 },
new byte[] { 64, 55, 46, 37, 27, 18, 9, 0 },
new byte[] { 64, 60, 55, 51, 47, 43, 38, 34, 30, 26, 21, 17, 13, 9, 4, 0 }
new byte[] { 64, 60, 55, 51, 47, 43, 38, 34, 30, 26, 21, 17, 13, 9, 4, 0 },
};
public static readonly byte[][][] FixUpIndices = new byte[3][][]
@@ -47,7 +47,7 @@
new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 },
new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 },
new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 },
new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }
new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 }, new byte[] { 0, 0, 0 },
},
new byte[64][]
{
@@ -66,7 +66,7 @@
new byte[] { 0, 6, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 6, 0 }, new byte[] { 0, 8, 0 },
new byte[] { 0, 15, 0 }, new byte[] { 0, 15, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 2, 0 },
new byte[] { 0, 15, 0 }, new byte[] { 0, 15, 0 }, new byte[] { 0, 15, 0 }, new byte[] { 0, 15, 0 },
new byte[] { 0, 15, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 15, 0 }
new byte[] { 0, 15, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 2, 0 }, new byte[] { 0, 15, 0 },
},
new byte[64][]
{
@@ -85,8 +85,8 @@
new byte[] { 0, 3, 15 }, new byte[] { 0, 15, 3 }, new byte[] { 0, 5, 15 }, new byte[] { 0, 5, 15 },
new byte[] { 0, 5, 15 }, new byte[] { 0, 8, 15 }, new byte[] { 0, 5, 15 }, new byte[] { 0, 10, 15 },
new byte[] { 0, 5, 15 }, new byte[] { 0, 10, 15 }, new byte[] { 0, 8, 15 }, new byte[] { 0, 13, 15 },
new byte[] { 0, 15, 3 }, new byte[] { 0, 12, 15 }, new byte[] { 0, 3, 15 }, new byte[] { 0, 3, 8 }
}
new byte[] { 0, 15, 3 }, new byte[] { 0, 12, 15 }, new byte[] { 0, 3, 15 }, new byte[] { 0, 3, 8 },
},
};
public static readonly byte[][][] PartitionTable = new byte[3][][]
@@ -156,7 +156,7 @@
new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 60
new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 61
new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 62
new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } // 63
new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 63
},
new byte[64][]
{
@@ -223,7 +223,7 @@
new byte[16] { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 }, // 60
new byte[16] { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, // 61
new byte[16] { 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0 }, // 62
new byte[16] { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1 } // 63
new byte[16] { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1 }, // 63
},
new byte[64][]
{
@@ -290,8 +290,8 @@
new byte[16] { 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1 }, // 60
new byte[16] { 0, 2, 2, 2, 1, 2, 2, 2, 0, 2, 2, 2, 1, 2, 2, 2 }, // 61
new byte[16] { 0, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 62
new byte[16] { 0, 1, 1, 1, 2, 0, 1, 1, 2, 2, 0, 1, 2, 2, 2, 0 } // 63
}
new byte[16] { 0, 1, 1, 1, 2, 0, 1, 1, 2, 2, 0, 1, 2, 2, 2, 0 }, // 63
},
};
}
}
@@ -1199,7 +1199,7 @@ namespace Ryujinx.Graphics.Texture.Utils
RgbaColor32 weightV = new(colorWeight)
{
A = alphaWeight
A = alphaWeight,
};
RgbaColor32 invWeightV = new RgbaColor32(64) - weightV;
@@ -77,7 +77,7 @@ namespace Ryujinx.Graphics.Texture.Utils
1 => G,
2 => B,
3 => A,
_ => throw new ArgumentOutOfRangeException(nameof(index))
_ => throw new ArgumentOutOfRangeException(nameof(index)),
};
}
}
@@ -417,7 +417,7 @@ namespace Ryujinx.Graphics.Vic.Image
0 => offsets.LumaOffset,
1 => offsets.ChromaUOffset,
2 => offsets.ChromaVOffset,
_ => throw new ArgumentOutOfRangeException(nameof(plane))
_ => throw new ArgumentOutOfRangeException(nameof(plane)),
};
}
@@ -7,6 +7,6 @@ namespace Ryujinx.Graphics.Vic.Types
Bob,
NewBob,
Disi1,
WeaveLumaBobFieldChroma
WeaveLumaBobFieldChroma,
}
}
@@ -15,7 +15,7 @@ namespace Ryujinx.Graphics.Vic.Types
TopFieldChromaBottom,
BottomFieldChromaTop,
SubPicTopFieldChromaBottom,
SubPicBottomFieldChromaTop
SubPicBottomFieldChromaTop,
}
static class FrameFormatExtensions
@@ -76,6 +76,6 @@
Y8___U8___V8_N422R,
Y8___U8___V8_N420,
U8,
V8
V8,
}
}
+1 -1
View File
@@ -19,7 +19,7 @@ namespace Ryujinx.Graphics.Vic
_rm = new ResourceManager(gmm, new BufferPool<Pixel>(), new BufferPool<byte>());
_state = new DeviceState<VicRegisters>(new Dictionary<string, RwCallback>
{
{ nameof(VicRegisters.Execute), new RwCallback(Execute, null) }
{ nameof(VicRegisters.Execute), new RwCallback(Execute, null) },
});
}
+1 -1
View File
@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.Video
public enum FrameField
{
Progressive,
Interlaced
Interlaced,
}
}
@@ -709,12 +709,14 @@ namespace Ryujinx.Graphics.Vulkan
return CommandBuffer.Handle == cb.Handle;
}
#pragma warning disable CA1822 // Mark member as static
public void SetAlphaTest(bool enable, float reference, CompareOp op)
{
// This is currently handled using shader specialization, as Vulkan does not support alpha test.
// In the future, we may want to use this to write the reference value into the support buffer,
// to avoid creating one version of the shader per reference value used.
}
#pragma warning restore CA1822
public void SetBlendState(AdvancedBlendDescriptor blend)
{
@@ -321,7 +321,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii.Types
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, };
};
private static ReadOnlySpan<byte> RandomMiiFacelineColorRawArray => new byte[]
{
@@ -2,6 +2,6 @@
{
enum DeviceType : uint
{
Amiibo
Amiibo,
}
}
@@ -155,13 +155,18 @@ namespace Ryujinx.Headless.SDL2.OpenGL
{
// NOTE: grabbing the main display's dimensions directly as OpenGL doesn't scale along like the VulkanWindow.
// we might have to amend this if people run this on a non-primary display set to a different resolution.
SDL_Rect displayBounds;
SDL_GetDisplayBounds(0, out displayBounds);
if (SDL_GetDisplayBounds(0, out SDL_Rect displayBounds) < 0)
{
Logger.Warning?.Print(LogClass.Application, $"Could not retrieve display bounds: {SDL_GetError()}");
// Fallback to defaults
displayBounds.w = DefaultWidth;
displayBounds.h = DefaultHeight;
}
Renderer?.Window.SetSize(displayBounds.w, displayBounds.h);
MouseDriver.SetClientSize(displayBounds.w, displayBounds.h);
}
else
{
Renderer?.Window.SetSize(DefaultWidth, DefaultHeight);
+1 -1
View File
@@ -1690,7 +1690,7 @@ namespace Ryujinx.Horizon.Common
{ 0x821AC, "InvalidPackage1" },
{ 0x823AC, "InvalidPackage1SectionSize" },
{ 0x825AC, "InvalidPackage1MarikoBodySize" },
{ 0x827AC, "InvalidPackage1Pk11Size" }
{ 0x827AC, "InvalidPackage1Pk11Size" },
};
public static bool TryGet(int errorCode, out string name)
@@ -13,6 +13,6 @@
OutCopyHandle,
OutMoveHandle,
OutObject,
ProcessId
ProcessId,
}
}
@@ -36,7 +36,7 @@ namespace Ryujinx.Horizon.Generators.Hipc
None,
Ref,
Out,
In
In,
}
private readonly struct OutParameter
@@ -40,7 +40,7 @@ namespace Ryujinx.Horizon.Kernel.Generators
$"{TypeKernelResultName}.TimedOut",
$"{TypeKernelResultName}.Cancelled",
$"{TypeKernelResultName}.PortRemoteClosed",
$"{TypeKernelResultName}.InvalidState"
$"{TypeKernelResultName}.InvalidState",
};
private readonly struct OutParameter
@@ -168,7 +168,7 @@ namespace Ryujinx.Horizon.Sdk.OsTypes.Impl
long minTime = endTime;
foreach (MultiWaitHolder holder in _multiWaits)
foreach (MultiWaitHolderBase holder in _multiWaits)
{
long currentTime = holder.GetAbsoluteTimeToWakeup();
@@ -337,7 +337,7 @@ namespace Ryujinx.Tests.Memory
{
granular.GetHandles(),
singlePages,
doublePages
doublePages,
};
MultiRegionHandle combined = _tracking.BeginGranularTracking(0, PageSize * 18, handleGroups.SelectMany((handles) => handles), PageSize, 0);
@@ -349,7 +349,7 @@ namespace Ryujinx.Tests.Memory
true, true, // Gap.
false, true, false, // Individual handles.
false, false, true, true, false, false, // Double size handles.
true // Gap.
true, // Gap.
};
for (int i = 0; i < 18; i++)
+1 -1
View File
@@ -159,7 +159,7 @@ namespace Ryujinx.Tests.Unicorn
Arm.UC_ARM_REG_Q12,
Arm.UC_ARM_REG_Q13,
Arm.UC_ARM_REG_Q14,
Arm.UC_ARM_REG_Q15
Arm.UC_ARM_REG_Q15,
};
#pragma warning restore IDE0051, IDE0052
+1 -1
View File
@@ -1914,4 +1914,4 @@ namespace Ryujinx.Ui
UpdateGameTable();
}
}
}
}
+1 -1
View File
@@ -234,7 +234,7 @@ namespace Spv.Generator
{
{ Specification.Op.OpConstant, new [] { "Value" } },
{ Specification.Op.OpTypeInt, new [] { "Width", "Signed" } },
{ Specification.Op.OpTypeFloat, new [] { "Width" } }
{ Specification.Op.OpTypeFloat, new [] { "Width" } },
};
public override string ToString()