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,