Compare commits

..

6 Commits

Author SHA1 Message Date
TSRBerry
e9848339dd [Ryujinx.Tests] Address dotnet-format issues (#5389)
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Fix new dotnet-format issues after rebase

* Address review comments

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

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

* Format if-blocks correctly

* Run dotnet format after rebase and remove unused usings

- analyzers
- style
- whitespace

* Add comments to disabled warnings

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

* cpu tests: Disable CA2211 for CodeBaseAddress and DataBaseAddress

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

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* Apply suggestions from code review

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* First dotnet format pass

* Fix naming rule violations

* Remove naming rule violation exceptions

* Fix comment style

* Use targeted new

* Remove redundant code

* Remove comment alignment

* Remove naming rule exceptions

* Add trailing commas

* Use nameof expression

* Reformat to add remaining trailing commas

---------

Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-07-01 02:14:34 +00:00
TSRBerry
6e28a4dd13 [Ryujinx.Ui.Common] Address dotnet-format issues (#5392)
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Silence dotnet format IDE0060 warnings

* Address dotnet format CA1401 warnings

* dotnet-format fixes after rebase

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

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

* Another rebase, another dotnet format run

* Run dotnet format style after rebase

* Add comments to disabled warnings

* Remove a few unused parameters

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

* Address IDE0251 warnings

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

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* Small optimizations

* Remove alignment

* Apply formatting

* Fix build issues

* Final pass for dotnet format

* Add trailing commas

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Add trailing commas

---------

Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-06-29 02:39:22 +02:00
TSRBerry
7c989f88bd [Ryujinx.Graphics.GAL] Address dotnet-format issues (#5366)
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Silence dotnet format IDE0052 warnings

* Address dotnet format CA1816 warnings

* Address or silence dotnet format CA1069 warnings

* Address remaining dotnet format analyzer warnings

* Address review comments

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

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

* Revert formatting changes for while and for-loops

* Another rebase, another dotnet format run

* Run dotnet format whitespace after rebase

* Run dotnet format style after rebase

* Run dotnet format analyzers after rebase

* Run dotnet format after rebase and remove unused usings

- analyzers
- style
- whitespace

* Disable 'prefer switch expression' rule

* Add comments to disabled warnings

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

* Start working on disabled warnings

* Address IDE0251 warnings

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

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* First dotnet format pass

* Address review feedback

* Add trailing commas

* Remove SuppressMessage for IDE0066

* Make explicit Equals implementation implicit
2023-06-28 20:20:10 +02:00
Ac_K
16fa983704 macOS: Fix warning in some shell scripts (#5398)
* macOS: Fix warning in some shell scripts

In a way to continue the cleaning of the project, there are some warnings which can be easily fixed.

* Try to fix CI

* Fix APP_ARGUMENTS

* Addresses feedback
2023-06-28 19:09:48 +02:00
TSRBerry
40daca5684 [Ryujinx.Headless.SDL2] Address dotnet-format issues (#5379)
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Address or silence dotnet format CA1806 and a few CA1854 warnings

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

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

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

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

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* First dotnet format pass

* Add trailing commas

* Fix naming and formatting issues
2023-06-28 19:03:27 +02:00
TSRBerry
981e0c082d [Spv.Generator] Address dotnet-format issues (#5394)
* dotnet format style --severity info

Some changes were manually reverted.

* Restore a few unused methods and variables

* Silence dotnet format IDE0052 warnings

* Address or silence dotnet format IDE1006 warnings

* Address or silence dotnet format CA1069 warnings

* Address review comments

* Address most dotnet format whitespace warnings

* Run dotnet format after rebase and remove unused usings

- analyzers
- style
- whitespace

* Add comments to disabled warnings

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

* Address IDE0251 warnings

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

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* Rename Operand.cs to IOperand.cs

* Update src/Spv.Generator/Module.cs

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Remove NotNullWhen attribute and use conditional access to avoid NRE

* Fix duplicated enum values

* Remove unread member

---------

Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-06-28 18:54:20 +02:00
289 changed files with 4225 additions and 3781 deletions

View File

@@ -35,12 +35,12 @@ EXECUTABLE_SUB_PATH=Contents/MacOS/Ryujinx
rm -rf "$TEMP_DIRECTORY" rm -rf "$TEMP_DIRECTORY"
mkdir -p "$TEMP_DIRECTORY" mkdir -p "$TEMP_DIRECTORY"
DOTNET_COMMON_ARGS="-p:DebugType=embedded -p:Version=$VERSION -p:SourceRevisionId=$SOURCE_REVISION_ID --self-contained true $EXTRA_ARGS" DOTNET_COMMON_ARGS=(-p:DebugType=embedded -p:Version="$VERSION" -p:SourceRevisionId="$SOURCE_REVISION_ID" --self-contained true $EXTRA_ARGS)
dotnet restore dotnet restore
dotnet build -c $CONFIGURATION src/Ryujinx.Ava dotnet build -c "$CONFIGURATION" src/Ryujinx.Ava
dotnet publish -c $CONFIGURATION -r osx-arm64 -o "$TEMP_DIRECTORY/publish_arm64" $DOTNET_COMMON_ARGS src/Ryujinx.Ava dotnet publish -c "$CONFIGURATION" -r osx-arm64 -o "$TEMP_DIRECTORY/publish_arm64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx.Ava
dotnet publish -c $CONFIGURATION -r osx-x64 -o "$TEMP_DIRECTORY/publish_x64" $DOTNET_COMMON_ARGS src/Ryujinx.Ava dotnet publish -c "$CONFIGURATION" -r osx-x64 -o "$TEMP_DIRECTORY/publish_x64" "${DOTNET_COMMON_ARGS[@]}" src/Ryujinx.Ava
# Get rid of the support library for ARMeilleure for x64 (that's only for arm64) # Get rid of the support library for ARMeilleure for x64 (that's only for arm64)
rm -rf "$TEMP_DIRECTORY/publish_x64/libarmeilleure-jitsupport.dylib" rm -rf "$TEMP_DIRECTORY/publish_x64/libarmeilleure-jitsupport.dylib"
@@ -104,10 +104,10 @@ fi
echo "Creating archive" echo "Creating archive"
pushd "$OUTPUT_DIRECTORY" pushd "$OUTPUT_DIRECTORY"
tar --exclude "Ryujinx.app/Contents/MacOS/Ryujinx" -cvf $RELEASE_TAR_FILE_NAME Ryujinx.app 1> /dev/null tar --exclude "Ryujinx.app/Contents/MacOS/Ryujinx" -cvf "$RELEASE_TAR_FILE_NAME" Ryujinx.app 1> /dev/null
python3 "$BASE_DIR/distribution/misc/add_tar_exec.py" $RELEASE_TAR_FILE_NAME "Ryujinx.app/Contents/MacOS/Ryujinx" "Ryujinx.app/Contents/MacOS/Ryujinx" python3 "$BASE_DIR/distribution/misc/add_tar_exec.py" "$RELEASE_TAR_FILE_NAME" "Ryujinx.app/Contents/MacOS/Ryujinx" "Ryujinx.app/Contents/MacOS/Ryujinx"
gzip -9 < $RELEASE_TAR_FILE_NAME > $RELEASE_TAR_FILE_NAME.gz gzip -9 < "$RELEASE_TAR_FILE_NAME" > "$RELEASE_TAR_FILE_NAME.gz"
rm $RELEASE_TAR_FILE_NAME rm "$RELEASE_TAR_FILE_NAME"
popd popd
echo "Done" echo "Done"

View File

@@ -5,7 +5,7 @@ set -e
INSTALL_DIRECTORY=$1 INSTALL_DIRECTORY=$1
NEW_APP_DIRECTORY=$2 NEW_APP_DIRECTORY=$2
APP_PID=$3 APP_PID=$3
APP_ARGUMENTS="${@:4}" APP_ARGUMENTS=("${@:4}")
error_handler() { error_handler() {
local lineno="$1" local lineno="$1"
@@ -33,7 +33,7 @@ trap 'error_handler ${LINENO}' ERR
attempt=0 attempt=0
while true; do while true; do
if lsof -p $APP_PID +r 1 &>/dev/null || ps -p "$APP_PID" &>/dev/null; then if lsof -p "$APP_PID" +r 1 &>/dev/null || ps -p "$APP_PID" &>/dev/null; then
if [ "$attempt" -eq 4 ]; then if [ "$attempt" -eq 4 ]; then
exit 1 exit 1
fi fi
@@ -53,5 +53,5 @@ mv "$NEW_APP_DIRECTORY" "$INSTALL_DIRECTORY"
if [ "$#" -le 3 ]; then if [ "$#" -le 3 ]; then
open -a "$INSTALL_DIRECTORY" open -a "$INSTALL_DIRECTORY"
else else
open -a "$INSTALL_DIRECTORY" --args "$APP_ARGUMENTS" open -a "$INSTALL_DIRECTORY" --args "${APP_ARGUMENTS[@]}"
fi fi

View File

@@ -32,6 +32,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc;
using Ryujinx.HLE.HOS.SystemState; using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.Input; using Ryujinx.Input;
using Ryujinx.Input.HLE; using Ryujinx.Input.HLE;
using Ryujinx.Ui.App.Common;
using Ryujinx.Ui.Common; using Ryujinx.Ui.Common;
using Ryujinx.Ui.Common.Configuration; using Ryujinx.Ui.Common.Configuration;
using Ryujinx.Ui.Common.Helper; using Ryujinx.Ui.Common.Helper;
@@ -692,7 +693,7 @@ namespace Ryujinx.Ava
DiscordIntegrationModule.SwitchToPlayingState(Device.Processes.ActiveApplication.ProgramIdText, Device.Processes.ActiveApplication.Name); DiscordIntegrationModule.SwitchToPlayingState(Device.Processes.ActiveApplication.ProgramIdText, Device.Processes.ActiveApplication.Name);
_viewModel.ApplicationLibrary.LoadAndSaveMetaData(Device.Processes.ActiveApplication.ProgramIdText, appMetadata => ApplicationLibrary.LoadAndSaveMetaData(Device.Processes.ActiveApplication.ProgramIdText, appMetadata =>
{ {
appMetadata.LastPlayed = DateTime.UtcNow; appMetadata.LastPlayed = DateTime.UtcNow;
}); });

View File

@@ -42,7 +42,7 @@ namespace Ryujinx.Ava.UI.Controls
{ {
viewModel.SelectedApplication.Favorite = !viewModel.SelectedApplication.Favorite; viewModel.SelectedApplication.Favorite = !viewModel.SelectedApplication.Favorite;
viewModel.ApplicationLibrary.LoadAndSaveMetaData(viewModel.SelectedApplication.TitleId, appMetadata => ApplicationLibrary.LoadAndSaveMetaData(viewModel.SelectedApplication.TitleId, appMetadata =>
{ {
appMetadata.Favorite = viewModel.SelectedApplication.Favorite; appMetadata.Favorite = viewModel.SelectedApplication.Favorite;
}); });

View File

@@ -3,6 +3,7 @@ using LibHac.Ncm;
using Ryujinx.Ava.UI.ViewModels; using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Ava.UI.Windows; using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.FileSystem; using Ryujinx.HLE.FileSystem;
using Ryujinx.Ui.App.Common;
using System; using System;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@@ -74,7 +75,7 @@ namespace Ryujinx.Ava.UI.Models
} }
else else
{ {
var appMetadata = MainWindow.MainWindowViewModel.ApplicationLibrary.LoadAndSaveMetaData(TitleIdString); var appMetadata = ApplicationLibrary.LoadAndSaveMetaData(TitleIdString);
Title = appMetadata.Title ?? TitleIdString; Title = appMetadata.Title ?? TitleIdString;
} }

View File

@@ -239,28 +239,28 @@ namespace Ryujinx.Ava.UI.Renderer
IPlatformHandle CreateMacOS() IPlatformHandle CreateMacOS()
{ {
// Create a new CAMetalLayer. // Create a new CAMetalLayer.
IntPtr layerClass = ObjectiveC.objc_getClass("CAMetalLayer"); ObjectiveC.Object layerObject = new("CAMetalLayer");
IntPtr metalLayer = ObjectiveC.IntPtr_objc_msgSend(layerClass, "alloc"); ObjectiveC.Object metalLayer = layerObject.GetFromMessage("alloc");
ObjectiveC.objc_msgSend(metalLayer, "init"); metalLayer.SendMessage("init");
// Create a child NSView to render into. // Create a child NSView to render into.
IntPtr nsViewClass = ObjectiveC.objc_getClass("NSView"); ObjectiveC.Object nsViewObject = new("NSView");
IntPtr child = ObjectiveC.IntPtr_objc_msgSend(nsViewClass, "alloc"); ObjectiveC.Object child = nsViewObject.GetFromMessage("alloc");
ObjectiveC.objc_msgSend(child, "init", new ObjectiveC.NSRect(0, 0, 0, 0)); child.SendMessage("init", new ObjectiveC.NSRect(0, 0, 0, 0));
// Make its renderer our metal layer. // Make its renderer our metal layer.
ObjectiveC.objc_msgSend(child, "setWantsLayer:", 1); child.SendMessage("setWantsLayer:", 1);
ObjectiveC.objc_msgSend(child, "setLayer:", metalLayer); child.SendMessage("setLayer:", metalLayer);
ObjectiveC.objc_msgSend(metalLayer, "setContentsScale:", Program.DesktopScaleFactor); metalLayer.SendMessage("setContentsScale:", Program.DesktopScaleFactor);
// Ensure the scale factor is up to date. // Ensure the scale factor is up to date.
_updateBoundsCallback = rect => _updateBoundsCallback = rect =>
{ {
ObjectiveC.objc_msgSend(metalLayer, "setContentsScale:", Program.DesktopScaleFactor); metalLayer.SendMessage("setContentsScale:", Program.DesktopScaleFactor);
}; };
IntPtr nsView = child; IntPtr nsView = child.ObjPtr;
MetalLayer = metalLayer; MetalLayer = metalLayer.ObjPtr;
NsView = nsView; NsView = nsView;
return new PlatformHandle(nsView, "NSView"); return new PlatformHandle(nsView, "NSView");

View File

@@ -9,6 +9,6 @@ namespace Ryujinx.Graphics.GAL
Clamp, Clamp,
MirrorClampToEdge, MirrorClampToEdge,
MirrorClampToBorder, MirrorClampToBorder,
MirrorClamp MirrorClamp,
} }
} }

View File

@@ -1,6 +1,6 @@
namespace Ryujinx.Graphics.GAL namespace Ryujinx.Graphics.GAL
{ {
public struct AdvancedBlendDescriptor public readonly struct AdvancedBlendDescriptor
{ {
public AdvancedBlendOp Op { get; } public AdvancedBlendOp Op { get; }
public AdvancedBlendOverlap Overlap { get; } public AdvancedBlendOverlap Overlap { get; }

View File

@@ -47,6 +47,6 @@ namespace Ryujinx.Graphics.GAL
HslHue, HslHue,
HslSaturation, HslSaturation,
HslColor, HslColor,
HslLuminosity HslLuminosity,
} }
} }

View File

@@ -4,6 +4,6 @@ namespace Ryujinx.Graphics.GAL
{ {
Uncorrelated, Uncorrelated,
Disjoint, Disjoint,
Conjoint Conjoint,
} }
} }

View File

@@ -7,6 +7,6 @@
SmaaLow, SmaaLow,
SmaaMedium, SmaaMedium,
SmaaHigh, SmaaHigh,
SmaaUltra SmaaUltra,
} }
} }

