aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs7
1 files changed, 5 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs b/Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs
index 6b780ba3..d3aedb2f 100644
--- a/Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs
+++ b/Ryujinx.Graphics.Vulkan/Queries/CounterQueueEvent.cs
@@ -24,6 +24,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries
private object _lock = new object();
private ulong _result = ulong.MaxValue;
+ private double _divisor = 1f;
public CounterQueueEvent(CounterQueue queue, CounterType type, ulong drawIndex)
{
@@ -52,9 +53,11 @@ namespace Ryujinx.Graphics.Vulkan.Queries
ClearCounter = true;
}
- internal void Complete(bool withResult)
+ internal void Complete(bool withResult, double divisor)
{
_counter.End(withResult);
+
+ _divisor = divisor;
}
internal bool TryConsume(ref ulong result, bool block, AutoResetEvent wakeSignal = null)
@@ -85,7 +88,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries
}
}
- result += (ulong)queryResult;
+ result += _divisor == 1 ? (ulong)queryResult : (ulong)Math.Ceiling(queryResult / _divisor);
_result = result;