swapchain: Added exception checking for error case. 80/161980/1
authorjoonbum.ko <joonbum.ko@samsung.com>
Tue, 14 Nov 2017 02:08:24 +0000 (11:08 +0900)
committerjoonbum.ko <joonbum.ko@samsung.com>
Tue, 14 Nov 2017 02:11:36 +0000 (11:11 +0900)
Change-Id: Ib7453fa7f8430e3e0d88921aa7c2fd6928747d79
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
src/wsi/swapchain.c

index 195c16a..a0273cd 100644 (file)
@@ -257,10 +257,10 @@ vk_AcquireNextImageKHR(VkDevice                    device,
        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);
@@ -291,13 +291,17 @@ vk_QueuePresentKHR(VkQueue                                         queue,
        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);