Browse Source

remove unused record download

tags/20190611
nihuini 7 years ago
parent
commit
37573aeeb5
2 changed files with 3 additions and 54 deletions
  1. +3
    -49
      src/command.cpp
  2. +0
    -5
      src/command.h

+ 3
- 49
src/command.cpp 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();


+ 0
- 5
src/command.h 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;


Loading…
Cancel
Save