This patch does not allocate or pass the pipe data properly. Neither does the other PIPE patch.
I will give you a clue. You can't pass pointers to OpenCL. This might work if you run on a CPU with shared memory. But on a GPU with a separate memory addressing space it will fail hard.
You need to serialize the data structure and pass it to the OpenCL compute device.