View File

@@ -36,7 +36,7 @@ namespace Ryujinx.Graphics.GAL
Src1ColorGl = 0xc900, Src1ColorGl = 0xc900,
OneMinusSrc1ColorGl = 0xc901, OneMinusSrc1ColorGl = 0xc901,
Src1AlphaGl = 0xc902, Src1AlphaGl = 0xc902,
OneMinusSrc1AlphaGl = 0xc903 OneMinusSrc1AlphaGl = 0xc903,
} }
public static class BlendFactorExtensions public static class BlendFactorExtensions
@@ -54,9 +54,9 @@ namespace Ryujinx.Graphics.GAL
case BlendFactor.OneMinusSrc1Alpha: case BlendFactor.OneMinusSrc1Alpha:
case BlendFactor.OneMinusSrc1AlphaGl: case BlendFactor.OneMinusSrc1AlphaGl:
return true; return true;
} default:
return false; return false;
} }
} }
} }
}

View File

@@ -12,6 +12,6 @@ namespace Ryujinx.Graphics.GAL
MinimumGl = 0x8007, MinimumGl = 0x8007,
MaximumGl = 0x8008, MaximumGl = 0x8008,
SubtractGl = 0x800a, SubtractGl = 0x800a,
ReverseSubtractGl = 0x800b ReverseSubtractGl = 0x800b,
} }
} }

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum BufferAccess public enum BufferAccess
{ {
Default, Default,
FlushPersistent FlushPersistent,
} }
} }

