Exemplo n.º 1
0
        internal static Kernels CreateInternal(CommandQueue commandQueue, Program program, Int32 kernelsCount, Int32 kernelInfoBufferSize)
        {
            Validate(commandQueue, program);

            Int32 numKernelsRet = 0;

            CLKernel[] openclKernels = new CLKernel[kernelsCount];

            OpenCLError.Validate(OpenCLDriver.clCreateKernelsInProgram(program.CLProgram, openclKernels.Length, openclKernels, ref numKernelsRet));

            Kernel[] result = new Kernel[numKernelsRet];

            for (int i = 0; i < numKernelsRet; i++)
            {
                result[i] = new Kernel(openclKernels[i], program, commandQueue, kernelInfoBufferSize);
            }

            return(new Kernels(result));
        }