diff --git a/src/Ryujinx.Graphics.Vulkan/Queries/BufferedQuery.cs b/src/Ryujinx.Graphics.Vulkan/Queries/BufferedQuery.cs index 4763007f4..f9074d06f 100644 --- a/src/Ryujinx.Graphics.Vulkan/Queries/BufferedQuery.cs +++ b/src/Ryujinx.Graphics.Vulkan/Queries/BufferedQuery.cs @@ -145,28 +145,13 @@ namespace Ryujinx.Graphics.Vulkan.Queries { long data = _defaultValue; - if (wakeSignal == null) + int iterations = 0; + while (WaitingForValue(data) && iterations++ < MaxQueryRetries) { - while (WaitingForValue(data)) + data = Marshal.ReadInt64(_bufferMap); + if (wakeSignal != null && WaitingForValue(data)) { - data = Marshal.ReadInt64(_bufferMap); - } - } - else - { - int iterations = 0; - while (WaitingForValue(data) && iterations++ < MaxQueryRetries) - { - data = Marshal.ReadInt64(_bufferMap); - if (WaitingForValue(data)) - { - wakeSignal.WaitOne(1); - } - } - - if (iterations >= MaxQueryRetries) - { - Logger.Error?.Print(LogClass.Gpu, $"Error: Query result {_type} timed out. Took more than {MaxQueryRetries} tries."); + wakeSignal.WaitOne(0); } }