]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/buffer_backend.cpp
Refactor TransferQueue to require explicit finalization of transfers
[libs/gl.git] / source / backends / vulkan / buffer_backend.cpp
index 21e1dabeac041665e03aa076fccbd37e360b2977..548f0a51b97e6420c2a92ff2567d275378fc79eb 100644 (file)
@@ -52,7 +52,8 @@ void VulkanBuffer::allocate()
 
 void VulkanBuffer::sub_data(size_t off, size_t sz, const void *d)
 {
-       void *staging = device.get_transfer_queue().prepare_transfer(this, false, sz,
+       TransferQueue &tq = device.get_transfer_queue();
+       void *staging = tq.prepare_transfer(this, false, sz,
                [this, off, sz](){
                        device.get_synchronizer().write_buffer(handle, off, sz);
                },
@@ -68,6 +69,7 @@ void VulkanBuffer::sub_data(size_t off, size_t sz, const void *d)
 
        const char *src = static_cast<const char *>(d);
        copy(src, src+sz, static_cast<char *>(staging));
+       tq.finalize_transfer(staging);
 }
 
 bool VulkanBuffer::can_map() const