hi all, my very simple kernel code is below.
__kernel void msacv_multiplyf(write_only image2d_t dstImage, read_only image2d_t srcImage, const float f, sampler_t smp) {
int2 coords = (int2)(get_global_id(0), get_global_id(1));
float4 color = read_imagef(srcImage, CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST, coords);
write_imagef(dstImage, coords, color * f);
}
You will see that I have a parameter not being used, sampler_t smp. If I don’t have that parameter, I get the compile error below! I’ve googled this message and it seems a few people are getting it on weird situations, but I have not seen anyone get it because of this.
***** Error building program. *****
OF_ERROR: Error while compiling the ptx module: CLH_ERROR_NO_BINARY_FOR_GPU
PTX Info log:
PTX Error log:
The odd thing is, in the same program, I have the kernels below, and the program builds fine with these in!
//--------------------------------------------------------------
__kernel void msacv_invert(write_only image2d_t dstImage, read_only image2d_t srcImage) {
int2 coords = (int2)(get_global_id(0), get_global_id(1));
float4 color = read_imagef(srcImage, CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST, coords);
color = (float4)(1.0f, 1.0f, 1.0f, 1.0f) - color;
write_imagef(dstImage, coords, color);
}
//--------------------------------------------------------------
__kernel void msacv_threshold(write_only image2d_t dstImage, read_only image2d_t srcImage, const float thresholdLevel) {
int2 coords = (int2)(get_global_id(0), get_global_id(1));
float4 color = read_imagef(srcImage, CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST, coords);
write_imagei(dstImage, coords, isgreaterequal(color, thresholdLevel));
}
what am I missing?
cheers,
memo.