From 5f2c3151b474ac49635701ff3f56966c23abfd57 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sat, 30 Jul 2011 16:33:43 +1000 Subject: [PATCH] Read buffers only after reading data back now that we're sync. --- main.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/main.c b/main.c index abde75ae..53d0a291 100644 --- a/main.c +++ b/main.c @@ -3059,19 +3059,6 @@ static void *gpuminer_thread(void *userdata) if (unlikely(status != CL_SUCCESS)) { applog(LOG_ERR, "Error: clSetKernelArg of all params failed."); goto out; } - /* MAXBUFFERS entry is used as a flag to say nonces exist */ - if (res[MAXBUFFERS]) { - /* Clear the buffer again */ - status = clEnqueueWriteBuffer(clState->commandQueue, clState->outputBuffer, CL_TRUE, 0, - BUFFERSIZE, blank_res, 0, NULL, NULL); - if (unlikely(status != CL_SUCCESS)) - { applog(LOG_ERR, "Error: clEnqueueWriteBuffer failed."); goto out; } - if (opt_debug) - applog(LOG_DEBUG, "GPU %d found something?", gpu); - postcalc_hash_async(mythr, work, res); - memset(res, 0, BUFFERSIZE); - } - status = clEnqueueNDRangeKernel(clState->commandQueue, *kernel, 1, NULL, globalThreads, localThreads, 0, NULL, NULL); if (unlikely(status != CL_SUCCESS)) @@ -3103,6 +3090,19 @@ static void *gpuminer_thread(void *userdata) } set_threads_hashes(vectors, &threads, &hashes, globalThreads, localThreads[0]); + /* MAXBUFFERS entry is used as a flag to say nonces exist */ + if (res[MAXBUFFERS]) { + /* Clear the buffer again */ + status = clEnqueueWriteBuffer(clState->commandQueue, clState->outputBuffer, CL_TRUE, 0, + BUFFERSIZE, blank_res, 0, NULL, NULL); + if (unlikely(status != CL_SUCCESS)) + { applog(LOG_ERR, "Error: clEnqueueWriteBuffer failed."); goto out; } + if (opt_debug) + applog(LOG_DEBUG, "GPU %d found something?", gpu); + postcalc_hash_async(mythr, work, res); + memset(res, 0, BUFFERSIZE); + } + gettimeofday(&tv_end, NULL); timeval_subtract(&diff, &tv_end, &tv_start); hashes_done += hashes;