From 2eccc7023ae0d1247378516b14507d422e4915c5 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 14 Dec 2019 14:51:00 -0300 Subject: Partial support for shader memory barriers --- .../Translation/EmitterContextInsts.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Ryujinx.Graphics.Shader/Translation') 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); -- cgit v1.2.3