/// <summary> /// Loads a compiled kernel into the given OpenCL context as kernel program. /// </summary> /// <param name="accelerator">The associated accelerator.</param> /// <param name="kernel">The source kernel.</param> /// <param name="launcher">The launcher method for the given kernel.</param> public CLKernel( CLAccelerator accelerator, CLCompiledKernel kernel, MethodInfo launcher) : base(accelerator, kernel, launcher) { var errorCode = LoadKernel( accelerator, kernel.Name, kernel.Source, kernel.CVersion, out programPtr, out kernelPtr, out var errorLog); if (errorCode != CLError.CL_SUCCESS) { Trace.WriteLine("Kernel loading failed:"); if (string.IsNullOrWhiteSpace(errorLog)) { Trace.WriteLine(">> No error information available"); } else { Trace.WriteLine(errorLog); } } CLException.ThrowIfFailed(errorCode); }
internal CLKernel( CLAccelerator accelerator, CLCompiledKernel kernel, MethodInfo launcher) : base(accelerator, kernel, launcher) { CLException.ThrowIfFailed(LoadKernel( accelerator, kernel.Source, out programPtr, out kernelPtr)); }