Go to kernel build should we fail to clCreateProgramWithBinary instead of failing on that device. Should fix the windows problems with devices not initialising.
diff --git a/ocl.c b/ocl.c
index ab6fdfb..682c3f3 100644
--- a/ocl.c
+++ b/ocl.c
@@ -437,14 +437,14 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
fclose(binaryfile);
goto build;
}
- fclose(binaryfile);
clState->program = clCreateProgramWithBinary(clState->context, 1, &devices[gpu], &binary_sizes[gpu], (const unsigned char **)&binaries[gpu], &status, NULL);
- if (status != CL_SUCCESS)
- {
+ if (status != CL_SUCCESS) {
applog(LOG_ERR, "Error: Loading Binary into cl_program (clCreateProgramWithBinary)");
- return NULL;
+ fclose(binaryfile);
+ goto build;
}
+ fclose(binaryfile);
if (opt_debug)
applog(LOG_DEBUG, "Loaded binary image %s", binaryfilename);