zink: compare against screen batch id when determining which semaphore to use
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Thu, 15 Apr 2021 19:46:36 +0000 (15:46 -0400)
committerMarge Bot <eric+marge@anholt.net>
Fri, 16 Apr 2021 21:09:01 +0000 (21:09 +0000)
semaphores are per-screen now, so check the screen value

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

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10267>

src/gallium/drivers/zink/zink_context.c

index b8056cd..3ed3a40 100644 (file)
@@ -1956,7 +1956,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;