New GPFifo and fast guest constant buffer updates (#1400)

* Add new structures from official docs, start migrating GPFifo

* Finish migration to new GPFifo processor

* Implement fast constant buffer data upload

* Migrate to new GPFifo class

* XML docs
This commit is contained in:
gdkchan 2020-07-23 23:53:25 -03:00 committed by GitHub
parent 3c1f220c5e
commit 5a7df48975
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 958 additions and 702 deletions

View file

@ -1,5 +1,6 @@
using Ryujinx.Graphics.GAL;
using Ryujinx.Graphics.Gpu.Engine;
using Ryujinx.Graphics.Gpu.Engine.GPFifo;
using Ryujinx.Graphics.Gpu.Memory;
using Ryujinx.Graphics.Gpu.Synchronization;
using System;
@ -37,14 +38,9 @@ namespace Ryujinx.Graphics.Gpu
internal Methods Methods { get; }
/// <summary>
/// GPU commands FIFO.
/// GPU General Purpose FIFO queue.
/// </summary>
internal NvGpuFifo Fifo { get; }
/// <summary>
/// DMA pusher.
/// </summary>
public DmaPusher DmaPusher { get; }
public GPFifoDevice GPFifo { get; }
/// <summary>
/// GPU synchronization manager.
@ -83,9 +79,7 @@ namespace Ryujinx.Graphics.Gpu
Methods = new Methods(this);
Fifo = new NvGpuFifo(this);
DmaPusher = new DmaPusher(this);
GPFifo = new GPFifoDevice(this);
Synchronization = new SynchronizationManager();
@ -125,6 +119,7 @@ namespace Ryujinx.Graphics.Gpu
Methods.BufferManager.Dispose();
Methods.TextureManager.Dispose();
Renderer.Dispose();
GPFifo.Dispose();
}
}
}