Move solution and projects to src

This commit is contained in:
TSR Berry
2023-04-08 01:22:00 +02:00
committed by Mary
parent cd124bda58
commit cee7121058
3466 changed files with 55 additions and 55 deletions

View File

@ -0,0 +1,29 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct BlendingSlotStruct
{
private long _word0;
private long _word1;
public int AlphaK1 => (int)_word0.Extract(0, 10);
public int AlphaK2 => (int)_word0.Extract(16, 10);
public int SrcFactCMatchSelect => (int)_word0.Extract(32, 3);
public int DstFactCMatchSelect => (int)_word0.Extract(36, 3);
public int SrcFactAMatchSelect => (int)_word0.Extract(40, 3);
public int DstFactAMatchSelect => (int)_word0.Extract(44, 3);
public int OverrideR => (int)_word1.Extract(66, 10);
public int OverrideG => (int)_word1.Extract(76, 10);
public int OverrideB => (int)_word1.Extract(86, 10);
public int OverrideA => (int)_word1.Extract(96, 10);
public bool UseOverrideR => _word1.Extract(108);
public bool UseOverrideG => _word1.Extract(109);
public bool UseOverrideB => _word1.Extract(110);
public bool UseOverrideA => _word1.Extract(111);
public bool MaskR => _word1.Extract(112);
public bool MaskG => _word1.Extract(113);
public bool MaskB => _word1.Extract(114);
public bool MaskA => _word1.Extract(115);
}
}

View File

@ -0,0 +1,21 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct ClearRectStruct
{
#pragma warning disable CS0649
private long _word0;
private long _word1;
#pragma warning restore CS0649
public int ClearRect0Left => (int)_word0.Extract(0, 14);
public int ClearRect0Right => (int)_word0.Extract(16, 14);
public int ClearRect0Top => (int)_word0.Extract(32, 14);
public int ClearRect0Bottom => (int)_word0.Extract(48, 14);
public int ClearRect1Left => (int)_word1.Extract(64, 14);
public int ClearRect1Right => (int)_word1.Extract(80, 14);
public int ClearRect1Top => (int)_word1.Extract(96, 14);
public int ClearRect1Bottom => (int)_word1.Extract(112, 14);
}
}

View File

@ -0,0 +1,16 @@
using Ryujinx.Common.Memory;
namespace Ryujinx.Graphics.Vic.Types
{
struct ConfigStruct
{
#pragma warning disable CS0649
public PipeConfig PipeConfig;
public OutputConfig OutputConfig;
public OutputSurfaceConfig OutputSurfaceConfig;
public MatrixStruct OutColorMatrix;
public Array4<ClearRectStruct> ClearRectStruct;
public Array8<SlotStruct> SlotStruct;
#pragma warning restore CS0649
}
}

View File

@ -0,0 +1,12 @@
namespace Ryujinx.Graphics.Vic.Types
{
enum DeinterlaceMode
{
Weave,
BobField,
Bob,
NewBob,
Disi1,
WeaveLumaBobFieldChroma
}
}

View File

