Hi,
Based on your comment about how your setup doesn't support GL/CL sharing, I tried defining FLG_FOSPHOR_USE_CLGL_SHARING as 0 in private.h. Not sharing GL objects fixes the pixelated spectrum issue! No more cl_clear_queue_clear_buffers errors either, because the code never goes down that path anymore.
Ok, good to know.
I need to come up with a good way to pass "options" to fosphor to be able to configure theses things at runtime.
It seems to me there is a bug in the way the histogram buffer or texture is allocated when it is allocated through the GL code path. I'm not sure if this is quirk of my setup/GPU/driver, or if this is a general bug; I do have an older NVIDIA GPU and another machine on which I can try to reproduce what I'm seeing.
I can't get CL/GL sharing to work at all on my optimus laptop so unfortunately I can't even test that code path anymore. I really need to build myself a desktop machine ....
Final question, what are the main downsides to NOT using CL/GL sharing? Is there some extra copy/performance overhead?
Yes. Basically the result of the CL computation is downloaded to CPU memory, then re-uploaded as a texture. Not only does that impose extra data copy but also more synchronization points between CPU and GPU.
Cheers,
Sylvain