summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/clover/api
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2014-04-30 12:57:24 -0700
committerTom Stellard <[email protected]>2014-05-02 06:48:17 -0700
commite05cebafd8ff127ead71fadc20f2e2c8c719481a (patch)
tree5e70f5850f0eaab25ece6e2b2be7055f2fc21740 /src/gallium/state_trackers/clover/api
parent11f92fd9f996290422c73ea4f29f12593371748a (diff)
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 <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/clover/api')
-rw-r--r--src/gallium/state_trackers/clover/api/dispatch.cpp2
-rw-r--r--src/gallium/state_trackers/clover/api/dispatch.hpp8
-rw-r--r--src/gallium/state_trackers/clover/api/memory.cpp12
-rw-r--r--src/gallium/state_trackers/clover/api/util.hpp1
4 files changed, 21 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/api/dispatch.cpp b/src/gallium/state_trackers/clover/api/dispatch.cpp
index 2ee62086dc8..488e65491bf 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.cpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.cpp
@@ -120,7 +120,7 @@ namespace clover {
clCreateSubDevices,
clRetainDevice,
clReleaseDevice,
- NULL, // clCreateImage
+ clCreateImage,
NULL, // clCreateProgramWithBuiltInKernels
NULL, // clCompileProgram
NULL, // clLinkProgram
diff --git a/src/gallium/state_trackers/clover/api/dispatch.hpp b/src/gallium/state_trackers/clover/api/dispatch.hpp
index 833fb0e8008..ffae1ae6e12 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.hpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.hpp
@@ -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,
diff --git a/src/gallium/state_trackers/clover/api/memory.cpp b/src/gallium/state_trackers/clover/api/memory.cpp
index 7ed2191f14e..d26b1c613cb 100644
--- a/src/gallium/state_trackers/clover/api/memory.cpp
+++ b/src/gallium/state_trackers/clover/api/memory.cpp
@@ -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;
+}
diff --git a/src/gallium/state_trackers/clover/api/util.hpp b/src/gallium/state_trackers/clover/api/util.hpp
index c2b216ec236..918df6125a4 100644
--- a/src/gallium/state_trackers/clover/api/util.hpp
+++ b/src/gallium/state_trackers/clover/api/util.hpp
@@ -24,6 +24,7 @@
#define CLOVER_API_UTIL_HPP
#include <cassert>
+#include <iostream>
#include "core/error.hpp"
#include "core/property.hpp"