From 3e61db105d5caa73195555da5c18d3413fef4365 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 18 Jul 2012 21:58:27 +1000 Subject: [PATCH] Create command queue before compiling program in opencl. --- ocl.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ocl.c b/ocl.c index 5dcced71..feb6aa2c 100644 --- a/ocl.c +++ b/ocl.c @@ -309,6 +309,18 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) return NULL; } + ///////////////////////////////////////////////////////////////// + // Create an OpenCL command queue + ///////////////////////////////////////////////////////////////// + clState->commandQueue = clCreateCommandQueue(clState->context, devices[gpu], + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, &status); + if (status != CL_SUCCESS) /* Try again without OOE enable */ + clState->commandQueue = clCreateCommandQueue(clState->context, devices[gpu], 0 , &status); + if (status != CL_SUCCESS) { + applog(LOG_ERR, "Error %d: Creating Command Queue. (clCreateCommandQueue)", status); + return NULL; + } + /* Check for BFI INT support. Hopefully people don't mix devices with * and without it! */ char * extensions = malloc(1024); @@ -739,18 +751,6 @@ built: return NULL; } - ///////////////////////////////////////////////////////////////// - // Create an OpenCL command queue - ///////////////////////////////////////////////////////////////// - clState->commandQueue = clCreateCommandQueue(clState->context, devices[gpu], - CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, &status); - if (status != CL_SUCCESS) /* Try again without OOE enable */ - clState->commandQueue = clCreateCommandQueue(clState->context, devices[gpu], 0 , &status); - if (status != CL_SUCCESS) { - applog(LOG_ERR, "Error %d: Creating Command Queue. (clCreateCommandQueue)", status); - return NULL; - } - #ifdef USE_SCRYPT if (opt_scrypt) { size_t ipt = (1024 / clState->lookup_gap + (1024 % clState->lookup_gap > 0));