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