diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs index 78912bcc..dc8a1c75 100644 --- a/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs +++ b/Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs @@ -35,7 +35,8 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo /// Creates a new instance of the GPU General Purpose FIFO command processor. /// </summary> /// <param name="context">GPU context</param> - public GPFifoProcessor(GpuContext context) + /// <param name="channel">Channel that the GPFIFO processor belongs to</param> + public GPFifoProcessor(GpuContext context, GpuChannel channel) { _context = context; @@ -44,7 +45,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo for (int index = 0; index < _subChannels.Length; index++) { - _subChannels[index] = new GpuState(); + _subChannels[index] = new GpuState(channel); _context.Methods.RegisterCallbacks(_subChannels[index]); } @@ -186,5 +187,17 @@ namespace Ryujinx.Graphics.Gpu.Engine.GPFifo _subChannels[i].ShadowRamControl = control; } } + + /// <summary> + /// Forces a full host state update by marking all state as modified, + /// and also requests all GPU resources in use to be rebound. + /// </summary> + public void ForceAllDirty() + { + for (int index = 0; index < _subChannels.Length; index++) + { + _subChannels[index].ForceAllDirty(); + } + } } } |