vk_swapchain_t *chain = (vk_swapchain_t *)(uintptr_t)swapchain;
vk_icd_t *icd = vk_get_icd();
tbm_surface_h tbm_surface;
- int sync;
+ int sync = -1;
uint32_t i;
- if (icd->acquire_image)
+ if (icd->acquire_image && fence != VK_NULL_HANDLE)
res = chain->acquire_image(device, chain, timeout, &tbm_surface, &sync);
else
res = chain->acquire_image(device, chain, timeout, &tbm_surface, NULL);
vk_icd_t *icd = vk_get_icd();
for (i = 0; i < info->swapchainCount; i++) {
- VkResult res;
+ VkResult res = VK_SUCCESS;
int sync_fd = -1;
vk_swapchain_t *chain = (vk_swapchain_t *)(uintptr_t)info->pSwapchains[i];
if (icd->queue_signal_release_image)
- icd->queue_signal_release_image(queue, info->waitSemaphoreCount, info->pWaitSemaphores,
- chain->buffers[info->pImageIndices[i]].image, &sync_fd);
+ res = icd->queue_signal_release_image(queue, info->waitSemaphoreCount,
+ info->pWaitSemaphores,
+ chain->buffers[info->pImageIndices[i]].image,
+ &sync_fd);
+ if (res != VK_SUCCESS)
+ VK_ERROR("Failed to queue_signal_release_image. res(%d)", res);
res = chain->present_image(queue, chain,
chain->buffers[info->pImageIndices[i]].tbm, sync_fd);