diff options
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/BackgroundResources.cs')
| -rw-r--r-- | Ryujinx.Graphics.Vulkan/BackgroundResources.cs | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/Ryujinx.Graphics.Vulkan/BackgroundResources.cs b/Ryujinx.Graphics.Vulkan/BackgroundResources.cs deleted file mode 100644 index b93b7a25..00000000 --- a/Ryujinx.Graphics.Vulkan/BackgroundResources.cs +++ /dev/null @@ -1,117 +0,0 @@ -using Silk.NET.Vulkan; -using System; -using System.Collections.Generic; -using System.Threading; - -namespace Ryujinx.Graphics.Vulkan -{ - class BackgroundResource : IDisposable - { - private VulkanRenderer _gd; - private Device _device; - - private CommandBufferPool _pool; - private PersistentFlushBuffer _flushBuffer; - - public BackgroundResource(VulkanRenderer gd, Device device) - { - _gd = gd; - _device = device; - } - - public CommandBufferPool GetPool() - { - if (_pool == null) - { - bool useBackground = _gd.BackgroundQueue.Handle != 0 && _gd.Vendor != Vendor.Amd; - Queue queue = useBackground ? _gd.BackgroundQueue : _gd.Queue; - object queueLock = useBackground ? _gd.BackgroundQueueLock : _gd.QueueLock; - - lock (queueLock) - { - _pool = new CommandBufferPool(_gd.Api, _device, queue, queueLock, _gd.QueueFamilyIndex, isLight: true); - } - } - - return _pool; - } - - public PersistentFlushBuffer GetFlushBuffer() - { - if (_flushBuffer == null) - { - _flushBuffer = new PersistentFlushBuffer(_gd); - } - - return _flushBuffer; - } - - public void Dispose() - { - _pool?.Dispose(); - _flushBuffer?.Dispose(); - } - } - - class BackgroundResources : IDisposable - { - private VulkanRenderer _gd; - private Device _device; - - private Dictionary<Thread, BackgroundResource> _resources; - - public BackgroundResources(VulkanRenderer gd, Device device) - { - _gd = gd; - _device = device; - - _resources = new Dictionary<Thread, BackgroundResource>(); - } - - private void Cleanup() - { - lock (_resources) - { - foreach (KeyValuePair<Thread, BackgroundResource> tuple in _resources) - { - if (!tuple.Key.IsAlive) - { - tuple.Value.Dispose(); - _resources.Remove(tuple.Key); - } - } - } - } - - public BackgroundResource Get() - { - Thread thread = Thread.CurrentThread; - - lock (_resources) - { - BackgroundResource resource; - if (!_resources.TryGetValue(thread, out resource)) - { - Cleanup(); - - resource = new BackgroundResource(_gd, _device); - - _resources[thread] = resource; - } - - return resource; - } - } - - public void Dispose() - { - lock (_resources) - { - foreach (var resource in _resources.Values) - { - resource.Dispose(); - } - } - } - } -} |
