aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2024-07-16 21:01:06 +0100
committerGitHub <noreply@github.com>2024-07-16 17:01:06 -0300
commit344f4f52c1117028d08802aff60fbd4d875717b4 (patch)
treef8af9e8d2755b4c7396ff78d1aaaf66c6d608fe2
parenteb212aa91b45945d7bfd1ab19571b095edff5cc7 (diff)
Remove CommandBufferScoped Dependencies (#6958)1.1.1349
-rw-r--r--src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs17
-rw-r--r--src/Ryujinx.Graphics.Vulkan/CommandBufferScoped.cs5
-rw-r--r--src/Ryujinx.Graphics.Vulkan/SemaphoreHolder.cs60
3 files changed, 0 insertions, 82 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs b/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
index 80054ce2..e3938392 100644
--- a/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
+++ b/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
@@ -31,11 +31,9 @@ namespace Ryujinx.Graphics.Vulkan
public int SubmissionCount;
public CommandBuffer CommandBuffer;
public FenceHolder Fence;
- public SemaphoreHolder Semaphore;
public List<IAuto> Dependants;
public List<MultiFenceHolder> Waitables;
- public HashSet<SemaphoreHolder> Dependencies;
public void Initialize(Vk api, Device device, CommandPool pool)
{
@@ -51,7 +49,6 @@ namespace Ryujinx.Graphics.Vulkan
Dependants = new List<IAuto>();
Waitables = new List<MultiFenceHolder>();
- Dependencies = new HashSet<SemaphoreHolder>();
}
}
@@ -143,14 +140,6 @@ namespace Ryujinx.Graphics.Vulkan
}
}
- public void AddDependency(int cbIndex, CommandBufferScoped dependencyCbs)
- {
- Debug.Assert(_commandBuffers[cbIndex].InUse);
- var semaphoreHolder = _commandBuffers[dependencyCbs.CommandBufferIndex].Semaphore;
- semaphoreHolder.Get();
- _commandBuffers[cbIndex].Dependencies.Add(semaphoreHolder);
- }
-
public void AddWaitable(int cbIndex, MultiFenceHolder waitable)
{
ref var entry = ref _commandBuffers[cbIndex];
@@ -354,14 +343,8 @@ namespace Ryujinx.Graphics.Vulkan
waitable.RemoveBufferUses(cbIndex);
}
- foreach (var dependency in entry.Dependencies)
- {
- dependency.Put();
- }
-
entry.Dependants.Clear();
entry.Waitables.Clear();
- entry.Dependencies.Clear();
entry.Fence?.Dispose();
if (refreshFence)
diff --git a/src/Ryujinx.Graphics.Vulkan/CommandBufferScoped.cs b/src/Ryujinx.Graphics.Vulkan/CommandBufferScoped.cs
index 270cdc6e..2accd69b 100644
--- a/src/Ryujinx.Graphics.Vulkan/CommandBufferScoped.cs
+++ b/src/Ryujinx.Graphics.Vulkan/CommandBufferScoped.cs
@@ -26,11 +26,6 @@ namespace Ryujinx.Graphics.Vulkan
_pool.AddWaitable(CommandBufferIndex, waitable);
}
- public void AddDependency(CommandBufferScoped dependencyCbs)
- {
- _pool.AddDependency(CommandBufferIndex, dependencyCbs);
- }
-
public FenceHolder GetFence()
{
return _pool.GetFence(CommandBufferIndex);
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;
- }
- }
- }
-}