Commit fb0c580b621f71c0ce74c7d2067c782e7a9f13fd

Con Kolivas 2011-10-15T13:29:44

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);