aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Translation
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2019-12-14 14:51:00 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit2eccc7023ae0d1247378516b14507d422e4915c5 (patch)
tree8ae9a8905394717347a775997ae0347483a9b0d8 /Ryujinx.Graphics.Shader/Translation
parent1a550e810c71670e5a2f032ec136fb2f5f57ac9c (diff)
Partial support for shader memory barriers
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation')
-rw-r--r--Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs15
1 files changed, 15 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
index e39d8c64..14675a55 100644
--- a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
+++ b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
@@ -61,6 +61,11 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.Ballot, Local(), a);
}
+ public static Operand Barrier(this EmitterContext context)
+ {
+ return context.Add(Instruction.Barrier);
+ }
+
public static Operand BitCount(this EmitterContext context, Operand a)
{
return context.Add(Instruction.BitCount, Local(), a);
@@ -336,6 +341,11 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.SwizzleAdd, Local(), a, b, Const(mask));
}
+ public static Operand GroupMemoryBarrier(this EmitterContext context)
+ {
+ return context.Add(Instruction.GroupMemoryBarrier);
+ }
+
public static Operand IAbsNeg(this EmitterContext context, Operand a, bool abs, bool neg)
{
return context.INegate(context.IAbsolute(a, abs), neg);
@@ -476,6 +486,11 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.LoadShared, Local(), a);
}
+ public static Operand MemoryBarrier(this EmitterContext context)
+ {
+ return context.Add(Instruction.MemoryBarrier);
+ }
+
public static Operand MultiplyHighS32(this EmitterContext context, Operand a, Operand b)
{
return context.Add(Instruction.MultiplyHighS32, Local(), a, b);