diff --git a/src/vulkan/gpu.c b/src/vulkan/gpu.c index 2e7140e94498b4b77d08056091dac675d15d9ff6..62e2df8b9987199eae855e0c6fea5275bd9c7d81 100644 --- a/src/vulkan/gpu.c +++ b/src/vulkan/gpu.c @@ -3143,8 +3143,12 @@ static uint64_t vk_timer_query(const struct pl_gpu *gpu, struct pl_timer *timer) if (timer->index_read == timer->index_write) return 0; // no more unprocessed results + vk_poll_commands(vk, 0); + if (timer->pending & timer_bit(timer->index_read)) + return 0; // still waiting for results + VkResult res; - uint64_t ts[2]; + uint64_t ts[2] = {0}; res = vk->GetQueryPoolResults(vk->dev, timer->qpool, timer->index_read, 2, sizeof(ts), &ts[0], sizeof(uint64_t), VK_QUERY_RESULT_64_BIT);