View File

@@ -7,7 +7,7 @@ namespace Ryujinx.Graphics.GAL
{ {
private readonly ulong _value; private readonly ulong _value;
public static BufferHandle Null => new BufferHandle(0); public static BufferHandle Null => new(0);
private BufferHandle(ulong value) => _value = value; private BufferHandle(ulong value) => _value = value;
} }

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL
{ {
public readonly struct BufferRange public readonly struct BufferRange
{ {
private static readonly BufferRange _empty = new BufferRange(BufferHandle.Null, 0, 0); private static readonly BufferRange _empty = new(BufferHandle.Null, 0, 0);
public static BufferRange Empty => _empty; public static BufferRange Empty => _empty;

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum CompareMode public enum CompareMode
{ {
None, None,
CompareRToTexture CompareRToTexture,
} }
} }

View File

@@ -4,6 +4,6 @@ namespace Ryujinx.Graphics.GAL
{ {
SamplesPassed, SamplesPassed,
PrimitivesGenerated, PrimitivesGenerated,
TransformFeedbackPrimitivesWritten TransformFeedbackPrimitivesWritten,
} }
} }

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum DepthMode public enum DepthMode
{ {
MinusOneToOne, MinusOneToOne,
ZeroToOne ZeroToOne,
} }
} }

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum DepthStencilMode public enum DepthStencilMode
{ {
Depth, Depth,
Stencil Stencil,
} }
} }

View File

@@ -4,6 +4,6 @@ namespace Ryujinx.Graphics.GAL
{ {
Front = 0x404, Front = 0x404,
Back = 0x405, Back = 0x405,
FrontAndBack = 0x408 FrontAndBack = 0x408,
} }
} }

View File

@@ -146,7 +146,7 @@ namespace Ryujinx.Graphics.GAL
B5G5R5A1Unorm, B5G5R5A1Unorm,
A1B5G5R5Unorm, A1B5G5R5Unorm,
B8G8R8A8Unorm, B8G8R8A8Unorm,
B8G8R8A8Srgb B8G8R8A8Srgb,
} }
public static class FormatExtensions public static class FormatExtensions

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum FrontFace public enum FrontFace
{ {
Clockwise = 0x900, Clockwise = 0x900,
CounterClockwise = 0x901 CounterClockwise = 0x901,
} }
} }

View File

@@ -1,5 +1,4 @@
using Ryujinx.Common.Memory; using Ryujinx.Common.Memory;
using System;
namespace Ryujinx.Graphics.GAL namespace Ryujinx.Graphics.GAL
{ {

View File

@@ -4,6 +4,6 @@ namespace Ryujinx.Graphics.GAL
{ {
UByte, UByte,
UShort, UShort,
UInt UInt,
} }
} }

View File

@@ -17,6 +17,6 @@
CopyInverted = 0x150C, CopyInverted = 0x150C,
OrInverted = 0x150D, OrInverted = 0x150D,
Nand = 0x150E, Nand = 0x150E,
Set = 0x150F Set = 0x150F,
} }
} }

View File

@@ -3,6 +3,6 @@ namespace Ryujinx.Graphics.GAL
public enum MagFilter public enum MagFilter
{ {
Nearest = 1, Nearest = 1,
Linear Linear,
} }
} }

View File

@@ -7,6 +7,6 @@ namespace Ryujinx.Graphics.GAL
NearestMipmapNearest, NearestMipmapNearest,
LinearMipmapNearest, LinearMipmapNearest,
NearestMipmapLinear, NearestMipmapLinear,
LinearMipmapLinear LinearMipmapLinear,
} }
} }

View File

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

View File

@@ -17,8 +17,8 @@ namespace Ryujinx.Graphics.GAL.Multithreading
{ {
private delegate void CommandDelegate(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer); private delegate void CommandDelegate(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer);
private static int _totalCommands = (int)Enum.GetValues<CommandType>().Max() + 1; private static readonly int _totalCommands = (int)Enum.GetValues<CommandType>().Max() + 1;
private static CommandDelegate[] _lookup = new CommandDelegate[_totalCommands]; private static readonly CommandDelegate[] _lookup = new CommandDelegate[_totalCommands];
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static ref T GetCommand<T>(Span<byte> memory) private static ref T GetCommand<T>(Span<byte> memory)
@@ -146,7 +146,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void RunCommand(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer) public static void RunCommand(Span<byte> memory, ThreadedRenderer threaded, IRenderer renderer)
{ {
_lookup[memory[memory.Length - 1]](memory, threaded, renderer); _lookup[memory[^1]](memory, threaded, renderer);
} }
} }
} }

View File

@@ -100,6 +100,6 @@
TextureBarrierTiled, TextureBarrierTiled,
TryHostConditionalRendering, TryHostConditionalRendering,
TryHostConditionalRenderingFlush, TryHostConditionalRenderingFlush,
UpdateRenderScale UpdateRenderScale,
} }
} }

