From 983dcda16ad969bf6f59f8873966635903f19104 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 20 Jun 2022 12:30:23 -0400 Subject: [PATCH] zink: track whether current swapchain has data duplicated from resource object since swapchains can be shared Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_kopper.c | 2 ++ src/gallium/drivers/zink/zink_kopper.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/gallium/drivers/zink/zink_kopper.c b/src/gallium/drivers/zink/zink_kopper.c index 2a6f458c6ac..68022a8ac89 100644 --- a/src/gallium/drivers/zink/zink_kopper.c +++ b/src/gallium/drivers/zink/zink_kopper.c @@ -507,6 +507,7 @@ kopper_acquire(struct zink_screen *screen, struct zink_resource *res, uint64_t t res->obj->indefinite_acquire = true; p_atomic_inc(&cdt->swapchain->num_acquires); } + cdt->swapchain->dt_has_data = false; res->obj->dt_has_data = false; return VK_SUCCESS; } @@ -573,6 +574,7 @@ zink_kopper_acquire_submit(struct zink_screen *screen, struct zink_resource *res res->obj->acquired = true; /* this is now owned by the batch */ cdt->swapchain->acquires[res->obj->dt_idx] = VK_NULL_HANDLE; + cdt->swapchain->dt_has_data = true; return res->obj->acquire; } diff --git a/src/gallium/drivers/zink/zink_kopper.h b/src/gallium/drivers/zink/zink_kopper.h index 7e3e9d81beb..c35dd8ce901 100644 --- a/src/gallium/drivers/zink/zink_kopper.h +++ b/src/gallium/drivers/zink/zink_kopper.h @@ -43,6 +43,7 @@ struct kopper_swapchain { unsigned num_acquires; unsigned max_acquires; unsigned async_presents; + bool dt_has_data; }; enum kopper_type {