@ -0,0 +1,79 @@
namespace Ryujinx.Graphics.Vic.Types
{
enum FrameFormat
{
Progressive,
InterlacedTopFieldFirst,
InterlacedBottomFieldFirst,
TopField,
BottomField,
SubPicProgressive,
SubPicInterlacedTopFieldFirst,
SubPicInterlacedBottomFieldFirst,
SubPicTopField,
SubPicBottomField,
TopFieldChromaBottom,
BottomFieldChromaTop,
SubPicTopFieldChromaBottom,
SubPicBottomFieldChromaTop
}
static class FrameFormatExtensions
{
public static bool IsField(this FrameFormat frameFormat)
{
switch (frameFormat)
{
case FrameFormat.TopField:
case FrameFormat.BottomField:
case FrameFormat.SubPicTopField:
case FrameFormat.SubPicBottomField:
case FrameFormat.TopFieldChromaBottom:
case FrameFormat.BottomFieldChromaTop:
case FrameFormat.SubPicTopFieldChromaBottom:
case FrameFormat.SubPicBottomFieldChromaTop:
return true;
}
return false;
}
public static bool IsInterlaced(this FrameFormat frameFormat)
{
switch (frameFormat)
{
case FrameFormat.InterlacedTopFieldFirst:
case FrameFormat.InterlacedBottomFieldFirst:
case FrameFormat.SubPicInterlacedTopFieldFirst:
case FrameFormat.SubPicInterlacedBottomFieldFirst:
return true;
}
return false;
}
public static bool IsInterlacedBottomFirst(this FrameFormat frameFormat)
{
return frameFormat == FrameFormat.InterlacedBottomFieldFirst ||
frameFormat == FrameFormat.SubPicInterlacedBottomFieldFirst;
}
public static bool IsTopField(this FrameFormat frameFormat, bool isLuma)
{
switch (frameFormat)
{
case FrameFormat.TopField:
case FrameFormat.SubPicTopField:
return true;
case FrameFormat.TopFieldChromaBottom:
case FrameFormat.SubPicTopFieldChromaBottom:
return isLuma;
case FrameFormat.BottomFieldChromaTop:
case FrameFormat.SubPicBottomFieldChromaTop:
return !isLuma;
}
return false;
}
}
}

View File

@ -0,0 +1,19 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct LumaKeyStruct
{
private long _word0;
private long _word1;
public int LumaCoeff0 => (int)_word0.Extract(0, 20);
public int LumaCoeff1 => (int)_word0.Extract(20, 20);
public int LumaCoeff2 => (int)_word0.Extract(40, 20);
public int LumaRShift => (int)_word0.Extract(60, 4);
public int LumaCoeff3 => (int)_word1.Extract(64, 20);
public int LumaKeyLower => (int)_word1.Extract(84, 10);
public int LumaKeyUpper => (int)_word1.Extract(94, 10);
public bool LumaKeyEnabled => _word1.Extract(104);
}
}

View File

@ -0,0 +1,27 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct MatrixStruct
{
private long _word0;
private long _word1;
private long _word2;
private long _word3;
public int MatrixCoeff00 => (int)_word0.ExtractSx(0, 20);
public int MatrixCoeff10 => (int)_word0.ExtractSx(20, 20);
public int MatrixCoeff20 => (int)_word0.ExtractSx(40, 20);
public int MatrixRShift => (int)_word0.Extract(60, 4);
public int MatrixCoeff01 => (int)_word1.ExtractSx(64, 20);
public int MatrixCoeff11 => (int)_word1.ExtractSx(84, 20);
public int MatrixCoeff21 => (int)_word1.ExtractSx(104, 20);
public bool MatrixEnable => _word1.Extract(127);
public int MatrixCoeff02 => (int)_word2.ExtractSx(128, 20);
public int MatrixCoeff12 => (int)_word2.ExtractSx(148, 20);
public int MatrixCoeff22 => (int)_word2.ExtractSx(168, 20);
public int MatrixCoeff03 => (int)_word3.ExtractSx(192, 20);
public int MatrixCoeff13 => (int)_word3.ExtractSx(212, 20);
public int MatrixCoeff23 => (int)_word3.ExtractSx(232, 20);
}
}

View File

@ -0,0 +1,27 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct OutputConfig
{
#pragma warning disable CS0649
private long _word0;
private long _word1;
#pragma warning restore CS0649
public int AlphaFillMode => (int)_word0.Extract(0, 3);
public int AlphaFillSlot => (int)_word0.Extract(3, 3);
public int BackgroundAlpha => (int)_word0.Extract(6, 10);
public int BackgroundR => (int)_word0.Extract(16, 10);
public int BackgroundG => (int)_word0.Extract(26, 10);
public int BackgroundB => (int)_word0.Extract(36, 10);
public int RegammaMode => (int)_word0.Extract(46, 2);
public bool OutputFlipX => _word0.Extract(48);
public bool OutputFlipY => _word0.Extract(49);
public bool OutputTranspose => _word0.Extract(50);
public int TargetRectLeft => (int)_word1.Extract(64, 14);
public int TargetRectRight => (int)_word1.Extract(80, 14);
public int TargetRectTop => (int)_word1.Extract(96, 14);
public int TargetRectBottom => (int)_word1.Extract(112, 14);
}
}

