]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/transferqueue.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / backends / vulkan / transferqueue.cpp
index 9fc941401ed90ef954b4a156ae7b1b801baf149f..5419245b3ac793dc1bc2936e7826e124b31d0df5 100644 (file)
@@ -27,7 +27,8 @@ void TransferQueue::allocate_staging(PendingTransfer &transfer, size_t size)
        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;
 }
 
@@ -77,7 +78,7 @@ TransferQueue::PendingTransfer &TransferQueue::insert_transfer(PendingTransfer &
        return *j;
 }
 
-void TransferQueue::dispatch_transfers(VkCommandBuffer command_buffer)
+void TransferQueue::dispatch_transfers(const VulkanCommandRecorder &vkCmd)
 {
        if(transfers.empty())
                return;
@@ -89,12 +90,12 @@ void TransferQueue::dispatch_transfers(VkCommandBuffer command_buffer)
                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;
                }
@@ -126,7 +127,7 @@ TransferQueue::StagingBuffer::StagingBuffer(Device &d, size_t s):
 
        MemoryAllocator &allocator = device.get_allocator();
        memory_id = allocator.allocate(buffer, STAGING_MEMORY);
-       mapped_address = allocator.map(memory_id, 0, size);
+       mapped_address = allocator.map(memory_id);
 }
 
 TransferQueue::StagingBuffer::StagingBuffer(StagingBuffer &&other):
@@ -149,7 +150,7 @@ TransferQueue::StagingBuffer::~StagingBuffer()
 
        if(mapped_address)
        {
-               allocator.unmap(mapped_address);
+               allocator.unmap(memory_id);
                allocator.release(memory_id);
        }
        if(buffer)