diff --git a/projects/voxelization/src/main.cpp b/projects/voxelization/src/main.cpp
index d2b1ca56c627fd72a3828164c7a22152c4f6c635..e67098693249c5070dde7f003f1810988269cf1c 100644
--- a/projects/voxelization/src/main.cpp
+++ b/projects/voxelization/src/main.cpp
@@ -331,7 +331,7 @@ int main(int argc, const char** argv) {
 	skyPipeConfig.m_Width               = windowWidth;
 	skyPipeConfig.m_Height              = windowHeight;
 	skyPipeConfig.m_PassHandle          = skyPass;
-	skyPipeConfig.m_VertexLayout        = vkcv::VertexLayout({});
+	skyPipeConfig.m_VertexLayout        = vkcv::VertexLayout();
 	skyPipeConfig.m_DescriptorLayouts   = {};
 	skyPipeConfig.m_UseDynamicViewport  = true;
     skyPipeConfig.m_multisampling       = msaa;
@@ -346,7 +346,7 @@ int main(int argc, const char** argv) {
 	vkcv::ImageHandle colorBuffer           = core.createImage(colorBufferFormat, windowWidth, windowHeight, 1, false, colorBufferRequiresStorage, true, msaa).getHandle();
 
 	vkcv::ImageHandle resolvedColorBuffer;
-	if (msaa != vkcv::Multisampling::None) {
+	if (usingMsaa) {
 		resolvedColorBuffer = core.createImage(colorBufferFormat, windowWidth, windowHeight, 1, false, true, true).getHandle();
 	}
 	else {
diff --git a/src/vkcv/Core.cpp b/src/vkcv/Core.cpp
index c230cfdcc9cc2503720eca402f63a9d6dda76b0b..ed7718d0cea0a503a2fa2b8ea2d6b5e1efb35225 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 384f72ff80b4fd7d14c152a11aa21a6ddf179f54..849888645a63111d024c9870fe474cf29f7090e9 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();