aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs
diff options
context:
space:
mode:
authormpnico <mpnico@gmail.com>2021-08-26 23:50:28 +0200
committerGitHub <noreply@github.com>2021-08-26 23:50:28 +0200
commit8e1adb95cf7f67b976f105f4cac26d3ff2986057 (patch)
treef56ee0f92495fc1bd1e307c3bd51a2d1240d197b /Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs
parent5cab8ea4ad2388bd035150e79f241ae5df95ab3b (diff)
Add support for HLE macros and accelerate MultiDrawElementsIndirectCount #2 (#2557)
* Add support for HLE macros and accelerate MultiDrawElementsIndirectCount * Add missing barrier * Fix index buffer count * Add support check for each macro hle before use * Add missing xml doc Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs9
1 files changed, 6 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs
index 28822f4e..fe49b0f2 100644
--- a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoClass.cs
@@ -161,6 +161,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo
/// <param name="argument">Method call argument</param>
public void SetReference(int argument)
{
+ _context.Renderer.Pipeline.CommandBufferBarrier();
+
_context.CreateHostSyncIfNeeded();
}
@@ -195,10 +197,11 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo
/// Pushes an argument to a macro.
/// </summary>
/// <param name="index">Index of the macro</param>
+ /// <param name="gpuVa">GPU virtual address where the command word is located</param>
/// <param name="argument">Argument to be pushed to the macro</param>
- public void MmePushArgument(int index, int argument)
+ public void MmePushArgument(int index, ulong gpuVa, int argument)
{
- _macros[index].PushArgument(argument);
+ _macros[index].PushArgument(gpuVa, argument);
}
/// <summary>
@@ -208,7 +211,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo
/// <param name="argument">Initial argument passed to the macro</param>
public void MmeStart(int index, int argument)
{
- _macros[index].StartExecution(argument);
+ _macros[index].StartExecution(_context, _parent, _macroCode, argument);
}
/// <summary>