From 8cba252b238ee6cf6599ad2fc57793e6f76c5e2e Mon Sep 17 00:00:00 2001 From: gdk Date: Sat, 26 Oct 2019 14:50:52 -0300 Subject: Add per-source type memory change tracking, simplified state change tracking, other fixes --- Ryujinx.Graphics.Shader/Instructions/InstEmitMove.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Ryujinx.Graphics.Shader/Instructions') diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitMove.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitMove.cs index f66ebc9f..b9bb18d9 100644 --- a/Ryujinx.Graphics.Shader/Instructions/InstEmitMove.cs +++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitMove.cs @@ -27,6 +27,20 @@ namespace Ryujinx.Graphics.Shader.Instructions switch (sysReg) { + case SystemRegister.ThreadId: + { + Operand tidX = Attribute(AttributeConsts.ThreadIdX); + Operand tidY = Attribute(AttributeConsts.ThreadIdY); + Operand tidZ = Attribute(AttributeConsts.ThreadIdZ); + + tidY = context.ShiftLeft(tidY, Const(16)); + tidZ = context.ShiftLeft(tidZ, Const(26)); + + src = context.BitwiseOr(tidX, context.BitwiseOr(tidY, tidZ)); + + break; + } + case SystemRegister.ThreadIdX: src = Attribute(AttributeConsts.ThreadIdX); break; case SystemRegister.ThreadIdY: src = Attribute(AttributeConsts.ThreadIdY); break; case SystemRegister.ThreadIdZ: src = Attribute(AttributeConsts.ThreadIdZ); break; -- cgit v1.2.3