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; }