X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Ftransferqueue.cpp;h=7f1cfa914884a518a7c766abe385204f72766e66;hb=d9c769b5847beefa378d2c5555f5b5d8e5d26c0e;hp=8080f673226db30bf0aca97c35a0aec61b7d9570;hpb=99ca354f18119f82f1adeca100cd665a8f640317;p=libs%2Fgl.git diff --git a/source/backends/vulkan/transferqueue.cpp b/source/backends/vulkan/transferqueue.cpp index 8080f673..7f1cfa91 100644 --- a/source/backends/vulkan/transferqueue.cpp +++ b/source/backends/vulkan/transferqueue.cpp @@ -34,10 +34,18 @@ TransferQueue::PendingTransfer &TransferQueue::prepare_transfer(size_t size) void TransferQueue::dispatch_transfers(VkCommandBuffer 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();