Browse Source

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

nfactor-troky
ckolivas 13 years ago
parent
commit
b36d857d9b
  1. 9
      device-gpu.c

9
device-gpu.c

@ -1217,11 +1217,9 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work, @@ -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, @@ -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;
}

Loading…
Cancel
Save