aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2020-09-01 15:07:20 -0300
committerGitHub <noreply@github.com>2020-09-01 15:07:20 -0300
commit3d294a9a6ccf5c620e328bfd87a8cf354b6af227 (patch)
treea79659ceb06811ff6685422db51bfd61da8d242f
parent3ec911a6300a664ae9c5360195b3f65e017e4353 (diff)
Fix PSL and MRG flags on XMAD cbuf-reg shader instruction (#1520)
-rw-r--r--Ryujinx.Graphics.Shader/Instructions/InstEmitAlu.cs7
1 files changed, 6 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitAlu.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitAlu.cs
index e55f1f32..b883edc1 100644
--- a/Ryujinx.Graphics.Shader/Instructions/InstEmitAlu.cs
+++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitAlu.cs
@@ -674,7 +674,12 @@ namespace Ryujinx.Graphics.Shader.Instructions
bool productShiftLeft = false;
bool merge = false;
- if (!(op is OpCodeAluRegCbuf))
+ if (op is OpCodeAluCbuf)
+ {
+ productShiftLeft = context.CurrOp.RawOpCode.Extract(55);
+ merge = context.CurrOp.RawOpCode.Extract(56);
+ }
+ else if (!(op is OpCodeAluRegCbuf))
{
productShiftLeft = context.CurrOp.RawOpCode.Extract(36);
merge = context.CurrOp.RawOpCode.Extract(37);