diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2021-07-07 20:56:06 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-07 20:56:06 -0300 |
| commit | 8b44eb1c981d7106be37107755c7c71c3c3c0ce4 (patch) | |
| tree | 70c3a8d7286d827941c41dee2ec3cb3273c1e6d7 /Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs | |
| parent | 31cbd09a75a9d5f4814c3907a060e0961eb2bb15 (diff) | |
Separate GPU engines and make state follow official docs (part 1/2) (#2422)
* Use DeviceState for compute and i2m
* Migrate 2D class, more comments
* Migrate DMA copy engine
* Remove now unused code
* Replace GpuState by GpuAccessorState on GpuAcessor, since compute no longer has a GpuState
* More comments
* Add logging (disabled)
* Add back i2m on 3D engine
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs index c683d179..d12b6810 100644 --- a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs +++ b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs @@ -1,4 +1,9 @@ -using Ryujinx.Graphics.Gpu.Memory; +using Ryujinx.Graphics.Device; +using Ryujinx.Graphics.Gpu.Engine.Compute; +using Ryujinx.Graphics.Gpu.Engine.Dma; +using Ryujinx.Graphics.Gpu.Engine.InlineToMemory; +using Ryujinx.Graphics.Gpu.Engine.Twod; +using Ryujinx.Graphics.Gpu.Memory; using Ryujinx.Graphics.Gpu.State; using System; using System.Runtime.CompilerServices; @@ -33,6 +38,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo private DmaState _state; private readonly GpuState[] _subChannels; + private readonly IDeviceState[] _subChannels2; private readonly GPFifoClass _fifoClass; /// <summary> @@ -47,10 +53,21 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo _fifoClass = new GPFifoClass(context, this); _subChannels = new GpuState[8]; + _subChannels2 = new IDeviceState[8] + { + null, + new ComputeClass(context, channel), + new InlineToMemoryClass(context, channel), + new TwodClass(channel), + new DmaClass(context, channel), + null, + null, + null + }; for (int index = 0; index < _subChannels.Length; index++) { - _subChannels[index] = new GpuState(channel); + _subChannels[index] = new GpuState(channel, _subChannels2[index]); _context.Methods.RegisterCallbacks(_subChannels[index]); } |
