ソースを参照

SOCL: display full log on kernel build failure

Sylvain Henry 13 年 前
コミット
6e90d6e078
共有1 個のファイルを変更した5 個の追加2 個の削除を含む
  1. 5 2
      socl/src/cl_buildprogram.c

+ 5 - 2
socl/src/cl_buildprogram.c

@@ -35,10 +35,13 @@ static void soclBuildProgram_task(void *data) {
    err = clBuildProgram(d->program->cl_programs[range], 1, &device, d->options, NULL, NULL);
    if (err != CL_SUCCESS) {
       size_t len;
-      static char buffer[4096];
-      clGetProgramBuildInfo(d->program->cl_programs[range], device, CL_PROGRAM_BUILD_LOG, sizeof(buffer), buffer, &len);
+      clGetProgramBuildInfo(d->program->cl_programs[range], device, CL_PROGRAM_BUILD_LOG, 0, NULL, &len);
+      char * buffer = malloc(len+1);
+      buffer[len] = '\0';
+      clGetProgramBuildInfo(d->program->cl_programs[range], device, CL_PROGRAM_BUILD_LOG, len, buffer, NULL);
       DEBUG_CL("clBuildProgram", err);
       ERROR_MSG("clBuildProgram: %s\n Aborting.\n", buffer);
+      free(buffer);
    }
 
    DEBUG_MSG("[Worker %d] Done building.\n", wid);