Browse Source

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
TSRBerry 2 years ago
parent
commit
eb528ae0f0
84 changed files with 252 additions and 160 deletions
  1. 57 21
      .editorconfig
  2. 2 11
      .github/workflows/build.yml
  3. 71 0
      .github/workflows/checks.yml
  4. 3 1
      .github/workflows/nightly_pr_comment.yml
  5. 1 1
      Directory.Packages.props
  6. 1 1
      src/ARMeilleure/Decoders/OpCode32SimdCvtFFixed.cs
  7. 1 1
      src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs
  8. 1 1
      src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceSession.cs
  9. 1 2
      src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs
  10. 1 1
      src/Ryujinx.Audio.Backends.SoundIo/Native/SoundIoBackend.cs
  11. 1 1
      src/Ryujinx.Audio.Backends.SoundIo/Native/SoundIoDeviceAim.cs
  12. 1 1
      src/Ryujinx.Ava/UI/Helpers/Glyph.cs
  13. 1 1
      src/Ryujinx.Common/AsyncWorkQueue.cs
  14. 1 1
      src/Ryujinx.Common/Configuration/BackendThreading.cs
  15. 1 1
      src/Ryujinx.Common/Configuration/GraphicsBackend.cs
  16. 1 1
      src/Ryujinx.Common/Configuration/GraphicsDebugLevel.cs
  17. 1 1
      src/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs
  18. 1 1
      src/Ryujinx.Common/Configuration/MemoryManagerMode.cs
  19. 1 1
      src/Ryujinx.Common/GraphicsDriver/NVAPI/Nvapi.cs
  20. 1 1
      src/Ryujinx.Common/Logging/LogLevel.cs
  21. 3 3
      src/Ryujinx.Cpu/AddressSpace.cs
  22. 1 1
      src/Ryujinx.Cpu/AppleHv/Arm/ApFlags.cs
  23. 1 1
      src/Ryujinx.Graphics.Device/SizeCalculator.cs
  24. 1 1
      src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs
  25. 2 2
      src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs
  26. 2 4
      src/Ryujinx.Graphics.Gpu/Window.cs
  27. 1 1
      src/Ryujinx.Graphics.Host1x/ClassId.cs
  28. 1 1
      src/Ryujinx.Graphics.Host1x/Host1xClass.cs
  29. 1 1
      src/Ryujinx.Graphics.Host1x/OpCode.cs
  30. 1 1
      src/Ryujinx.Graphics.Host1x/ThiDevice.cs
  31. 2 2
      src/Ryujinx.Graphics.Nvdec.FFmpeg/H264/SpsAndPpsReconstruction.cs
  32. 1 1
      src/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVLog.cs
  33. 1 1
      src/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFmpegApi.cs
  34. 1 1
      src/Ryujinx.Graphics.Nvdec/NvdecDevice.cs
  35. 1 1
      src/Ryujinx.Graphics.Nvdec/Types/H264/PictureInfo.cs
  36. 1 1
      src/Ryujinx.Graphics.Nvdec/Types/Vp8/PictureInfo.cs
  37. 1 1
      src/Ryujinx.Graphics.Nvdec/Types/Vp9/FrameFlags.cs
  38. 1 1
      src/Ryujinx.Graphics.Nvdec/Types/Vp9/PictureInfo.cs
  39. 1 1
      src/Ryujinx.Graphics.OpenGL/EnumConversion.cs
  40. 1 1
      src/Ryujinx.Graphics.OpenGL/HwCapabilities.cs
  41. 1 1
      src/Ryujinx.Graphics.OpenGL/Image/Sampler.cs
  42. 3 3
      src/Ryujinx.Graphics.OpenGL/Image/TextureCopyIncompatible.cs
  43. 1 1
      src/Ryujinx.Graphics.OpenGL/Image/TextureCopyMS.cs
  44. 3 3
      src/Ryujinx.Graphics.OpenGL/Image/TextureView.cs
  45. 1 1
      src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs
  46. 1 2
      src/Ryujinx.Graphics.OpenGL/Pipeline.cs
  47. 1 5
      src/Ryujinx.Graphics.OpenGL/Queries/CounterQueue.cs
  48. 2 2
      src/Ryujinx.Graphics.OpenGL/Queries/Counters.cs
  49. 1 1
      src/Ryujinx.Graphics.OpenGL/ResourcePool.cs
  50. 1 1
      src/Ryujinx.Graphics.OpenGL/Sync.cs
  51. 1 1
      src/Ryujinx.Graphics.Shader/BufferDescriptor.cs
  52. 1 1
      src/Ryujinx.Graphics.Shader/CodeGen/Glsl/OperandManager.cs
  53. 1 8
      src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs
  54. 1 1
      src/Ryujinx.Graphics.Shader/StructuredIr/TextureDefinition.cs
  55. 1 1
      src/Ryujinx.Graphics.Shader/TextureDescriptor.cs
  56. 1 1
      src/Ryujinx.Graphics.Shader/Translation/ResourceManager.cs
  57. 2 2
      src/Ryujinx.Graphics.Texture/Astc/AstcDecoder.cs
  58. 4 4
      src/Ryujinx.Graphics.Texture/Astc/IntegerEncoded.cs
  59. 3 3
      src/Ryujinx.Graphics.Texture/ETC2Decoder.cs
  60. 2 2
      src/Ryujinx.Graphics.Texture/Encoders/BC7Encoder.cs
  61. 1 1
      src/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs
  62. 4 4
      src/Ryujinx.Graphics.Texture/LayoutConverter.cs
  63. 11 11
      src/Ryujinx.Graphics.Texture/Utils/BC67Tables.cs
  64. 1 1
      src/Ryujinx.Graphics.Texture/Utils/BC67Utils.cs
  65. 1 1
      src/Ryujinx.Graphics.Texture/Utils/RgbaColor8.cs
  66. 1 1
      src/Ryujinx.Graphics.Vic/Image/SurfaceReader.cs
  67. 1 1
      src/Ryujinx.Graphics.Vic/Types/DeinterlaceMode.cs
  68. 1 1
      src/Ryujinx.Graphics.Vic/Types/FrameFormat.cs
  69. 1 1
      src/Ryujinx.Graphics.Vic/Types/PixelFormat.cs
  70. 1 1
      src/Ryujinx.Graphics.Vic/VicDevice.cs
  71. 1 1
      src/Ryujinx.Graphics.Video/FrameField.cs
  72. 2 0
      src/Ryujinx.Graphics.Vulkan/PipelineBase.cs
  73. 1 1
      src/Ryujinx.HLE/HOS/Services/Mii/Types/RandomMiiConstants.cs
  74. 1 1
      src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/DeviceType.cs
  75. 8 3
      src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs
  76. 1 1
      src/Ryujinx.Horizon.Common/ResultNames.cs
  77. 1 1
      src/Ryujinx.Horizon.Generators/Hipc/CommandArgType.cs
  78. 1 1
      src/Ryujinx.Horizon.Generators/Hipc/HipcGenerator.cs
  79. 1 1
      src/Ryujinx.Horizon.Kernel.Generators/SyscallGenerator.cs
  80. 1 1
      src/Ryujinx.Horizon/Sdk/OsTypes/Impl/MultiWaitImpl.cs
  81. 2 2
      src/Ryujinx.Tests.Memory/MultiRegionTrackingTests.cs
  82. 1 1
      src/Ryujinx.Tests.Unicorn/UnicornAArch32.cs
  83. 1 1
      src/Ryujinx/Ui/MainWindow.cs
  84. 1 1
      src/Spv.Generator/Instruction.cs

+ 57 - 21
.editorconfig

@@ -1,8 +1,7 @@
 # Remove the line below if you want to inherit .editorconfig settings from higher directories
 # Remove the line below if you want to inherit .editorconfig settings from higher directories
 root = true
 root = true
 
 
-# C# files
-[*.cs]
+[*]
 
 
 #### Core EditorConfig Options ####
 #### Core EditorConfig Options ####
 
 
@@ -12,8 +11,11 @@ indent_style = space
 tab_width = 4
 tab_width = 4
 
 
 # New line preferences
 # New line preferences
-end_of_line = crlf
-insert_final_newline = false
+end_of_line = lf
+insert_final_newline = true
+
+# C# files
+[*.cs]
 
 
 #### .NET Coding Conventions ####
 #### .NET Coding Conventions ####
 
 
