crocus/query: don't loop on ready status after gpu hang.
When a GPU hang occurs, the syncobj will eventually timeout,
if this is a wait, just set ready, so things will continue.
This matches 965 behaviour better.
Fixes: c282a082be ("crocus/query: poll the syncobj in the no wait situation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13188>
This commit is contained in:
@@ -678,8 +678,12 @@ crocus_get_query_result(struct pipe_context *ctx,
|
||||
}
|
||||
assert(READ_ONCE(q->map->snapshots_landed));
|
||||
#else
|
||||
if (crocus_wait_syncobj(ctx->screen, q->syncobj, wait ? INT64_MAX : 0))
|
||||
if (crocus_wait_syncobj(ctx->screen, q->syncobj, wait ? INT64_MAX : 0)) {
|
||||
/* if we've waited and timedout, just set the query to ready to avoid infinite loop */
|
||||
if (wait)
|
||||
q->ready = true;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
calculate_result_on_cpu(devinfo, q);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user