add crash point in the case of cropted memory access

This commit is contained in:
gfuse
2021-08-23 16:00:45 +02:00
parent 90e452f0c9
commit a06820e803
+10 -12
View File
@@ -24,30 +24,27 @@ public:
}; };
template<typename T> template<typename T>
int32_t write(size_t id/*buffer ID*/,T* buf,cl::CommandQueue* queue,cl::Context* context,size_t buf_size){ int32_t write(size_t id/*buffer ID*/,T* buf,cl::CommandQueue* queue,cl::Context* context,size_t buf_size){
cl_int error;
_buffers.push_back(std::pair<std::pair<cl::Buffer,size_t>,size_t>(std::pair<cl::Buffer,size_t>(cl::Buffer(*context, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR _buffers.push_back(std::pair<std::pair<cl::Buffer,size_t>,size_t>(std::pair<cl::Buffer,size_t>(cl::Buffer(*context, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR
, sizeof(T) * buf_size,buf), , sizeof(T) * buf_size,buf,&error),
buf_size),id)); buf_size),id));
assert(error == CL_SUCCESS);
cl_int err=_kernel->setArg(id,_buffers.back().first.first); cl_int err=_kernel->setArg(id,_buffers.back().first.first);
if(err!=0){ assert(err == CL_SUCCESS);
std::cerr<<"Error C:Kernel, F:write, L3:setArg\t"<<id<<"\t"<<err<<'\n';
return err;
}
return CL_SUCCESS; return CL_SUCCESS;
}; };
int32_t write(size_t id/*buffer ID*/,cv::Mat& buf,cl::Context* context){ int32_t write(size_t id/*buffer ID*/,cv::Mat& buf,cl::Context* context){
cl_int error;
_images.push_back(std::pair<cl::Image2D,size_t>(cl::Image2D(*context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, _images.push_back(std::pair<cl::Image2D,size_t>(cl::Image2D(*context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR,
cl::ImageFormat(CL_R, CL_UNSIGNED_INT8), cl::ImageFormat(CL_R, CL_UNSIGNED_INT8),
buf.size().width, buf.size().width,
buf.size().height, buf.size().height,
0, 0,
reinterpret_cast<uchar*>(buf.data)),id)); reinterpret_cast<uchar*>(buf.data),&error),id));
assert(error == CL_SUCCESS);
cl_int err=_kernel->setArg(id,_images.back().first); cl_int err=_kernel->setArg(id,_images.back().first);
if(err!=0){ assert(err == CL_SUCCESS);
std::cerr<<"Error C:Kernel, F:write image, L:setArg ID:\t"<<id<<"\t"<<err<<'\n';
return err;
}
return CL_SUCCESS; return CL_SUCCESS;
}; };
@@ -138,7 +135,8 @@ public:
} }
template<typename T> template<typename T>
int32_t write_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T&& value){ int32_t write_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T&& value){
_kernels.at(id1)._kernel->setArg(id2,value); cl_int error=_kernels.at(id1)._kernel->setArg(id2,value);
assert(error == CL_SUCCESS);
}; };
template<typename T> template<typename T>
int32_t reload_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T* buf) { int32_t reload_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T* buf) {