VkBufferCreateInfo buffer_info = { };
buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
- buffer_info.size = self.size;
+ buffer_info.size = self.get_total_size();
buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT|VK_BUFFER_USAGE_TRANSFER_DST_BIT|VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT|
VK_BUFFER_USAGE_INDEX_BUFFER_BIT|VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
tq.finalize_transfer(staging);
}
+unsigned VulkanBuffer::get_multiplicity() const
+{
+ BufferUsage usage = static_cast<const Buffer *>(this)->usage;
+ return (usage==STREAMING ? device.get_n_frames_in_flight() : 1);
+}
+
bool VulkanBuffer::can_map() const
{
return static_cast<const Buffer *>(this)->usage==STREAMING;