From 37573aeeb595ebc31da54e8ed95a80f26953436a Mon Sep 17 00:00:00 2001 From: nihuini Date: Fri, 22 Mar 2019 11:16:51 +0800 Subject: [PATCH] remove unused record download --- src/command.cpp | 52 +++---------------------------------------------- src/command.h | 5 ----- 2 files changed, 3 insertions(+), 54 deletions(-) diff --git a/src/command.cpp b/src/command.cpp index 3aacef64f..e183383a8 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -749,31 +749,12 @@ void VkTransfer::record_upload(const Mat& src, VkMat& dst) } record_type r; - r.type = 0; r.size = src.total() * src.elemsize; r.mat = src; r.vkmat = dst; delayed_records.push_back(r); } -void VkTransfer::record_download(const VkMat& src, Mat& dst) -{ - dst.create_like(src);// TODO respect blob allocator - - if (src.allocator->mappable) - { - src.download(dst); - return; - } - - record_type r; - r.type = 1; - r.size = src.total() * src.elemsize; - r.mat = dst; - r.vkmat = src; - delayed_records.push_back(r); -} - int VkTransfer::submit() { if (delayed_records.empty()) @@ -789,7 +770,6 @@ int VkTransfer::submit() staging_buffer_size += alignSize(r.size, buffer_offset_alignment); } - // TODO sperated staging buffer for upload and download ? // allocate staging buffer staging_data = staging_vkallocator->fastMalloc(staging_buffer_size); @@ -798,10 +778,8 @@ int VkTransfer::submit() for (int i=0; imapped_ptr + mapped_ptr_offset, r.mat.data, r.size); - } + + memcpy((unsigned char*)staging_data->mapped_ptr + mapped_ptr_offset, r.mat.data, r.size); mapped_ptr_offset += alignSize(r.size, buffer_offset_alignment); } @@ -816,15 +794,7 @@ int VkTransfer::submit() { const record_type& r = delayed_records[i]; - switch (r.type) - { - case 0: - copy_buffer(staging_data->buffer, staging_buffer_offset, r.vkmat.buffer(), r.vkmat.buffer_offset(), r.size); - break; - case 1: - copy_buffer(r.vkmat.buffer(), r.vkmat.buffer_offset(), staging_data->buffer, staging_buffer_offset, r.size); - break; - } + copy_buffer(staging_data->buffer, staging_buffer_offset, r.vkmat.buffer(), r.vkmat.buffer_offset(), r.size); staging_buffer_offset += alignSize(r.size, buffer_offset_alignment); } @@ -841,24 +811,8 @@ int VkTransfer::wait() int ret = wait_fence(); - int transfer_count = delayed_records.size(); - - // copy download data - size_t mapped_ptr_offset = 0; - for (int i=0; imapped_ptr + mapped_ptr_offset, r.size); - } - - mapped_ptr_offset += alignSize(r.size, buffer_offset_alignment); - } - // deallocate staging buffer staging_vkallocator->fastFree(staging_data); - staging_data = 0; delayed_records.clear(); diff --git a/src/command.h b/src/command.h index b0f73c6ab..d6cdcb0dc 100644 --- a/src/command.h +++ b/src/command.h @@ -156,8 +156,6 @@ public: void record_upload(const Mat& src, VkMat& dst); - void record_download(const VkMat& src, Mat& dst); - int submit(); int wait(); @@ -178,9 +176,6 @@ protected: // delayed record struct record_type { - // 0=upload - // 1=download - int type; size_t size; Mat mat; VkMat vkmat;