dikobraz

OpenCL program compilation failure

Discussion created by dikobraz on Nov 16, 2012
Latest reply on Nov 16, 2012 by binying

OpenCL reports an error, trying to compile this kernel:

 

__constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;

 

__kernel

void raycastFine(__read_only  image2d_t    imgIn,

                 float3                    someParam1,

                 float3                    someParam2,

                 int3                      someParam3,

                 int3                      someParam4,

                 __write_only image2d_t    imgOut,

                 uint2                     size)

{

    int2 tcoord;

    tcoord.x = get_global_id(0);

    tcoord.y = get_global_id(1);

    if (tcoord.x >= size.x || tcoord.y >= size.y) {

        return;

    }

   

    float4 t = read_imagef(imgIn, sampler, tcoord);

    if (t.w == 0.0f)

    {

        write_imagef(imgOut, tcoord, 0.0f);

        return;

    }

}

 

In AMD KernelAnalyzer 2:

 

========== Build: started ==========

Error: clBuildProgram had an unhandled exception.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

Error: NULL BuiltProgram Handle.

 

========== Build: 0 of 17 succeeded ==========

 

And by just changing order of formal parameters this can be fixed. Am I missing something?

 

__constant sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;

 

__kernel

void raycastFine(__read_only  image2d_t    imgIn,

                 __write_only image2d_t    imgOut,

                 float3                    someParam1,

                 float3                    someParam2,

                 int3                      someParam3,

                 int3                      someParam4,

                 uint2                     size)

{

    int2 tcoord;

    tcoord.x = get_global_id(0);

    tcoord.y = get_global_id(1);

    if (tcoord.x >= size.x || tcoord.y >= size.y) {

        return;

    }

   

    float4 t = read_imagef(imgIn, sampler, tcoord);

    if (t.w == 0.0f)

    {

        write_imagef(imgOut, tcoord, 0.0f);

        return;

    }

}

 

P.S: Where to post bug report for OpenCL?

Outcomes