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