Move solution and projects to src
This commit is contained in:
parent
cd124bda58
commit
cee7121058
3466 changed files with 55 additions and 55 deletions
226
src/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvDelegates.cs
Normal file
226
src/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvDelegates.cs
Normal file
|
@ -0,0 +1,226 @@
|
|||
using FuncBinaryInstruction = System.Func<Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction>;
|
||||
using FuncQuaternaryInstruction = System.Func<Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction>;
|
||||
using FuncTernaryInstruction = System.Func<Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction>;
|
||||
using FuncUnaryInstruction = System.Func<Spv.Generator.Instruction, Spv.Generator.Instruction, Spv.Generator.Instruction>;
|
||||
|
||||
namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
|
||||
{
|
||||
/// <summary>
|
||||
/// Delegate cache for SPIR-V instruction generators. Avoids delegate allocation when passing generators as arguments.
|
||||
/// </summary>
|
||||
internal readonly struct SpirvDelegates
|
||||
{
|
||||
// Unary
|
||||
public readonly FuncUnaryInstruction GlslFAbs;
|
||||
public readonly FuncUnaryInstruction GlslSAbs;
|
||||
public readonly FuncUnaryInstruction GlslCeil;
|
||||
public readonly FuncUnaryInstruction GlslCos;
|
||||
public readonly FuncUnaryInstruction GlslExp2;
|
||||
public readonly FuncUnaryInstruction GlslFloor;
|
||||
public readonly FuncUnaryInstruction GlslLog2;
|
||||
public readonly FuncUnaryInstruction FNegate;
|
||||
public readonly FuncUnaryInstruction SNegate;
|
||||
public readonly FuncUnaryInstruction GlslInverseSqrt;
|
||||
public readonly FuncUnaryInstruction GlslRoundEven;
|
||||
public readonly FuncUnaryInstruction GlslSin;
|
||||
public readonly FuncUnaryInstruction GlslSqrt;
|
||||
public readonly FuncUnaryInstruction GlslTrunc;
|
||||
|
||||
// UnaryBool
|
||||
public readonly FuncUnaryInstruction LogicalNot;
|
||||
|
||||
// UnaryFP32
|
||||
public readonly FuncUnaryInstruction DPdx;
|
||||
public readonly FuncUnaryInstruction DPdy;
|
||||
|
||||
// UnaryS32
|
||||
public readonly FuncUnaryInstruction BitCount;
|
||||
public readonly FuncUnaryInstruction BitReverse;
|
||||
public readonly FuncUnaryInstruction Not;
|
||||
|
||||
// Compare
|
||||
public readonly FuncBinaryInstruction FOrdEqual;
|
||||
public readonly FuncBinaryInstruction IEqual;
|
||||
public readonly FuncBinaryInstruction FOrdGreaterThan;
|
||||
public readonly FuncBinaryInstruction SGreaterThan;
|
||||
public readonly FuncBinaryInstruction FOrdGreaterThanEqual;
|
||||
public readonly FuncBinaryInstruction SGreaterThanEqual;
|
||||
public readonly FuncBinaryInstruction FOrdLessThan;
|
||||
public readonly FuncBinaryInstruction SLessThan;
|
||||
public readonly FuncBinaryInstruction FOrdLessThanEqual;
|
||||
public readonly FuncBinaryInstruction SLessThanEqual;
|
||||
public readonly FuncBinaryInstruction FOrdNotEqual;
|
||||
public readonly FuncBinaryInstruction INotEqual;
|
||||
|
||||
// CompareU32
|
||||
public readonly FuncBinaryInstruction UGreaterThanEqual;
|
||||
public readonly FuncBinaryInstruction UGreaterThan;
|
||||
public readonly FuncBinaryInstruction ULessThanEqual;
|
||||
public readonly FuncBinaryInstruction ULessThan;
|
||||
|
||||
// Binary
|
||||
public readonly FuncBinaryInstruction FAdd;
|
||||
public readonly FuncBinaryInstruction IAdd;
|
||||
public readonly FuncBinaryInstruction FDiv;
|
||||
public readonly FuncBinaryInstruction SDiv;
|
||||
public readonly FuncBinaryInstruction GlslFMax;
|
||||
public readonly FuncBinaryInstruction GlslSMax;
|
||||
public readonly FuncBinaryInstruction GlslFMin;
|
||||
public readonly FuncBinaryInstruction GlslSMin;
|
||||
public readonly FuncBinaryInstruction FMul;
|
||||
public readonly FuncBinaryInstruction IMul;
|
||||
public readonly FuncBinaryInstruction FSub;
|
||||
public readonly FuncBinaryInstruction ISub;
|
||||
|
||||
// BinaryBool
|
||||
public readonly FuncBinaryInstruction LogicalAnd;
|
||||
public readonly FuncBinaryInstruction LogicalNotEqual;
|
||||
public readonly FuncBinaryInstruction LogicalOr;
|
||||
|
||||
// BinaryS32
|
||||
public readonly FuncBinaryInstruction BitwiseAnd;
|
||||
public readonly FuncBinaryInstruction BitwiseXor;
|
||||
public readonly FuncBinaryInstruction BitwiseOr;
|
||||
public readonly FuncBinaryInstruction ShiftLeftLogical;
|
||||
public readonly FuncBinaryInstruction ShiftRightArithmetic;
|
||||
public readonly FuncBinaryInstruction ShiftRightLogical;
|
||||
|
||||
// BinaryU32
|
||||
public readonly FuncBinaryInstruction GlslUMax;
|
||||
public readonly FuncBinaryInstruction GlslUMin;
|
||||
|
||||
// AtomicMemoryBinary
|
||||
public readonly FuncQuaternaryInstruction AtomicIAdd;
|
||||
public readonly FuncQuaternaryInstruction AtomicAnd;
|
||||
public readonly FuncQuaternaryInstruction AtomicSMin;
|
||||
public readonly FuncQuaternaryInstruction AtomicUMin;
|
||||
public readonly FuncQuaternaryInstruction AtomicSMax;
|
||||
public readonly FuncQuaternaryInstruction AtomicUMax;
|
||||
public readonly FuncQuaternaryInstruction AtomicOr;
|
||||
public readonly FuncQuaternaryInstruction AtomicExchange;
|
||||
public readonly FuncQuaternaryInstruction AtomicXor;
|
||||
|
||||
// Ternary
|
||||
public readonly FuncTernaryInstruction GlslFClamp;
|
||||
public readonly FuncTernaryInstruction GlslSClamp;
|
||||
public readonly FuncTernaryInstruction GlslFma;
|
||||
|
||||
// TernaryS32
|
||||
public readonly FuncTernaryInstruction BitFieldSExtract;
|
||||
public readonly FuncTernaryInstruction BitFieldUExtract;
|
||||
|
||||
// TernaryU32
|
||||
public readonly FuncTernaryInstruction GlslUClamp;
|
||||
|
||||
// QuaternaryS32
|
||||
public readonly FuncQuaternaryInstruction BitFieldInsert;
|
||||
|
||||
public SpirvDelegates(CodeGenContext context)
|
||||
{
|
||||
// Unary
|
||||
GlslFAbs = context.GlslFAbs;
|
||||
GlslSAbs = context.GlslSAbs;
|
||||
GlslCeil = context.GlslCeil;
|
||||
GlslCos = context.GlslCos;
|
||||
GlslExp2 = context.GlslExp2;
|
||||
GlslFloor = context.GlslFloor;
|
||||
GlslLog2 = context.GlslLog2;
|
||||
FNegate = context.FNegate;
|
||||
SNegate = context.SNegate;
|
||||
GlslInverseSqrt = context.GlslInverseSqrt;
|
||||
GlslRoundEven = context.GlslRoundEven;
|
||||
GlslSin = context.GlslSin;
|
||||
GlslSqrt = context.GlslSqrt;
|
||||
GlslTrunc = context.GlslTrunc;
|
||||
|
||||
// UnaryBool
|
||||
LogicalNot = context.LogicalNot;
|
||||
|
||||
// UnaryFP32
|
||||
DPdx = context.DPdx;
|
||||
DPdy = context.DPdy;
|
||||
|
||||
// UnaryS32
|
||||
BitCount = context.BitCount;
|
||||
BitReverse = context.BitReverse;
|
||||
Not = context.Not;
|
||||
|
||||
// Compare
|
||||
FOrdEqual = context.FOrdEqual;
|
||||
IEqual = context.IEqual;
|
||||
FOrdGreaterThan = context.FOrdGreaterThan;
|
||||
SGreaterThan = context.SGreaterThan;
|
||||
FOrdGreaterThanEqual = context.FOrdGreaterThanEqual;
|
||||
SGreaterThanEqual = context.SGreaterThanEqual;
|
||||
FOrdLessThan = context.FOrdLessThan;
|
||||
SLessThan = context.SLessThan;
|
||||
FOrdLessThanEqual = context.FOrdLessThanEqual;
|
||||
SLessThanEqual = context.SLessThanEqual;
|
||||
FOrdNotEqual = context.FOrdNotEqual;
|
||||
INotEqual = context.INotEqual;
|
||||
|
||||
// CompareU32
|
||||
UGreaterThanEqual = context.UGreaterThanEqual;
|
||||
UGreaterThan = context.UGreaterThan;
|
||||
ULessThanEqual = context.ULessThanEqual;
|
||||
ULessThan = context.ULessThan;
|
||||
|
||||
// Binary
|
||||
FAdd = context.FAdd;
|
||||
IAdd = context.IAdd;
|
||||
FDiv = context.FDiv;
|
||||
SDiv = context.SDiv;
|
||||
GlslFMax = context.GlslFMax;
|
||||
GlslSMax = context.GlslSMax;
|
||||
GlslFMin = context.GlslFMin;
|
||||
GlslSMin = context.GlslSMin;
|
||||
FMul = context.FMul;
|
||||
IMul = context.IMul;
|
||||
FSub = context.FSub;
|
||||
ISub = context.ISub;
|
||||
|
||||
// BinaryBool
|
||||
LogicalAnd = context.LogicalAnd;
|
||||
LogicalNotEqual = context.LogicalNotEqual;
|
||||
LogicalOr = context.LogicalOr;
|
||||
|
||||
// BinaryS32
|
||||
BitwiseAnd = context.BitwiseAnd;
|
||||
BitwiseXor = context.BitwiseXor;
|
||||
BitwiseOr = context.BitwiseOr;
|
||||
ShiftLeftLogical = context.ShiftLeftLogical;
|
||||
ShiftRightArithmetic = context.ShiftRightArithmetic;
|
||||
ShiftRightLogical = context.ShiftRightLogical;
|
||||
|
||||
// BinaryU32
|
||||
GlslUMax = context.GlslUMax;
|
||||
GlslUMin = context.GlslUMin;
|
||||
|
||||
// AtomicMemoryBinary
|
||||
AtomicIAdd = context.AtomicIAdd;
|
||||
AtomicAnd = context.AtomicAnd;
|
||||
AtomicSMin = context.AtomicSMin;
|
||||
AtomicUMin = context.AtomicUMin;
|
||||
AtomicSMax = context.AtomicSMax;
|
||||
AtomicUMax = context.AtomicUMax;
|
||||
AtomicOr = context.AtomicOr;
|
||||
AtomicExchange = context.AtomicExchange;
|
||||
AtomicXor = context.AtomicXor;
|
||||
|
||||
// Ternary
|
||||
GlslFClamp = context.GlslFClamp;
|
||||
GlslSClamp = context.GlslSClamp;
|
||||
GlslFma = context.GlslFma;
|
||||
|
||||
// TernaryS32
|
||||
BitFieldSExtract = context.BitFieldSExtract;
|
||||
BitFieldUExtract = context.BitFieldUExtract;
|
||||
|
||||
// TernaryU32
|
||||
GlslUClamp = context.GlslUClamp;
|
||||
|
||||
// QuaternaryS32
|
||||
BitFieldInsert = context.BitFieldInsert;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue