zink: compare against screen batch id when determining which semaphore to use

semaphores are per-screen now, so check the screen value

Fixes: fa36a16c68 ("zink: make timeline semaphores per-screen")

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10267>
(cherry picked from commit 5b9c3cb7b9)
This commit is contained in:
Mike Blumenkrantz 2021-04-15 15:46:36 -04:00 committed by Eric Engestrom
parent c8935e0399
commit b0ac2df044
2 changed files with 2 additions and 2 deletions

View file

@ -193,7 +193,7 @@
"description": "zink: compare against screen batch id when determining which semaphore to use",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "fa36a16c68489c7a8a7223c39fb0078f7d745bcb"
},

View file

@ -1938,7 +1938,7 @@ timeline_wait(struct zink_context *ctx, uint32_t batch_id, uint64_t timeout)
wi.sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
wi.semaphoreCount = 1;
/* handle batch_id overflow */
wi.pSemaphores = batch_id > ctx->curr_batch ? &screen->prev_sem : &screen->sem;
wi.pSemaphores = batch_id > screen->curr_batch ? &screen->prev_sem : &screen->sem;
uint64_t batch_id64 = batch_id;
wi.pValues = &batch_id64;
bool success = false;