aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.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/MME/IMacroEE.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/MME/IMacroEE.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.cs29
1 files changed, 28 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.cs b/Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.cs
index b957de08..640687f0 100644
--- a/Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/MME/IMacroEE.cs
@@ -5,6 +5,33 @@ using System.Collections.Generic;
namespace Ryujinx.Graphics.Gpu.Engine.MME
{
/// <summary>
+ /// FIFO word.
+ /// </summary>
+ struct FifoWord
+ {
+ /// <summary>
+ /// GPU virtual address where the word is located in memory.
+ /// </summary>
+ public ulong GpuVa { get; }
+
+ /// <summary>
+ /// Word value.
+ /// </summary>
+ public int Word { get; }
+
+ /// <summary>
+ /// Creates a new FIFO word.
+ /// </summary>
+ /// <param name="gpuVa">GPU virtual address where the word is located in memory</param>
+ /// <param name="word">Word value</param>
+ public FifoWord(ulong gpuVa, int word)
+ {
+ GpuVa = gpuVa;
+ Word = word;
+ }
+ }
+
+ /// <summary>
/// Macro Execution Engine interface.
/// </summary>
interface IMacroEE
@@ -12,7 +39,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.MME
/// <summary>
/// Arguments FIFO.
/// </summary>
- Queue<int> Fifo { get; }
+ Queue<FifoWord> Fifo { get; }
/// <summary>
/// Should execute the GPU Macro code being passed.