Hi Raj,
I'm using the latest fosphor from git (7b6b9961bc2d9b84daeb42a5c8f8aeba293d207c) and am seeing two weird (and I believe related) issues. Firstly, I see the following error:
[+] Selected device: TITAN X (Pascal) [!] CL Error (-30, /home/user/gr-fosphor/lib/fosphor/cl.c:409): Unable to queue clear of spectrum buffer
That's really weird indeed. Although I've seen it before. Can't remember exactly what it was though ...
This is CL_INVALID_VALUE returning from clEnqueueFillBuffer, so I added some debug fprints to cl.c to see what parameters were being passed into clEnqueueFillBuffer:
Watchout that CL 1.2 might not be supported by NVidia's driver and so it might use the fallback path defined in cl_compat.c
But there is this one condition that might be met, which is that somehow size (16384) is larger than the underlying buffer (cl->mem_spectrum). The underlying OpenGL buffer being too small brings me to my next (I believe related) issue. The spectrum plot in fosphor is weirdly pixelated, please see the attachment, which shows a screencap from "osmocom_fft -F -f 100e6 -g 20 -s 10e6".
Where is the cl->mem_spectrum buffer ultimately declared / initialized? My OpenCL / OpenGL sharing knowledge is nonexistent, any pointers for how I can help debug this issue?
So, there is two way that mem_spectrum can be initialized depending on wether CL/GL sharing is active or not. Look into cl_init_buffers_gl and cl_init_buffers_nogl basically.
But I've seen drivers do things that are not spec compliant unfortunately ... and other than trying random stuff to see exactly what they don't like, I'm not sure what to do.
Cheers,
Sylvain