aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs b/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
index 278dbecf..80054ce2 100644
--- a/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
+++ b/src/Ryujinx.Graphics.Vulkan/CommandBufferPool.cs
@@ -18,6 +18,7 @@ namespace Ryujinx.Graphics.Vulkan
private readonly Device _device;
private readonly Queue _queue;
private readonly object _queueLock;
+ private readonly bool _concurrentFenceWaitUnsupported;
private readonly CommandPool _pool;
private readonly Thread _owner;
@@ -61,12 +62,20 @@ namespace Ryujinx.Graphics.Vulkan
private int _queuedCount;
private int _inUseCount;
- public unsafe CommandBufferPool(Vk api, Device device, Queue queue, object queueLock, uint queueFamilyIndex, bool isLight = false)
+ public unsafe CommandBufferPool(
+ Vk api,
+ Device device,
+ Queue queue,
+ object queueLock,
+ uint queueFamilyIndex,
+ bool concurrentFenceWaitUnsupported,
+ bool isLight = false)
{
_api = api;
_device = device;
_queue = queue;
_queueLock = queueLock;
+ _concurrentFenceWaitUnsupported = concurrentFenceWaitUnsupported;
_owner = Thread.CurrentThread;
var commandPoolCreateInfo = new CommandPoolCreateInfo
@@ -357,7 +366,7 @@ namespace Ryujinx.Graphics.Vulkan
if (refreshFence)
{
- entry.Fence = new FenceHolder(_api, _device);
+ entry.Fence = new FenceHolder(_api, _device, _concurrentFenceWaitUnsupported);
}
else
{