Browse Source

opencl: Get min_nonce_diff from struct mining_algorithm

Luke Dashjr 11 years ago
parent
commit
79344717f4
4 changed files with 10 additions and 1 deletions
  1. 7 1
      driver-opencl.c
  2. 1 0
      malgo/scrypt.c
  3. 1 0
      malgo/sha256d.c
  4. 1 0
      miner.h

+ 7 - 1
driver-opencl.c

@@ -1655,6 +1655,12 @@ static bool opencl_thread_init(struct thr_info *thr)
 	return true;
 	return true;
 }
 }
 
 
+static
+float opencl_min_nonce_diff(struct cgpu_info * const proc, const struct mining_algorithm * const malgo)
+{
+	return malgo->opencl_min_nonce_diff ?: -1.;
+}
+
 #ifdef USE_SHA256D
 #ifdef USE_SHA256D
 static bool opencl_prepare_work(struct thr_info __maybe_unused *thr, struct work *work)
 static bool opencl_prepare_work(struct thr_info __maybe_unused *thr, struct work *work)
 {
 {
@@ -1892,7 +1898,7 @@ struct device_drv opencl_api = {
 	.dname = "opencl",
 	.dname = "opencl",
 	.name = "OCL",
 	.name = "OCL",
 	.probe_priority = 110,
 	.probe_priority = 110,
-	.drv_min_nonce_diff = common_sha256d_and_scrypt_min_nonce_diff,
+	.drv_min_nonce_diff = opencl_min_nonce_diff,
 	.drv_detect = opencl_detect,
 	.drv_detect = opencl_detect,
 	.reinit_device = reinit_opencl_device,
 	.reinit_device = reinit_opencl_device,
 	.watchdog = opencl_watchdog,
 	.watchdog = opencl_watchdog,

+ 1 - 0
malgo/scrypt.c

@@ -585,6 +585,7 @@ struct mining_algorithm malgo_scrypt = {
 	.opencl_intensity_to_oclthreads = opencl_intensity_to_oclthreads_scrypt,
 	.opencl_intensity_to_oclthreads = opencl_intensity_to_oclthreads_scrypt,
 	.opencl_min_oclthreads =      0x100,  // intensity   8
 	.opencl_min_oclthreads =      0x100,  // intensity   8
 	.opencl_max_oclthreads = 0x20000000,  // intensity  31
 	.opencl_max_oclthreads = 0x20000000,  // intensity  31
+	.opencl_min_nonce_diff = 1./0x10000,
 	.opencl_get_default_kernel_file = opencl_get_default_kernel_file_scrypt,
 	.opencl_get_default_kernel_file = opencl_get_default_kernel_file_scrypt,
 #endif
 #endif
 };
 };

+ 1 - 0
malgo/sha256d.c

@@ -99,6 +99,7 @@ struct mining_algorithm malgo_sha256d = {
 	.opencl_intensity_to_oclthreads = opencl_intensity_to_oclthreads_sha256d,
 	.opencl_intensity_to_oclthreads = opencl_intensity_to_oclthreads_sha256d,
 	.opencl_min_oclthreads =       0x20,  // intensity -10
 	.opencl_min_oclthreads =       0x20,  // intensity -10
 	.opencl_max_oclthreads = 0x20000000,  // intensity  14
 	.opencl_max_oclthreads = 0x20000000,  // intensity  14
+	.opencl_min_nonce_diff = 1.,
 	.opencl_get_default_kernel_file = opencl_get_default_kernel_file_sha256d,
 	.opencl_get_default_kernel_file = opencl_get_default_kernel_file_sha256d,
 #endif
 #endif
 };
 };

+ 1 - 0
miner.h

@@ -1151,6 +1151,7 @@ struct mining_algorithm {
 	unsigned long (*opencl_intensity_to_oclthreads)(float intensity);
 	unsigned long (*opencl_intensity_to_oclthreads)(float intensity);
 	unsigned long opencl_min_oclthreads;
 	unsigned long opencl_min_oclthreads;
 	unsigned long opencl_max_oclthreads;
 	unsigned long opencl_max_oclthreads;
+	float opencl_min_nonce_diff;
 	char *(*opencl_get_default_kernel_file)(const struct mining_algorithm *, struct cgpu_info *, struct _clState *);
 	char *(*opencl_get_default_kernel_file)(const struct mining_algorithm *, struct cgpu_info *, struct _clState *);
 #endif
 #endif
 };
 };