X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fbuffer_backend.cpp;h=5439548f886fd1d81ba0ac16181f12c4a213f28f;hp=548f0a51b97e6420c2a92ff2567d275378fc79eb;hb=6d2e2a0bb28496a8c25b441009bdd2a1a1e72d81;hpb=5003bcfeb0832ec2d0f74f4149bc97888a70a900 diff --git a/source/backends/vulkan/buffer_backend.cpp b/source/backends/vulkan/buffer_backend.cpp index 548f0a51..5439548f 100644 --- a/source/backends/vulkan/buffer_backend.cpp +++ b/source/backends/vulkan/buffer_backend.cpp @@ -37,7 +37,7 @@ void VulkanBuffer::allocate() 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; @@ -72,6 +72,12 @@ void VulkanBuffer::sub_data(size_t off, size_t sz, const void *d) tq.finalize_transfer(staging); } +unsigned VulkanBuffer::get_multiplicity() const +{ + BufferUsage usage = static_cast(this)->usage; + return (usage==STREAMING ? device.get_n_frames_in_flight() : 1); +} + bool VulkanBuffer::can_map() const { return static_cast(this)->usage==STREAMING;