mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-06-28 03:16:23 +02:00

* dotnet format style --severity info Some changes were manually reverted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Silence dotnet format IDE0059 warnings * Address or silence dotnet format CA1069 warnings * Address or silence dotnet format CA2211 warnings * Address review comments * Fix formatting for switch expressions * 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 whitespace after rebase * Run dotnet format style after rebase * Run dotnet format whitespace after rebase * Run dotnet format style 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 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 * Run dotnet format after rebase * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Run dotnet format after rebase * 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 * Add trailing commas * Remove unused members and most unnecessary value assignments * Remove more unnecessary assignments * Remove NRE suppressor
166 lines
3.7 KiB
C#
166 lines
3.7 KiB
C#
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
|
|
{
|
|
[Flags]
|
|
[SuppressMessage("Design", "CA1069: Enums values should not be duplicated")]
|
|
enum Instruction
|
|
{
|
|
Absolute = 1,
|
|
Add,
|
|
AtomicAdd,
|
|
AtomicAnd,
|
|
AtomicCompareAndSwap,
|
|
AtomicMinS32,
|
|
AtomicMinU32,
|
|
AtomicMaxS32,
|
|
AtomicMaxU32,
|
|
AtomicOr,
|
|
AtomicSwap,
|
|
AtomicXor,
|
|
Ballot,
|
|
Barrier,
|
|
BitCount,
|
|
BitfieldExtractS32,
|
|
BitfieldExtractU32,
|
|
BitfieldInsert,
|
|
BitfieldReverse,
|
|
BitwiseAnd,
|
|
BitwiseExclusiveOr,
|
|
BitwiseNot,
|
|
BitwiseOr,
|
|
Branch,
|
|
BranchIfFalse,
|
|
BranchIfTrue,
|
|
Call,
|
|
Ceiling,
|
|
Clamp,
|
|
ClampU32,
|
|
Comment,
|
|
CompareEqual,
|
|
CompareGreater,
|
|
CompareGreaterOrEqual,
|
|
CompareGreaterOrEqualU32,
|
|
CompareGreaterU32,
|
|
CompareLess,
|
|
CompareLessOrEqual,
|
|
CompareLessOrEqualU32,
|
|
CompareLessU32,
|
|
CompareNotEqual,
|
|
ConditionalSelect,
|
|
ConvertFP32ToFP64,
|
|
ConvertFP64ToFP32,
|
|
ConvertFP32ToS32,
|
|
ConvertFP32ToU32,
|
|
ConvertFP64ToS32,
|
|
ConvertFP64ToU32,
|
|
ConvertS32ToFP32,
|
|
ConvertS32ToFP64,
|
|
ConvertU32ToFP32,
|
|
ConvertU32ToFP64,
|
|
Copy,
|
|
Cosine,
|
|
Ddx,
|
|
Ddy,
|
|
Discard,
|
|
Divide,
|
|
EmitVertex,
|
|
EndPrimitive,
|
|
ExponentB2,
|
|
FSIBegin,
|
|
FSIEnd,
|
|
FindLSB,
|
|
FindMSBS32,
|
|
FindMSBU32,
|
|
Floor,
|
|
FusedMultiplyAdd,
|
|
GroupMemoryBarrier,
|
|
ImageLoad,
|
|
ImageStore,
|
|
ImageAtomic,
|
|
IsNan,
|
|
Load,
|
|
Lod,
|
|
LogarithmB2,
|
|
LogicalAnd,
|
|
LogicalExclusiveOr,
|
|
LogicalNot,
|
|
LogicalOr,
|
|
LoopBreak,
|
|
LoopContinue,
|
|
MarkLabel,
|
|
Maximum,
|
|
MaximumU32,
|
|
MemoryBarrier,
|
|
Minimum,
|
|
MinimumU32,
|
|
Modulo,
|
|
Multiply,
|
|
MultiplyHighS32,
|
|
MultiplyHighU32,
|
|
Negate,
|
|
PackDouble2x32,
|
|
PackHalf2x16,
|
|
ReciprocalSquareRoot,
|
|
Return,
|
|
Round,
|
|
ShiftLeft,
|
|
ShiftRightS32,
|
|
ShiftRightU32,
|
|
Shuffle,
|
|
ShuffleDown,
|
|
ShuffleUp,
|
|
ShuffleXor,
|
|
Sine,
|
|
SquareRoot,
|
|
Store,
|
|
Subtract,
|
|
SwizzleAdd,
|
|
TextureSample,
|
|
TextureSize,
|
|
Truncate,
|
|
UnpackDouble2x32,
|
|
UnpackHalf2x16,
|
|
VectorExtract,
|
|
VoteAll,
|
|
VoteAllEqual,
|
|
VoteAny,
|
|
|
|
Count,
|
|
|
|
FP32 = 1 << 16,
|
|
FP64 = 1 << 17,
|
|
|
|
Mask = 0xffff,
|
|
}
|
|
|
|
static class InstructionExtensions
|
|
{
|
|
public static bool IsAtomic(this Instruction inst)
|
|
{
|
|
switch (inst & Instruction.Mask)
|
|
{
|
|
case Instruction.AtomicAdd:
|
|
case Instruction.AtomicAnd:
|
|
case Instruction.AtomicCompareAndSwap:
|
|
case Instruction.AtomicMaxS32:
|
|
case Instruction.AtomicMaxU32:
|
|
case Instruction.AtomicMinS32:
|
|
case Instruction.AtomicMinU32:
|
|
case Instruction.AtomicOr:
|
|
case Instruction.AtomicSwap:
|
|
case Instruction.AtomicXor:
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static bool IsTextureQuery(this Instruction inst)
|
|
{
|
|
inst &= Instruction.Mask;
|
|
return inst == Instruction.Lod || inst == Instruction.TextureSize;
|
|
}
|
|
}
|
|
}
|