diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2019-12-31 17:08:20 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | f7bcc884e46805f4dcda4fc7d7e7bccb2a3ac316 (patch) | |
| tree | 2a96d49db5bfb9e2e18b2bce1287a2f6dce8abc1 /Ryujinx.Graphics.Gpu/GpuContext.cs | |
| parent | 4a4e2f7c72301ba1dfb207f00c7c2fa0e9674223 (diff) | |
Add XML documentation to Ryujinx.Graphics.Gpu
Diffstat (limited to 'Ryujinx.Graphics.Gpu/GpuContext.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/GpuContext.cs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Gpu/GpuContext.cs b/Ryujinx.Graphics.Gpu/GpuContext.cs index bb172c9e..d68dd2c0 100644 --- a/Ryujinx.Graphics.Gpu/GpuContext.cs +++ b/Ryujinx.Graphics.Gpu/GpuContext.cs @@ -5,30 +5,68 @@ using System; namespace Ryujinx.Graphics.Gpu { + /// <summary> + /// GPU emulation context. + /// </summary> public class GpuContext { + /// <summary> + /// Host renderer. + /// </summary> public IRenderer Renderer { get; } + /// <summary> + /// Physical memory access (it actually accesses the process memory, not actual physical memory). + /// </summary> internal PhysicalMemory PhysicalMemory { get; private set; } + /// <summary> + /// GPU memory manager. + /// </summary> public MemoryManager MemoryManager { get; } + /// <summary> + /// GPU memory accessor. + /// </summary> internal MemoryAccessor MemoryAccessor { get; } + /// <summary> + /// GPU engine methods processing. + /// </summary> internal Methods Methods { get; } + /// <summary> + /// GPU commands FIFO. + /// </summary> internal NvGpuFifo Fifo { get; } + /// <summary> + /// DMA pusher. + /// </summary> public DmaPusher DmaPusher { get; } + /// <summary> + /// Presentation window. + /// </summary> public Window Window { get; } + /// <summary> + /// Internal sequence number, used to avoid needless resource data updates + /// in the middle of a command buffer before synchronizations. + /// </summary> internal int SequenceNumber { get; private set; } private readonly Lazy<Capabilities> _caps; + /// <summary> + /// Host hardware capabilities. + /// </summary> internal Capabilities Capabilities => _caps.Value; + /// <summary> + /// Creates a new instance of the GPU emulation context. + /// </summary> + /// <param name="renderer">Host renderer</param> public GpuContext(IRenderer renderer) { Renderer = renderer; @@ -48,11 +86,20 @@ namespace Ryujinx.Graphics.Gpu _caps = new Lazy<Capabilities>(Renderer.GetCapabilities); } + /// <summary> + /// Advances internal sequence number. + /// This forces the update of any modified GPU resource. + /// </summary> internal void AdvanceSequence() { SequenceNumber++; } + /// <summary> + /// Sets the process memory manager, after the application process is initialized. + /// This is required for any GPU memory access. + /// </summary> + /// <param name="cpuMemory">CPU memory manager</param> public void SetVmm(ARMeilleure.Memory.MemoryManager cpuMemory) { PhysicalMemory = new PhysicalMemory(cpuMemory); |
