From 1e4e233f817070edec679b7a62a54127bb87f192 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Sun, 17 Jul 2016 15:35:05 +0200 Subject: [PATCH] Set framebuffer layer depending on attachment layer count (Refs #204) --- base/vulkanframebuffer.hpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/base/vulkanframebuffer.hpp b/base/vulkanframebuffer.hpp index 26c59dfa..d7b45dd0 100644 --- a/base/vulkanframebuffer.hpp +++ b/base/vulkanframebuffer.hpp @@ -334,6 +334,16 @@ namespace vk attachmentViews.push_back(attachment.view); } + // Find. max number of layers across attachments + uint32_t maxLayers = 0; + for (auto attachment : attachments) + { + if (attachment.subresourceRange.layerCount > maxLayers) + { + maxLayers = attachment.subresourceRange.layerCount; + } + } + VkFramebufferCreateInfo framebufferInfo = {}; framebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; framebufferInfo.renderPass = renderPass; @@ -341,7 +351,7 @@ namespace vk framebufferInfo.attachmentCount = static_cast(attachmentViews.size()); framebufferInfo.width = width; framebufferInfo.height = height; - framebufferInfo.layers = 1; + framebufferInfo.layers = maxLayers; VK_CHECK_RESULT(vkCreateFramebuffer(vulkanDevice->device, &framebufferInfo, nullptr, &framebuffer)); return VK_SUCCESS;