Runtime error of my function:
fp = 0;
if (!pass && (err = clEnqueueFillBuffer(cq, avg, &fp, 4, 0, size, 0, NULL,
&favg)))
{
error(log, "clEnqueueFillBuffer(avg) failed (%s)\n", 0, FL, LN, FN,
clError(err));
return(FAIL);
}
if ((pass == MAXPASS - 1) && (err = clEnqueueFillBuffer(cq, signals, &signal,
sigsz, 0, FFT_SZ * sigsz, 0, NULL, &fsig)))
{
error(log, "clEnqueueFillBuffer(signals) failed (%s)\n", 0, FL, LN, FN,
clError(err));
return(FAIL);
}
From gdb:
(gdb) p cq
$15 = (cl_command_queue) 0x9a7060 // cq is valid has worked for all previous calls
(gdb) p signals
$13 = (cl_mem) 0x98d0a0
(gdb) p signal
$11 = {pwr = 0, hz = 0, ts = 0}
(gdb) p sigsz
$14 = 24
(gdb) p fsig
$2 = (cl_event) 0x0
FFT_SZ evaluates to 1024. I use SDK 2.9-1, ocl 1.2, from Ubuntu 14.04, running off my Curacao Pro [Radeon R9 270] (Pitcairn). Can't find anything wrong with it 😞
In fact the Fill buffer that runs before it (pass = 0, avg), runs fine. MAXPASS = 8.