diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp
index 56e2bc91e404c6205e44a69affce081a994fee0e..93d78f43a0a8f0aedbb38331bff5fccdf96c7687 100644
--- a/src/vkcv/ImageManager.cpp
+++ b/src/vkcv/ImageManager.cpp
@@ -192,6 +192,7 @@ namespace vkcv {
 		}
 
 		const vma::Allocator &allocator = getCore().getContext().getAllocator();
+		uint32_t requiredArrayLayers = 1;
 
 		vk::ImageType imageType = vk::ImageType::e3D;
 		vk::ImageViewType imageViewType = vk::ImageViewType::e3D;
@@ -212,6 +213,8 @@ namespace vkcv {
 		}
 		
 		if (config.isCubeMapImage()) {
+			requiredArrayLayers = 6;
+			
 			imageViewType = vk::ImageViewType::eCube;
 			createFlags |= vk::ImageCreateFlagBits::eCubeCompatible;
 		} else
@@ -235,7 +238,10 @@ namespace vkcv {
 			)
 		);
 
-		const uint32_t arrayLayers = std::min<uint32_t>(1, imageFormatProperties.maxArrayLayers);
+		const uint32_t arrayLayers = std::min<uint32_t>(
+				requiredArrayLayers,
+				imageFormatProperties.maxArrayLayers
+		);
 
 		const vk::ImageCreateInfo imageCreateInfo(
 			createFlags,