From a10b2c5ff26886e9ffc6f19e3f0fe9505a503b2f Mon Sep 17 00:00:00 2001 From: gdkchan <gab.dark.100@gmail.com> Date: Wed, 23 Jun 2021 20:51:41 -0300 Subject: 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 --- Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs') diff --git a/Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs b/Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs index 268cec38..c9eebf8b 100644 --- a/Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs +++ b/Ryujinx.Graphics.Gpu/Image/TexturePoolCache.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; namespace Ryujinx.Graphics.Gpu.Image @@ -7,7 +8,7 @@ namespace Ryujinx.Graphics.Gpu.Image /// This can keep multiple texture pools, and return the current one as needed. /// It is useful for applications that uses multiple texture pools. /// </summary> - class TexturePoolCache + class TexturePoolCache : IDisposable { private const int MaxCapacity = 4; @@ -72,5 +73,19 @@ namespace Ryujinx.Graphics.Gpu.Image return pool; } + + /// <summary> + /// Disposes the texture pool cache. + /// It's an error to use the texture pool cache after disposal. + /// </summary> + public void Dispose() + { + foreach (TexturePool pool in _pools) + { + pool.Dispose(); + } + + _pools.Clear(); + } } } \ No newline at end of file -- cgit v1.2.3-70-g09d2