Commit 66e7dc700d6659590013c5691096c1415b66ebe7

ckolivas 2012-07-02T16:51:52

Check for gpu return times of >= 0, not just 0, to fix intensity dropping to -10.

diff --git a/driver-opencl.c b/driver-opencl.c
index 90606fa..2cda939 100644
--- a/driver-opencl.c
+++ b/driver-opencl.c
@@ -1355,6 +1355,7 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work,
 	unsigned int hashes;
 
 	/* This finish flushes the readbuffer set with CL_FALSE later */
+	gettimeofday(&gpu->tv_gpustart, NULL);
 	clFinish(clState->commandQueue);
 	gettimeofday(&gpu->tv_gpuend, NULL);
 
@@ -1364,7 +1365,7 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work,
 
 		timersub(&gpu->tv_gpuend, &gpu->tv_gpustart, &diff);
 		gpu_us = diff.tv_sec * 1000000 + diff.tv_usec;
-		if (likely(gpu_us > 0)) {
+		if (likely(gpu_us >= 0)) {
 			gpu->gpu_us_average = (gpu->gpu_us_average + gpu_us * 0.63) / 1.63;
 
 			/* Try to not let the GPU be out for longer than 
@@ -1410,8 +1411,6 @@ static uint64_t opencl_scanhash(struct thr_info *thr, struct work *work,
 		clFinish(clState->commandQueue);
 	}
 
-	gettimeofday(&gpu->tv_gpustart, NULL);
-
 	if (clState->goffset) {
 		size_t global_work_offset[1];