aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs b/src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs
index 806b872b..b4252471 100644
--- a/src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs
+++ b/src/Ryujinx.Graphics.Vulkan/MultiFenceHolder.cs
@@ -196,18 +196,23 @@ namespace Ryujinx.Graphics.Vulkan
bool signaled = true;
- if (hasTimeout)
+ try
{
- signaled = FenceHelper.AllSignaled(api, device, fences[..fenceCount], timeout);
- }
- else
- {
- FenceHelper.WaitAllIndefinitely(api, device, fences[..fenceCount]);
+ if (hasTimeout)
+ {
+ signaled = FenceHelper.AllSignaled(api, device, fences[..fenceCount], timeout);
+ }
+ else
+ {
+ FenceHelper.WaitAllIndefinitely(api, device, fences[..fenceCount]);
+ }
}
-
- for (int i = 0; i < fenceCount; i++)
+ finally
{
- fenceHolders[i].Put();
+ for (int i = 0; i < fenceCount; i++)
+ {
+ fenceHolders[i].PutLock();
+ }
}
return signaled;