Ryujinx/Ryujinx.HLE/Gpu/NvGpu.cs

47 lines
1.1 KiB
C#
Raw Normal View History

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; }
2018-06-13 15:55:01 +02:00
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);
2018-06-13 15:55:01 +02:00
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();
}
}
}
}