47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
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; }
|
|
public NvGpuEngineDma EngineDma { 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);
|
|
EngineDma = new NvGpuEngineDma(this);
|
|
|
|
KeepRunning = true;
|
|
|
|
FifoProcessing = new Thread(ProcessFifo);
|
|
|
|
FifoProcessing.Start();
|
|
}
|
|
|
|
private void ProcessFifo()
|
|
{
|
|
while (KeepRunning)
|
|
{
|
|
Fifo.DispatchCalls();
|
|
|
|
Thread.Yield();
|
|
}
|
|
}
|
|
}
|
|
}
|