Host Pipes not working as documented in Programming Guide
Section 5.5.6.4 of the OpenCL FPGA Programming Guide has in the host code example a direct call to clReadPipeIntelFPGA() and clWritePipeIntelFPGA(), while the only downloadable code example (that I know of) that shows host pipes, "loopback_hostpipe", does the following:
map_pipe_fn = (void * (*) (cl_mem, cl_map_flags, size_t, size_t *, cl_int *)) clGetExtensionFunctionAddress("clMapHostPipeIntelFPGA");
unmap_pipe_fn = (cl_int (*) (cl_mem, void *, size_t, size_t *)) clGetExtensionFunctionAddress("clUnmapHostPipeIntelFPGA");So I tried modifying my host pipe code to use the same clGetExtensionFunctionAddress to access the clReadPipeIntelFPGA and clWritePipeIntelFPGA and that worked -- well, sort of -- at least it didn't hang like when I was calling clWritePipeIntelFPGA directly.
Is it a requirement to use clGetExtensionFunctionAddress to fetch those functions? Or should I be able to call clWritePipeIntelFPGA directly? Also, clGetExtensionFunctionAddress is marked as deprecated in cl.h, so obviously there's a better way to do it.