X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fbuffer_backend.cpp;h=c3dcb8e12c5ccbb1fb21d9abc0b76862a65cad16;hb=bec8444ce5f844d156f5aac90ce9f0a92750cf62;hp=aaf415703db8158e5cba7cacd4b6d93ee294f769;hpb=c356a20547afae97b412da36e0b0a7d51e879401;p=libs%2Fgl.git diff --git a/source/backends/vulkan/buffer_backend.cpp b/source/backends/vulkan/buffer_backend.cpp index aaf41570..c3dcb8e1 100644 --- a/source/backends/vulkan/buffer_backend.cpp +++ b/source/backends/vulkan/buffer_backend.cpp @@ -70,14 +70,13 @@ bool VulkanBuffer::can_map() const void *VulkanBuffer::map() { - size_t size = static_cast(this)->size; - mapped_address = device.get_allocator().map(memory_id, 0, size); + mapped_address = device.get_allocator().map(memory_id); return mapped_address; } bool VulkanBuffer::unmap() { - device.get_allocator().unmap(mapped_address); + device.get_allocator().unmap(memory_id); mapped_address = 0; return true; } @@ -110,15 +109,15 @@ void VulkanBuffer::set_vulkan_object_name() const void Buffer::AsyncTransfer::allocate() { - if(buffer.can_map()) - dest_addr = static_cast(buffer.map())+offset; + if(buffer->can_map()) + dest_addr = static_cast(buffer->map())+offset; else { - Buffer &buf = buffer; + Buffer &buf = *buffer; size_t off = offset; size_t sz = size; - dest_addr = buffer.device.get_transfer_queue().prepare_transfer(&buffer, false, size, + dest_addr = buf.device.get_transfer_queue().prepare_transfer(buffer, false, size, [&buf, off, sz](){ buf.device.get_synchronizer().write_buffer(buf.handle, off, sz); }, @@ -136,13 +135,13 @@ void Buffer::AsyncTransfer::allocate() void Buffer::AsyncTransfer::finalize() { - if(buffer.can_map()) + if(buffer->can_map()) { - buffer.unmap(); - buffer.device.get_synchronizer().write_buffer(buffer.handle, offset, size, true); + buffer->unmap(); + buffer->device.get_synchronizer().write_buffer(buffer->handle, offset, size, true); } else - buffer.device.get_transfer_queue().finalize_transfer(dest_addr); + buffer->device.get_transfer_queue().finalize_transfer(dest_addr); } } // namespace GL