diff --git a/Ryujinx.Graphics/Shader/Instructions/IntegerCondition.cs b/Ryujinx.Graphics/Shader/Decoders/IntegerCondition.cs similarity index 100% rename from Ryujinx.Graphics/Shader/Instructions/IntegerCondition.cs rename to Ryujinx.Graphics/Shader/Decoders/IntegerCondition.cs diff --git a/Ryujinx.Graphics/Shader/Decoders/IntegerHalfPart.cs b/Ryujinx.Graphics/Shader/Decoders/IntegerHalfPart.cs new file mode 100644 index 0000000000..b779f44d4b --- /dev/null +++ b/Ryujinx.Graphics/Shader/Decoders/IntegerHalfPart.cs @@ -0,0 +1,9 @@ +namespace Ryujinx.Graphics.Shader.Decoders +{ + enum IntegerHalfPart + { + B32 = 0, + H0 = 1, + H1 = 2 + } +} \ No newline at end of file diff --git a/Ryujinx.Graphics/Shader/Instructions/Iadd3Mode.cs b/Ryujinx.Graphics/Shader/Decoders/IntegerShift.cs similarity index 56% rename from Ryujinx.Graphics/Shader/Instructions/Iadd3Mode.cs rename to Ryujinx.Graphics/Shader/Decoders/IntegerShift.cs index ad203dacb9..ce4d9f3bb6 100644 --- a/Ryujinx.Graphics/Shader/Instructions/Iadd3Mode.cs +++ b/Ryujinx.Graphics/Shader/Decoders/IntegerShift.cs @@ -1,6 +1,6 @@ -namespace Ryujinx.Graphics.Shader.Instructions +namespace Ryujinx.Graphics.Shader.Decoders { - enum Iadd3Mode + enum IntegerShift { NoShift = 0, ShiftRight = 1, diff --git a/Ryujinx.Graphics/Shader/Instructions/MufuOperation.cs b/Ryujinx.Graphics/Shader/Decoders/MufuOperation.cs similarity index 88% rename from Ryujinx.Graphics/Shader/Instructions/MufuOperation.cs rename to Ryujinx.Graphics/Shader/Decoders/MufuOperation.cs index 0fc67e7131..88bd1f5cea 100644 --- a/Ryujinx.Graphics/Shader/Instructions/MufuOperation.cs +++ b/Ryujinx.Graphics/Shader/Decoders/MufuOperation.cs @@ -1,4 +1,4 @@ -namespace Ryujinx.Graphics.Shader.Instructions +namespace Ryujinx.Graphics.Shader.Decoders { enum MufuOperation { diff --git a/Ryujinx.Graphics/Shader/Decoders/OpCodeTexs.cs b/Ryujinx.Graphics/Shader/Decoders/OpCodeTexs.cs index 2650bdd2bb..0822c4c074 100644 --- a/Ryujinx.Graphics/Shader/Decoders/OpCodeTexs.cs +++ b/Ryujinx.Graphics/Shader/Decoders/OpCodeTexs.cs @@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.Shader.Decoders { class OpCodeTexs : OpCodeTextureScalar { - public TexsType Type => (TexsType)RawType; + public TextureScalarType Type => (TextureScalarType)RawType; public OpCodeTexs(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { } } diff --git a/Ryujinx.Graphics/Shader/Decoders/OpCodeTlds.cs b/Ryujinx.Graphics/Shader/Decoders/OpCodeTlds.cs index d69d5ce217..e117721e9e 100644 --- a/Ryujinx.Graphics/Shader/Decoders/OpCodeTlds.cs +++ b/Ryujinx.Graphics/Shader/Decoders/OpCodeTlds.cs @@ -4,7 +4,7 @@ namespace Ryujinx.Graphics.Shader.Decoders { class OpCodeTlds : OpCodeTextureScalar { - public TldsType Type => (TldsType)RawType; + public TexelLoadScalarType Type => (TexelLoadScalarType)RawType; public OpCodeTlds(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode) { } } diff --git a/Ryujinx.Graphics/Shader/Decoders/TldsType.cs b/Ryujinx.Graphics/Shader/Decoders/TexelLoadScalarType.cs similarity index 93% rename from Ryujinx.Graphics/Shader/Decoders/TldsType.cs rename to Ryujinx.Graphics/Shader/Decoders/TexelLoadScalarType.cs index 4dd48e646d..cef5778a55 100644 --- a/Ryujinx.Graphics/Shader/Decoders/TldsType.cs +++ b/Ryujinx.Graphics/Shader/Decoders/TexelLoadScalarType.cs @@ -1,6 +1,6 @@ namespace Ryujinx.Graphics.Shader.Decoders { - enum TldsType + enum TexelLoadScalarType { Texture1DLodZero = 0x0, Texture1DLodLevel = 0x1, diff --git a/Ryujinx.Graphics/Shader/Instructions/TextureGatherOffset.cs b/Ryujinx.Graphics/Shader/Decoders/TextureGatherOffset.cs similarity index 69% rename from Ryujinx.Graphics/Shader/Instructions/TextureGatherOffset.cs rename to Ryujinx.Graphics/Shader/Decoders/TextureGatherOffset.cs index 28d2701f9b..4e9ade26a4 100644 --- a/Ryujinx.Graphics/Shader/Instructions/TextureGatherOffset.cs +++ b/Ryujinx.Graphics/Shader/Decoders/TextureGatherOffset.cs @@ -1,4 +1,4 @@ -namespace Ryujinx.Graphics.Shader.Instructions +namespace Ryujinx.Graphics.Shader.Decoders { enum TextureGatherOffset { diff --git a/Ryujinx.Graphics/Shader/Instructions/TextureProperty.cs b/Ryujinx.Graphics/Shader/Decoders/TextureProperty.cs similarity index 82% rename from Ryujinx.Graphics/Shader/Instructions/TextureProperty.cs rename to Ryujinx.Graphics/Shader/Decoders/TextureProperty.cs index 476976e1f1..ea35b1d1cb 100644 --- a/Ryujinx.Graphics/Shader/Instructions/TextureProperty.cs +++ b/Ryujinx.Graphics/Shader/Decoders/TextureProperty.cs @@ -1,4 +1,4 @@ -namespace Ryujinx.Graphics.Shader.Instructions +namespace Ryujinx.Graphics.Shader.Decoders { enum TextureProperty { diff --git a/Ryujinx.Graphics/Shader/Decoders/TexsType.cs b/Ryujinx.Graphics/Shader/Decoders/TextureScalarType.cs similarity index 96% rename from Ryujinx.Graphics/Shader/Decoders/TexsType.cs rename to Ryujinx.Graphics/Shader/Decoders/TextureScalarType.cs index 6f4b726062..0055174b4e 100644 --- a/Ryujinx.Graphics/Shader/Decoders/TexsType.cs +++ b/Ryujinx.Graphics/Shader/Decoders/TextureScalarType.cs @@ -1,6 +1,6 @@ namespace Ryujinx.Graphics.Shader.Decoders { - enum TexsType + enum TextureScalarType { Texture1DLodZero = 0x0, Texture2D = 0x1, diff --git a/Ryujinx.Graphics/Shader/Instructions/XmadMode.cs b/Ryujinx.Graphics/Shader/Decoders/XmadCMode.cs similarity index 62% rename from Ryujinx.Graphics/Shader/Instructions/XmadMode.cs rename to Ryujinx.Graphics/Shader/Decoders/XmadCMode.cs index 9d1757fa2b..949a2ef70a 100644 --- a/Ryujinx.Graphics/Shader/Instructions/XmadMode.cs +++ b/Ryujinx.Graphics/Shader/Decoders/XmadCMode.cs @@ -1,6 +1,6 @@ -namespace Ryujinx.Graphics.Shader.Instructions +namespace Ryujinx.Graphics.Shader.Decoders { - enum XmadMode + enum XmadCMode { Cfull = 0, Clo = 1, diff --git a/Ryujinx.Graphics/Shader/Instructions/Iadd3Part.cs b/Ryujinx.Graphics/Shader/Instructions/Iadd3Part.cs deleted file mode 100644 index 9346751002..0000000000 --- a/Ryujinx.Graphics/Shader/Instructions/Iadd3Part.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Ryujinx.Graphics.Shader.Instructions -{ - enum Iadd3Part - { - B32 = 0, - H0 = 1, - H1 = 2 - } -} \ No newline at end of file diff --git a/Ryujinx.Graphics/Shader/Instructions/InstEmitAlu.cs b/Ryujinx.Graphics/Shader/Instructions/InstEmitAlu.cs index 9b7bb0d321..f7815e2330 100644 --- a/Ryujinx.Graphics/Shader/Instructions/InstEmitAlu.cs +++ b/Ryujinx.Graphics/Shader/Instructions/InstEmitAlu.cs @@ -75,28 +75,28 @@ namespace Ryujinx.Graphics.Shader.Instructions { OpCodeAlu op = (OpCodeAlu)context.CurrOp; - Iadd3Part partC = (Iadd3Part)op.RawOpCode.Extract(31, 2); - Iadd3Part partB = (Iadd3Part)op.RawOpCode.Extract(33, 2); - Iadd3Part partA = (Iadd3Part)op.RawOpCode.Extract(35, 2); + IntegerHalfPart partC = (IntegerHalfPart)op.RawOpCode.Extract(31, 2); + IntegerHalfPart partB = (IntegerHalfPart)op.RawOpCode.Extract(33, 2); + IntegerHalfPart partA = (IntegerHalfPart)op.RawOpCode.Extract(35, 2); - Iadd3Mode mode = (Iadd3Mode)op.RawOpCode.Extract(37, 2); + IntegerShift mode = (IntegerShift)op.RawOpCode.Extract(37, 2); bool negateC = op.RawOpCode.Extract(49); bool negateB = op.RawOpCode.Extract(50); bool negateA = op.RawOpCode.Extract(51); - Operand Extend(Operand src, Iadd3Part part) + Operand Extend(Operand src, IntegerHalfPart part) { - if (!(op is OpCodeAluReg) || part == Iadd3Part.B32) + if (!(op is OpCodeAluReg) || part == IntegerHalfPart.B32) { return src; } - if (part == Iadd3Part.H0) + if (part == IntegerHalfPart.H0) { return context.BitwiseAnd(src, Const(0xffff)); } - else if (part == Iadd3Part.H1) + else if (part == IntegerHalfPart.H1) { return context.ShiftRightU32(src, Const(16)); } @@ -114,13 +114,13 @@ namespace Ryujinx.Graphics.Shader.Instructions Operand res = context.IAdd(srcA, srcB); - if (op is OpCodeAluReg && mode != Iadd3Mode.NoShift) + if (op is OpCodeAluReg && mode != IntegerShift.NoShift) { - if (mode == Iadd3Mode.ShiftLeft) + if (mode == IntegerShift.ShiftLeft) { res = context.ShiftLeft(res, Const(16)); } - else if (mode == Iadd3Mode.ShiftRight) + else if (mode == IntegerShift.ShiftRight) { res = context.ShiftRightU32(res, Const(16)); } @@ -432,17 +432,17 @@ namespace Ryujinx.Graphics.Shader.Instructions bool highA = context.CurrOp.RawOpCode.Extract(53); bool highB = false; - XmadMode mode; + XmadCMode mode; if (op is OpCodeAluReg) { highB = context.CurrOp.RawOpCode.Extract(35); - mode = (XmadMode)context.CurrOp.RawOpCode.Extract(50, 3); + mode = (XmadCMode)context.CurrOp.RawOpCode.Extract(50, 3); } else { - mode = (XmadMode)context.CurrOp.RawOpCode.Extract(50, 2); + mode = (XmadCMode)context.CurrOp.RawOpCode.Extract(50, 2); if (!(op is OpCodeAluImm)) { @@ -512,19 +512,19 @@ namespace Ryujinx.Graphics.Shader.Instructions switch (mode) { - case XmadMode.Cfull: break; + case XmadCMode.Cfull: break; - case XmadMode.Clo: srcC = Extend16To32(srcC, high: false, signed: false); break; - case XmadMode.Chi: srcC = Extend16To32(srcC, high: true, signed: false); break; + case XmadCMode.Clo: srcC = Extend16To32(srcC, high: false, signed: false); break; + case XmadCMode.Chi: srcC = Extend16To32(srcC, high: true, signed: false); break; - case XmadMode.Cbcc: + case XmadCMode.Cbcc: { srcC = context.IAdd(srcC, context.ShiftLeft(GetSrcB(context), Const(16))); break; } - case XmadMode.Csfu: + case XmadCMode.Csfu: { Operand signAdjustA = context.ShiftLeft(context.ShiftRightU32(srcA, Const(31)), Const(16)); Operand signAdjustB = context.ShiftLeft(context.ShiftRightU32(srcB, Const(31)), Const(16)); diff --git a/Ryujinx.Graphics/Shader/Instructions/InstEmitMemory.cs b/Ryujinx.Graphics/Shader/Instructions/InstEmitMemory.cs index e001afaac2..f899d556fa 100644 --- a/Ryujinx.Graphics/Shader/Instructions/InstEmitMemory.cs +++ b/Ryujinx.Graphics/Shader/Instructions/InstEmitMemory.cs @@ -222,40 +222,40 @@ namespace Ryujinx.Graphics.Shader.Instructions { switch (texsOp.Type) { - case TexsType.Texture1DLodZero: + case TextureScalarType.Texture1DLodZero: sourcesList.Add(Ra()); break; - case TexsType.Texture2D: + case TextureScalarType.Texture2D: sourcesList.Add(Ra()); sourcesList.Add(Rb()); break; - case TexsType.Texture2DLodZero: + case TextureScalarType.Texture2DLodZero: sourcesList.Add(Ra()); sourcesList.Add(Rb()); sourcesList.Add(ConstF(0)); break; - case TexsType.Texture2DLodLevel: - case TexsType.Texture2DDepthCompare: - case TexsType.Texture3D: - case TexsType.TextureCube: + case TextureScalarType.Texture2DLodLevel: + case TextureScalarType.Texture2DDepthCompare: + case TextureScalarType.Texture3D: + case TextureScalarType.TextureCube: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); break; - case TexsType.Texture2DLodZeroDepthCompare: - case TexsType.Texture3DLodZero: + case TextureScalarType.Texture2DLodZeroDepthCompare: + case TextureScalarType.Texture3DLodZero: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); sourcesList.Add(ConstF(0)); break; - case TexsType.Texture2DLodLevelDepthCompare: - case TexsType.TextureCubeLodLevel: + case TextureScalarType.Texture2DLodLevelDepthCompare: + case TextureScalarType.TextureCubeLodLevel: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); @@ -271,51 +271,51 @@ namespace Ryujinx.Graphics.Shader.Instructions switch (tldsOp.Type) { - case TldsType.Texture1DLodZero: + case TexelLoadScalarType.Texture1DLodZero: sourcesList.Add(Ra()); sourcesList.Add(Const(0)); break; - case TldsType.Texture1DLodLevel: + case TexelLoadScalarType.Texture1DLodLevel: sourcesList.Add(Ra()); sourcesList.Add(Rb()); break; - case TldsType.Texture2DLodZero: + case TexelLoadScalarType.Texture2DLodZero: sourcesList.Add(Ra()); sourcesList.Add(Rb()); sourcesList.Add(Const(0)); break; - case TldsType.Texture2DLodZeroOffset: - case TldsType.Texture2DLodZeroMultisample: + case TexelLoadScalarType.Texture2DLodZeroOffset: + case TexelLoadScalarType.Texture2DLodZeroMultisample: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Const(0)); sourcesList.Add(Rb()); break; - case TldsType.Texture2DLodLevel: + case TexelLoadScalarType.Texture2DLodLevel: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); break; - case TldsType.Texture3DLodZero: + case TexelLoadScalarType.Texture3DLodZero: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); sourcesList.Add(Const(0)); break; - case TldsType.Texture2DArrayLodZero: + case TexelLoadScalarType.Texture2DArrayLodZero: sourcesList.Add(Rb()); sourcesList.Add(Rb()); sourcesList.Add(Ra()); sourcesList.Add(Const(0)); break; - case TldsType.Texture2DLodLevelOffset: + case TexelLoadScalarType.Texture2DLodLevelOffset: sourcesList.Add(Ra()); sourcesList.Add(Ra()); sourcesList.Add(Rb()); @@ -781,110 +781,110 @@ namespace Ryujinx.Graphics.Shader.Instructions throw new ArgumentException($"Invalid texture dimensions \"{dimensions}\"."); } - private static TextureType GetTextureType(TexsType type) + private static TextureType GetTextureType(TextureScalarType type) { switch (type) { - case TexsType.Texture1DLodZero: + case TextureScalarType.Texture1DLodZero: return TextureType.Texture1D; - case TexsType.Texture2D: - case TexsType.Texture2DLodZero: - case TexsType.Texture2DLodLevel: + case TextureScalarType.Texture2D: + case TextureScalarType.Texture2DLodZero: + case TextureScalarType.Texture2DLodLevel: return TextureType.Texture2D; - case TexsType.Texture2DDepthCompare: - case TexsType.Texture2DLodLevelDepthCompare: - case TexsType.Texture2DLodZeroDepthCompare: + case TextureScalarType.Texture2DDepthCompare: + case TextureScalarType.Texture2DLodLevelDepthCompare: + case TextureScalarType.Texture2DLodZeroDepthCompare: return TextureType.Texture2D | TextureType.Shadow; - case TexsType.Texture2DArray: - case TexsType.Texture2DArrayLodZero: + case TextureScalarType.Texture2DArray: + case TextureScalarType.Texture2DArrayLodZero: return TextureType.Texture2D | TextureType.Array; - case TexsType.Texture2DArrayLodZeroDepthCompare: + case TextureScalarType.Texture2DArrayLodZeroDepthCompare: return TextureType.Texture2D | TextureType.Array | TextureType.Shadow; - case TexsType.Texture3D: - case TexsType.Texture3DLodZero: + case TextureScalarType.Texture3D: + case TextureScalarType.Texture3DLodZero: return TextureType.Texture3D; - case TexsType.TextureCube: - case TexsType.TextureCubeLodLevel: + case TextureScalarType.TextureCube: + case TextureScalarType.TextureCubeLodLevel: return TextureType.TextureCube; } throw new ArgumentException($"Invalid texture type \"{type}\"."); } - private static TextureType GetTextureType(TldsType type) + private static TextureType GetTextureType(TexelLoadScalarType type) { switch (type) { - case TldsType.Texture1DLodZero: - case TldsType.Texture1DLodLevel: + case TexelLoadScalarType.Texture1DLodZero: + case TexelLoadScalarType.Texture1DLodLevel: return TextureType.Texture1D; - case TldsType.Texture2DLodZero: - case TldsType.Texture2DLodZeroOffset: - case TldsType.Texture2DLodLevel: - case TldsType.Texture2DLodLevelOffset: + case TexelLoadScalarType.Texture2DLodZero: + case TexelLoadScalarType.Texture2DLodZeroOffset: + case TexelLoadScalarType.Texture2DLodLevel: + case TexelLoadScalarType.Texture2DLodLevelOffset: return TextureType.Texture2D; - case TldsType.Texture2DLodZeroMultisample: + case TexelLoadScalarType.Texture2DLodZeroMultisample: return TextureType.Texture2D | TextureType.Multisample; - case TldsType.Texture3DLodZero: + case TexelLoadScalarType.Texture3DLodZero: return TextureType.Texture3D; - case TldsType.Texture2DArrayLodZero: + case TexelLoadScalarType.Texture2DArrayLodZero: return TextureType.Texture2D | TextureType.Array; } throw new ArgumentException($"Invalid texture type \"{type}\"."); } - private static TextureFlags GetTextureFlags(TexsType type) + private static TextureFlags GetTextureFlags(TextureScalarType type) { switch (type) { - case TexsType.Texture1DLodZero: - case TexsType.Texture2DLodZero: - case TexsType.Texture2DLodLevel: - case TexsType.Texture2DLodLevelDepthCompare: - case TexsType.Texture2DLodZeroDepthCompare: - case TexsType.Texture2DArrayLodZero: - case TexsType.Texture2DArrayLodZeroDepthCompare: - case TexsType.Texture3DLodZero: - case TexsType.TextureCubeLodLevel: + case TextureScalarType.Texture1DLodZero: + case TextureScalarType.Texture2DLodZero: + case TextureScalarType.Texture2DLodLevel: + case TextureScalarType.Texture2DLodLevelDepthCompare: + case TextureScalarType.Texture2DLodZeroDepthCompare: + case TextureScalarType.Texture2DArrayLodZero: + case TextureScalarType.Texture2DArrayLodZeroDepthCompare: + case TextureScalarType.Texture3DLodZero: + case TextureScalarType.TextureCubeLodLevel: return TextureFlags.LodLevel; - case TexsType.Texture2D: - case TexsType.Texture2DDepthCompare: - case TexsType.Texture2DArray: - case TexsType.Texture3D: - case TexsType.TextureCube: + case TextureScalarType.Texture2D: + case TextureScalarType.Texture2DDepthCompare: + case TextureScalarType.Texture2DArray: + case TextureScalarType.Texture3D: + case TextureScalarType.TextureCube: return TextureFlags.None; } throw new ArgumentException($"Invalid texture type \"{type}\"."); } - private static TextureFlags GetTextureFlags(TldsType type) + private static TextureFlags GetTextureFlags(TexelLoadScalarType type) { switch (type) { - case TldsType.Texture1DLodZero: - case TldsType.Texture1DLodLevel: - case TldsType.Texture2DLodZero: - case TldsType.Texture2DLodLevel: - case TldsType.Texture2DLodZeroMultisample: - case TldsType.Texture3DLodZero: - case TldsType.Texture2DArrayLodZero: + case TexelLoadScalarType.Texture1DLodZero: + case TexelLoadScalarType.Texture1DLodLevel: + case TexelLoadScalarType.Texture2DLodZero: + case TexelLoadScalarType.Texture2DLodLevel: + case TexelLoadScalarType.Texture2DLodZeroMultisample: + case TexelLoadScalarType.Texture3DLodZero: + case TexelLoadScalarType.Texture2DArrayLodZero: return TextureFlags.LodLevel; - case TldsType.Texture2DLodZeroOffset: - case TldsType.Texture2DLodLevelOffset: + case TexelLoadScalarType.Texture2DLodZeroOffset: + case TexelLoadScalarType.Texture2DLodLevelOffset: return TextureFlags.LodLevel | TextureFlags.Offset; }