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.cs30
1 files changed, 7 insertions, 23 deletions
diff --git a/Ryujinx.Graphics.Vulkan/PipelineFull.cs b/Ryujinx.Graphics.Vulkan/PipelineFull.cs
index 5b4f4a6e..94fd2441 100644
--- a/Ryujinx.Graphics.Vulkan/PipelineFull.cs
+++ b/Ryujinx.Graphics.Vulkan/PipelineFull.cs
@@ -14,7 +14,6 @@ namespace Ryujinx.Graphics.Vulkan
private CounterQueueEvent _activeConditionalRender;
private readonly List<BufferedQuery> _pendingQueryCopies;
- private readonly List<BufferedQuery> _pendingQueryResets;
private ulong _byteWeight;
@@ -22,7 +21,6 @@ namespace Ryujinx.Graphics.Vulkan
{
_activeQueries = new List<QueryPool>();
_pendingQueryCopies = new();
- _pendingQueryResets = new List<BufferedQuery>();
CommandBuffer = (Cbs = gd.CommandBufferPool.Rent()).CommandBuffer;
}
@@ -34,16 +32,6 @@ namespace Ryujinx.Graphics.Vulkan
query.PoolCopy(Cbs);
}
- lock (_pendingQueryResets)
- {
- foreach (var query in _pendingQueryResets)
- {
- query.PoolReset(CommandBuffer);
- }
-
- _pendingQueryResets.Clear();
- }
-
_pendingQueryCopies.Clear();
}
@@ -238,10 +226,12 @@ namespace Ryujinx.Graphics.Vulkan
Gd.Api.CmdBeginQuery(CommandBuffer, queryPool, 0, Gd.Capabilities.SupportsPreciseOcclusionQueries ? QueryControlFlags.PreciseBit : 0);
}
+ Gd.ResetCounterPool();
+
Restore();
}
- public void BeginQuery(BufferedQuery query, QueryPool pool, bool needsReset)
+ public void BeginQuery(BufferedQuery query, QueryPool pool, bool needsReset, bool fromSamplePool)
{
if (needsReset)
{
@@ -249,9 +239,11 @@ namespace Ryujinx.Graphics.Vulkan
Gd.Api.CmdResetQueryPool(CommandBuffer, pool, 0, 1);
- lock (_pendingQueryResets)
+ if (fromSamplePool)
{
- _pendingQueryResets.Remove(query); // Might be present on here.
+ // Try reset some additional queries in advance.
+
+ Gd.ResetFutureCounters(CommandBuffer, AutoFlush.GetRemainingQueries());
}
}
@@ -267,14 +259,6 @@ namespace Ryujinx.Graphics.Vulkan
_activeQueries.Remove(pool);
}
- public void ResetQuery(BufferedQuery query)
- {
- lock (_pendingQueryResets)
- {
- _pendingQueryResets.Add(query);
- }
- }
-
public void CopyQueryResults(BufferedQuery query)
{
_pendingQueryCopies.Add(query);