Browse Source

Ease the checking on allocation of padbuffer8 in the hope it works partially anyway on an apparently failed call.

Con Kolivas 13 years ago
parent
commit
25c39c96bb
1 changed files with 6 additions and 1 deletions
  1. 6 1
      ocl.c

+ 6 - 1
ocl.c

@@ -816,8 +816,13 @@ built:
 			bufsize = cgpu->max_alloc;
 		applog(LOG_DEBUG, "Creating scrypt buffer sized %d", bufsize);
 		clState->padbufsize = bufsize;
+
+		/* This buffer is weird and might work to some degree even if
+		 * the create buffer call has apparently failed, so check if we
+		 * get anything back before we call it a failure. */
+		clState->padbuffer8 = NULL;
 		clState->padbuffer8 = clCreateBuffer(clState->context, CL_MEM_READ_WRITE, bufsize, NULL, &status);
-		if (status != CL_SUCCESS) {
+		if (status != CL_SUCCESS && !clState->padbuffer8) {
 			applog(LOG_ERR, "Error %d: clCreateBuffer (padbuffer8), decrease CT or increase LG", status);
 			return NULL;
 		}