mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-22 04:10:40 +01:00
zink: do not dereference NULL pointer
If first_frame_done isn't set, but fence is NULL, we end up dereferncing
that NULL-pointer.
This can happen in the case where the first submitted batch has no work,
and pfence was passed as a NULL-pointer.
While we're at it, simplify the check with the surrounding code, which
also checks for a NULL-pointer here.
Fixes: e93ca92d4a ("zink: force explicit fence only on first frame flush")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10235>
This commit is contained in:
parent
f3e004cb56
commit
9de05fd36b
1 changed files with 12 additions and 10 deletions
|
|
@ -1885,17 +1885,19 @@ zink_flush(struct pipe_context *pctx,
|
|||
util_queue_fence_signal(&mfence->ready);
|
||||
}
|
||||
}
|
||||
if (fence && !(flags & (PIPE_FLUSH_DEFERRED | PIPE_FLUSH_ASYNC)))
|
||||
sync_flush(ctx, zink_batch_state(fence));
|
||||
if (fence) {
|
||||
if (!(flags & (PIPE_FLUSH_DEFERRED | PIPE_FLUSH_ASYNC)))
|
||||
sync_flush(ctx, zink_batch_state(fence));
|
||||
|
||||
if (flags & PIPE_FLUSH_END_OF_FRAME && !(flags & TC_FLUSH_ASYNC) && !deferred) {
|
||||
/* if the first frame has not yet occurred, we need an explicit fence here
|
||||
* in some cases in order to correctly draw the first frame, though it's
|
||||
* unknown at this time why this is the case
|
||||
*/
|
||||
if (!ctx->first_frame_done)
|
||||
zink_vkfence_wait(screen, fence, PIPE_TIMEOUT_INFINITE);
|
||||
ctx->first_frame_done = true;
|
||||
if (flags & PIPE_FLUSH_END_OF_FRAME && !(flags & TC_FLUSH_ASYNC) && !deferred) {
|
||||
/* if the first frame has not yet occurred, we need an explicit fence here
|
||||
* in some cases in order to correctly draw the first frame, though it's
|
||||
* unknown at this time why this is the case
|
||||
*/
|
||||
if (!ctx->first_frame_done)
|
||||
zink_vkfence_wait(screen, fence, PIPE_TIMEOUT_INFINITE);
|
||||
ctx->first_frame_done = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue