aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/IntermediateRepresentation
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Shader/IntermediateRepresentation')
-rw-r--r--Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs6
-rw-r--r--Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandHelper.cs5
-rw-r--r--Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandType.cs9
3 files changed, 20 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs
index b0db56f0..03badec9 100644
--- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs
+++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs
@@ -161,5 +161,11 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
return false;
}
+
+ public static bool IsTextureQuery(this Instruction inst)
+ {
+ inst &= Instruction.Mask;
+ return inst == Instruction.Lod || inst == Instruction.TextureSize;
+ }
}
} \ No newline at end of file
diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandHelper.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandHelper.cs
index 221e278f..7fed861e 100644
--- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandHelper.cs
+++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandHelper.cs
@@ -15,6 +15,11 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
return new Operand(OperandType.Attribute, value);
}
+ public static Operand AttributePerPatch(int value)
+ {
+ return new Operand(OperandType.AttributePerPatch, value);
+ }
+
public static Operand Cbuf(int slot, int offset)
{
return new Operand(slot, offset);
diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandType.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandType.cs
index 3427b103..7566a03f 100644
--- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandType.cs
+++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/OperandType.cs
@@ -4,6 +4,7 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
{
Argument,
Attribute,
+ AttributePerPatch,
Constant,
ConstantBuffer,
Label,
@@ -11,4 +12,12 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
Register,
Undefined
}
+
+ static class OperandTypeExtensions
+ {
+ public static bool IsAttribute(this OperandType type)
+ {
+ return type == OperandType.Attribute || type == OperandType.AttributePerPatch;
+ }
+ }
} \ No newline at end of file