From b36d857d9b76996a4e7663a9af7398ef5543986a Mon Sep 17 00:00:00 2001 From: ckolivas Date: Wed, 15 Feb 2012 10:03:18 +1100 Subject: [PATCH] Use the max_hashes variable to increment nonce only in dynamic mode and use the all time highest value. --- device-gpu.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/device-gpu.c b/device-gpu.c index 5f933d50..6fe53a3d 100644 --- a/device-gpu.c +++ b/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; }