| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using Ryujinx.Graphics.Gal;
- using Ryujinx.Graphics.Graphics3d;
- using Ryujinx.Graphics.Memory;
- using Ryujinx.Graphics.VDec;
- using Ryujinx.Graphics.Vic;
- namespace Ryujinx.Graphics
- {
- public class NvGpu
- {
- public const int MaxViewportSize = 0x3FFF;
- public IGalRenderer Renderer { get; private set; }
- public GpuResourceManager ResourceManager { get; private set; }
- public DmaPusher Pusher { get; private set; }
- internal NvGpuFifo Fifo { get; private set; }
- internal NvGpuEngine2d Engine2d { get; private set; }
- internal NvGpuEngine3d Engine3d { get; private set; }
- 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)
- {
- Renderer = renderer;
- ResourceManager = new GpuResourceManager(this);
- Pusher = new DmaPusher(this);
- Fifo = new NvGpuFifo(this);
- Engine2d = new NvGpuEngine2d(this);
- 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();
- }
- }
- }
- }
|