Hi,
Im tring to implement BFS in OpenCL. As pipe and device_enqueue are introducedin OpenCL2.0. Its both quit important in BFS. so here’s the issue i just encounted.
deviceEnqueueDummyKernel B( read_only pipe Z, write_only pipe W )
{
...
enqueue_kernel(...^{Kernel A(Z, W);})
}
Kernel A( read_only pipe X, write_only pipe Y)
{
...
void (^bfsDummy_device_enqueue_wrapper_blk)(void) = ^{deviceEnqueueDummyKernel(Y, X);};
enqueue_kernel(...bfsDummy_device_enqueue_wrapper_blk)
}
When compiled on intel(CPU) platform. the compiler indicates:
" error: passing 'const write_only pipe uint' to parameter of incompatible type 'read_only pipe uint' "
When compiled on Qcom mobile(GPU) platform, no error at compiling but “Segmentation fault” when start running the kernel in the program caused by “null pointer dereference” when back traced as "/vendor/lib64/libCB.so (cl_a6x_update_kernel_arguments+1588)"
So this issue may be compiler related. (Clang / passing parameter in Blocks)?
Is there any workaround for it?