@@ -59,7 +61,7 @@ dotnet_style_prefer_simplified_interpolation = true:suggestion
 dotnet_style_readonly_field = true:suggestion
 dotnet_style_readonly_field = true:suggestion
 
 
 # Parameter preferences
 # Parameter preferences
-dotnet_code_quality_unused_parameters = all:suggestion
+dotnet_code_quality_unused_parameters = all:silent
 
 
 #### C# Coding Conventions ####
 #### C# Coding Conventions ####
 
 
@@ -85,7 +87,7 @@ csharp_style_expression_bodied_properties = true:silent
 # Pattern matching preferences
 # Pattern matching preferences
 csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
 csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
 csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
 csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
-csharp_style_prefer_switch_expression = true:suggestion
+csharp_style_prefer_switch_expression = false:silent
 
 
 # Null-checking preferences
 # Null-checking preferences
 csharp_style_conditional_delegate_call = true:suggestion
 csharp_style_conditional_delegate_call = true:suggestion
@@ -94,6 +96,7 @@ csharp_style_conditional_delegate_call = true:suggestion
 csharp_prefer_static_local_function = true:suggestion
 csharp_prefer_static_local_function = true:suggestion
 csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
 csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
 csharp_style_prefer_readonly_struct = true
 csharp_style_prefer_readonly_struct = true
+csharp_style_prefer_method_group_conversion = true
 
 
 # Code-block preferences
 # Code-block preferences
 csharp_prefer_braces = true:silent
 csharp_prefer_braces = true:silent
@@ -109,6 +112,7 @@ csharp_style_prefer_range_operator = true:suggestion
 csharp_style_throw_expression = true:suggestion
 csharp_style_throw_expression = true:suggestion
 csharp_style_unused_value_assignment_preference = discard_variable:suggestion
 csharp_style_unused_value_assignment_preference = discard_variable:suggestion
 csharp_style_unused_value_expression_statement_preference = discard_variable:silent
 csharp_style_unused_value_expression_statement_preference = discard_variable:silent
+csharp_style_implicit_object_creation_when_type_is_apparent = true
 
 
 # 'using' directive preferences
 # 'using' directive preferences
 csharp_using_directive_placement = outside_namespace:silent
 csharp_using_directive_placement = outside_namespace:silent
@@ -140,7 +144,6 @@ csharp_space_after_dot = false
 csharp_space_after_keywords_in_control_flow_statements = true
 csharp_space_after_keywords_in_control_flow_statements = true
 csharp_space_after_semicolon_in_for_statement = true
 csharp_space_after_semicolon_in_for_statement = true
 csharp_space_around_binary_operators = before_and_after
 csharp_space_around_binary_operators = before_and_after
-csharp_space_around_declaration_statements = false
 csharp_space_before_colon_in_inheritance_clause = true
 csharp_space_before_colon_in_inheritance_clause = true
 csharp_space_before_comma = false
 csharp_space_before_comma = false
 csharp_space_before_dot = false
 csharp_space_before_dot = false
@@ -158,23 +161,31 @@ csharp_space_between_square_brackets = false
 
 
 # Wrapping preferences
 # Wrapping preferences
 csharp_preserve_single_line_blocks = true
 csharp_preserve_single_line_blocks = true
-csharp_preserve_single_line_statements = true
+csharp_preserve_single_line_statements = false
 
 
 #### Naming styles ####
 #### Naming styles ####
 
 
 # Naming rules
 # Naming rules
 
 
-dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
-dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
-dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+dotnet_naming_rule.interfaces_should_be_prefixed_with_I.severity = suggestion
+dotnet_naming_rule.interfaces_should_be_prefixed_with_I.symbols = interface
+dotnet_naming_rule.interfaces_should_be_prefixed_with_I.style = IPascalCase
 
 
 dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
 dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
 dotnet_naming_rule.types_should_be_pascal_case.symbols = types
 dotnet_naming_rule.types_should_be_pascal_case.symbols = types
-dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+dotnet_naming_rule.types_should_be_pascal_case.style = PascalCase
 
 
 dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
 dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
 dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
 dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
-dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = PascalCase
+
+dotnet_naming_rule.private_static_readonly_fields_should_be_camel_case_and_prefixed_with__.symbols = private_static_readonly_fields
+dotnet_naming_rule.private_static_readonly_fields_should_be_camel_case_and_prefixed_with__.severity = suggestion
+dotnet_naming_rule.private_static_readonly_fields_should_be_camel_case_and_prefixed_with__.style = _camelCase
+
+dotnet_naming_rule.local_constants_should_be_pascal_case.symbols = local_constants
+dotnet_naming_rule.local_constants_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.local_constants_should_be_pascal_case.style = PascalCase
 
 
 # Symbol specifications
 # Symbol specifications
 
 
@@ -190,14 +201,39 @@ dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, meth
 dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 dotnet_naming_symbols.non_field_members.required_modifiers =
 dotnet_naming_symbols.non_field_members.required_modifiers =
 
 
+dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field
+dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private
+dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = static, readonly
+
+dotnet_naming_symbols.local_constants.applicable_kinds = local
+dotnet_naming_symbols.local_constants.applicable_accessibilities = local
+dotnet_naming_symbols.local_constants.required_modifiers = const
+
 # Naming styles
 # Naming styles
 
 
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
-dotnet_naming_style.pascal_case.capitalization = pascal_case
+dotnet_naming_style._camelCase.required_prefix = _
+dotnet_naming_style._camelCase.required_suffix =
+dotnet_naming_style._camelCase.word_separator =
+dotnet_naming_style._camelCase.capitalization = camel_case
+
+dotnet_naming_style.PascalCase.required_prefix =
+dotnet_naming_style.PascalCase.required_suffix =
+dotnet_naming_style.PascalCase.word_separator =
+dotnet_naming_style.PascalCase.capitalization = pascal_case
+
+dotnet_naming_style.IPascalCase.required_prefix = I
+dotnet_naming_style.IPascalCase.required_suffix =
+dotnet_naming_style.IPascalCase.word_separator =
+dotnet_naming_style.IPascalCase.capitalization = pascal_case
+
+[src/Ryujinx.HLE/HOS/Services/**.cs]
+# Disable "mark members as static" rule for services
+dotnet_diagnostic.CA1822.severity = none
+
+[src/Ryujinx.Ava/UI/ViewModels/**.cs]
+# Disable "mark members as static" rule for ViewModels
+dotnet_diagnostic.CA1822.severity = none
 
 
-dotnet_naming_style.begins_with_i.required_prefix = I
-dotnet_naming_style.begins_with_i.required_suffix =
-dotnet_naming_style.begins_with_i.word_separator =
-dotnet_naming_style.begins_with_i.capitalization = pascal_case
+[src/Ryujinx.Tests/Cpu/*.cs]
+# Disable naming rules for CPU tests
+dotnet_diagnostic.IDE1006.severity = none

+ 2 - 11
.github/workflows/build.yml

@@ -1,19 +1,10 @@
 name: Build job
 name: Build job
 
 
 on:
 on:
-  workflow_dispatch:
-    inputs: {}
-  pull_request:
-    branches: [ master ]
-    paths-ignore:
-      - '.github/**'
-      - '*.yml'
-      - '*.json'
-      - '*.config'
-      - 'README.md'
+  workflow_call:
 
 
 concurrency:
 concurrency:
-  group: pr-checks-${{ github.event.number }}
+  group: pr-builds-${{ github.event.number }}
   cancel-in-progress: true
   cancel-in-progress: true
 
 
 env:
 env:

+ 71 - 0
.github/workflows/checks.yml

@@ -0,0 +1,71 @@
+name: Perform checks
+
+on:
+  pull_request:
+    branches: [ master ]
+    paths:
+      - '**'
+      - '!.github/**'
+      - '!*.yml'
+      - '!*.config'
+      - '!README.md'
+      - '.github/workflows/*.yml'
+
+permissions:
+  pull-requests: write
+  checks: write
+
+concurrency:
+  group: pr-checks-${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  format:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+
+      - uses: actions/setup-dotnet@v3
+        with:
+          global-json-file: global.json
+
+      - run: dotnet restore
+
+      - name: Print dotnet format version
+        run: dotnet format --version
+
+      - name: Run dotnet format whitespace
+        run: |
+          dotnet format whitespace --verify-no-changes --report ./whitespace-report.json -v d
+
+      - name: Run dotnet format style
+        run: |
+          dotnet format style --severity info --verify-no-changes --report ./style-report.json -v d
+
+      # For some reason this step sometimes fails with exit code 139 (segfault?),
+      # so should that be the case we'll try again (3 tries max).
+      - name: Run dotnet format analyzers
+        run: |
+          attempt=0
+          exit_code=139
+          until [ $attempt -ge 3 ] || [ $exit_code -ne 139 ]; do
+            ((attempt+=1))
+            exit_code=0
+            echo "Attempt: ${attempt}/3"
+            dotnet format analyzers --severity info --verify-no-changes --report ./analyzers-report.json -v d || exit_code=$?
+          done
+          exit $exit_code
+
+      - name: Upload report
+        if: failure()
+        uses: actions/upload-artifact@v3
+        with:
+          name: dotnet-format
+          path: ./*-report.json
+
+  pr_build:
+    uses: ./.github/workflows/build.yml
+    needs: format
+    secrets: inherit

+ 3 - 1
.github/workflows/nightly_pr_comment.yml

@@ -1,8 +1,10 @@
 name: Comment PR artifacts links
 name: Comment PR artifacts links
+
 on:
 on:
   workflow_run:
   workflow_run:
-    workflows: ['Build job']
+    workflows: ['Perform checks']
     types: [completed]
     types: [completed]
+
 jobs:
 jobs:
   pr_comment:
   pr_comment:
     if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
     if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'

+ 1 - 1
Directory.Packages.props

@@ -20,7 +20,7 @@
     <PackageVersion Include="jp2masa.Avalonia.Flexbox" Version="0.2.0" />
     <PackageVersion Include="jp2masa.Avalonia.Flexbox" Version="0.2.0" />
     <PackageVersion Include="LibHac" Version="0.18.0" />
     <PackageVersion Include="LibHac" Version="0.18.0" />
     <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
     <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
-    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" />
+    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.6.0" />
     <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
     <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
     <PackageVersion Include="Microsoft.IO.RecyclableMemoryStream" Version="2.3.2" />
     <PackageVersion Include="Microsoft.IO.RecyclableMemoryStream" Version="2.3.2" />
     <PackageVersion Include="MsgPack.Cli" Version="1.0.1" />
     <PackageVersion Include="MsgPack.Cli" Version="1.0.1" />

+ 1 - 1
src/ARMeilleure/Decoders/OpCode32SimdCvtFFixed.cs

@@ -20,4 +20,4 @@
             }
             }
         }
         }
     }
     }
-}
+}

+ 1 - 1
src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs

@@ -31,7 +31,7 @@ namespace Ryujinx.Audio.Backends.OpenAL
             _stillRunning = true;
             _stillRunning = true;
             _updaterThread = new Thread(Update)
             _updaterThread = new Thread(Update)
             {
             {
-                Name = "HardwareDeviceDriver.OpenAL"
+                Name = "HardwareDeviceDriver.OpenAL",
             };
             };
 
 
             _updaterThread.Start();
             _updaterThread.Start();

+ 1 - 1
src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceSession.cs

@@ -67,7 +67,7 @@ namespace Ryujinx.Audio.Backends.OpenAL
                 {
                 {
                     DriverIdentifier = buffer.DataPointer,
                     DriverIdentifier = buffer.DataPointer,
                     BufferId = AL.GenBuffer(),
                     BufferId = AL.GenBuffer(),
-                    SampleCount = GetSampleCount(buffer)
+                    SampleCount = GetSampleCount(buffer),
                 };
                 };
 
 
                 AL.BufferData(driverBuffer.BufferId, _targetFormat, buffer.Data, (int)RequestedSampleRate);
                 AL.BufferData(driverBuffer.BufferId, _targetFormat, buffer.Data, (int)RequestedSampleRate);

+ 1 - 2
src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs

@@ -7,7 +7,6 @@ using System;
 using System.Collections.Concurrent;
 using System.Collections.Concurrent;
 using System.Runtime.InteropServices;
 using System.Runtime.InteropServices;
 using System.Threading;
 using System.Threading;
-
 using static Ryujinx.Audio.Integration.IHardwareDeviceDriver;
 using static Ryujinx.Audio.Integration.IHardwareDeviceDriver;
 using static SDL2.SDL;
 using static SDL2.SDL;
 
 
@@ -111,7 +110,7 @@ namespace Ryujinx.Audio.Backends.SDL2
                 channels = (byte)requestedChannelCount,
                 channels = (byte)requestedChannelCount,
                 format = GetSDL2Format(requestedSampleFormat),
                 format = GetSDL2Format(requestedSampleFormat),
                 freq = (int)requestedSampleRate,
                 freq = (int)requestedSampleRate,
-                samples = (ushort)sampleCount
+                samples = (ushort)sampleCount,
             };
             };
         }
         }
 
 

+ 1 - 1
src/Ryujinx.Audio.Backends.SoundIo/Native/SoundIoBackend.cs

@@ -8,6 +8,6 @@
         Alsa = 3,
         Alsa = 3,
         CoreAudio = 4,
         CoreAudio = 4,
         Wasapi = 5,
         Wasapi = 5,
-        Dummy = 6
+        Dummy = 6,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Audio.Backends.SoundIo/Native/SoundIoDeviceAim.cs

@@ -3,6 +3,6 @@
     public enum SoundIoDeviceAim
     public enum SoundIoDeviceAim
     {
     {
         SoundIoDeviceAimInput = 0,
         SoundIoDeviceAimInput = 0,
-        SoundIoDeviceAimOutput = 1
+        SoundIoDeviceAimOutput = 1,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Ava/UI/Helpers/Glyph.cs

@@ -4,6 +4,6 @@
     {
     {
         List,
         List,
         Grid,
         Grid,
-        Chip
+        Chip,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/AsyncWorkQueue.cs

@@ -25,7 +25,7 @@ namespace Ryujinx.Common
             _workerThread = new Thread(DoWork)
             _workerThread = new Thread(DoWork)
             {
             {
                 Name = name,
                 Name = name,
-                IsBackground = true
+                IsBackground = true,
             };
             };
             _workerThread.Start();
             _workerThread.Start();
         }
         }

+ 1 - 1
src/Ryujinx.Common/Configuration/BackendThreading.cs

@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration
     {
     {
         Auto,
         Auto,
         Off,
         Off,
-        On
+        On,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/Configuration/GraphicsBackend.cs

@@ -7,6 +7,6 @@ namespace Ryujinx.Common.Configuration
     public enum GraphicsBackend
     public enum GraphicsBackend
     {
     {
         Vulkan,
         Vulkan,
-        OpenGl
+        OpenGl,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/Configuration/GraphicsDebugLevel.cs

@@ -9,6 +9,6 @@ namespace Ryujinx.Common.Configuration
         None,
         None,
         Error,
         Error,
         Slowdowns,
         Slowdowns,
-        All
+        All,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs

@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
     {
     {
         Invalid,
         Invalid,
         GamepadDriver,
         GamepadDriver,
-        CemuHook
+        CemuHook,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/Configuration/MemoryManagerMode.cs

@@ -8,6 +8,6 @@ namespace Ryujinx.Common.Configuration
     {
     {
         SoftwarePageTable,
         SoftwarePageTable,
         HostMapped,
         HostMapped,
-        HostMappedUnsafe
+        HostMappedUnsafe,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/GraphicsDriver/NVAPI/Nvapi.cs

@@ -6,6 +6,6 @@
 
 
         OglThreadControlDefault = 0,
         OglThreadControlDefault = 0,
         OglThreadControlEnable = 1,
         OglThreadControlEnable = 1,
-        OglThreadControlDisable = 2
+        OglThreadControlDisable = 2,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Common/Logging/LogLevel.cs

@@ -14,6 +14,6 @@ namespace Ryujinx.Common.Logging
         Guest,
         Guest,
         AccessLog,
         AccessLog,
         Notice,
         Notice,
-        Trace
+        Trace,
     }
     }
 }
 }

+ 3 - 3
src/Ryujinx.Cpu/AddressSpace.cs

@@ -179,7 +179,7 @@ namespace Ryujinx.Cpu
         {
         {
             addressSpace = null;
             addressSpace = null;
 
 
-            const MemoryAllocationFlags asFlags = MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible;
+            const MemoryAllocationFlags AsFlags = MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible;
 
 
             ulong minAddressSpaceSize = Math.Min(asSize, 1UL << 36);
             ulong minAddressSpaceSize = Math.Min(asSize, 1UL << 36);
 
 
@@ -191,8 +191,8 @@ namespace Ryujinx.Cpu
 
 
                 try
                 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);
                     addressSpace = new AddressSpace(backingMemory, baseMemory, mirrorMemory, addressSpaceSize, supports4KBPages);
 
 
                     break;
                     break;

+ 1 - 1
src/Ryujinx.Cpu/AppleHv/Arm/ApFlags.cs

@@ -22,6 +22,6 @@ namespace Ryujinx.Cpu.AppleHv.Arm
 
 
         UserNoneKernelReadWrite = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (0UL << (int)ApShift),
         UserNoneKernelReadWrite = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (0UL << (int)ApShift),
         UserNoneKernelRead = (1UL << (int)PxnShift) | (1UL << (int)UxnShift) | (2UL << (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),
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Device/SizeCalculator.cs

@@ -56,7 +56,7 @@ namespace Ryujinx.Graphics.Device
                 TypeCode.Double => sizeof(double),
                 TypeCode.Double => sizeof(double),
                 TypeCode.Decimal => sizeof(decimal),
                 TypeCode.Decimal => sizeof(decimal),
                 TypeCode.Boolean => sizeof(bool),
                 TypeCode.Boolean => sizeof(bool),
-                _ => throw new ArgumentException($"Length for type \"{type.Name}\" is unknown.")
+                _ => throw new ArgumentException($"Length for type \"{type.Name}\" is unknown."),
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.GAL/Multithreading/ThreadedRenderer.cs

@@ -412,7 +412,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
 
 
         public ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, float divisor, bool hostReserved)
         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);
             New<ReportCounterCommand>().Set(Ref(evt), type, Ref(resultHandler), divisor, hostReserved);
             QueueCommand();
             QueueCommand();
 
 

+ 2 - 2
src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs

@@ -187,7 +187,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
                     X = scale * 2f / viewportWidth,
                     X = scale * 2f / viewportWidth,
                     Y = scale * 2f / viewportHeight,
                     Y = scale * 2f / viewportHeight,
                     Z = 1,
                     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));
                 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;
                 _startOffset = -1;
                 _endOffset = -1;
                 _endOffset = -1;

+ 2 - 4
src/Ryujinx.Graphics.Gpu/Window.cs

@@ -8,8 +8,6 @@ using System.Threading;
 
 
 namespace Ryujinx.Graphics.Gpu
 namespace Ryujinx.Graphics.Gpu
 {
 {
-    using Texture = Image.Texture;
-
     /// <summary>
     /// <summary>
     /// GPU image presentation window.
     /// GPU image presentation window.
     /// </summary>
     /// </summary>
@@ -202,13 +200,13 @@ namespace Ryujinx.Graphics.Gpu
             {
             {
                 pt.AcquireCallback(_context, pt.UserObj);
                 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();
                 pt.Cache.Tick();
 
 
                 texture.SynchronizeMemory();
                 texture.SynchronizeMemory();
 
 
-                ImageCrop crop = new ImageCrop(
+                ImageCrop crop = new(
                     (int)(pt.Crop.Left * texture.ScaleFactor),
                     (int)(pt.Crop.Left * texture.ScaleFactor),
                     (int)MathF.Ceiling(pt.Crop.Right * texture.ScaleFactor),
                     (int)MathF.Ceiling(pt.Crop.Right * texture.ScaleFactor),
                     (int)(pt.Crop.Top * texture.ScaleFactor),
                     (int)(pt.Crop.Top * texture.ScaleFactor),

+ 1 - 1
src/Ryujinx.Graphics.Host1x/ClassId.cs

@@ -15,6 +15,6 @@
         Tsec = 0xe0,
         Tsec = 0xe0,
         Tsecb = 0xe1,
         Tsecb = 0xe1,
         Nvjpg = 0xc0,
         Nvjpg = 0xc0,
-        Nvdec = 0xf0
+        Nvdec = 0xf0,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Host1x/Host1xClass.cs

@@ -15,7 +15,7 @@ namespace Ryujinx.Graphics.Host1x
             _syncMgr = syncMgr;
             _syncMgr = syncMgr;
             _state = new DeviceState<Host1xClassRegisters>(new Dictionary<string, RwCallback>
             _state = new DeviceState<Host1xClassRegisters>(new Dictionary<string, RwCallback>
             {
             {
-                { nameof(Host1xClassRegisters.WaitSyncpt32), new RwCallback(WaitSyncpt32, null) }
+                { nameof(Host1xClassRegisters.WaitSyncpt32), new RwCallback(WaitSyncpt32, null) },
             });
             });
         }
         }
 
 

+ 1 - 1
src/Ryujinx.Graphics.Host1x/OpCode.cs

@@ -16,6 +16,6 @@
         NonIncrW,
         NonIncrW,
         GatherW,
         GatherW,
         RestartW,
         RestartW,
-        Extend
+        Extend,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Host1x/ThiDevice.cs

@@ -57,7 +57,7 @@ namespace Ryujinx.Graphics.Host1x
             _state = new DeviceState<ThiRegisters>(new Dictionary<string, RwCallback>
             _state = new DeviceState<ThiRegisters>(new Dictionary<string, RwCallback>
             {
             {
                 { nameof(ThiRegisters.IncrSyncpt), new RwCallback(IncrSyncpt, null) },
                 { nameof(ThiRegisters.IncrSyncpt), new RwCallback(IncrSyncpt, null) },
-                { nameof(ThiRegisters.Method1), new RwCallback(Method1, null) }
+                { nameof(ThiRegisters.Method1), new RwCallback(Method1, null) },
             });
             });
 
 
             _previousContextId = -1;
             _previousContextId = -1;

+ 2 - 2
src/Ryujinx.Graphics.Nvdec.FFmpeg/H264/SpsAndPpsReconstruction.cs

@@ -127,7 +127,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.H264
             35, 42, 49, 56, 57, 50, 43, 36,
             35, 42, 49, 56, 57, 50, 43, 36,
             29, 22, 15, 23, 30, 37, 44, 51,
             29, 22, 15, 23, 30, 37, 44, 51,
             58, 59, 52, 45, 38, 31, 39, 46,
             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[]
         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,
             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 + 1 * 4, 2 + 0 * 4, 3 + 0 * 4, 2 + 1 * 4,
             1 + 2 * 4, 0 + 3 * 4, 1 + 3 * 4, 2 + 2 * 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)
         private static void WriteScalingList(ref H264BitStreamWriter writer, IArray<byte> list)

+ 1 - 1
src/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVLog.cs

@@ -10,6 +10,6 @@
         Verbose = 40,
         Verbose = 40,
         Debug = 48,
         Debug = 48,
         Trace = 56,
         Trace = 56,
-        MaxOffset = 64
+        MaxOffset = 64,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFmpegApi.cs

@@ -13,7 +13,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native
         private static readonly Dictionary<string, (int, int)> _librariesWhitelist = new()
         private static readonly Dictionary<string, (int, int)> _librariesWhitelist = new()
         {
         {
             { AvCodecLibraryName, (58, 59) },
             { AvCodecLibraryName, (58, 59) },
-            { AvUtilLibraryName, (56, 57) }
+            { AvUtilLibraryName, (56, 57) },
         };
         };
 
 
         private static string FormatLibraryNameForCurrentOs(string libraryName, int version)
         private static string FormatLibraryNameForCurrentOs(string libraryName, int version)

+ 1 - 1
src/Ryujinx.Graphics.Nvdec/NvdecDevice.cs

@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Nvdec
             _rm = new ResourceManager(gmm, new SurfaceCache(gmm));
             _rm = new ResourceManager(gmm, new SurfaceCache(gmm));
             _state = new DeviceState<NvdecRegisters>(new Dictionary<string, RwCallback>
             _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>();
             _contexts = new ConcurrentDictionary<long, NvdecDecoderContext>();
         }
         }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec/Types/H264/PictureInfo.cs

@@ -116,7 +116,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.H264
                 FrameType = 0,
                 FrameType = 0,
                 PicWidthInMbsMinus1 = PicWidthInMbs - 1,
                 PicWidthInMbsMinus1 = PicWidthInMbs - 1,
                 PicHeightInMapUnitsMinus1 = (PicHeightInMbs >> (FrameMbsOnlyFlag != 0 ? 0 : 1)) - 1,
                 PicHeightInMapUnitsMinus1 = (PicHeightInMbs >> (FrameMbsOnlyFlag != 0 ? 0 : 1)) - 1,
-                QpprimeYZeroTransformBypassFlag = QpprimeYZeroTransformBypassFlag
+                QpprimeYZeroTransformBypassFlag = QpprimeYZeroTransformBypassFlag,
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec/Types/Vp8/PictureInfo.cs

@@ -68,7 +68,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.Vp8
                 FirstPartSize = FirstPartSize,
                 FirstPartSize = FirstPartSize,
                 Version = Version,
                 Version = Version,
                 FrameWidth = FrameWidth,
                 FrameWidth = FrameWidth,
-                FrameHeight = FrameHeight
+                FrameHeight = FrameHeight,
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec/Types/Vp9/FrameFlags.cs

@@ -7,6 +7,6 @@
         FrameSizeChanged = 1 << 2,
         FrameSizeChanged = 1 << 2,
         ErrorResilientMode = 1 << 3,
         ErrorResilientMode = 1 << 3,
         LastShowFrame = 1 << 4,
         LastShowFrame = 1 << 4,
-        IntraOnly = 1 << 5
+        IntraOnly = 1 << 5,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Nvdec/Types/Vp9/PictureInfo.cs

@@ -80,7 +80,7 @@ namespace Ryujinx.Graphics.Nvdec.Types.Vp9
                 SegmentFeatureData = Seg.FeatureData,
                 SegmentFeatureData = Seg.FeatureData,
                 ModeRefDeltaEnabled = Lf.ModeRefDeltaEnabled != 0,
                 ModeRefDeltaEnabled = Lf.ModeRefDeltaEnabled != 0,
                 RefDeltas = Lf.RefDeltas,
                 RefDeltas = Lf.RefDeltas,
-                ModeDeltas = Lf.ModeDeltas
+                ModeDeltas = Lf.ModeDeltas,
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/EnumConversion.cs

@@ -668,7 +668,7 @@ namespace Ryujinx.Graphics.OpenGL
                 ShaderStage.TessellationEvaluation => ShaderType.TessEvaluationShader,
                 ShaderStage.TessellationEvaluation => ShaderType.TessEvaluationShader,
                 ShaderStage.Geometry => ShaderType.GeometryShader,
                 ShaderStage.Geometry => ShaderType.GeometryShader,
                 ShaderStage.Fragment => ShaderType.FragmentShader,
                 ShaderStage.Fragment => ShaderType.FragmentShader,
-                _ => ShaderType.VertexShader
+                _ => ShaderType.VertexShader,
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/HwCapabilities.cs

@@ -37,7 +37,7 @@ namespace Ryujinx.Graphics.OpenGL
             AmdUnix,
             AmdUnix,
             IntelWindows,
             IntelWindows,
             IntelUnix,
             IntelUnix,
-            Nvidia
+            Nvidia,
         }
         }
 
 
         private static readonly Lazy<GpuVendor> _gpuVendor = new(GetGpuVendor);
         private static readonly Lazy<GpuVendor> _gpuVendor = new(GetGpuVendor);

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/Image/Sampler.cs

@@ -33,7 +33,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
                     info.BorderColor.Red,
                     info.BorderColor.Red,
                     info.BorderColor.Green,
                     info.BorderColor.Green,
                     info.BorderColor.Blue,
                     info.BorderColor.Blue,
-                    info.BorderColor.Alpha
+                    info.BorderColor.Alpha,
                 };
                 };
 
 
                 GL.SamplerParameter(Handle, SamplerParameterName.TextureBorderColor, borderColor);
                 GL.SamplerParameter(Handle, SamplerParameterName.TextureBorderColor, borderColor);

+ 3 - 3
src/Ryujinx.Graphics.OpenGL/Image/TextureCopyIncompatible.cs

@@ -133,7 +133,7 @@ void main()
                     1 => SizedInternalFormat.R8ui,
                     1 => SizedInternalFormat.R8ui,
                     2 => SizedInternalFormat.Rg8ui,
                     2 => SizedInternalFormat.Rg8ui,
                     4 => SizedInternalFormat.Rgba8ui,
                     4 => SizedInternalFormat.Rgba8ui,
-                    _ => throw new ArgumentException($"Invalid components count {componentsCount}.")
+                    _ => throw new ArgumentException($"Invalid components count {componentsCount}."),
                 };
                 };
             }
             }
             else if (componentSize == 2)
             else if (componentSize == 2)
@@ -143,7 +143,7 @@ void main()
                     1 => SizedInternalFormat.R16ui,
                     1 => SizedInternalFormat.R16ui,
                     2 => SizedInternalFormat.Rg16ui,
                     2 => SizedInternalFormat.Rg16ui,
                     4 => SizedInternalFormat.Rgba16ui,
                     4 => SizedInternalFormat.Rgba16ui,
-                    _ => throw new ArgumentException($"Invalid components count {componentsCount}.")
+                    _ => throw new ArgumentException($"Invalid components count {componentsCount}."),
                 };
                 };
             }
             }
             else if (componentSize == 4)
             else if (componentSize == 4)
@@ -153,7 +153,7 @@ void main()
                     1 => SizedInternalFormat.R32ui,
                     1 => SizedInternalFormat.R32ui,
                     2 => SizedInternalFormat.Rg32ui,
                     2 => SizedInternalFormat.Rg32ui,
                     4 => SizedInternalFormat.Rgba32ui,
                     4 => SizedInternalFormat.Rgba32ui,
-                    _ => throw new ArgumentException($"Invalid components count {componentsCount}.")
+                    _ => throw new ArgumentException($"Invalid components count {componentsCount}."),
                 };
                 };
             }
             }
             else
             else

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/Image/TextureCopyMS.cs

@@ -173,7 +173,7 @@ void main()
                 4 => SizedInternalFormat.R32ui,
                 4 => SizedInternalFormat.R32ui,
                 8 => SizedInternalFormat.Rg32ui,
                 8 => SizedInternalFormat.Rg32ui,
                 16 => SizedInternalFormat.Rgba32ui,
                 16 => SizedInternalFormat.Rgba32ui,
-                _ => throw new ArgumentException($"Invalid bytes per pixel {bytesPerPixel}.")
+                _ => throw new ArgumentException($"Invalid bytes per pixel {bytesPerPixel}."),
             };
             };
         }
         }
 
 

+ 3 - 3
src/Ryujinx.Graphics.OpenGL/Image/TextureView.cs

@@ -72,7 +72,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
                 (int)Info.SwizzleR.Convert(),
                 (int)Info.SwizzleR.Convert(),
                 (int)Info.SwizzleG.Convert(),
                 (int)Info.SwizzleG.Convert(),
                 (int)Info.SwizzleB.Convert(),
                 (int)Info.SwizzleB.Convert(),
-                (int)Info.SwizzleA.Convert()
+                (int)Info.SwizzleA.Convert(),
             };
             };
 
 
             if (Info.Format == Format.A1B5G5R5Unorm)
             if (Info.Format == Format.A1B5G5R5Unorm)
@@ -210,7 +210,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
                 {
                 {
                     Target.Texture2DMultisample => Target.Texture2D,
                     Target.Texture2DMultisample => Target.Texture2D,
                     Target.Texture2DMultisampleArray => Target.Texture2DArray,
                     Target.Texture2DMultisampleArray => Target.Texture2DArray,
-                    _ => Target
+                    _ => Target,
                 };
                 };
 
 
                 TextureView intermmediate = _renderer.TextureCopy.IntermediatePool.GetOrCreateWithAtLeast(
                 TextureView intermmediate = _renderer.TextureCopy.IntermediatePool.GetOrCreateWithAtLeast(
@@ -354,7 +354,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
                     TextureTarget.TextureCubeMapArray => (layer / 6) * mipSize,
                     TextureTarget.TextureCubeMapArray => (layer / 6) * mipSize,
                     TextureTarget.Texture1DArray => layer * mipSize,
                     TextureTarget.Texture1DArray => layer * mipSize,
                     TextureTarget.Texture2DArray => layer * mipSize,
                     TextureTarget.Texture2DArray => layer * mipSize,
-                    _ => 0
+                    _ => 0,
                 };
                 };
             }
             }
 
 

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/OpenGLRenderer.cs

@@ -210,7 +210,7 @@ namespace Ryujinx.Graphics.OpenGL
                 GL.Arb.MaxShaderCompilerThreads(Math.Min(Environment.ProcessorCount, 8));
                 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 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,
             // This call is expected to fail if we're running with a core profile,

+ 1 - 2
src/Ryujinx.Graphics.OpenGL/Pipeline.cs

@@ -5,7 +5,6 @@ using Ryujinx.Graphics.OpenGL.Image;
 using Ryujinx.Graphics.OpenGL.Queries;
 using Ryujinx.Graphics.OpenGL.Queries;
 using Ryujinx.Graphics.Shader;
 using Ryujinx.Graphics.Shader;
 using System;
 using System;
-using System.Runtime.CompilerServices;
 
 
 namespace Ryujinx.Graphics.OpenGL
 namespace Ryujinx.Graphics.OpenGL
 {
 {
@@ -44,7 +43,7 @@ namespace Ryujinx.Graphics.OpenGL
 
 
         private CounterQueueEvent _activeConditionalRender;
         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 readonly (TextureBase, Format)[] _images;
         private TextureBase _unit0Texture;
         private TextureBase _unit0Texture;

+ 1 - 5
src/Ryujinx.Graphics.OpenGL/Queries/CounterQueue.cs

@@ -13,8 +13,6 @@ namespace Ryujinx.Graphics.OpenGL.Queries
         public CounterType Type { get; }
         public CounterType Type { get; }
         public bool Disposed { get; private set; }
         public bool Disposed { get; private set; }
 
 
-        private readonly Pipeline _pipeline;
-
         private readonly Queue<CounterQueueEvent> _events = new();
         private readonly Queue<CounterQueueEvent> _events = new();
         private CounterQueueEvent _current;
         private CounterQueueEvent _current;
 
 
@@ -30,12 +28,10 @@ namespace Ryujinx.Graphics.OpenGL.Queries
 
 
         private readonly Thread _consumerThread;
         private readonly Thread _consumerThread;
 
 
-        internal CounterQueue(Pipeline pipeline, CounterType type)
+        internal CounterQueue(CounterType type)
         {
         {
             Type = type;
             Type = type;
 
 
-            _pipeline = pipeline;
-
             QueryTarget glType = GetTarget(Type);
             QueryTarget glType = GetTarget(Type);
 
 
             _queryPool = new Queue<BufferedQuery>(QueryPoolInitialSize);
             _queryPool = new Queue<BufferedQuery>(QueryPoolInitialSize);

+ 2 - 2
src/Ryujinx.Graphics.OpenGL/Queries/Counters.cs

@@ -14,12 +14,12 @@ namespace Ryujinx.Graphics.OpenGL.Queries
             _counterQueues = new CounterQueue[count];
             _counterQueues = new CounterQueue[count];
         }
         }
 
 
-        public void Initialize(Pipeline pipeline)
+        public void Initialize()
         {
         {
             for (int index = 0; index < _counterQueues.Length; index++)
             for (int index = 0; index < _counterQueues.Length; index++)
             {
             {
                 CounterType type = (CounterType)index;
                 CounterType type = (CounterType)index;
-                _counterQueues[index] = new CounterQueue(pipeline, type);
+                _counterQueues[index] = new CounterQueue(type);
             }
             }
         }
         }
 
 

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/ResourcePool.cs

@@ -41,7 +41,7 @@ namespace Ryujinx.Graphics.OpenGL
                 {
                 {
                     Info = view.Info,
                     Info = view.Info,
                     View = view,
                     View = view,
-                    RemainingFrames = DisposedLiveFrames
+                    RemainingFrames = DisposedLiveFrames,
                 });
                 });
             }
             }
         }
         }

+ 1 - 1
src/Ryujinx.Graphics.OpenGL/Sync.cs

@@ -24,7 +24,7 @@ namespace Ryujinx.Graphics.OpenGL
             SyncHandle handle = new()
             SyncHandle handle = new()
             {
             {
                 ID = id,
                 ID = id,
-                Handle = GL.FenceSync(SyncCondition.SyncGpuCommandsComplete, WaitSyncFlags.None)
+                Handle = GL.FenceSync(SyncCondition.SyncGpuCommandsComplete, WaitSyncFlags.None),
             };
             };
 
 
 
 

+ 1 - 1
src/Ryujinx.Graphics.Shader/BufferDescriptor.cs

@@ -1,6 +1,6 @@
 namespace Ryujinx.Graphics.Shader
 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.
         // New fields should be added to the end of the struct to keep disk shader cache compatibility.
 
 

+ 1 - 1
src/Ryujinx.Graphics.Shader/CodeGen/Glsl/OperandManager.cs

@@ -11,7 +11,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
 {
 {
     class OperandManager
     class OperandManager
     {
     {
-        private Dictionary<AstOperand, string> _locals;
+        private readonly Dictionary<AstOperand, string> _locals;
 
 
         public OperandManager()
         public OperandManager()
         {
         {

+ 1 - 8
src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs

@@ -13,8 +13,6 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
 {
 {
     static class Declarations
     static class Declarations
     {
     {
-        private static readonly string[] _stagePrefixes = { "cp", "vp", "tcp", "tep", "gp", "fp" };
-
         public static void DeclareParameters(CodeGenContext context, StructuredFunction function)
         public static void DeclareParameters(CodeGenContext context, StructuredFunction function)
         {
         {
             DeclareParameters(context, function.InArguments, 0);
             DeclareParameters(context, function.InArguments, 0);
@@ -192,7 +190,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
                     SamplerType.Texture3D => Dim.Dim3D,
                     SamplerType.Texture3D => Dim.Dim3D,
                     SamplerType.TextureCube => Dim.Cube,
                     SamplerType.TextureCube => Dim.Cube,
                     SamplerType.TextureBuffer => Dim.Buffer,
                     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(
                 var imageType = context.TypeImage(
@@ -519,10 +517,5 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
                 : (isOutput ? context.Outputs : context.Inputs);
                 : (isOutput ? context.Outputs : context.Inputs);
             dict.Add(ioDefinition, spvVar);
             dict.Add(ioDefinition, spvVar);
         }
         }
-
-        private static string GetStagePrefix(ShaderStage stage)
-        {
-            return _stagePrefixes[(int)stage];
-        }
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Shader/StructuredIr/TextureDefinition.cs

@@ -24,4 +24,4 @@ namespace Ryujinx.Graphics.Shader
             return new TextureDefinition(Set, Binding, Name, Type, Format, Flags | flag);
             return new TextureDefinition(Set, Binding, Name, Type, Format, Flags | flag);
         }
         }
     }
     }
-}
+}

+ 1 - 1
src/Ryujinx.Graphics.Shader/TextureDescriptor.cs

@@ -1,6 +1,6 @@
 namespace Ryujinx.Graphics.Shader
 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.
         // New fields should be added to the end of the struct to keep disk shader cache compatibility.
 
 

+ 1 - 1
src/Ryujinx.Graphics.Shader/Translation/ResourceManager.cs

@@ -266,7 +266,7 @@ namespace Ryujinx.Graphics.Shader.Translation
                 {
                 {
                     AccurateType = accurateType,
                     AccurateType = accurateType,
                     Type = type,
                     Type = type,
-                    UsageFlags = usageFlags
+                    UsageFlags = usageFlags,
                 };
                 };
 
 
                 int binding;
                 int binding;

+ 2 - 2
src/Ryujinx.Graphics.Texture/Astc/AstcDecoder.cs

@@ -889,7 +889,7 @@ namespace Ryujinx.Graphics.Texture.Astc
                                         0 => 0,
                                         0 => 0,
                                         1 => 32,
                                         1 => 32,
                                         2 => 63,
                                         2 => 63,
-                                        _ => 0
+                                        _ => 0,
                                     };
                                     };
 
 
                                     break;
                                     break;
@@ -942,7 +942,7 @@ namespace Ryujinx.Graphics.Texture.Astc
                                         2 => 32,
                                         2 => 32,
                                         3 => 47,
                                         3 => 47,
                                         4 => 63,
                                         4 => 63,
-                                        _ => 0
+                                        _ => 0,
                                     };
                                     };
 
 
                                     break;
                                     break;

+ 4 - 4
src/Ryujinx.Graphics.Texture/Astc/IntegerEncoded.cs

@@ -12,7 +12,7 @@ namespace Ryujinx.Graphics.Texture.Astc
         {
         {
             JustBits,
             JustBits,
             Quint,
             Quint,
-            Trit
+            Trit,
         }
         }
 
 
         readonly EIntegerEncoding _encoding;
         readonly EIntegerEncoding _encoding;
@@ -162,7 +162,7 @@ namespace Ryujinx.Graphics.Texture.Astc
                 IntegerEncoded intEncoded = new(EIntegerEncoding.Quint, numberBitsPerValue)
                 IntegerEncoded intEncoded = new(EIntegerEncoding.Quint, numberBitsPerValue)
                 {
                 {
                     BitValue = m[i],
                     BitValue = m[i],
-                    QuintValue = encodings[i]
+                    QuintValue = encodings[i],
                 };
                 };
 
 
                 listIntegerEncoded.Add(ref intEncoded);
                 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,
             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,
             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,
             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[]
         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,
             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,
             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,
             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
src/Ryujinx.Graphics.Texture/ETC2Decoder.cs

@@ -21,12 +21,12 @@ namespace Ryujinx.Graphics.Texture
             new int[] { 18, 60, -18, -60 },
             new int[] { 18, 60, -18, -60 },
             new int[] { 24, 80, -24, -80 },
             new int[] { 24, 80, -24, -80 },
             new int[] { 33, 106, -33, -106 },
             new int[] { 33, 106, -33, -106 },
-            new int[] { 47, 183, -47, -183 }
+            new int[] { 47, 183, -47, -183 },
         };
         };
 
 
         private static readonly int[] _etc2Lut =
         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 =
         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[] { -3, -4, -7, -10, 2, 3, 6, 9 },
             new int[] { -1, -2, -3, -10, 0, 1, 2, 9 },
             new int[] { -1, -2, -3, -10, 0, 1, 2, 9 },
             new int[] { -4, -6, -8, -9, 3, 5, 7, 8 },
             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)
         public static byte[] DecodeRgb(ReadOnlySpan<byte> data, int width, int height, int depth, int levels, int layers)

+ 2 - 2
src/Ryujinx.Graphics.Texture/Encoders/BC7Encoder.cs

@@ -59,7 +59,7 @@ namespace Ryujinx.Graphics.Texture.Encoders
 
 
         private static readonly int[] _mostFrequentPartitions = new int[]
         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)
         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(),
                     1 => new RgbaColor8(255, 0, 0, 0).ToUInt32(),
                     2 => new RgbaColor8(0, 255, 0, 0).ToUInt32(),
                     2 => new RgbaColor8(0, 255, 0, 0).ToUInt32(),
                     3 => new RgbaColor8(0, 0, 255, 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
             else

+ 1 - 1
src/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs

@@ -5,6 +5,6 @@
         Fast,
         Fast,
         Exhaustive,
         Exhaustive,
         ModeMask = 0xff,
         ModeMask = 0xff,
-        Multithreaded = 1 << 8
+        Multithreaded = 1 << 8,
     }
     }
 }
 }

+ 4 - 4
src/Ryujinx.Graphics.Texture/LayoutConverter.cs

@@ -89,7 +89,7 @@ namespace Ryujinx.Graphics.Texture
                 8 => Convert<ulong>(dst, data),
                 8 => Convert<ulong>(dst, data),
                 12 => Convert<Bpp12Pixel>(dst, data),
                 12 => Convert<Bpp12Pixel>(dst, data),
                 16 => Convert<Vector128<byte>>(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),
                     8 => Convert<ulong>(output, data),
                     12 => Convert<Bpp12Pixel>(output, data),
                     12 => Convert<Bpp12Pixel>(output, data),
                     16 => Convert<Vector128<byte>>(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;
             return output;
@@ -359,7 +359,7 @@ namespace Ryujinx.Graphics.Texture
                 8 => Convert<ulong>(dst, data),
                 8 => Convert<ulong>(dst, data),
                 12 => Convert<Bpp12Pixel>(dst, data),
                 12 => Convert<Bpp12Pixel>(dst, data),
                 16 => Convert<Vector128<byte>>(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),
                     8 => Convert<ulong>(output, data),
                     12 => Convert<Bpp12Pixel>(output, data),
                     12 => Convert<Bpp12Pixel>(output, data),
                     16 => Convert<Vector128<byte>>(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 - 11
src/Ryujinx.Graphics.Texture/Utils/BC67Tables.cs

@@ -11,21 +11,21 @@
             new BC7ModeInfo(1, 0, 0, 2, 1, 2, 3, 5, 6),
             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, 0, 2, 0, 2, 2, 7, 8),
             new BC7ModeInfo(1, 0, 2, 0, 0, 4, 0, 7, 7),
             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 =
         public static readonly byte[][] Weights =
         {
         {
             new byte[] { 0, 21, 43, 64 },
             new byte[] { 0, 21, 43, 64 },
             new byte[] { 0, 9, 18, 27, 37, 46, 55, 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 =
         public static readonly byte[][] InverseWeights =
         {
         {
             new byte[] { 64, 43, 21, 0 },
             new byte[] { 64, 43, 21, 0 },
             new byte[] { 64, 55, 46, 37, 27, 18, 9, 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][][]
         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[] {  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][]
             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,  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,  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, 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][]
             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,  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,  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,  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][][]
         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 }, // 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 }, // 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 }, // 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][]
             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, 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, 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, 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][]
             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, 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, 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, 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
+            },
         };
         };
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Texture/Utils/BC67Utils.cs

@@ -1199,7 +1199,7 @@ namespace Ryujinx.Graphics.Texture.Utils
 
 
             RgbaColor32 weightV = new(colorWeight)
             RgbaColor32 weightV = new(colorWeight)
             {
             {
-                A = alphaWeight
+                A = alphaWeight,
             };
             };
             RgbaColor32 invWeightV = new RgbaColor32(64) - weightV;
             RgbaColor32 invWeightV = new RgbaColor32(64) - weightV;
 
 

+ 1 - 1
src/Ryujinx.Graphics.Texture/Utils/RgbaColor8.cs

@@ -77,7 +77,7 @@ namespace Ryujinx.Graphics.Texture.Utils
                 1 => G,
                 1 => G,
                 2 => B,
                 2 => B,
                 3 => A,
                 3 => A,
-                _ => throw new ArgumentOutOfRangeException(nameof(index))
+                _ => throw new ArgumentOutOfRangeException(nameof(index)),
             };
             };
         }
         }
     }
     }

+ 1 - 1
src/Ryujinx.Graphics.Vic/Image/SurfaceReader.cs

@@ -417,7 +417,7 @@ namespace Ryujinx.Graphics.Vic.Image
                 0 => offsets.LumaOffset,
                 0 => offsets.LumaOffset,
                 1 => offsets.ChromaUOffset,
                 1 => offsets.ChromaUOffset,
                 2 => offsets.ChromaVOffset,
                 2 => offsets.ChromaVOffset,
-                _ => throw new ArgumentOutOfRangeException(nameof(plane))
+                _ => throw new ArgumentOutOfRangeException(nameof(plane)),
             };
             };
         }
         }
 
 

+ 1 - 1
src/Ryujinx.Graphics.Vic/Types/DeinterlaceMode.cs

@@ -7,6 +7,6 @@ namespace Ryujinx.Graphics.Vic.Types
         Bob,
         Bob,
         NewBob,
         NewBob,
         Disi1,
         Disi1,
-        WeaveLumaBobFieldChroma
+        WeaveLumaBobFieldChroma,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Vic/Types/FrameFormat.cs

@@ -15,7 +15,7 @@ namespace Ryujinx.Graphics.Vic.Types
         TopFieldChromaBottom,
         TopFieldChromaBottom,
         BottomFieldChromaTop,
         BottomFieldChromaTop,
         SubPicTopFieldChromaBottom,
         SubPicTopFieldChromaBottom,
-        SubPicBottomFieldChromaTop
+        SubPicBottomFieldChromaTop,
     }
     }
 
 
     static class FrameFormatExtensions
     static class FrameFormatExtensions

+ 1 - 1
src/Ryujinx.Graphics.Vic/Types/PixelFormat.cs

@@ -76,6 +76,6 @@
         Y8___U8___V8_N422R,
         Y8___U8___V8_N422R,
         Y8___U8___V8_N420,
         Y8___U8___V8_N420,
         U8,
         U8,
-        V8
+        V8,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Graphics.Vic/VicDevice.cs

@@ -19,7 +19,7 @@ namespace Ryujinx.Graphics.Vic
             _rm = new ResourceManager(gmm, new BufferPool<Pixel>(), new BufferPool<byte>());
             _rm = new ResourceManager(gmm, new BufferPool<Pixel>(), new BufferPool<byte>());
             _state = new DeviceState<VicRegisters>(new Dictionary<string, RwCallback>
             _state = new DeviceState<VicRegisters>(new Dictionary<string, RwCallback>
             {
             {
-                { nameof(VicRegisters.Execute), new RwCallback(Execute, null) }
+                { nameof(VicRegisters.Execute), new RwCallback(Execute, null) },
             });
             });
         }
         }
 
 

+ 1 - 1
src/Ryujinx.Graphics.Video/FrameField.cs

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.Video
     public enum FrameField
     public enum FrameField
     {
     {
         Progressive,
         Progressive,
-        Interlaced
+        Interlaced,
     }
     }
 }
 }

+ 2 - 0
src/Ryujinx.Graphics.Vulkan/PipelineBase.cs

@@ -709,12 +709,14 @@ namespace Ryujinx.Graphics.Vulkan
             return CommandBuffer.Handle == cb.Handle;
             return CommandBuffer.Handle == cb.Handle;
         }
         }
 
 
+#pragma warning disable CA1822 // Mark member as static
         public void SetAlphaTest(bool enable, float reference, CompareOp op)
         public void SetAlphaTest(bool enable, float reference, CompareOp op)
         {
         {
             // This is currently handled using shader specialization, as Vulkan does not support alpha test.
             // 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,
             // 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.
             // to avoid creating one version of the shader per reference value used.
         }
         }
+#pragma warning restore CA1822
 
 
         public void SetBlendState(AdvancedBlendDescriptor blend)
         public void SetBlendState(AdvancedBlendDescriptor blend)
         {
         {

+ 1 - 1
src/Ryujinx.HLE/HOS/Services/Mii/Types/RandomMiiConstants.cs

@@ -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, 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[]
         private static ReadOnlySpan<byte> RandomMiiFacelineColorRawArray => new byte[]
         {
         {

+ 1 - 1
src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/DeviceType.cs

@@ -2,6 +2,6 @@
 {
 {
     enum DeviceType : uint
     enum DeviceType : uint
     {
     {
-        Amiibo
+        Amiibo,
     }
     }
 }
 }

+ 8 - 3
src/Ryujinx.Headless.SDL2/OpenGL/OpenGLWindow.cs

@@ -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.
                 // 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.
                 // 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);
                 Renderer?.Window.SetSize(displayBounds.w, displayBounds.h);
                 MouseDriver.SetClientSize(displayBounds.w, displayBounds.h);
                 MouseDriver.SetClientSize(displayBounds.w, displayBounds.h);
             }
             }
-
             else
             else
             {
             {
                 Renderer?.Window.SetSize(DefaultWidth, DefaultHeight);
                 Renderer?.Window.SetSize(DefaultWidth, DefaultHeight);

+ 1 - 1
src/Ryujinx.Horizon.Common/ResultNames.cs

@@ -1690,7 +1690,7 @@ namespace Ryujinx.Horizon.Common
             { 0x821AC, "InvalidPackage1" },
             { 0x821AC, "InvalidPackage1" },
             { 0x823AC, "InvalidPackage1SectionSize" },
             { 0x823AC, "InvalidPackage1SectionSize" },
             { 0x825AC, "InvalidPackage1MarikoBodySize" },
             { 0x825AC, "InvalidPackage1MarikoBodySize" },
-            { 0x827AC, "InvalidPackage1Pk11Size" }
+            { 0x827AC, "InvalidPackage1Pk11Size" },
         };
         };
 
 
         public static bool TryGet(int errorCode, out string name)
         public static bool TryGet(int errorCode, out string name)

+ 1 - 1
src/Ryujinx.Horizon.Generators/Hipc/CommandArgType.cs

@@ -13,6 +13,6 @@
         OutCopyHandle,
         OutCopyHandle,
         OutMoveHandle,
         OutMoveHandle,
         OutObject,
         OutObject,
-        ProcessId
+        ProcessId,
     }
     }
 }
 }

+ 1 - 1
src/Ryujinx.Horizon.Generators/Hipc/HipcGenerator.cs

@@ -36,7 +36,7 @@ namespace Ryujinx.Horizon.Generators.Hipc
             None,
             None,
             Ref,
             Ref,
             Out,
             Out,
-            In
+            In,
         }
         }
 
 
         private readonly struct OutParameter
         private readonly struct OutParameter

+ 1 - 1
src/Ryujinx.Horizon.Kernel.Generators/SyscallGenerator.cs

@@ -40,7 +40,7 @@ namespace Ryujinx.Horizon.Kernel.Generators
             $"{TypeKernelResultName}.TimedOut",
             $"{TypeKernelResultName}.TimedOut",
             $"{TypeKernelResultName}.Cancelled",
             $"{TypeKernelResultName}.Cancelled",
             $"{TypeKernelResultName}.PortRemoteClosed",
             $"{TypeKernelResultName}.PortRemoteClosed",
-            $"{TypeKernelResultName}.InvalidState"
+            $"{TypeKernelResultName}.InvalidState",
         };
         };
 
 
         private readonly struct OutParameter
         private readonly struct OutParameter

+ 1 - 1
src/Ryujinx.Horizon/Sdk/OsTypes/Impl/MultiWaitImpl.cs

@@ -168,7 +168,7 @@ namespace Ryujinx.Horizon.Sdk.OsTypes.Impl
 
 
             long minTime = endTime;
             long minTime = endTime;
 
 
-            foreach (MultiWaitHolder holder in _multiWaits)
+            foreach (MultiWaitHolderBase holder in _multiWaits)
             {
             {
                 long currentTime = holder.GetAbsoluteTimeToWakeup();
                 long currentTime = holder.GetAbsoluteTimeToWakeup();
 
 

+ 2 - 2
src/Ryujinx.Tests.Memory/MultiRegionTrackingTests.cs

@@ -337,7 +337,7 @@ namespace Ryujinx.Tests.Memory
             {
             {
                 granular.GetHandles(),
                 granular.GetHandles(),
                 singlePages,
                 singlePages,
-                doublePages
+                doublePages,
             };
             };
 
 
             MultiRegionHandle combined = _tracking.BeginGranularTracking(0, PageSize * 18, handleGroups.SelectMany((handles) => handles), PageSize, 0);
             MultiRegionHandle combined = _tracking.BeginGranularTracking(0, PageSize * 18, handleGroups.SelectMany((handles) => handles), PageSize, 0);
@@ -349,7 +349,7 @@ namespace Ryujinx.Tests.Memory
                 true, true, // Gap.
                 true, true, // Gap.
                 false, true, false, // Individual handles.
                 false, true, false, // Individual handles.
                 false, false, true, true, false, false, // Double size handles.
                 false, false, true, true, false, false, // Double size handles.
-                true // Gap.
+                true, // Gap.
             };
             };
 
 
             for (int i = 0; i < 18; i++)
             for (int i = 0; i < 18; i++)

+ 1 - 1
src/Ryujinx.Tests.Unicorn/UnicornAArch32.cs

@@ -159,7 +159,7 @@ namespace Ryujinx.Tests.Unicorn
             Arm.UC_ARM_REG_Q12,
             Arm.UC_ARM_REG_Q12,
             Arm.UC_ARM_REG_Q13,
             Arm.UC_ARM_REG_Q13,
             Arm.UC_ARM_REG_Q14,
             Arm.UC_ARM_REG_Q14,
-            Arm.UC_ARM_REG_Q15
+            Arm.UC_ARM_REG_Q15,
         };
         };
 #pragma warning restore IDE0051, IDE0052
 #pragma warning restore IDE0051, IDE0052
 
 

+ 1 - 1
src/Ryujinx/Ui/MainWindow.cs

@@ -1914,4 +1914,4 @@ namespace Ryujinx.Ui
             UpdateGameTable();
             UpdateGameTable();
         }
         }
     }
     }
-}
+}

+ 1 - 1
src/Spv.Generator/Instruction.cs

@@ -234,7 +234,7 @@ namespace Spv.Generator
         {
         {
             { Specification.Op.OpConstant, new [] { "Value" } },
             { Specification.Op.OpConstant, new [] { "Value" } },
             { Specification.Op.OpTypeInt, new [] { "Width", "Signed" } },
             { Specification.Op.OpTypeInt, new [] { "Width", "Signed" } },
-            { Specification.Op.OpTypeFloat, new [] { "Width" } }
+            { Specification.Op.OpTypeFloat, new [] { "Width" } },
         };
         };
 
 
         public override string ToString()
         public override string ToString()