/// <summary> /// creates a command queue in a context /// </summary> /// <param name="context"></param> /// <param name="defaultQueue">OpenCL 2.0 dynamic parallelism queue</param> /// <param name="async">async!=0 means out-of-order command queue</param> public ClCommandQueue(ClContext context, bool defaultQueue, int async = 0) { hContext = context.h(); hDevice = context.hd(); if (defaultQueue) { try { hCommandQueue = createCommandQueue2(hContext, hDevice, async, defaultQueue); } catch (EntryPointNotFoundException epnfe) { Console.WriteLine("Error: KutuphaneCL.dll's OpenCL2.0 dynamic parallelism support(needs v1.4.1+) not found."); Console.WriteLine(epnfe.Message); } finally { } } else { hCommandQueue = createCommandQueue(hContext, hDevice, async); } addedMarkers = 0; }
/// <summary> /// creates a program from kernel string and context /// </summary> /// <param name="context"></param> /// <param name="clKernelString">kernel string to compile</param> public ClProgram(ClContext context, ClString clKernelString) { hContext = context.h(); hDevice = context.hd(); hString = clKernelString.h(); hProgram = createProgram(hContext, hDevice, hString); intProgramError = getProgramErr(hProgram); // strHata = Encoding.UTF8.GetString(programHataStringiOku(hProgram)); strProgramError = new StringBuilder(readProgramErrString(hProgram)).ToString(); }