Skip to content

Commit 1ed8258

Browse files
Thiemo Wiedemeyerxlz
authored andcommitted
opencl: Use more concise error checking macro
Changed filling methods to return a bool on success, making macro LOG_CL_ERROR obsolete.
1 parent 1d06d2d commit 1ed8258

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

src/opencl_depth_packet_processor.cpp

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
#include <cstdlib>
5757

5858
#define CHECK_CL_ERROR(err, str) do {if (err != CL_SUCCESS) {LOG_ERROR << str << " failed: " << err; return false; } } while(0)
59-
#define LOG_CL_ERROR(err, str) if (err != CL_SUCCESS) LOG_ERROR << str << " failed: " << err
6059

6160
#define WITH_PROFILING 0
6261

@@ -691,12 +690,12 @@ class OpenCLDepthPacketProcessorImpl: public WithPerfLogging
691690
depth_frame = new OpenCLFrame(512, 424, 4, this);
692691
}
693692

694-
void fill_trig_table(const libfreenect2::protocol::P0TablesResponse *p0table)
693+
bool fill_trig_table(const libfreenect2::protocol::P0TablesResponse *p0table)
695694
{
696695
if(!deviceInitialized)
697696
{
698697
LOG_ERROR << "OpenCLDepthPacketProcessor is not initialized!";
699-
return;
698+
return false;
700699
}
701700

702701
cl_float3 *p0_table = new cl_float3[image_size];
@@ -719,50 +718,63 @@ class OpenCLDepthPacketProcessorImpl: public WithPerfLogging
719718
cl_int err = CL_SUCCESS;
720719
cl::Event event0;
721720
err = queue.enqueueWriteBuffer(buf_p0_table, CL_FALSE, 0, buf_p0_table_size, p0_table, NULL, &event0);
722-
LOG_CL_ERROR(err, "enqueueWriteBuffer");
721+
if(err != CL_SUCCESS)
722+
{
723+
LOG_ERROR << "enqueueWriteBuffer failed: " << err;
724+
delete[] p0_table;
725+
return false;
726+
}
723727

724728
err = event0.wait();
725-
LOG_CL_ERROR(err, "wait");
729+
if(err != CL_SUCCESS)
730+
{
731+
LOG_ERROR << "wait failed: " << err;
732+
delete[] p0_table;
733+
return false;
734+
}
726735

727736
delete[] p0_table;
737+
return true;
728738
}
729739

730-
void fill_xz_tables(const float *xtable, const float *ztable)
740+
bool fill_xz_tables(const float *xtable, const float *ztable)
731741
{
732742
if(!deviceInitialized)
733743
{
734744
LOG_ERROR << "OpenCLDepthPacketProcessor is not initialized!";
735-
return;
745+
return false;
736746
}
737747

738748
cl_int err = CL_SUCCESS;
739749
cl::Event event0, event1;
740750
err = queue.enqueueWriteBuffer(buf_x_table, CL_FALSE, 0, buf_x_table_size, xtable, NULL, &event0);
741-
LOG_CL_ERROR(err, "enqueueWriteBuffer");
751+
CHECK_CL_ERROR(err, "enqueueWriteBuffer");
742752
err = queue.enqueueWriteBuffer(buf_z_table, CL_FALSE, 0, buf_z_table_size, ztable, NULL, &event1);
743-
LOG_CL_ERROR(err, "enqueueWriteBuffer");
753+
CHECK_CL_ERROR(err, "enqueueWriteBuffer");
744754

745755
err = event0.wait();
746-
LOG_CL_ERROR(err, "wait");
756+
CHECK_CL_ERROR(err, "wait");
747757
err = event1.wait();
748-
LOG_CL_ERROR(err, "wait");
758+
CHECK_CL_ERROR(err, "wait");
759+
return true;
749760
}
750761

751-
void fill_lut(const short *lut)
762+
bool fill_lut(const short *lut)
752763
{
753764
if(!deviceInitialized)
754765
{
755766
LOG_ERROR << "OpenCLDepthPacketProcessor is not initialized!";
756-
return;
767+
return false;
757768
}
758769

759770
cl_int err = CL_SUCCESS;
760771
cl::Event event0;
761772
err = queue.enqueueWriteBuffer(buf_lut11to16, CL_FALSE, 0, buf_lut11to16_size, lut, NULL, &event0);
762-
LOG_CL_ERROR(err, "enqueueWriteBuffer");
773+
CHECK_CL_ERROR(err, "enqueueWriteBuffer");
763774

764775
err = event0.wait();
765-
LOG_CL_ERROR(err, "wait");
776+
CHECK_CL_ERROR(err, "wait");
777+
return true;
766778
}
767779
};
768780

0 commit comments

Comments
 (0)