View File

@ -0,0 +1,24 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct OutputSurfaceConfig
{
#pragma warning disable CS0649
private long _word0;
private long _word1;
#pragma warning restore CS0649
public PixelFormat OutPixelFormat => (PixelFormat)_word0.Extract(0, 7);
public int OutChromaLocHoriz => (int)_word0.Extract(7, 2);
public int OutChromaLocVert => (int)_word0.Extract(9, 2);
public int OutBlkKind => (int)_word0.Extract(11, 4);
public int OutBlkHeight => (int)_word0.Extract(15, 4);
public int OutSurfaceWidth => (int)_word0.Extract(32, 14);
public int OutSurfaceHeight => (int)_word0.Extract(46, 14);
public int OutLumaWidth => (int)_word1.Extract(64, 14);
public int OutLumaHeight => (int)_word1.Extract(78, 14);
public int OutChromaWidth => (int)_word1.Extract(96, 14);
public int OutChromaHeight => (int)_word1.Extract(110, 14);
}
}

View File

@ -0,0 +1,15 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct PipeConfig
{
#pragma warning disable CS0169, CS0649
private long _word0;
private long _word1;
#pragma warning restore CS0169, CS0649
public int DownsampleHoriz => (int)_word0.Extract(0, 11);
public int DownsampleVert => (int)_word0.Extract(16, 11);
}
}

View File

@ -0,0 +1,81 @@
namespace Ryujinx.Graphics.Vic.Types
{
enum PixelFormat
{
A8,
L8,
A4L4,
L4A4,
R8,
A8L8,
L8A8,
R8G8,
G8R8,
B5G6R5,
R5G6B5,
B6G5R5,
R5G5B6,
A1B5G5R5,
A1R5G5B5,
B5G5R5A1,
R5G5B5A1,
A5B5G5R1,
A5R1G5B5,
B5G5R1A5,
R1G5B5A5,
X1B5G5R5,
X1R5G5B5,
B5G5R5X1,
R5G5B5X1,
A4B4G4R4,
A4R4G4B4,
B4G4R4A4,
R4G4B4A4,
B8_G8_R8,
R8_G8_B8,
A8B8G8R8,
A8R8G8B8,
B8G8R8A8,
R8G8B8A8,
X8B8G8R8,
X8R8G8B8,
B8G8R8X8,
R8G8B8X8,
A2B10G10R10,
A2R10G10B10,
B10G10R10A2,
R10G10B10A2,
A4P4,
P4A4,
P8A845,
A8P8,
P8,
P1,
U8V8,
V8U8,
A8Y8U8V8,
V8U8Y8A8,
Y8_U8_V8,
Y8_V8_U8,
U8_V8_Y8,
V8_U8_Y8,
Y8_U8__Y8_V8,
Y8_V8__Y8_U8,
U8_Y8__V8_Y8,
V8_Y8__U8_Y8,
Y8___U8V8_N444,
Y8___V8U8_N444,
Y8___U8V8_N422,
Y8___V8U8_N422,
Y8___U8V8_N422R,
Y8___V8U8_N422R,
Y8___U8V8_N420,
Y8___V8U8_N420,
Y8___U8___V8_N444,
Y8___U8___V8_N422,
Y8___U8___V8_N422R,
Y8___U8___V8_N420,
U8,
V8
}
}

View File

