Przeglądaj źródła

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 lat temu
rodzic
commit
bc36160ccb
1 zmienionych plików z 9 dodań i 3 usunięć
  1. 9
    3
      src/vulkan/wsi/wsi_common.c

+ 9
- 3
src/vulkan/wsi/wsi_common.c Wyświetl plik

@@ -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 =

Ładowanie…
Anuluj
Zapisz