X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Ftransferqueue.cpp;h=7f1cfa914884a518a7c766abe385204f72766e66;hb=d9c769b5847beefa378d2c5555f5b5d8e5d26c0e;hp=d0ccb0d571c88419838faec234a7cd99e0f7fcd9;hpb=644b81d62660bafa702bfd7acedd3a0039aad993;p=libs%2Fgl.git diff --git a/source/backends/vulkan/transferqueue.cpp b/source/backends/vulkan/transferqueue.cpp index d0ccb0d5..7f1cfa91 100644 --- a/source/backends/vulkan/transferqueue.cpp +++ b/source/backends/vulkan/transferqueue.cpp @@ -34,13 +34,18 @@ TransferQueue::PendingTransfer &TransferQueue::prepare_transfer(size_t size) void TransferQueue::dispatch_transfers(VkCommandBuffer command_buffer) { - if(!transfers.empty()) - device.get_synchronizer().barrier(command_buffer); + if(transfers.empty()) + return; + + for(const PendingTransfer &t: transfers) + t.synchronize(); + + device.get_synchronizer().barrier(command_buffer); for(const PendingTransfer &t: transfers) { VkBuffer buffer = buffers[t.buffer_index].buffer; - t.callback(command_buffer, buffer, t.offset); + t.transfer(command_buffer, buffer, t.offset); } transfers.clear();