@ -0,0 +1,65 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct SlotConfig
{
private long _word0;
private long _word1;
private long _word2;
private long _word3;
private long _word4;
private long _word5;
private long _word6;
private long _word7;
public bool SlotEnable => _word0.Extract(0);
public bool DeNoise => _word0.Extract(1);
public bool AdvancedDenoise => _word0.Extract(2);
public bool CadenceDetect => _word0.Extract(3);
public bool MotionMap => _word0.Extract(4);
public bool MMapCombine => _word0.Extract(5);
public bool IsEven => _word0.Extract(6);
public bool ChromaEven => _word0.Extract(7);
public bool CurrentFieldEnable => _word0.Extract(8);
public bool PrevFieldEnable => _word0.Extract(9);
public bool NextFieldEnable => _word0.Extract(10);
public bool NextNrFieldEnable => _word0.Extract(11);
public bool CurMotionFieldEnable => _word0.Extract(12);
public bool PrevMotionFieldEnable => _word0.Extract(13);
public bool PpMotionFieldEnable => _word0.Extract(14);
public bool CombMotionFieldEnable => _word0.Extract(15);
public FrameFormat FrameFormat => (FrameFormat)_word0.Extract(16, 4);
public int FilterLengthY => (int)_word0.Extract(20, 2);
public int FilterLengthX => (int)_word0.Extract(22, 2);
public int Panoramic => (int)_word0.Extract(24, 12);
public int DetailFltClamp => (int)_word0.Extract(58, 6);
public int FilterNoise => (int)_word1.Extract(64, 10);
public int FilterDetail => (int)_word1.Extract(74, 10);
public int ChromaNoise => (int)_word1.Extract(84, 10);
public int ChromaDetail => (int)_word1.Extract(94, 10);
public DeinterlaceMode DeinterlaceMode => (DeinterlaceMode)_word1.Extract(104, 4);
public int MotionAccumWeight => (int)_word1.Extract(108, 3);
public int NoiseIir => (int)_word1.Extract(111, 11);
public int LightLevel => (int)_word1.Extract(122, 4);
public int SoftClampLow => (int)_word2.Extract(128, 10);
public int SoftClampHigh => (int)_word2.Extract(138, 10);
public int PlanarAlpha => (int)_word2.Extract(160, 10);
public bool ConstantAlpha => _word2.Extract(170);
public int StereoInterleave => (int)_word2.Extract(171, 3);
public bool ClipEnabled => _word2.Extract(174);
public int ClearRectMask => (int)_word2.Extract(175, 8);
public int DegammaMode => (int)_word2.Extract(183, 2);
public bool DecompressEnable => _word2.Extract(186);
public int DecompressCtbCount => (int)_word3.Extract(192, 8);
public int DecompressZbcColor => (int)_word3.Extract(200, 32);
public int SourceRectLeft => (int)_word4.Extract(256, 30);
public int SourceRectRight => (int)_word4.Extract(288, 30);
public int SourceRectTop => (int)_word5.Extract(320, 30);
public int SourceRectBottom => (int)_word5.Extract(352, 30);
public int DstRectLeft => (int)_word6.Extract(384, 14);
public int DstRectRight => (int)_word6.Extract(400, 14);
public int DstRectTop => (int)_word6.Extract(416, 14);
public int DstRectBottom => (int)_word6.Extract(432, 14);
}
}

View File

@ -0,0 +1,12 @@
namespace Ryujinx.Graphics.Vic.Types
{
struct SlotStruct
{
public SlotConfig SlotConfig;
public SlotSurfaceConfig SlotSurfaceConfig;
public LumaKeyStruct LumaKeyStruct;
public MatrixStruct ColorMatrixStruct;
public MatrixStruct GamutMatrixStruct;
public BlendingSlotStruct BlendingSlotStruct;
}
}

View File

@ -0,0 +1,23 @@
using Ryujinx.Common.Utilities;
namespace Ryujinx.Graphics.Vic.Types
{
struct SlotSurfaceConfig
{
private long _word0;
private long _word1;
public PixelFormat SlotPixelFormat => (PixelFormat)_word0.Extract(0, 7);
public int SlotChromaLocHoriz => (int)_word0.Extract(7, 2);
public int SlotChromaLocVert => (int)_word0.Extract(9, 2);
public int SlotBlkKind => (int)_word0.Extract(11, 4);
public int SlotBlkHeight => (int)_word0.Extract(15, 4);
public int SlotCacheWidth => (int)_word0.Extract(19, 3);
public int SlotSurfaceWidth => (int)_word0.Extract(32, 14);
public int SlotSurfaceHeight => (int)_word0.Extract(46, 14);
public int SlotLumaWidth => (int)_word1.Extract(64, 14);
public int SlotLumaHeight => (int)_word1.Extract(78, 14);
public int SlotChromaWidth => (int)_word1.Extract(96, 14);
public int SlotChromaHeight => (int)_word1.Extract(110, 14);
}
}