mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-06-29 01:40:47 -07:00
[Ryujinx.HLE] Address dotnet-format issues (#5380)
* 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 IDE0060 warnings * Silence dotnet format IDE0052 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA2208 warnings * Address or silence dotnet format CA1806 and a few CA1854 warnings * Address dotnet format CA2211 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Make dotnet format succeed in style mode * Address or silence dotnet format CA2211 warnings * Address review comments * Address dotnet format CA2208 warnings properly * Make ProcessResult readonly * 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 * Add previously silenced warnings back I have no clue how these disappeared * Revert formatting changes for while and for-loops * Format if-blocks correctly * Run dotnet format style after rebase * 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 * Fix a few disabled warnings * Fix naming rule violation, Convert shader properties to auto-property and convert values to const * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Run dotnet format after rebase * Use using declaration instead of block syntax * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * 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 * Fix naming rule violations * Fix typo * Add trailing commas, use targeted new and use array initializer * Fix build issues * Fix remaining build issues * Remove SuppressMessage for CA1069 where possible * Address dotnet format issues * Address formatting issues Co-authored-by: Ac_K <acoustik666@gmail.com> * Add GetHashCode implementation for RenderingSurfaceInfo * Explicitly silence CA1822 for every affected method in Syscall * Address formatting issues in Demangler.cs * Address review feedback Co-authored-by: Ac_K <acoustik666@gmail.com> * Revert marking service methods as static * Next dotnet format pass * Address review feedback --------- Co-authored-by: Ac_K <acoustik666@gmail.com>
This commit is contained in:
@ -3,7 +3,6 @@ using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Common.Memory;
|
||||
using Ryujinx.HLE.HOS.Applets;
|
||||
using Ryujinx.HLE.HOS.Ipc;
|
||||
using Ryujinx.HLE.HOS.Kernel.Common;
|
||||
using Ryujinx.HLE.HOS.Services.SurfaceFlinger;
|
||||
using Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService;
|
||||
using Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService.Types;
|
||||
@ -27,27 +26,27 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
public int RetrievedEventsCount;
|
||||
}
|
||||
|
||||
private readonly List<DisplayInfo> _displayInfo;
|
||||
private readonly List<DisplayInfo> _displayInfo;
|
||||
private readonly Dictionary<ulong, DisplayState> _openDisplays;
|
||||
|
||||
private int _vsyncEventHandle;
|
||||
|
||||
public IApplicationDisplayService(ViServiceType serviceType)
|
||||
{
|
||||
_serviceType = serviceType;
|
||||
_displayInfo = new List<DisplayInfo>();
|
||||
_serviceType = serviceType;
|
||||
_displayInfo = new List<DisplayInfo>();
|
||||
_openDisplays = new Dictionary<ulong, DisplayState>();
|
||||
|
||||
void AddDisplayInfo(string name, bool layerLimitEnabled, ulong layerLimitMax, ulong width, ulong height)
|
||||
{
|
||||
DisplayInfo displayInfo = new DisplayInfo()
|
||||
DisplayInfo displayInfo = new()
|
||||
{
|
||||
Name = new Array64<byte>(),
|
||||
Name = new Array64<byte>(),
|
||||
LayerLimitEnabled = layerLimitEnabled,
|
||||
Padding = new Array7<byte>(),
|
||||
LayerLimitMax = layerLimitMax,
|
||||
Width = width,
|
||||
Height = height
|
||||
Padding = new Array7<byte>(),
|
||||
LayerLimitMax = layerLimitMax,
|
||||
Width = width,
|
||||
Height = height,
|
||||
};
|
||||
|
||||
Encoding.ASCII.GetBytes(name).AsSpan().CopyTo(displayInfo.Name.AsSpan());
|
||||
@ -55,11 +54,11 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
_displayInfo.Add(displayInfo);
|
||||
}
|
||||
|
||||
AddDisplayInfo("Default", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("External", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("Edid", true, 1, 0, 0);
|
||||
AddDisplayInfo("Internal", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("Null", false, 0, 1920, 1080);
|
||||
AddDisplayInfo("Default", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("External", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("Edid", true, 1, 0, 0);
|
||||
AddDisplayInfo("Internal", true, 1, 1920, 1080);
|
||||
AddDisplayInfo("Null", false, 0, 1920, 1080);
|
||||
}
|
||||
|
||||
[CommandCmif(100)]
|
||||
@ -232,10 +231,14 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
public ResultCode OpenLayer(ServiceCtx context)
|
||||
{
|
||||
// TODO: support multi display.
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
byte[] displayName = context.RequestData.ReadBytes(0x40);
|
||||
#pragma warning restore IDE0059
|
||||
|
||||
long layerId = context.RequestData.ReadInt64();
|
||||
long userId = context.RequestData.ReadInt64();
|
||||
long layerId = context.RequestData.ReadInt64();
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
long userId = context.RequestData.ReadInt64();
|
||||
#pragma warning restore IDE0059
|
||||
ulong parcelPtr = context.Request.ReceiveBuff[0].Position;
|
||||
|
||||
ResultCode result = context.Device.System.SurfaceFlinger.OpenLayer(context.Request.HandleDesc.PId, layerId, out IBinder producer);
|
||||
@ -247,7 +250,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
|
||||
context.Device.System.SurfaceFlinger.SetRenderLayer(layerId);
|
||||
|
||||
Parcel parcel = new Parcel(0x28, 0x4);
|
||||
Parcel parcel = new(0x28, 0x4);
|
||||
|
||||
parcel.WriteObject(producer, "dispdrv\0");
|
||||
|
||||
@ -273,8 +276,10 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
// CreateStrayLayer(u32, u64) -> (u64, u64, buffer<bytes, 6>)
|
||||
public ResultCode CreateStrayLayer(ServiceCtx context)
|
||||
{
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
long layerFlags = context.RequestData.ReadInt64();
|
||||
long displayId = context.RequestData.ReadInt64();
|
||||
long displayId = context.RequestData.ReadInt64();
|
||||
#pragma warning restore IDE0059
|
||||
|
||||
ulong parcelPtr = context.Request.ReceiveBuff[0].Position;
|
||||
|
||||
@ -283,7 +288,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
|
||||
context.Device.System.SurfaceFlinger.SetRenderLayer(layerId);
|
||||
|
||||
Parcel parcel = new Parcel(0x28, 0x4);
|
||||
Parcel parcel = new(0x28, 0x4);
|
||||
|
||||
parcel.WriteObject(producer, "dispdrv\0");
|
||||
|
||||
@ -327,10 +332,10 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
|
||||
DestinationScalingMode? convertedScalingMode = scalingMode switch
|
||||
{
|
||||
SourceScalingMode.None => DestinationScalingMode.None,
|
||||
SourceScalingMode.Freeze => DestinationScalingMode.Freeze,
|
||||
SourceScalingMode.ScaleAndCrop => DestinationScalingMode.ScaleAndCrop,
|
||||
SourceScalingMode.ScaleToWindow => DestinationScalingMode.ScaleToWindow,
|
||||
SourceScalingMode.None => DestinationScalingMode.None,
|
||||
SourceScalingMode.Freeze => DestinationScalingMode.Freeze,
|
||||
SourceScalingMode.ScaleAndCrop => DestinationScalingMode.ScaleAndCrop,
|
||||
SourceScalingMode.ScaleToWindow => DestinationScalingMode.ScaleToWindow,
|
||||
SourceScalingMode.PreserveAspectRatio => DestinationScalingMode.PreserveAspectRatio,
|
||||
_ => null,
|
||||
};
|
||||
@ -354,13 +359,13 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
|
||||
private ulong GetA8B8G8R8LayerSize(int width, int height, out int pitch, out int alignment)
|
||||
{
|
||||
const int DefaultAlignment = 0x1000;
|
||||
const ulong DefaultSize = 0x20000;
|
||||
const int DefaultAlignment = 0x1000;
|
||||
const ulong DefaultSize = 0x20000;
|
||||
|
||||
alignment = DefaultAlignment;
|
||||
pitch = BitUtils.AlignUp(BitUtils.DivRoundUp(width * 32, 8), 64);
|
||||
pitch = BitUtils.AlignUp(BitUtils.DivRoundUp(width * 32, 8), 64);
|
||||
|
||||
int memorySize = pitch * BitUtils.AlignUp(height, 64);
|
||||
int memorySize = pitch * BitUtils.AlignUp(height, 64);
|
||||
ulong requiredMemorySize = (ulong)BitUtils.AlignUp(memorySize, alignment);
|
||||
|
||||
return (requiredMemorySize + DefaultSize - 1) / DefaultSize * DefaultSize;
|
||||
@ -373,18 +378,18 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
// The size of the layer buffer should be an aligned multiple of width * height
|
||||
// because it was created using GetIndirectLayerImageRequiredMemoryInfo as a guide.
|
||||
|
||||
long layerWidth = context.RequestData.ReadInt64();
|
||||
long layerHeight = context.RequestData.ReadInt64();
|
||||
long layerHandle = context.RequestData.ReadInt64();
|
||||
long layerWidth = context.RequestData.ReadInt64();
|
||||
long layerHeight = context.RequestData.ReadInt64();
|
||||
long layerHandle = context.RequestData.ReadInt64();
|
||||
ulong layerBuffPosition = context.Request.ReceiveBuff[0].Position;
|
||||
ulong layerBuffSize = context.Request.ReceiveBuff[0].Size;
|
||||
ulong layerBuffSize = context.Request.ReceiveBuff[0].Size;
|
||||
|
||||
// Get the pitch of the layer that is necessary to render correctly.
|
||||
ulong size = GetA8B8G8R8LayerSize((int)layerWidth, (int)layerHeight, out int pitch, out _);
|
||||
|
||||
Debug.Assert(layerBuffSize == size);
|
||||
|
||||
RenderingSurfaceInfo surfaceInfo = new RenderingSurfaceInfo(ColorFormat.A8B8G8R8, (uint)layerWidth, (uint)layerHeight, (uint)pitch, (uint)layerBuffSize);
|
||||
RenderingSurfaceInfo surfaceInfo = new(ColorFormat.A8B8G8R8, (uint)layerWidth, (uint)layerHeight, (uint)pitch, (uint)layerBuffSize);
|
||||
|
||||
// Get the applet associated with the handle.
|
||||
object appletObject = context.Device.System.AppletState.IndirectLayerHandles.GetData((int)layerHandle);
|
||||
@ -425,7 +430,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
}
|
||||
*/
|
||||
|
||||
int width = (int)context.RequestData.ReadUInt64();
|
||||
int width = (int)context.RequestData.ReadUInt64();
|
||||
int height = (int)context.RequestData.ReadUInt64();
|
||||
|
||||
if (height < 0 || width < 0)
|
||||
@ -445,7 +450,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService
|
||||
// NOTE: The official service setup a A8B8G8R8 texture with a linear layout and then query its size.
|
||||
// As we don't need this texture on the emulator, we can just simplify this logic and directly
|
||||
// do a linear layout size calculation. (stride * height * bytePerPixel)
|
||||
ulong size = GetA8B8G8R8LayerSize(width, height, out int pitch, out int alignment);
|
||||
ulong size = GetA8B8G8R8LayerSize(width, height, out _, out int alignment);
|
||||
|
||||
context.ResponseData.Write(size);
|
||||
context.ResponseData.Write(alignment);
|
||||
|
Reference in New Issue
Block a user