aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs b/src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs
deleted file mode 100644
index 618a7d48..00000000
--- a/src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using Silk.NET.Vulkan;
-using System;
-using System.Threading;
-using VkSemaphore = Silk.NET.Vulkan.Semaphore;
-
-namespace Ryujinx.Graphics.Vulkan
-{
- class SemaphoreHolder : IDisposable
- {
- private readonly Vk _api;
- private readonly Device _device;
- private VkSemaphore _semaphore;
- private int _referenceCount;
- private bool _disposed;
-
- public unsafe SemaphoreHolder(Vk api, Device device)
- {
- _api = api;
- _device = device;
-
- var semaphoreCreateInfo = new SemaphoreCreateInfo
- {
- SType = StructureType.SemaphoreCreateInfo,
- };
-
- api.CreateSemaphore(device, in semaphoreCreateInfo, null, out _semaphore).ThrowOnError();
-
- _referenceCount = 1;
- }
-
- public VkSemaphore GetUnsafe()
- {
- return _semaphore;
- }
-
- public VkSemaphore Get()
- {
- Interlocked.Increment(ref _referenceCount);
- return _semaphore;
- }
-
- public unsafe void Put()
- {
- if (Interlocked.Decrement(ref _referenceCount) == 0)
- {
- _api.DestroySemaphore(_device, _semaphore, null);
- _semaphore = default;
- }
- }
-
- public void Dispose()
- {
- if (!_disposed)
- {
- Put();
- _disposed = true;
- }
- }
- }
-}