Use multiple dest operands for shader call instructions (#1975)

* Use multiple dest operands for shader call instructions

* Passing opNode is no longer needed
This commit is contained in:
gdkchan 2021-01-31 21:13:38 -03:00 committed by GitHub
parent f93089a64f
commit 053dcfdb05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 40 additions and 45 deletions

View file

@ -289,7 +289,6 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
case Instruction.AtomicSwap:
case Instruction.AtomicXor:
case Instruction.Call:
case Instruction.CallOutArgument:
return true;
}
}
@ -306,7 +305,9 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
for (int index = 0; index < node.DestsCount; index++)
{
if (node.GetDest(index).Type != OperandType.LocalVariable)
Operand dest = node.GetDest(index);
if (dest != null && dest.Type != OperandType.LocalVariable)
{
return false;
}
@ -319,7 +320,9 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
{
for (int index = 0; index < node.DestsCount; index++)
{
if (node.GetDest(index).UseOps.Count != 0)
Operand dest = node.GetDest(index);
if (dest != null && dest.UseOps.Count != 0)
{
return false;
}