| 50 | } |
| 51 | |
| 52 | void kernel(cl::Buffer& devOut, cl::CommandQueue& queue, float t) |
| 53 | { |
| 54 | static std::once_flag compileFlag; |
| 55 | static cl::Program prog; |
| 56 | static cl::Kernel kern; |
| 57 | |
| 58 | std::call_once(compileFlag, |
| 59 | [queue]() { |
| 60 | prog = cl::Program(queue.getInfo<CL_QUEUE_CONTEXT>(), sincos_surf_kernel, true); |
| 61 | kern = cl::Kernel(prog, "generateCurve"); |
| 62 | }); |
| 63 | |
| 64 | NDRange global(ZSIZE); |
| 65 | |
| 66 | kern.setArg(0, devOut); |
| 67 | kern.setArg(1, t); |
| 68 | kern.setArg(2, DX); |
| 69 | kern.setArg(3, ZMIN); |
| 70 | kern.setArg(4, ZSIZE); |
| 71 | queue.enqueueNDRangeKernel(kern, cl::NullRange, global); |
| 72 | } |
| 73 | |
| 74 | int main(void) |
| 75 | { |