fix piglit clCreateProgramWithBinary fail.
authorLuo Xionghu <xionghu.luo@intel.com>
Mon, 10 Nov 2014 06:58:40 +0000 (14:58 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Mon, 10 Nov 2014 06:13:10 +0000 (14:13 +0800)
the program should be deserialized and loaded when created from a
EXECUTABLE binary.

Signed-off-by: Luo Xionghu <xionghu.luo@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
src/cl_program.c

index 79dff34..a21a4f1 100644 (file)
@@ -249,6 +249,14 @@ cl_program_create_from_binary(cl_context             ctx,
     program->source_type = FROM_LLVM;
   }
   else if (*program->binary == 0) {
+    program->opaque = interp_program_new_from_binary(program->ctx->device->vendor_id, program->binary, program->binary_sz);
+    if (UNLIKELY(program->opaque == NULL)) {
+      err = CL_INVALID_PROGRAM;
+      goto error;
+    }
+
+    /* Create all the kernels */
+    TRY (cl_program_load_gen_program, program);
     program->binary_type = CL_PROGRAM_BINARY_TYPE_EXECUTABLE;
   }