summaryrefslogtreecommitdiff
path: root/utests/utest_helper.cpp
diff options
context:
space:
mode:
authorPan Xiuli <xiuli.pan@intel.com>2016-07-19 10:55:32 +0800
committerYang Rong <rong.r.yang@intel.com>2016-07-20 17:35:52 +0800
commit8e5faaeba359bcfe0b9e7b2ee30c04c6a6c654f3 (patch)
tree8eeb7322d157a38fa9fc6c2b9a000629e83b8449 /utests/utest_helper.cpp
parentbe7edccf4378987b8f52aaea64e26180e1fb5472 (diff)
downloadbeignet-8e5faaeba359bcfe0b9e7b2ee30c04c6a6c654f3.tar.gz
Utest: Add check for OpenCL 2.0 extension
Beignet has some opencl2.0 builtin functions, add check for OpenCL 2.0 or Beignet for these test cases. Signed-off-by: Pan Xiuli <xiuli.pan@intel.com> Reviewed-by: Yang Rong <rong.r.yang@intel.com>
Diffstat (limited to 'utests/utest_helper.cpp')
-rw-r--r--utests/utest_helper.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/utests/utest_helper.cpp b/utests/utest_helper.cpp
index 0ecbea31..da4cfbff 100644
--- a/utests/utest_helper.cpp
+++ b/utests/utest_helper.cpp
@@ -896,3 +896,32 @@ int cl_check_subgroups(void)
return 1;
}
+int cl_check_ocl20(void)
+{
+ size_t param_value_size;
+ size_t ret_sz;
+ OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_OPENCL_C_VERSION, 0, 0, &param_value_size);
+ if(param_value_size == 0) {
+ printf("Not OpenCL 2.0 device, ");
+ if(cl_check_beignet()) {
+ printf("Beignet extension test!");
+ return 1;
+ }
+ return 0;
+ }
+ char* device_version_str = (char* )malloc(param_value_size * sizeof(char) );
+ OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_OPENCL_C_VERSION, param_value_size, (void*)device_version_str, &ret_sz);
+ OCL_ASSERT(ret_sz == param_value_size);
+
+ if(!strstr(device_version_str, "2.0")) {
+ free(device_version_str);
+ printf("Not OpenCL 2.0 device, ");
+ if(cl_check_beignet()) {
+ printf("Beignet extension test!");
+ return 1;
+ }
+ return 0;
+ }
+ free(device_version_str);
+ return 1;
+}