aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/Gpu/NvGpu.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/Gpu/NvGpu.cs')
-rw-r--r--Ryujinx.HLE/Gpu/NvGpu.cs45
1 files changed, 45 insertions, 0 deletions
diff --git a/Ryujinx.HLE/Gpu/NvGpu.cs b/Ryujinx.HLE/Gpu/NvGpu.cs
new file mode 100644
index 00000000..1e433fa4
--- /dev/null
+++ b/Ryujinx.HLE/Gpu/NvGpu.cs
@@ -0,0 +1,45 @@
+using Ryujinx.Graphics.Gal;
+using System.Threading;
+
+namespace Ryujinx.HLE.Gpu
+{
+ class NvGpu
+ {
+ public IGalRenderer Renderer { get; private set; }
+
+ public NvGpuFifo Fifo { get; private set; }
+
+ public NvGpuEngine2d Engine2d { get; private set; }
+ public NvGpuEngine3d Engine3d { get; private set; }
+
+ private Thread FifoProcessing;
+
+ private bool KeepRunning;
+
+ public NvGpu(IGalRenderer Renderer)
+ {
+ this.Renderer = Renderer;
+
+ Fifo = new NvGpuFifo(this);
+
+ Engine2d = new NvGpuEngine2d(this);
+ Engine3d = new NvGpuEngine3d(this);
+
+ KeepRunning = true;
+
+ FifoProcessing = new Thread(ProcessFifo);
+
+ FifoProcessing.Start();
+ }
+
+ private void ProcessFifo()
+ {
+ while (KeepRunning)
+ {
+ Fifo.DispatchCalls();
+
+ Thread.Yield();
+ }
+ }
+ }
+} \ No newline at end of file