Create a command queue from the program created from source which allows us to flush the command queue in the hope it will not generate a zero sized binary any more.
diff --git a/ocl.c b/ocl.c
index 3d07f34..d5bd8e8 100644
--- a/ocl.c
+++ b/ocl.c
@@ -514,6 +514,21 @@ build:
return NULL;
}
+ /* Create the command queue just so we can flush it to try and avoid
+ * zero sized binaries */
+ clState->commandQueue = clCreateCommandQueue(clState->context, devices[gpu], 0, &status);
+ if (status != CL_SUCCESS)
+ {
+ applog(LOG_ERR, "Creating Command Queue. (clCreateCommandQueue)");
+ return NULL;
+ }
+ status = clFinish(clState->commandQueue);
+ if (status != CL_SUCCESS)
+ {
+ applog(LOG_ERR, "Finishing command queue. (clFinish)");
+ return NULL;
+ }
+
status = clGetProgramInfo( clState->program, CL_PROGRAM_BINARY_SIZES, sizeof(size_t)*nDevices, binary_sizes, NULL );
if (unlikely(status != CL_SUCCESS))
{