private void createUniformBuffers(VkContext context) { var bufferSize = Marshal.SizeOf <UniformBufferObject>(); var usageFlags = Vk.BufferUsageFlags.UniformBuffer; var memProps = Vk.MemoryPropertyFlags.HostVisible | Vk.MemoryPropertyFlags.HostCoherent; var buffers = new BufferWithMemory[this.wrapper.ImageCapacity]; for (int i = 0; i < this.wrapper.ImageCapacity; i++) { try { buffers[i] = VkHelper.CreateBuffer(context, bufferSize, usageFlags, memProps, this.wrapper.SharingMode); } catch (Vk.ResultException result) { throw new VkException($"An error occurred while creating uniform buffer {i}.", result); } } this.wrapper.UniformBuffers = new Vk.Buffer[this.wrapper.ImageCapacity]; this.wrapper.UniformBuffersMemory = new Vk.DeviceMemory[this.wrapper.ImageCapacity]; for (int i = 0; i < this.wrapper.ImageCapacity; i++) { this.wrapper.UniformBuffers[i] = buffers[i].Buffer; this.wrapper.UniformBuffersMemory[i] = buffers[i].Memory; } }