diff --git a/ocl.c b/ocl.c index 3d07f34e..d5bd8e82 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)) {