aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Translation
diff options
context:
space:
mode:
authorgdk <gab.dark.100@gmail.com>2019-10-27 17:51:33 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit3bcc395253e020df40763d36ba9401b126b17173 (patch)
treec172daab458b1447d7aa69832fd10068bc9ca1b6 /Ryujinx.Graphics.Shader/Translation
parentd3fcab85112708707eacc4c71a8362b9c178218d (diff)
Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation')
-rw-r--r--Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs15
1 files changed, 10 insertions, 5 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
index f0bede18..7d64e7ca 100644
--- a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
+++ b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
@@ -171,6 +171,11 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.FP | Instruction.Floor, Local(), a);
}
+ public static Operand FPFusedMultiplyAdd(this EmitterContext context, Operand a, Operand b, Operand c)
+ {
+ return context.Add(Instruction.FusedMultiplyAdd, Local(), a, b, c);
+ }
+
public static Operand FPLogarithmB2(this EmitterContext context, Operand a)
{
return context.Add(Instruction.FP | Instruction.LogarithmB2, Local(), a);
@@ -191,11 +196,6 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.FP | Instruction.Multiply, Local(), a, b);
}
- public static Operand FPFusedMultiplyAdd(this EmitterContext context, Operand a, Operand b, Operand c)
- {
- return context.Add(Instruction.FusedMultiplyAdd, Local(), a, b, c);
- }
-
public static Operand FPNegate(this EmitterContext context, Operand a, bool neg)
{
if (neg)
@@ -221,6 +221,11 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.FP | Instruction.ReciprocalSquareRoot, Local(), a);
}
+ public static Operand FPRound(this EmitterContext context, Operand a)
+ {
+ return context.Add(Instruction.FP | Instruction.Round, Local(), a);
+ }
+
public static Operand FPSaturate(this EmitterContext context, Operand a, bool sat)
{
if (sat)