aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/PipelineFull.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/PipelineFull.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/PipelineFull.cs16
1 files changed, 10 insertions, 6 deletions
diff --git a/Ryujinx.Graphics.Vulkan/PipelineFull.cs b/Ryujinx.Graphics.Vulkan/PipelineFull.cs
index ca3a33ef..c8692993 100644
--- a/Ryujinx.Graphics.Vulkan/PipelineFull.cs
+++ b/Ryujinx.Graphics.Vulkan/PipelineFull.cs
@@ -10,8 +10,6 @@ namespace Ryujinx.Graphics.Vulkan
{
private const ulong MinByteWeightForFlush = 256 * 1024 * 1024; // MB
- private bool _hasPendingQuery;
-
private readonly List<QueryPool> _activeQueries;
private CounterQueueEvent _activeConditionalRender;
@@ -158,9 +156,8 @@ namespace Ryujinx.Graphics.Vulkan
private void FlushPendingQuery()
{
- if (_hasPendingQuery)
+ if (AutoFlush.ShouldFlushQuery())
{
- _hasPendingQuery = false;
FlushCommandsImpl();
}
}
@@ -211,6 +208,7 @@ namespace Ryujinx.Graphics.Vulkan
public void FlushCommandsImpl()
{
+ AutoFlush.RegisterFlush(DrawCount);
EndRenderPass();
foreach (var queryPool in _activeQueries)
@@ -277,12 +275,18 @@ namespace Ryujinx.Graphics.Vulkan
{
_pendingQueryCopies.Add(query);
- _hasPendingQuery = true;
+ if (AutoFlush.RegisterPendingQuery())
+ {
+ FlushCommandsImpl();
+ }
}
protected override void SignalAttachmentChange()
{
- FlushPendingQuery();
+ if (AutoFlush.ShouldFlush(DrawCount))
+ {
+ FlushCommandsImpl();
+ }
}
protected override void SignalRenderPassEnd()