69 const char *library = NULL;
74 if(!success)
return NULL;
80 module = dt_gmodule_open(library);
88 const char **iter =
ocllib;
92 module = dt_gmodule_open(library);
124 ocl->library =
module->library;
134 (
void (**)(
void)) & ocl->symbols->dt_clGetPlatformIDs);
136 (
void (**)(
void)) & ocl->symbols->dt_clGetPlatformInfo);
138 (
void (**)(
void)) & ocl->symbols->dt_clGetDeviceIDs);
140 (
void (**)(
void)) & ocl->symbols->dt_clGetDeviceInfo);
142 (
void (**)(
void)) & ocl->symbols->dt_clCreateContext);
144 (
void (**)(
void)) & ocl->symbols->dt_clCreateCommandQueue);
146 (
void (**)(
void)) & ocl->symbols->dt_clCreateProgramWithSource);
148 (
void (**)(
void)) & ocl->symbols->dt_clBuildProgram);
150 (
void (**)(
void)) & ocl->symbols->dt_clGetProgramBuildInfo);
152 (
void (**)(
void)) & ocl->symbols->dt_clCreateKernel);
154 (
void (**)(
void)) & ocl->symbols->dt_clCreateBuffer);
156 (
void (**)(
void)) & ocl->symbols->dt_clCreateImage2D);
158 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueWriteBuffer);
160 (
void (**)(
void)) & ocl->symbols->dt_clSetKernelArg);
162 (
void (**)(
void)) & ocl->symbols->dt_clGetKernelWorkGroupInfo);
164 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueNDRangeKernel);
166 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueReadImage);
168 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueWriteImage);
170 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueCopyImage);
172 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueCopyImageToBuffer);
174 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueCopyBufferToImage);
175 success = success &&
dt_gmodule_symbol(module,
"clFinish", (
void (**)(
void)) & ocl->symbols->dt_clFinish);
177 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueReadBuffer);
179 (
void (**)(
void)) & ocl->symbols->dt_clReleaseMemObject);
181 (
void (**)(
void)) & ocl->symbols->dt_clReleaseProgram);
183 (
void (**)(
void)) & ocl->symbols->dt_clReleaseKernel);
185 (
void (**)(
void)) & ocl->symbols->dt_clReleaseCommandQueue);
187 (
void (**)(
void)) & ocl->symbols->dt_clReleaseContext);
189 (
void (**)(
void)) & ocl->symbols->dt_clReleaseEvent);
191 (
void (**)(
void)) & ocl->symbols->dt_clWaitForEvents);
193 (
void (**)(
void)) & ocl->symbols->dt_clGetEventInfo);
195 (
void (**)(
void)) & ocl->symbols->dt_clGetEventProfilingInfo);
197 (
void (**)(
void)) & ocl->symbols->dt_clGetKernelInfo);
199 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueBarrier);
201 (
void (**)(
void)) & ocl->symbols->dt_clFlush);
203 (
void (**)(
void)) & ocl->symbols->dt_clGetKernelWorkGroupInfo);
205 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueReadBuffer);
207 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueWriteBuffer);
209 (
void (**)(
void)) & ocl->symbols->dt_clGetProgramInfo);
211 (
void (**)(
void)) & ocl->symbols->dt_clCreateProgramWithBinary);
213 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueCopyBuffer);
215 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueMapBuffer);
217 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueMapImage);
219 (
void (**)(
void)) & ocl->symbols->dt_clEnqueueUnmapMemObject);
221 (
void (**)(
void)) & ocl->symbols->dt_clGetMemObjectInfo);
223 ((
void (**)(
void)) & ocl->symbols->dt_clGetImageInfo));
225 ocl->have_opencl = success;
void dt_print(dt_debug_thread_t thread, const char *msg,...) __attribute__((format(printf
Print to stdout when thread is enabled, prefixed with seconds since startup.
void void void dt_vprint(dt_debug_thread_t thread, const char *msg,...) __attribute__((format(printf
dt_print() that additionally requires DT_DEBUG_VERBOSE to be enabled, i.e. both -d <channel> and -d v...