View File

@@ -2,7 +2,7 @@
{ {
struct BarrierCommand : IGALCommand, IGALCommand<BarrierCommand> struct BarrierCommand : IGALCommand, IGALCommand<BarrierCommand>
{ {
public CommandType CommandType => CommandType.Barrier; public readonly CommandType CommandType => CommandType.Barrier;
public static void Run(ref BarrierCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref BarrierCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -2,7 +2,7 @@
{ {
struct BeginTransformFeedbackCommand : IGALCommand, IGALCommand<BeginTransformFeedbackCommand> struct BeginTransformFeedbackCommand : IGALCommand, IGALCommand<BeginTransformFeedbackCommand>
{ {
public CommandType CommandType => CommandType.BeginTransformFeedback; public readonly CommandType CommandType => CommandType.BeginTransformFeedback;
private PrimitiveTopology _topology; private PrimitiveTopology _topology;
public void Set(PrimitiveTopology topology) public void Set(PrimitiveTopology topology)

View File

@@ -2,7 +2,7 @@
{ {
struct BufferDisposeCommand : IGALCommand, IGALCommand<BufferDisposeCommand> struct BufferDisposeCommand : IGALCommand, IGALCommand<BufferDisposeCommand>
{ {
public CommandType CommandType => CommandType.BufferDispose; public readonly CommandType CommandType => CommandType.BufferDispose;
private BufferHandle _buffer; private BufferHandle _buffer;
public void Set(BufferHandle buffer) public void Set(BufferHandle buffer)

View File

@@ -1,11 +1,10 @@
using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Model;
using System;
namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Buffer namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Buffer
{ {
struct BufferGetDataCommand : IGALCommand, IGALCommand<BufferGetDataCommand> struct BufferGetDataCommand : IGALCommand, IGALCommand<BufferGetDataCommand>
{ {
public CommandType CommandType => CommandType.BufferGetData; public readonly CommandType CommandType => CommandType.BufferGetData;
private BufferHandle _buffer; private BufferHandle _buffer;
private int _offset; private int _offset;
private int _size; private int _size;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Buffer
{ {
struct BufferSetDataCommand : IGALCommand, IGALCommand<BufferSetDataCommand> struct BufferSetDataCommand : IGALCommand, IGALCommand<BufferSetDataCommand>
{ {
public CommandType CommandType => CommandType.BufferSetData; public readonly CommandType CommandType => CommandType.BufferSetData;
private BufferHandle _buffer; private BufferHandle _buffer;
private int _offset; private int _offset;
private SpanRef<byte> _data; private SpanRef<byte> _data;

View File

@@ -2,7 +2,7 @@
{ {
struct ClearBufferCommand : IGALCommand, IGALCommand<ClearBufferCommand> struct ClearBufferCommand : IGALCommand, IGALCommand<ClearBufferCommand>
{ {
public CommandType CommandType => CommandType.ClearBuffer; public readonly CommandType CommandType => CommandType.ClearBuffer;
private BufferHandle _destination; private BufferHandle _destination;
private int _offset; private int _offset;
private int _size; private int _size;

View File

@@ -2,7 +2,7 @@
{ {
struct ClearRenderTargetColorCommand : IGALCommand, IGALCommand<ClearRenderTargetColorCommand> struct ClearRenderTargetColorCommand : IGALCommand, IGALCommand<ClearRenderTargetColorCommand>
{ {
public CommandType CommandType => CommandType.ClearRenderTargetColor; public readonly CommandType CommandType => CommandType.ClearRenderTargetColor;
private int _index; private int _index;
private int _layer; private int _layer;
private int _layerCount; private int _layerCount;

View File

@@ -2,7 +2,7 @@
{ {
struct ClearRenderTargetDepthStencilCommand : IGALCommand, IGALCommand<ClearRenderTargetDepthStencilCommand> struct ClearRenderTargetDepthStencilCommand : IGALCommand, IGALCommand<ClearRenderTargetDepthStencilCommand>
{ {
public CommandType CommandType => CommandType.ClearRenderTargetDepthStencil; public readonly CommandType CommandType => CommandType.ClearRenderTargetDepthStencil;
private int _layer; private int _layer;
private int _layerCount; private int _layerCount;
private float _depthValue; private float _depthValue;

View File

@@ -2,7 +2,7 @@
{ {
struct CommandBufferBarrierCommand : IGALCommand, IGALCommand<CommandBufferBarrierCommand> struct CommandBufferBarrierCommand : IGALCommand, IGALCommand<CommandBufferBarrierCommand>
{ {
public CommandType CommandType => CommandType.CommandBufferBarrier; public readonly CommandType CommandType => CommandType.CommandBufferBarrier;
public static void Run(ref CommandBufferBarrierCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref CommandBufferBarrierCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -2,7 +2,7 @@
{ {
struct CopyBufferCommand : IGALCommand, IGALCommand<CopyBufferCommand> struct CopyBufferCommand : IGALCommand, IGALCommand<CopyBufferCommand>
{ {
public CommandType CommandType => CommandType.CopyBuffer; public readonly CommandType CommandType => CommandType.CopyBuffer;
private BufferHandle _source; private BufferHandle _source;
private BufferHandle _destination; private BufferHandle _destination;
private int _srcOffset; private int _srcOffset;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.CounterEvent
{ {
struct CounterEventDisposeCommand : IGALCommand, IGALCommand<CounterEventDisposeCommand> struct CounterEventDisposeCommand : IGALCommand, IGALCommand<CounterEventDisposeCommand>
{ {
public CommandType CommandType => CommandType.CounterEventDispose; public readonly CommandType CommandType => CommandType.CounterEventDispose;
private TableRef<ThreadedCounterEvent> _event; private TableRef<ThreadedCounterEvent> _event;
public void Set(TableRef<ThreadedCounterEvent> evt) public void Set(TableRef<ThreadedCounterEvent> evt)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.CounterEvent
{ {
struct CounterEventFlushCommand : IGALCommand, IGALCommand<CounterEventFlushCommand> struct CounterEventFlushCommand : IGALCommand, IGALCommand<CounterEventFlushCommand>
{ {
public CommandType CommandType => CommandType.CounterEventFlush; public readonly CommandType CommandType => CommandType.CounterEventFlush;
private TableRef<ThreadedCounterEvent> _event; private TableRef<ThreadedCounterEvent> _event;
public void Set(TableRef<ThreadedCounterEvent> evt) public void Set(TableRef<ThreadedCounterEvent> evt)

View File

@@ -2,7 +2,7 @@
{ {
struct DispatchComputeCommand : IGALCommand, IGALCommand<DispatchComputeCommand> struct DispatchComputeCommand : IGALCommand, IGALCommand<DispatchComputeCommand>
{ {
public CommandType CommandType => CommandType.DispatchCompute; public readonly CommandType CommandType => CommandType.DispatchCompute;
private int _groupsX; private int _groupsX;
private int _groupsY; private int _groupsY;
private int _groupsZ; private int _groupsZ;

View File

@@ -2,7 +2,7 @@
{ {
struct DrawIndexedCommand : IGALCommand, IGALCommand<DrawIndexedCommand> struct DrawIndexedCommand : IGALCommand, IGALCommand<DrawIndexedCommand>
{ {
public CommandType CommandType => CommandType.DrawIndexed; public readonly CommandType CommandType => CommandType.DrawIndexed;
private int _indexCount; private int _indexCount;
private int _instanceCount; private int _instanceCount;
private int _firstIndex; private int _firstIndex;

View File

@@ -2,7 +2,7 @@
{ {
struct DrawCommand : IGALCommand, IGALCommand<DrawCommand> struct DrawCommand : IGALCommand, IGALCommand<DrawCommand>
{ {
public CommandType CommandType => CommandType.Draw; public readonly CommandType CommandType => CommandType.Draw;
private int _vertexCount; private int _vertexCount;
private int _instanceCount; private int _instanceCount;
private int _firstVertex; private int _firstVertex;

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct DrawIndexedIndirectCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCommand> struct DrawIndexedIndirectCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCommand>
{ {
public CommandType CommandType => CommandType.DrawIndexedIndirect; public readonly CommandType CommandType => CommandType.DrawIndexedIndirect;
private BufferRange _indirectBuffer; private BufferRange _indirectBuffer;
public void Set(BufferRange indirectBuffer) public void Set(BufferRange indirectBuffer)

View File

@@ -2,7 +2,7 @@
{ {
struct DrawIndexedIndirectCountCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCountCommand> struct DrawIndexedIndirectCountCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCountCommand>
{ {
public CommandType CommandType => CommandType.DrawIndexedIndirectCount; public readonly CommandType CommandType => CommandType.DrawIndexedIndirectCount;
private BufferRange _indirectBuffer; private BufferRange _indirectBuffer;
private BufferRange _parameterBuffer; private BufferRange _parameterBuffer;
private int _maxDrawCount; private int _maxDrawCount;

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct DrawIndirectCommand : IGALCommand, IGALCommand<DrawIndirectCommand> struct DrawIndirectCommand : IGALCommand, IGALCommand<DrawIndirectCommand>
{ {
public CommandType CommandType => CommandType.DrawIndirect; public readonly CommandType CommandType => CommandType.DrawIndirect;
private BufferRange _indirectBuffer; private BufferRange _indirectBuffer;
public void Set(BufferRange indirectBuffer) public void Set(BufferRange indirectBuffer)

View File

@@ -2,7 +2,7 @@
{ {
struct DrawIndirectCountCommand : IGALCommand, IGALCommand<DrawIndirectCountCommand> struct DrawIndirectCountCommand : IGALCommand, IGALCommand<DrawIndirectCountCommand>
{ {
public CommandType CommandType => CommandType.DrawIndirectCount; public readonly CommandType CommandType => CommandType.DrawIndirectCount;
private BufferRange _indirectBuffer; private BufferRange _indirectBuffer;
private BufferRange _parameterBuffer; private BufferRange _parameterBuffer;
private int _maxDrawCount; private int _maxDrawCount;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct DrawTextureCommand : IGALCommand, IGALCommand<DrawTextureCommand> struct DrawTextureCommand : IGALCommand, IGALCommand<DrawTextureCommand>
{ {
public CommandType CommandType => CommandType.DrawTexture; public readonly CommandType CommandType => CommandType.DrawTexture;
private TableRef<ITexture> _texture; private TableRef<ITexture> _texture;
private TableRef<ISampler> _sampler; private TableRef<ISampler> _sampler;
private Extents2DF _srcRegion; private Extents2DF _srcRegion;

View File

@@ -2,7 +2,7 @@
{ {
struct EndHostConditionalRenderingCommand : IGALCommand, IGALCommand<EndHostConditionalRenderingCommand> struct EndHostConditionalRenderingCommand : IGALCommand, IGALCommand<EndHostConditionalRenderingCommand>
{ {
public CommandType CommandType => CommandType.EndHostConditionalRendering; public readonly CommandType CommandType => CommandType.EndHostConditionalRendering;
public static void Run(ref EndHostConditionalRenderingCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref EndHostConditionalRenderingCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -2,7 +2,7 @@
{ {
struct EndTransformFeedbackCommand : IGALCommand, IGALCommand<EndTransformFeedbackCommand> struct EndTransformFeedbackCommand : IGALCommand, IGALCommand<EndTransformFeedbackCommand>
{ {
public CommandType CommandType => CommandType.EndTransformFeedback; public readonly CommandType CommandType => CommandType.EndTransformFeedback;
public static void Run(ref EndTransformFeedbackCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref EndTransformFeedbackCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
{ {
struct ProgramCheckLinkCommand : IGALCommand, IGALCommand<ProgramCheckLinkCommand> struct ProgramCheckLinkCommand : IGALCommand, IGALCommand<ProgramCheckLinkCommand>
{ {
public CommandType CommandType => CommandType.ProgramCheckLink; public readonly CommandType CommandType => CommandType.ProgramCheckLink;
private TableRef<ThreadedProgram> _program; private TableRef<ThreadedProgram> _program;
private bool _blocking; private bool _blocking;
private TableRef<ResultBox<ProgramLinkStatus>> _result; private TableRef<ResultBox<ProgramLinkStatus>> _result;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
{ {
struct ProgramDisposeCommand : IGALCommand, IGALCommand<ProgramDisposeCommand> struct ProgramDisposeCommand : IGALCommand, IGALCommand<ProgramDisposeCommand>
{ {
public CommandType CommandType => CommandType.ProgramDispose; public readonly CommandType CommandType => CommandType.ProgramDispose;
private TableRef<ThreadedProgram> _program; private TableRef<ThreadedProgram> _program;
public void Set(TableRef<ThreadedProgram> program) public void Set(TableRef<ThreadedProgram> program)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
{ {
struct ProgramGetBinaryCommand : IGALCommand, IGALCommand<ProgramGetBinaryCommand> struct ProgramGetBinaryCommand : IGALCommand, IGALCommand<ProgramGetBinaryCommand>
{ {
public CommandType CommandType => CommandType.ProgramGetBinary; public readonly CommandType CommandType => CommandType.ProgramGetBinary;
private TableRef<ThreadedProgram> _program; private TableRef<ThreadedProgram> _program;
private TableRef<ResultBox<byte[]>> _result; private TableRef<ResultBox<byte[]>> _result;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct ActionCommand : IGALCommand, IGALCommand<ActionCommand> struct ActionCommand : IGALCommand, IGALCommand<ActionCommand>
{ {
public CommandType CommandType => CommandType.Action; public readonly CommandType CommandType => CommandType.Action;
private TableRef<Action> _action; private TableRef<Action> _action;
public void Set(TableRef<Action> action) public void Set(TableRef<Action> action)

View File

@@ -2,7 +2,7 @@
{ {
struct CreateBufferAccessCommand : IGALCommand, IGALCommand<CreateBufferAccessCommand> struct CreateBufferAccessCommand : IGALCommand, IGALCommand<CreateBufferAccessCommand>
{ {
public CommandType CommandType => CommandType.CreateBufferAccess; public readonly CommandType CommandType => CommandType.CreateBufferAccess;
private BufferHandle _threadedHandle; private BufferHandle _threadedHandle;
private int _size; private int _size;
private BufferAccess _access; private BufferAccess _access;

View File

@@ -2,7 +2,7 @@
{ {
struct CreateBufferCommand : IGALCommand, IGALCommand<CreateBufferCommand> struct CreateBufferCommand : IGALCommand, IGALCommand<CreateBufferCommand>
{ {
public CommandType CommandType => CommandType.CreateBuffer; public readonly CommandType CommandType => CommandType.CreateBuffer;
private BufferHandle _threadedHandle; private BufferHandle _threadedHandle;
private int _size; private int _size;
private BufferHandle _storageHint; private BufferHandle _storageHint;

View File

@@ -2,7 +2,7 @@
{ {
struct CreateHostBufferCommand : IGALCommand, IGALCommand<CreateHostBufferCommand> struct CreateHostBufferCommand : IGALCommand, IGALCommand<CreateHostBufferCommand>
{ {
public CommandType CommandType => CommandType.CreateHostBuffer; public readonly CommandType CommandType => CommandType.CreateHostBuffer;
private BufferHandle _threadedHandle; private BufferHandle _threadedHandle;
private nint _pointer; private nint _pointer;
private int _size; private int _size;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct CreateProgramCommand : IGALCommand, IGALCommand<CreateProgramCommand> struct CreateProgramCommand : IGALCommand, IGALCommand<CreateProgramCommand>
{ {
public CommandType CommandType => CommandType.CreateProgram; public readonly CommandType CommandType => CommandType.CreateProgram;
private TableRef<IProgramRequest> _request; private TableRef<IProgramRequest> _request;
public void Set(TableRef<IProgramRequest> request) public void Set(TableRef<IProgramRequest> request)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct CreateSamplerCommand : IGALCommand, IGALCommand<CreateSamplerCommand> struct CreateSamplerCommand : IGALCommand, IGALCommand<CreateSamplerCommand>
{ {
public CommandType CommandType => CommandType.CreateSampler; public readonly CommandType CommandType => CommandType.CreateSampler;
private TableRef<ThreadedSampler> _sampler; private TableRef<ThreadedSampler> _sampler;
private SamplerCreateInfo _info; private SamplerCreateInfo _info;

View File

@@ -2,7 +2,7 @@
{ {
struct CreateSyncCommand : IGALCommand, IGALCommand<CreateSyncCommand> struct CreateSyncCommand : IGALCommand, IGALCommand<CreateSyncCommand>
{ {
public CommandType CommandType => CommandType.CreateSync; public readonly CommandType CommandType => CommandType.CreateSync;
private ulong _id; private ulong _id;
private bool _strict; private bool _strict;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct CreateTextureCommand : IGALCommand, IGALCommand<CreateTextureCommand> struct CreateTextureCommand : IGALCommand, IGALCommand<CreateTextureCommand>
{ {
public CommandType CommandType => CommandType.CreateTexture; public readonly CommandType CommandType => CommandType.CreateTexture;
private TableRef<ThreadedTexture> _texture; private TableRef<ThreadedTexture> _texture;
private TextureCreateInfo _info; private TextureCreateInfo _info;
private float _scale; private float _scale;

View File

@@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct GetCapabilitiesCommand : IGALCommand, IGALCommand<GetCapabilitiesCommand> struct GetCapabilitiesCommand : IGALCommand, IGALCommand<GetCapabilitiesCommand>
{ {
public CommandType CommandType => CommandType.GetCapabilities; public readonly CommandType CommandType => CommandType.GetCapabilities;
private TableRef<ResultBox<Capabilities>> _result; private TableRef<ResultBox<Capabilities>> _result;
public void Set(TableRef<ResultBox<Capabilities>> result) public void Set(TableRef<ResultBox<Capabilities>> result)

View File

@@ -2,7 +2,7 @@
{ {
struct PreFrameCommand : IGALCommand, IGALCommand<PreFrameCommand> struct PreFrameCommand : IGALCommand, IGALCommand<PreFrameCommand>
{ {
public CommandType CommandType => CommandType.PreFrame; public readonly CommandType CommandType => CommandType.PreFrame;
public static void Run(ref PreFrameCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref PreFrameCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{ {
struct ReportCounterCommand : IGALCommand, IGALCommand<ReportCounterCommand> struct ReportCounterCommand : IGALCommand, IGALCommand<ReportCounterCommand>
{ {
public CommandType CommandType => CommandType.ReportCounter; public readonly CommandType CommandType => CommandType.ReportCounter;
private TableRef<ThreadedCounterEvent> _event; private TableRef<ThreadedCounterEvent> _event;
private CounterType _type; private CounterType _type;
private TableRef<EventHandler<ulong>> _resultHandler; private TableRef<EventHandler<ulong>> _resultHandler;

View File

@@ -2,7 +2,7 @@
{ {
struct ResetCounterCommand : IGALCommand, IGALCommand<ResetCounterCommand> struct ResetCounterCommand : IGALCommand, IGALCommand<ResetCounterCommand>
{ {
public CommandType CommandType => CommandType.ResetCounter; public readonly CommandType CommandType => CommandType.ResetCounter;
private CounterType _type; private CounterType _type;
public void Set(CounterType type) public void Set(CounterType type)

View File

@@ -2,7 +2,7 @@
{ {
struct UpdateCountersCommand : IGALCommand, IGALCommand<UpdateCountersCommand> struct UpdateCountersCommand : IGALCommand, IGALCommand<UpdateCountersCommand>
{ {
public CommandType CommandType => CommandType.UpdateCounters; public readonly CommandType CommandType => CommandType.UpdateCounters;
public static void Run(ref UpdateCountersCommand command, ThreadedRenderer threaded, IRenderer renderer) public static void Run(ref UpdateCountersCommand command, ThreadedRenderer threaded, IRenderer renderer)
{ {

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Sampler
{ {
struct SamplerDisposeCommand : IGALCommand, IGALCommand<SamplerDisposeCommand> struct SamplerDisposeCommand : IGALCommand, IGALCommand<SamplerDisposeCommand>
{ {
public CommandType CommandType => CommandType.SamplerDispose; public readonly CommandType CommandType => CommandType.SamplerDispose;
private TableRef<ThreadedSampler> _sampler; private TableRef<ThreadedSampler> _sampler;
public void Set(TableRef<ThreadedSampler> sampler) public void Set(TableRef<ThreadedSampler> sampler)

View File

@@ -2,7 +2,7 @@
{ {
struct SetAlphaTestCommand : IGALCommand, IGALCommand<SetAlphaTestCommand> struct SetAlphaTestCommand : IGALCommand, IGALCommand<SetAlphaTestCommand>
{ {
public CommandType CommandType => CommandType.SetAlphaTest; public readonly CommandType CommandType => CommandType.SetAlphaTest;
private bool _enable; private bool _enable;
private float _reference; private float _reference;
private CompareOp _op; private CompareOp _op;

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetBlendStateAdvancedCommand : IGALCommand, IGALCommand<SetBlendStateAdvancedCommand> struct SetBlendStateAdvancedCommand : IGALCommand, IGALCommand<SetBlendStateAdvancedCommand>
{ {
public CommandType CommandType => CommandType.SetBlendStateAdvanced; public readonly CommandType CommandType => CommandType.SetBlendStateAdvanced;
private AdvancedBlendDescriptor _blend; private AdvancedBlendDescriptor _blend;
public void Set(AdvancedBlendDescriptor blend) public void Set(AdvancedBlendDescriptor blend)

View File

@@ -2,7 +2,7 @@
{ {
struct SetBlendStateCommand : IGALCommand, IGALCommand<SetBlendStateCommand> struct SetBlendStateCommand : IGALCommand, IGALCommand<SetBlendStateCommand>
{ {
public CommandType CommandType => CommandType.SetBlendState; public readonly CommandType CommandType => CommandType.SetBlendState;
private int _index; private int _index;
private BlendDescriptor _blend; private BlendDescriptor _blend;

View File

@@ -2,7 +2,7 @@
{ {
struct SetDepthBiasCommand : IGALCommand, IGALCommand<SetDepthBiasCommand> struct SetDepthBiasCommand : IGALCommand, IGALCommand<SetDepthBiasCommand>
{ {
public CommandType CommandType => CommandType.SetDepthBias; public readonly CommandType CommandType => CommandType.SetDepthBias;
private PolygonModeMask _enables; private PolygonModeMask _enables;
private float _factor; private float _factor;
private float _units; private float _units;

View File

@@ -2,7 +2,7 @@
{ {
struct SetDepthClampCommand : IGALCommand, IGALCommand<SetDepthClampCommand> struct SetDepthClampCommand : IGALCommand, IGALCommand<SetDepthClampCommand>
{ {
public CommandType CommandType => CommandType.SetDepthClamp; public readonly CommandType CommandType => CommandType.SetDepthClamp;
private bool _clamp; private bool _clamp;
public void Set(bool clamp) public void Set(bool clamp)

View File

@@ -2,7 +2,7 @@
{ {
struct SetDepthModeCommand : IGALCommand, IGALCommand<SetDepthModeCommand> struct SetDepthModeCommand : IGALCommand, IGALCommand<SetDepthModeCommand>
{ {
public CommandType CommandType => CommandType.SetDepthMode; public readonly CommandType CommandType => CommandType.SetDepthMode;
private DepthMode _mode; private DepthMode _mode;
public void Set(DepthMode mode) public void Set(DepthMode mode)

View File

@@ -2,7 +2,7 @@
{ {
struct SetDepthTestCommand : IGALCommand, IGALCommand<SetDepthTestCommand> struct SetDepthTestCommand : IGALCommand, IGALCommand<SetDepthTestCommand>
{ {
public CommandType CommandType => CommandType.SetDepthTest; public readonly CommandType CommandType => CommandType.SetDepthTest;
private DepthTestDescriptor _depthTest; private DepthTestDescriptor _depthTest;
public void Set(DepthTestDescriptor depthTest) public void Set(DepthTestDescriptor depthTest)

View File

@@ -2,7 +2,7 @@
{ {
struct SetFaceCullingCommand : IGALCommand, IGALCommand<SetFaceCullingCommand> struct SetFaceCullingCommand : IGALCommand, IGALCommand<SetFaceCullingCommand>
{ {
public CommandType CommandType => CommandType.SetFaceCulling; public readonly CommandType CommandType => CommandType.SetFaceCulling;
private bool _enable; private bool _enable;
private Face _face; private Face _face;

View File

@@ -2,7 +2,7 @@
{ {
struct SetFrontFaceCommand : IGALCommand, IGALCommand<SetFrontFaceCommand> struct SetFrontFaceCommand : IGALCommand, IGALCommand<SetFrontFaceCommand>
{ {
public CommandType CommandType => CommandType.SetFrontFace; public readonly CommandType CommandType => CommandType.SetFrontFace;
private FrontFace _frontFace; private FrontFace _frontFace;
public void Set(FrontFace frontFace) public void Set(FrontFace frontFace)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetImageCommand : IGALCommand, IGALCommand<SetImageCommand> struct SetImageCommand : IGALCommand, IGALCommand<SetImageCommand>
{ {
public CommandType CommandType => CommandType.SetImage; public readonly CommandType CommandType => CommandType.SetImage;
private int _binding; private int _binding;
private TableRef<ITexture> _texture; private TableRef<ITexture> _texture;
private Format _imageFormat; private Format _imageFormat;

View File

@@ -2,7 +2,7 @@
{ {
struct SetIndexBufferCommand : IGALCommand, IGALCommand<SetIndexBufferCommand> struct SetIndexBufferCommand : IGALCommand, IGALCommand<SetIndexBufferCommand>
{ {
public CommandType CommandType => CommandType.SetIndexBuffer; public readonly CommandType CommandType => CommandType.SetIndexBuffer;
private BufferRange _buffer; private BufferRange _buffer;
private IndexType _type; private IndexType _type;

View File

@@ -2,7 +2,7 @@
{ {
struct SetLineParametersCommand : IGALCommand, IGALCommand<SetLineParametersCommand> struct SetLineParametersCommand : IGALCommand, IGALCommand<SetLineParametersCommand>
{ {
public CommandType CommandType => CommandType.SetLineParameters; public readonly CommandType CommandType => CommandType.SetLineParameters;
private float _width; private float _width;
private bool _smooth; private bool _smooth;

View File

@@ -2,7 +2,7 @@
{ {
struct SetLogicOpStateCommand : IGALCommand, IGALCommand<SetLogicOpStateCommand> struct SetLogicOpStateCommand : IGALCommand, IGALCommand<SetLogicOpStateCommand>
{ {
public CommandType CommandType => CommandType.SetLogicOpState; public readonly CommandType CommandType => CommandType.SetLogicOpState;
private bool _enable; private bool _enable;
private LogicalOp _op; private LogicalOp _op;

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetMultisampleStateCommand : IGALCommand, IGALCommand<SetMultisampleStateCommand> struct SetMultisampleStateCommand : IGALCommand, IGALCommand<SetMultisampleStateCommand>
{ {
public CommandType CommandType => CommandType.SetMultisampleState; public readonly CommandType CommandType => CommandType.SetMultisampleState;
private MultisampleDescriptor _multisample; private MultisampleDescriptor _multisample;
public void Set(MultisampleDescriptor multisample) public void Set(MultisampleDescriptor multisample)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetPatchParametersCommand : IGALCommand, IGALCommand<SetPatchParametersCommand> struct SetPatchParametersCommand : IGALCommand, IGALCommand<SetPatchParametersCommand>
{ {
public CommandType CommandType => CommandType.SetPatchParameters; public readonly CommandType CommandType => CommandType.SetPatchParameters;
private int _vertices; private int _vertices;
private Array4<float> _defaultOuterLevel; private Array4<float> _defaultOuterLevel;
private Array2<float> _defaultInnerLevel; private Array2<float> _defaultInnerLevel;

View File

@@ -2,7 +2,7 @@
{ {
struct SetPointParametersCommand : IGALCommand, IGALCommand<SetPointParametersCommand> struct SetPointParametersCommand : IGALCommand, IGALCommand<SetPointParametersCommand>
{ {
public CommandType CommandType => CommandType.SetPointParameters; public readonly CommandType CommandType => CommandType.SetPointParameters;
private float _size; private float _size;
private bool _isProgramPointSize; private bool _isProgramPointSize;
private bool _enablePointSprite; private bool _enablePointSprite;

View File

@@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetPolygonModeCommand : IGALCommand, IGALCommand<SetPolygonModeCommand> struct SetPolygonModeCommand : IGALCommand, IGALCommand<SetPolygonModeCommand>
{ {
public CommandType CommandType => CommandType.SetPolygonMode; public readonly CommandType CommandType => CommandType.SetPolygonMode;
private PolygonMode _frontMode; private PolygonMode _frontMode;
private PolygonMode _backMode; private PolygonMode _backMode;

View File

@@ -2,7 +2,7 @@
{ {
struct SetPrimitiveRestartCommand : IGALCommand, IGALCommand<SetPrimitiveRestartCommand> struct SetPrimitiveRestartCommand : IGALCommand, IGALCommand<SetPrimitiveRestartCommand>
{ {
public CommandType CommandType => CommandType.SetPrimitiveRestart; public readonly CommandType CommandType => CommandType.SetPrimitiveRestart;
private bool _enable; private bool _enable;
private int _index; private int _index;

View File

@@ -2,7 +2,7 @@
{ {
struct SetPrimitiveTopologyCommand : IGALCommand, IGALCommand<SetPrimitiveTopologyCommand> struct SetPrimitiveTopologyCommand : IGALCommand, IGALCommand<SetPrimitiveTopologyCommand>
{ {
public CommandType CommandType => CommandType.SetPrimitiveTopology; public readonly CommandType CommandType => CommandType.SetPrimitiveTopology;
private PrimitiveTopology _topology; private PrimitiveTopology _topology;
public void Set(PrimitiveTopology topology) public void Set(PrimitiveTopology topology)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetProgramCommand : IGALCommand, IGALCommand<SetProgramCommand> struct SetProgramCommand : IGALCommand, IGALCommand<SetProgramCommand>
{ {
public CommandType CommandType => CommandType.SetProgram; public readonly CommandType CommandType => CommandType.SetProgram;
private TableRef<IProgram> _program; private TableRef<IProgram> _program;
public void Set(TableRef<IProgram> program) public void Set(TableRef<IProgram> program)

View File

@@ -2,7 +2,7 @@
{ {
struct SetRasterizerDiscardCommand : IGALCommand, IGALCommand<SetRasterizerDiscardCommand> struct SetRasterizerDiscardCommand : IGALCommand, IGALCommand<SetRasterizerDiscardCommand>
{ {
public CommandType CommandType => CommandType.SetRasterizerDiscard; public readonly CommandType CommandType => CommandType.SetRasterizerDiscard;
private bool _discard; private bool _discard;
public void Set(bool discard) public void Set(bool discard)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetRenderTargetColorMasksCommand : IGALCommand, IGALCommand<SetRenderTargetColorMasksCommand> struct SetRenderTargetColorMasksCommand : IGALCommand, IGALCommand<SetRenderTargetColorMasksCommand>
{ {
public CommandType CommandType => CommandType.SetRenderTargetColorMasks; public readonly CommandType CommandType => CommandType.SetRenderTargetColorMasks;
private SpanRef<uint> _componentMask; private SpanRef<uint> _componentMask;
public void Set(SpanRef<uint> componentMask) public void Set(SpanRef<uint> componentMask)

View File

@@ -2,7 +2,7 @@
{ {
struct SetRenderTargetScaleCommand : IGALCommand, IGALCommand<SetRenderTargetScaleCommand> struct SetRenderTargetScaleCommand : IGALCommand, IGALCommand<SetRenderTargetScaleCommand>
{ {
public CommandType CommandType => CommandType.SetRenderTargetScale; public readonly CommandType CommandType => CommandType.SetRenderTargetScale;
private float _scale; private float _scale;
public void Set(float scale) public void Set(float scale)

View File

@@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetRenderTargetsCommand : IGALCommand, IGALCommand<SetRenderTargetsCommand> struct SetRenderTargetsCommand : IGALCommand, IGALCommand<SetRenderTargetsCommand>
{ {
public CommandType CommandType => CommandType.SetRenderTargets; public readonly CommandType CommandType => CommandType.SetRenderTargets;
private TableRef<ITexture[]> _colors; private TableRef<ITexture[]> _colors;
private TableRef<ITexture> _depthStencil; private TableRef<ITexture> _depthStencil;

View File

@@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetScissorsCommand : IGALCommand, IGALCommand<SetScissorsCommand> struct SetScissorsCommand : IGALCommand, IGALCommand<SetScissorsCommand>
{ {
public CommandType CommandType => CommandType.SetScissor; public readonly CommandType CommandType => CommandType.SetScissor;
private SpanRef<Rectangle<int>> _scissors; private SpanRef<Rectangle<int>> _scissors;
public void Set(SpanRef<Rectangle<int>> scissors) public void Set(SpanRef<Rectangle<int>> scissors)

View File

@@ -2,7 +2,7 @@
{ {
struct SetStencilTestCommand : IGALCommand, IGALCommand<SetStencilTestCommand> struct SetStencilTestCommand : IGALCommand, IGALCommand<SetStencilTestCommand>
{ {
public CommandType CommandType => CommandType.SetStencilTest; public readonly CommandType CommandType => CommandType.SetStencilTest;
private StencilTestDescriptor _stencilTest; private StencilTestDescriptor _stencilTest;
public void Set(StencilTestDescriptor stencilTest) public void Set(StencilTestDescriptor stencilTest)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetStorageBuffersCommand : IGALCommand, IGALCommand<SetStorageBuffersCommand> struct SetStorageBuffersCommand : IGALCommand, IGALCommand<SetStorageBuffersCommand>
{ {
public CommandType CommandType => CommandType.SetStorageBuffers; public readonly CommandType CommandType => CommandType.SetStorageBuffers;
private SpanRef<BufferAssignment> _buffers; private SpanRef<BufferAssignment> _buffers;
public void Set(SpanRef<BufferAssignment> buffers) public void Set(SpanRef<BufferAssignment> buffers)

View File

@@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetTextureAndSamplerCommand : IGALCommand, IGALCommand<SetTextureAndSamplerCommand> struct SetTextureAndSamplerCommand : IGALCommand, IGALCommand<SetTextureAndSamplerCommand>
{ {
public CommandType CommandType => CommandType.SetTextureAndSampler; public readonly CommandType CommandType => CommandType.SetTextureAndSampler;
private ShaderStage _stage; private ShaderStage _stage;
private int _binding; private int _binding;
private TableRef<ITexture> _texture; private TableRef<ITexture> _texture;

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetTransformFeedbackBuffersCommand : IGALCommand, IGALCommand<SetTransformFeedbackBuffersCommand> struct SetTransformFeedbackBuffersCommand : IGALCommand, IGALCommand<SetTransformFeedbackBuffersCommand>
{ {
public CommandType CommandType => CommandType.SetTransformFeedbackBuffers; public readonly CommandType CommandType => CommandType.SetTransformFeedbackBuffers;
private SpanRef<BufferRange> _buffers; private SpanRef<BufferRange> _buffers;
public void Set(SpanRef<BufferRange> buffers) public void Set(SpanRef<BufferRange> buffers)

View File

@@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{ {
struct SetUniformBuffersCommand : IGALCommand, IGALCommand<SetUniformBuffersCommand> struct SetUniformBuffersCommand : IGALCommand, IGALCommand<SetUniformBuffersCommand>
{ {
public CommandType CommandType => CommandType.SetUniformBuffers; public readonly CommandType CommandType => CommandType.SetUniformBuffers;
private SpanRef<BufferAssignment> _buffers; private SpanRef<BufferAssignment> _buffers;
public void Set(SpanRef<BufferAssignment> buffers) public void Set(SpanRef<BufferAssignment> buffers)

Some files were not shown because too many files have changed in this diff Show More