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