vk_query_cache: Wait before reading queries

This commit is contained in:
ReinUsesLisp 2021-05-07 00:29:37 -03:00 committed by ameerj
parent a515036604
commit 56c47951c5

View file

@ -114,17 +114,10 @@ void HostCounter::EndQuery() {
} }
u64 HostCounter::BlockingQuery() const { u64 HostCounter::BlockingQuery() const {
auto& scheduler{cache.GetScheduler()}; cache.GetScheduler().Wait(tick);
if (tick >= scheduler.CurrentTick()) {
scheduler.Flush();
// This may not be necessary, but it's better to play it safe and assume drivers don't
// support wait before signal on vkGetQueryPoolResults
scheduler.WaitWorker();
}
u64 data; u64 data;
const VkResult query_result = cache.GetDevice().GetLogical().GetQueryResults( const VkResult query_result = cache.GetDevice().GetLogical().GetQueryResults(
query.first, query.second, 1, sizeof(data), &data, sizeof(data), query.first, query.second, 1, sizeof(data), &data, sizeof(data), VK_QUERY_RESULT_64_BIT);
VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);
switch (query_result) { switch (query_result) {
case VK_SUCCESS: case VK_SUCCESS: