Lines Matching refs:swapchain
152 VKSCR(DestroySwapchainKHR)(screen->dev, cswap->swapchain, NULL);
209 destroy_swapchain(screen, cdt->swapchain);
212 cdt->swapchain = cdt->old_swapchain = NULL;
227 if (cdt->swapchain) {
228 cswap->scci = cdt->swapchain->scci;
229 cswap->scci.oldSwapchain = cdt->swapchain->swapchain;
261 * Due to above restrictions, it is only possible to create a new swapchain on this
269 * surface size will be determined by the extent of a swapchain targeting the surface. Whatever the
270 * application sets a swapchain’s imageExtent to will be the size of the window, after the first image is
281 &cswap->swapchain);
290 &cswap->swapchain);
308 VkResult error = VKSCR(GetSwapchainImagesKHR)(screen->dev, cswap->swapchain, &cswap->num_images, NULL);
315 error = VKSCR(GetSwapchainImagesKHR)(screen->dev, cswap->swapchain, &cswap->num_images, images);
345 *pswap = cdt->swapchain;
346 cdt->swapchain = cswap;
348 return kopper_GetSwapchainImages(screen, cdt->swapchain);
469 * - we have a swapchain image
475 (cdt->swapchain->images[res->obj->dt_idx].acquire || cdt->swapchain->images[res->obj->dt_idx].acquired))
491 p_atomic_read_relaxed(&cdt->swapchain->num_acquires) > cdt->swapchain->max_acquires) {
506 ret = VKSCR(AcquireNextImageKHR)(screen->dev, cdt->swapchain->swapchain, timeout, acquire, VK_NULL_HANDLE, &res->obj->dt_idx);
518 cdt->swapchain->images[res->obj->dt_idx].acquire = acquire;
519 res->obj->image = cdt->swapchain->images[res->obj->dt_idx].image;
520 cdt->swapchain->images[res->obj->dt_idx].acquired = false;
521 if (!cdt->swapchain->images[res->obj->dt_idx].init) {
522 /* swapchain images are initially in the UNDEFINED layout */
524 cdt->swapchain->images[res->obj->dt_idx].init = true;
528 p_atomic_inc(&cdt->swapchain->num_acquires);
530 cdt->swapchain->images[res->obj->dt_idx].dt_has_data = false;
538 /* dead swapchain */
539 mesa_loge("zink: swapchain killed %p\n", res);
544 res->swapchain = false;
563 /* dead swapchain */
569 const struct kopper_swapchain *cswap = cdt->swapchain;
574 if (cswap != cdt->swapchain) {
575 ctx->swapchain_size = cdt->swapchain->scci.imageExtent;
591 if (cdt->swapchain->images[res->obj->dt_idx].dt_has_data)
594 if (cdt->swapchain->images[res->obj->dt_idx].acquired) {
595 assert(!cdt->swapchain->images[res->obj->dt_idx].acquire);
598 assert(cdt->swapchain->images[res->obj->dt_idx].acquire);
599 cdt->swapchain->images[res->obj->dt_idx].acquired = true;
601 VkSemaphore acquire = cdt->swapchain->images[res->obj->dt_idx].acquire;
602 cdt->swapchain->images[res->obj->dt_idx].acquire = VK_NULL_HANDLE;
603 cdt->swapchain->images[res->obj->dt_idx].dt_has_data = true;
625 struct kopper_swapchain *swapchain;
636 struct kopper_swapchain *swapchain = cpi->swapchain;
673 swapchain->last_present = cpi->image;
675 p_atomic_dec(&swapchain->num_acquires);
676 if (error2 == VK_SUBOPTIMAL_KHR && cdt->swapchain == swapchain)
689 for (; screen->last_finished && swapchain->last_present_prune != screen->last_finished; swapchain->last_present_prune++) {
690 struct hash_entry *he = _mesa_hash_table_search(swapchain->presents,
691 (void*)(uintptr_t)swapchain->last_present_prune);
698 _mesa_hash_table_remove(swapchain->presents, he);
706 struct hash_entry *he = _mesa_hash_table_search(swapchain->presents, (void*)(uintptr_t)next);
712 _mesa_hash_table_insert(swapchain->presents, (void*)(uintptr_t)next, arr);
717 p_atomic_dec(&swapchain->async_presents);
731 cpi->swapchain = cdt->swapchain;
739 cpi->info.pSwapchains = &cdt->swapchain->swapchain;
753 for (int i = 0; i < cdt->swapchain->num_images; i++) {
755 cdt->swapchain->images[i].age = 1;
756 else if (cdt->swapchain->images[i].age > 0)
757 cdt->swapchain->images[i].age += 1;
760 p_atomic_inc(&cpi->swapchain->async_presents);
767 cdt->swapchain->images[res->obj->dt_idx].acquired = false;
777 const struct kopper_swapchain *cswap = cdt->swapchain;
782 (zink_kopper_acquired(cdt, res->obj->dt_idx) && cdt->swapchain->images[res->obj->dt_idx].dt_has_data))
795 if (cswap != cdt->swapchain) {
796 ctx->swapchain_size = cdt->swapchain->scci.imageExtent;
850 mesa_loge("zink: failed to update swapchain capabilities: %s", vk_Result_to_str(ret));
945 return cdt->swapchain->images[res->obj->dt_idx].age;