From 3c1600322fc6dd9f7c4c975b275ef84ab6221f21 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Thu, 24 Jun 2021 17:28:35 +0200 Subject: [PATCH] [#82] Stablize the poor child experience Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- src/vkcv/Core.cpp | 4 ++++ src/vkcv/ImageManager.cpp | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/vkcv/Core.cpp b/src/vkcv/Core.cpp index c230cfdc..ed7718d0 100644 --- a/src/vkcv/Core.cpp +++ b/src/vkcv/Core.cpp @@ -136,6 +136,8 @@ namespace vkcv ); } catch (vk::OutOfDateKHRError e) { result = vk::Result::eErrorOutOfDateKHR; + } catch (vk::DeviceLostError e) { + result = vk::Result::eErrorDeviceLost; } if (result != vk::Result::eSuccess) { @@ -367,6 +369,8 @@ namespace vkcv result = queueManager.getPresentQueue().handle.presentKHR(presentInfo); } catch (vk::OutOfDateKHRError e) { result = vk::Result::eErrorOutOfDateKHR; + } catch (vk::DeviceLostError e) { + result = vk::Result::eErrorDeviceLost; } if (result != vk::Result::eSuccess) { diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp index 384f72ff..84988864 100644 --- a/src/vkcv/ImageManager.cpp +++ b/src/vkcv/ImageManager.cpp @@ -102,9 +102,17 @@ namespace vkcv { vk::ImageUsageFlags imageUsageFlags = ( vk::ImageUsageFlagBits::eSampled | vk::ImageUsageFlagBits::eTransferDst | vk::ImageUsageFlagBits::eTransferSrc ); + + vk::ImageTiling imageTiling = vk::ImageTiling::eOptimal; + if (supportStorage) { imageUsageFlags |= vk::ImageUsageFlagBits::eStorage; + + if (formatProperties.optimalTilingFeatures & vk::FormatFeatureFlagBits::eStorageImage) { + imageTiling = vk::ImageTiling::eLinear; + } } + if (supportColorAttachment) { imageUsageFlags |= vk::ImageUsageFlagBits::eColorAttachment; } @@ -135,8 +143,6 @@ namespace vkcv { imageViewType = vk::ImageViewType::e2D; } - vk::ImageTiling imageTiling = vk::ImageTiling::eOptimal; - if (!formatProperties.optimalTilingFeatures) { if (!formatProperties.linearTilingFeatures) return ImageHandle(); -- GitLab