zink: track whether current swapchain has data

duplicated from resource object since swapchains can be shared

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149>
This commit is contained in:
Mike Blumenkrantz
2022-06-20 12:30:23 -04:00
committed by Marge Bot
parent c1ce1889db
commit 983dcda16a
2 changed files with 3 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -43,6 +43,7 @@ struct kopper_swapchain {
unsigned num_acquires;
unsigned max_acquires;
unsigned async_presents;
bool dt_has_data;
};
enum kopper_type {