SEXP setKernelArgMem(SEXP sKernel, SEXP sIndex, SEXP sBuffer){ Rcpp::XPtr<cl_kernel> kernel(sKernel); int argNr = Rcpp::as<int>(sIndex); Rcpp::XPtr<cl_mem> memObject(sBuffer); cl_int ciErr1 = clSetKernelArg(*kernel, argNr, sizeof(cl_mem), memObject); printOnError(ciErr1,"ROpenCL::setKernelArgMem()"); Rcpp::XPtr<cl_kernel> tempXPtr(kernel); return tempXPtr; }
SEXP setKernelArgMem(SEXP sKernel, SEXP sIndex, SEXP sBuffer){ Rcpp::XPtr<cl_kernel> kernel(sKernel); int argNr = Rcpp::as<int>(sIndex); Rcpp::XPtr<cl_mem> memObject(sBuffer); cl_int ciErr1 = clSetKernelArg(*kernel, argNr, sizeof(cl_mem), memObject); if (ciErr1 != CL_SUCCESS){ std::cout << "error setting kernel arguments\n"; }; if (ciErr1 == CL_INVALID_KERNEL){std::cout << "invalid kernel";}; if (ciErr1 == CL_INVALID_ARG_INDEX){std::cout << "invalid arg index";}; if (ciErr1 == CL_INVALID_ARG_VALUE){std::cout << "invalid arg value";}; if (ciErr1 == CL_INVALID_MEM_OBJECT){std::cout << "invalid mem object";}; if (ciErr1 == CL_INVALID_SAMPLER){std::cout << "invalid sampler";}; if (ciErr1 == CL_INVALID_ARG_SIZE){std::cout << "invalid arg size";}; if (ciErr1 == CL_OUT_OF_RESOURCES){std::cout << "OOR";}; if (ciErr1 == CL_OUT_OF_HOST_MEMORY){std::cout << "OOHM";}; Rcpp::XPtr<cl_kernel> tempXPtr(kernel); return tempXPtr; }