clover: Add a stub implementation of clCreateImage() v3

Now that we are uisng the OpenCL 1.2 headers, applications expect all
the OpenCL 1.2 functions to be implemented.

This fixes linking errors with the piglit CL tests.

v2:
  - Use c++ features
  - Fix error code handling

v3:
  - Move <iostream> into api/util.hpp
  - Fix indentation

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Tom Stellard 2014-04-30 12:57:24 -07:00
parent 11f92fd9f9
commit e05cebafd8
4 changed files with 21 additions and 2 deletions

View File

@ -120,7 +120,7 @@ namespace clover {
clCreateSubDevices,
clRetainDevice,
clReleaseDevice,
NULL, // clCreateImage
clCreateImage,
NULL, // clCreateProgramWithBuiltInKernels
NULL, // clCompileProgram
NULL, // clLinkProgram

View File

@ -653,7 +653,13 @@ struct _cl_icd_dispatch {
CL_API_ENTRY cl_int (CL_API_CALL *clReleaseDevice)(
cl_device_id device);
void *clCreateImage;
CL_API_ENTRY cl_mem (CL_API_CALL *clCreateImage)(
cl_context context,
cl_mem_flags flags,
const cl_image_format *image_format,
const cl_image_desc *image_desc,
void *host_ptr,
cl_int *errcode_ret);
CL_API_ENTRY cl_program (CL_API_CALL *clCreateProgramWithBuiltInKernels)(
cl_context context,

View File

@ -334,3 +334,15 @@ clSetMemObjectDestructorCallback(cl_mem d_mem,
} catch (error &e) {
return e.get();
}
CLOVER_API cl_mem
clCreateImage(cl_context d_ctx, cl_mem_flags flags,
const cl_image_format *format,
const cl_image_desc *image_desc,
void *host_ptr, cl_int *r_errcode) {
// This function was added in OpenCL 1.2
std::cerr << "CL user error: clCreateImage() not supported by OpenCL 1.1." <<
std::endl;
ret_error(r_errcode, CL_INVALID_OPERATION);
return NULL;
}

View File

@ -24,6 +24,7 @@
#define CLOVER_API_UTIL_HPP
#include <cassert>
#include <iostream>
#include "core/error.hpp"
#include "core/property.hpp"