transfer.size = size;
transfer.staging_address = static_cast<char *>(i->mapped_address)+transfer.offset;
- i->used += size;
+ i->used += size+47;
+ i->used -= i->used%48;
++i->async_count;
}
return *j;
}
-void TransferQueue::dispatch_transfers(VkCommandBuffer command_buffer)
+void TransferQueue::dispatch_transfers(const VulkanCommandRecorder &vkCmd)
{
if(transfers.empty())
return;
for(; (j!=transfers.end() && j->order==i->order); ++j)
j->synchronize();
- device.get_synchronizer().barrier(command_buffer);
+ device.get_synchronizer().barrier(vkCmd);
for(; i!=j; ++i)
{
VkBuffer buffer = (i->buffer_index>=0 ? buffers[i->buffer_index].buffer : 0);
- i->transfer(command_buffer, buffer, i->offset);
+ i->transfer(vkCmd, buffer, i->offset);
if(i->buffer_index>=0)
buffers[i->buffer_index].last_frame = current_frame;
}