clSetKernelArg(kernel, 0, sizeof(cl_mem), &deviceMemory0); clSetKernelArg(kernel, 1, sizeof(cl_mem), &deviceMemory1); clSetKernelArg(kernel, 2, sizeof(cl_mem), &deviceMemory2); clSetKernelArg(kernel, 3, sizeof(cl_mem), &deviceMemory3); clSetKernelArg(kernel, 4, sizeof(cl_mem), &deviceMemory4); clSetKernelArg(kernel, 5, sizeof(cl_mem), &deviceMemory5); clSetKernelArg(kernel, 6, sizeof(cl_mem), &deviceMemory6); clSetKernelArg(kernel, 7, sizeof(cl_mem), &deviceMemory7); clSetKernelArg(kernel, 8, sizeof(cl_mem), &deviceMemory8); clSetKernelArg(kernel, 9, sizeof(cl_mem), &deviceMemory9);
This is not so elegant solution. Official C++ binding to OpenCL, which is available at http://www.khronos.org/registry/cl/, solves most of the problems. First solution would be to simply use C++ binding:
kernel.setArg(0,deviceMemory0); kernel.setArg(1,deviceMemory1); kernel.setArg(2,deviceMemory2); kernel.setArg(3,deviceMemory3); kernel.setArg(4,deviceMemory4); kernel.setArg(5,deviceMemory5); kernel.setArg(6,deviceMemory6); kernel.setArg(7,deviceMemory7); kernel.setArg(8,deviceMemory8); kernel.setArg(9,deviceMemory9);