소스 검색

vulkan/wsi: error out when image fence doesn't signal

If for some reason the fence associated with an image doesn't signal,
we're likely in a device lost scenario, we should report that error.

We can't really wait for a given amount of time because we could get a
timeout and that is not a valid error to report for vkQueuePresentKHR,
so just wait forever.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/830
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
master
Lionel Landwerlin 6 년 전
부모
커밋
bc36160ccb
1개의 변경된 파일9개의 추가작업 그리고 3개의 파일을 삭제
  1. 9
    3
      src/vulkan/wsi/wsi_common.c

+ 9
- 3
src/vulkan/wsi/wsi_common.c 파일 보기

@@ -1057,10 +1057,16 @@ wsi_common_queue_present(const struct wsi_device *wsi,
if (result != VK_SUCCESS)
goto fail_present;
} else {
wsi->WaitForFences(device, 1, &swapchain->fences[image_index],
true, 1);
result =
wsi->WaitForFences(device, 1, &swapchain->fences[image_index],
true, ~0ull);
if (result != VK_SUCCESS)
goto fail_present;

wsi->ResetFences(device, 1, &swapchain->fences[image_index]);
result =
wsi->ResetFences(device, 1, &swapchain->fences[image_index]);
if (result != VK_SUCCESS)
goto fail_present;
}

struct wsi_image *image =

Loading…
취소
저장