私CL_BUILD_PROGRAM_FAILURE
は自分のコードで
status = clBuildProgram(program, 1, devices, NULL, NULL, NULL);
プログラムオブジェクトが正常に作成され、コンピューター内のデバイスへのポインターを取得します。
私のカーネル:
__kernel void templateKernel(__global unsigned int * output,
__global unsigned int * input,
__global unsigned int * pixels)
{
uint tid = get_global_id(0);
uint2 v0;
uint2 v1;
uint2 v2;
uint2 pixl;
uint2 dt01;
uint2 dt02;
uint2 dt11;
uint2 dt12;
float u;
float v;
float invDenom ;
for (int i=0;i<36142<i++)
{
pixl=(uint2)(pixels[tid],pixels[tid+1]);
v0.x=input[(tid*6)+4]-input[(tid*6)];
v0.y=input[(tid*6)+5]-input[(tid*6)+1];
v1.x=input[(tid*6)+2]-input[(tid*6)];
v1.y=input[(tid*6)+3]-input[(tid*6)+1];
v1.x=input[(tid*6)+2]-input[(tid*6)];
v1.y=input[(tid*6)+3]-input[(tid*6)+1];
v2.x=pixels[tid]-input[(tid*6)];
v2.y=pixels[tid+1]-input[(tid*6)+1];
dot00 = dot(v0, v0);
dt01 = dot(v0, v1);
dt02 = dot(v0, v2);
dt11 = dot(v1, v1);
dt12 = dot(v1, v2);
invDenom = 1 / (dt00 * dt11 - dt01 * dt01);
u = (dt11 * dt02 - dt01 * dt12) * invDenom;
v = (dt00 * dt12 - dt01 * dt02) * invDenom;
if (u >= 0 && v >= 0 && u + v < 1)
{
output[tid] = pixels[tid];
output[tid+1] = pixels[tid+1];
}
}
}
このエラーの原因は何ですか?