aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/NvGpu.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics/NvGpu.cs')
-rw-r--r--Ryujinx.Graphics/NvGpu.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/Ryujinx.Graphics/NvGpu.cs b/Ryujinx.Graphics/NvGpu.cs
index 6989be98..3fd91f74 100644
--- a/Ryujinx.Graphics/NvGpu.cs
+++ b/Ryujinx.Graphics/NvGpu.cs
@@ -1,4 +1,8 @@
using Ryujinx.Graphics.Gal;
+using Ryujinx.Graphics.Graphics3d;
+using Ryujinx.Graphics.Memory;
+using Ryujinx.Graphics.VDec;
+using Ryujinx.Graphics.Vic;
namespace Ryujinx.Graphics
{
@@ -16,6 +20,10 @@ namespace Ryujinx.Graphics
internal NvGpuEngineM2mf EngineM2mf { get; private set; }
internal NvGpuEngineP2mf EngineP2mf { get; private set; }
+ private CdmaProcessor CdmaProcessor;
+ internal VideoDecoder VideoDecoder { get; private set; }
+ internal VideoImageComposer VideoImageComposer { get; private set; }
+
public NvGpu(IGalRenderer Renderer)
{
this.Renderer = Renderer;
@@ -29,6 +37,26 @@ namespace Ryujinx.Graphics
Engine3d = new NvGpuEngine3d(this);
EngineM2mf = new NvGpuEngineM2mf(this);
EngineP2mf = new NvGpuEngineP2mf(this);
+
+ CdmaProcessor = new CdmaProcessor(this);
+ VideoDecoder = new VideoDecoder(this);
+ VideoImageComposer = new VideoImageComposer(this);
+ }
+
+ public void PushCommandBuffer(NvGpuVmm Vmm, int[] CmdBuffer)
+ {
+ lock (CdmaProcessor)
+ {
+ CdmaProcessor.PushCommands(Vmm, CmdBuffer);
+ }
+ }
+
+ public void UninitializeVideoDecoder()
+ {
+ lock (CdmaProcessor)
+ {
+ FFmpegWrapper.Uninitialize();
+ }
}
}
} \ No newline at end of file