diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2021-06-23 20:51:41 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-24 01:51:41 +0200 |
| commit | a10b2c5ff26886e9ffc6f19e3f0fe9505a503b2f (patch) | |
| tree | 006d013c300fb56c94c5563c2c1409a189f794b2 /Ryujinx.Graphics.Gpu/Engine/GPFifo/GPFifoProcessor.cs | |
| parent | 12a7a2ead812d46deb9d978b6758731157be1cbc (diff) | |
Initial support for GPU channels (#2372)
* Ground work for separate GPU channels
* Rename TextureManager to TextureCache
* Decouple texture bindings management from the texture cache
* Rename BufferManager to BufferCache
* Decouple buffer bindings management from the buffer cache
* More comments and proper disposal
* PR feedback
* Force host state update on channel switch
* Typo
* PR feedback
* Missing using
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(); + } + } } } |
