remove unused record download

This commit is contained in:
nihuini
2019-03-22 11:16:51 +08:00
parent 05bf09ba70
commit 37573aeeb5
2 changed files with 3 additions and 54 deletions
+3 -49
View File
@@ -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; i<transfer_count; i++)
{
const record_type& r = delayed_records[i];
if (r.type == 0)
{
memcpy((unsigned char*)staging_data->mapped_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; i<transfer_count; i++)
{
const record_type& r = delayed_records[i];
if (r.type == 1)
{
memcpy(r.mat.data, (unsigned char*)staging_data->mapped_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();
-5
View File
@@ -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;