Browse Source

Allow writing of multiple kernels to the configuration file.

ckolivas 14 years ago
parent
commit
994cd77501
2 changed files with 21 additions and 3 deletions
  1. 20 3
      cgminer.c
  2. 1 0
      ocl.c

+ 20 - 3
cgminer.c

@@ -191,7 +191,6 @@ struct block {
 
 static struct block *blocks = NULL;
 
-char *opt_kernel = NULL;
 char *opt_socks_proxy = NULL;
 
 static const char def_conf[] = "cgminer.conf";
@@ -2334,6 +2333,26 @@ void write_config(FILE *fcfg)
 		for(i = 0; i < nDevs; i++)
 			fprintf(fcfg, "%s%d", i > 0 ? "," : "", gpus[i].adl.targettemp);
 #endif
+		fputs("\",\n\"kernel\" : \"", fcfg);
+		for(i = 0; i < nDevs; i++) {
+			fprintf(fcfg, "%s", i > 0 ? "," : "");
+			switch (gpus[i].kernel) {
+				case KL_NONE: // Shouldn't happen
+					break;
+				case KL_POCLBM:
+					fprintf(fcfg, "poclbm");
+					break;
+				case KL_PHATK:
+					fprintf(fcfg, "phatk");
+					break;
+				case KL_DIAKGCN:
+					fprintf(fcfg, "diakgcn");
+					break;
+				case KL_DIABLO:
+					fprintf(fcfg, "diablo");
+					break;
+			}
+		}
 		fputs("\"", fcfg);
 #ifdef WANT_CPUMINE
 		fputs(",\n", fcfg);
@@ -2380,8 +2399,6 @@ void write_config(FILE *fcfg)
 	if (opt_stderr_cmd && *opt_stderr_cmd)
 		fprintf(fcfg, ",\n\"monitor\" : \"%s\"", opt_stderr_cmd);
 #endif // defined(unix)
-	if (opt_kernel && *opt_kernel)
-		fprintf(fcfg, ",\n\"kernel\" : \"%s\"", opt_kernel);
 	if (opt_kernel_path && *opt_kernel_path) {
 		char *kpath = strdup(opt_kernel_path);
 		if (kpath[strlen(kpath)-1] == '/')

+ 1 - 0
ocl.c

@@ -379,6 +379,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
 			applog(LOG_INFO, "Selecting diablo kernel");
 			clState->chosen_kernel = KL_DIABLO;
 		}
+		gpus[gpu].kernel = clState->chosen_kernel;
 	} else
 		clState->chosen_kernel = gpus[gpu].kernel;