void CreateFramebuffers() { if (swapchainFramebuffers != null) { foreach (var fb in swapchainFramebuffers) { VK.DestroyFramebuffer(device, fb, alloc); } } swapchainFramebuffers = new List <VkFramebuffer>(swapchainImageViews.Count); for (int i = 0; i < swapchainImageViews.Count; i++) { var attachments = new Native <VkImageView>(swapchainImageViews[i]); var info = new VkFramebufferCreateInfo(); info.sType = CSGL.Vulkan.VkStructureType.FramebufferCreateInfo; info.renderPass = renderPass; info.attachmentCount = 1; info.pAttachments = attachments.Address; info.width = swapchainExtent.width; info.height = swapchainExtent.height; info.layers = 1; VkFramebuffer temp; var result = VK.CreateFramebuffer(device, ref info, alloc, out temp); swapchainFramebuffers.Add(temp); attachments.Dispose(); } }