| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using Ryujinx.Graphics.GAL;
- using Ryujinx.Graphics.Gpu.Engine;
- using Ryujinx.Graphics.Gpu.Memory;
- using System;
- namespace Ryujinx.Graphics.Gpu
- {
- public class GpuContext
- {
- public IRenderer Renderer { get; }
- internal IPhysicalMemory PhysicalMemory { get; private set; }
- public MemoryManager MemoryManager { get; }
- internal MemoryAccessor MemoryAccessor { get; }
- internal Methods Methods { get; }
- internal NvGpuFifo Fifo { get; }
- public DmaPusher DmaPusher { get; }
- public Window Window { get; }
- internal int SequenceNumber { get; private set; }
- private Lazy<Capabilities> _caps;
- internal Capabilities Capabilities => _caps.Value;
- public GpuContext(IRenderer renderer)
- {
- Renderer = renderer;
- MemoryManager = new MemoryManager();
- MemoryAccessor = new MemoryAccessor(this);
- Methods = new Methods(this);
- Fifo = new NvGpuFifo(this);
- DmaPusher = new DmaPusher(this);
- Window = new Window(this);
- _caps = new Lazy<Capabilities>(Renderer.GetCapabilities);
- }
- internal void AdvanceSequence()
- {
- SequenceNumber++;
- }
- public void SetVmm(IPhysicalMemory mm)
- {
- PhysicalMemory = mm;
- }
- }
- }
|