Vulkan: Remove out-of-date message from exception handler. Clean up a bit.

This commit is contained in:
BearOso 2023-10-10 19:32:31 -05:00
parent 94125d4781
commit 397cb98347
1 changed files with 12 additions and 18 deletions

View File

@ -103,7 +103,7 @@ bool Swapchain::check_and_resize(int width, int height)
if (width < 1 || height < 1) if (width < 1 || height < 1)
return false; return false;
if (extents.width != width || extents.height != height) if (extents.width != (uint32_t)width || extents.height != (uint32_t)height)
{ {
recreate(width, height); recreate(width, height);
return true; return true;
@ -185,12 +185,9 @@ bool Swapchain::create(unsigned int desired_num_swapchain_images, int new_width,
if (swapchain_object) if (swapchain_object)
swapchain_create_info.setOldSwapchain(swapchain_object.get()); swapchain_create_info.setOldSwapchain(swapchain_object.get());
try try {
{
swapchain_object = device.createSwapchainKHRUnique(swapchain_create_info); swapchain_object = device.createSwapchainKHRUnique(swapchain_create_info);
} } catch (std::exception &e) {
catch (std::exception &e)
{
swapchain_object.reset(); swapchain_object.reset();
} }
@ -209,7 +206,7 @@ bool Swapchain::create(unsigned int desired_num_swapchain_images, int new_width,
vk::FenceCreateInfo fence_create_info(vk::FenceCreateFlagBits::eSignaled); vk::FenceCreateInfo fence_create_info(vk::FenceCreateFlagBits::eSignaled);
for (int i = 0; i < num_swapchain_images; i++) for (unsigned int i = 0; i < num_swapchain_images; i++)
{ {
// Create frame queue resources // Create frame queue resources
auto &frame = frames[i]; auto &frame = frames[i];
@ -267,12 +264,9 @@ bool Swapchain::begin_frame()
} }
vk::ResultValue<uint32_t> result_value(vk::Result::eSuccess, 0); vk::ResultValue<uint32_t> result_value(vk::Result::eSuccess, 0);
try try {
{
result_value = device.acquireNextImageKHR(swapchain_object.get(), UINT64_MAX, frame.acquire.get()); result_value = device.acquireNextImageKHR(swapchain_object.get(), UINT64_MAX, frame.acquire.get());
} } catch (vk::OutOfDateKHRError &e) {
catch (vk::OutOfDateKHRError)
{
result_value.result = vk::Result::eErrorOutOfDateKHR; result_value.result = vk::Result::eErrorOutOfDateKHR;
} }
@ -327,13 +321,13 @@ bool Swapchain::swap()
.setSwapchains(swapchain_object.get()) .setSwapchains(swapchain_object.get())
.setImageIndices(current_swapchain_image); .setImageIndices(current_swapchain_image);
vk::Result result; vk::Result result = vk::Result::eSuccess;
try try {
{
result = queue.presentKHR(present_info); result = queue.presentKHR(present_info);
} } catch (vk::OutOfDateKHRError &e) {
catch (std::exception &e) // NVIDIA binary drivers will set OutOfDate between acquire and
{ // present. Ignore this and fix it on the next swapchain acquire.
} catch (std::exception &e) {
printf("%s\n", e.what()); printf("%s\n", e.what());
} }