Consider the following example:
std::string kernelCode =
"void kernel copy(global int* image, global int* result)"
"{"
"result[get_global_id(0)] = foo(get_global_id(0));"
"}";
sources.push_back({kernelCode.c_str(), kernelCode.length()});
cl::Program program(context, sources);
if (program.build({defaultDevice}) != CL_SUCCESS)
{
std::cerr << "Error while building kernel: " <<
program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(defaultDevice) << std::endl;
exit(1);
}
else
{
qDebug() << "Kernel compiled succesfully\n";
}
How do I use or define a function like:
int foo(int id)
{
//...
}
to use in the kernel?