private void createFramebuffers() { swapChainFramebuffers = new VkFramebuffer[swapChainImageViews.Length]; for (int i = 0; i < swapChainImageViews.Length; i++) { VkFramebufferCreateInfo framebufferInfo = new VkFramebufferCreateInfo(); framebufferInfo.sType = VkStructureType.VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; framebufferInfo.renderPass = renderPass; framebufferInfo.attachmentCount = 1; framebufferInfo.pAttachments = new VkImageView[] { swapChainImageViews[i] }; framebufferInfo.width = swapChainExtent.width; framebufferInfo.height = swapChainExtent.height; framebufferInfo.layers = 1; VkFramebuffer frameBuffer = null; VkResult result = Vulkan.vkCreateFramebuffer(device, framebufferInfo, null, out frameBuffer); if (result != VkResult.VK_SUCCESS) { throw Program.Throw("failed to create framebuffer!", result); } swapChainFramebuffers[i] = frameBuffer; } }