Browse Source

Use the max_hashes variable to increment nonce only in dynamic mode and use the all time highest value.

ckolivas 14 years ago
parent
commit
b36d857d9b
1 changed files with 5 additions and 4 deletions
  1. 5 4
      device-gpu.c

+ 5 - 4
device-gpu.c

@@ -1217,11 +1217,9 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work,
 				++gpu->intensity;
 		}
 	}
-	if (!work->blk.nonce)
-		gpu->max_hashes = 0;
 	set_threads_hashes(clState->preferred_vwidth, &threads, &hashes, globalThreads,
 			   localThreads[0], gpu->intensity);
-	if (hashes > gpu->max_hashes)
+	if (gpu->dynamic && hashes > gpu->max_hashes)
 		gpu->max_hashes = hashes;
 	status = thrdata->queue_kernel_parameters(clState, &work->blk);
 	if (unlikely(status != CL_SUCCESS)) {
@@ -1266,7 +1264,10 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work,
 	/* The amount of work scanned can fluctuate when intensity changes
 	 * and since we do this one cycle behind, we increment the work more
 	 * than enough to prevent repeating work */
-	work->blk.nonce += gpu->max_hashes;
+	if (gpu->dynamic)
+		work->blk.nonce += gpu->max_hashes;
+	else
+		work->blk.nonce += hashes;
 
 	return hashes;
 }