diff --git a/test_conformance/computeinfo/main.cpp b/test_conformance/computeinfo/main.cpp index d993655b..03bdb2c1 100644 --- a/test_conformance/computeinfo/main.cpp +++ b/test_conformance/computeinfo/main.cpp @@ -95,8 +95,8 @@ typedef struct _version version_t; struct _extensions { - int cl_khr_fp64; - int cl_khr_fp16; + int has_cl_khr_fp64; + int has_cl_khr_fp16; }; typedef struct _extensions extensions_t; @@ -1069,11 +1069,11 @@ int parseExtensions(char const* str, extensions_t* extensions) } if (strncmp(begin, "cl_khr_fp64", length) == 0) { - extensions->cl_khr_fp64 = 1; + extensions->has_cl_khr_fp64 = 1; } if (strncmp(begin, "cl_khr_fp16", length) == 0) { - extensions->cl_khr_fp16 = 1; + extensions->has_cl_khr_fp16 = 1; } begin += length; // Skip word. if (begin[0] == ' ') @@ -1112,13 +1112,13 @@ int getConfigInfos(cl_device_id device) // version 1.1, we have to check doubles are sopported. In // OpenCL 1.2 CL_DEVICE_DOUBLE_FP_CONFIG should be reported // unconditionally. - get = extensions.cl_khr_fp64; + get = extensions.has_cl_khr_fp64; }; if (info.opcode == CL_DEVICE_HALF_FP_CONFIG) { // CL_DEVICE_HALF_FP_CONFIG should be reported only when cl_khr_fp16 // extension is available - get = extensions.cl_khr_fp16; + get = extensions.has_cl_khr_fp16; }; if (get) { diff --git a/test_conformance/spir/run_services.cpp b/test_conformance/spir/run_services.cpp index 06fc418d..3162e16f 100644 --- a/test_conformance/spir/run_services.cpp +++ b/test_conformance/spir/run_services.cpp @@ -389,6 +389,7 @@ OclExtensions OclExtensions::getDeviceCapabilities(cl_device_id devId) { ret = ret | OclExtensions::fromString(*it); } + return ret; } @@ -399,75 +400,80 @@ OclExtensions OclExtensions::empty() OclExtensions OclExtensions::fromString(const std::string& e) { - std::string s = "OclExtensions::" + e; - RETURN_IF_ENUM(s, OclExtensions::cl_khr_int64_base_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_int64_extended_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_3d_image_writes); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_fp16); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_gl_sharing); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_gl_event); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_d3d10_sharing); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_dx9_media_sharing); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_d3d11_sharing); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_depth_images); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_gl_depth_images); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_gl_msaa_sharing); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_image2d_from_buffer); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_initialize_memory); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_spir); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_fp64); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_global_int32_base_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_global_int32_extended_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_local_int32_base_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_local_int32_extended_atomics); - RETURN_IF_ENUM(s, OclExtensions::cl_khr_byte_addressable_store); - RETURN_IF_ENUM(s, OclExtensions::cles_khr_int64); - RETURN_IF_ENUM(s, OclExtensions::cles_khr_2d_image_array_writes); + std::string s = "OclExtensions::has_" + e; + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_int64_base_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_int64_extended_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_3d_image_writes); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_fp16); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_gl_sharing); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_gl_event); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_d3d10_sharing); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_dx9_media_sharing); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_d3d11_sharing); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_depth_images); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_gl_depth_images); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_gl_msaa_sharing); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_image2d_from_buffer); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_initialize_memory); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_spir); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_fp64); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_global_int32_base_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_global_int32_extended_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_local_int32_base_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_local_int32_extended_atomics); + RETURN_IF_ENUM(s, OclExtensions::has_cl_khr_byte_addressable_store); + RETURN_IF_ENUM(s, OclExtensions::has_cles_khr_int64); + RETURN_IF_ENUM(s, OclExtensions::has_cles_khr_2d_image_array_writes); // Unknown KHR string. return OclExtensions::empty(); } std::string OclExtensions::toString() { - - #define APPEND_STR_IF_SUPPORTS( STR, E) \ - if ( this->supports(E) ) \ - { \ - std::string ext_str( #E ); \ - std::string prefix = "OclExtensions::"; \ - size_t pos = ext_str.find( prefix ); \ - if ( pos != std::string::npos ) \ - { \ - ext_str.replace( pos, prefix.length(), ""); \ - } \ - STR += ext_str; \ - } +#define APPEND_STR_IF_SUPPORTS(STR, E) \ + if (this->supports(E)) \ + { \ + std::string ext_str(#E); \ + std::string prefix = "OclExtensions::has_"; \ + size_t pos = ext_str.find(prefix); \ + if (pos != std::string::npos) \ + { \ + ext_str.replace(pos, prefix.length(), ""); \ + } \ + STR += ext_str; \ + STR += " "; \ + } std::string s = ""; - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_int64_base_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_int64_extended_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_3d_image_writes ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_fp16 ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_gl_sharing ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_gl_event ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_d3d10_sharing ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_dx9_media_sharing ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_d3d11_sharing ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_depth_images ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_gl_depth_images ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_gl_msaa_sharing ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_image2d_from_buffer ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_initialize_memory ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_spir ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_fp64 ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_global_int32_base_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_global_int32_extended_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_local_int32_base_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_local_int32_extended_atomics ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cl_khr_byte_addressable_store ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cles_khr_int64 ); - APPEND_STR_IF_SUPPORTS( s, OclExtensions::cles_khr_2d_image_array_writes ); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_int64_base_atomics); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_int64_extended_atomics); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_3d_image_writes); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_fp16); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_gl_sharing); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_gl_event); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_d3d10_sharing); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_dx9_media_sharing); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_d3d11_sharing); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_depth_images); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_gl_depth_images); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_gl_msaa_sharing); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_image2d_from_buffer); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_initialize_memory); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_spir); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_fp64); + APPEND_STR_IF_SUPPORTS(s, + OclExtensions::has_cl_khr_global_int32_base_atomics); + APPEND_STR_IF_SUPPORTS( + s, OclExtensions::has_cl_khr_global_int32_extended_atomics); + APPEND_STR_IF_SUPPORTS(s, + OclExtensions::has_cl_khr_local_int32_base_atomics); + APPEND_STR_IF_SUPPORTS( + s, OclExtensions::has_cl_khr_local_int32_extended_atomics); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cl_khr_byte_addressable_store); + APPEND_STR_IF_SUPPORTS(s, OclExtensions::has_cles_khr_int64); + APPEND_STR_IF_SUPPORTS(s, + OclExtensions::has_cles_khr_2d_image_array_writes); return s; } diff --git a/test_conformance/spir/run_services.h b/test_conformance/spir/run_services.h index 6bac4c91..10f0d05e 100644 --- a/test_conformance/spir/run_services.h +++ b/test_conformance/spir/run_services.h @@ -113,42 +113,33 @@ private: OclExtensions(size_t ext) : m_extVector(ext) {} -// Fix a compilation error, since cl_khr_gl_sharing is defined as a macro. -#ifdef cl_khr_gl_sharing -#undef cl_khr_gl_sharing -#endif//cl_khr_gl_sharing - -#ifdef cl_khr_icd -#undef cl_khr_icd -#endif//cl_khr_icd - enum ClKhrs { - no_extensions = KhrValue<0>::Mask, - cl_khr_int64_base_atomics = KhrValue<1>::Mask, - cl_khr_int64_extended_atomics = KhrValue<2>::Mask, - cl_khr_3d_image_writes = KhrValue<3>::Mask, - cl_khr_fp16 = KhrValue<4>::Mask, - cl_khr_gl_sharing = KhrValue<5>::Mask, - cl_khr_gl_event = KhrValue<6>::Mask, - cl_khr_d3d10_sharing = KhrValue<7>::Mask, - cl_khr_dx9_media_sharing = KhrValue<8>::Mask, - cl_khr_d3d11_sharing = KhrValue<9>::Mask, - cl_khr_depth_images = KhrValue<10>::Mask, - cl_khr_gl_depth_images = KhrValue<11>::Mask, - cl_khr_gl_msaa_sharing = KhrValue<12>::Mask, - cl_khr_image2d_from_buffer = KhrValue<13>::Mask, - cl_khr_initialize_memory = KhrValue<14>::Mask, - cl_khr_context_abort = KhrValue<15>::Mask, - cl_khr_spir = KhrValue<16>::Mask, - cl_khr_fp64 = KhrValue<17>::Mask, - cl_khr_global_int32_base_atomics = KhrValue<18>::Mask, - cl_khr_global_int32_extended_atomics = KhrValue<19>::Mask, - cl_khr_local_int32_base_atomics = KhrValue<20>::Mask, - cl_khr_local_int32_extended_atomics = KhrValue<21>::Mask, - cl_khr_byte_addressable_store = KhrValue<22>::Mask, - cles_khr_int64 = KhrValue<23>::Mask, - cles_khr_2d_image_array_writes = KhrValue<24>::Mask, + no_extensions = KhrValue<0>::Mask, + has_cl_khr_int64_base_atomics = KhrValue<1>::Mask, + has_cl_khr_int64_extended_atomics = KhrValue<2>::Mask, + has_cl_khr_3d_image_writes = KhrValue<3>::Mask, + has_cl_khr_fp16 = KhrValue<4>::Mask, + has_cl_khr_gl_sharing = KhrValue<5>::Mask, + has_cl_khr_gl_event = KhrValue<6>::Mask, + has_cl_khr_d3d10_sharing = KhrValue<7>::Mask, + has_cl_khr_dx9_media_sharing = KhrValue<8>::Mask, + has_cl_khr_d3d11_sharing = KhrValue<9>::Mask, + has_cl_khr_depth_images = KhrValue<10>::Mask, + has_cl_khr_gl_depth_images = KhrValue<11>::Mask, + has_cl_khr_gl_msaa_sharing = KhrValue<12>::Mask, + has_cl_khr_image2d_from_buffer = KhrValue<13>::Mask, + has_cl_khr_initialize_memory = KhrValue<14>::Mask, + has_cl_khr_context_abort = KhrValue<15>::Mask, + has_cl_khr_spir = KhrValue<16>::Mask, + has_cl_khr_fp64 = KhrValue<17>::Mask, + has_cl_khr_global_int32_base_atomics = KhrValue<18>::Mask, + has_cl_khr_global_int32_extended_atomics = KhrValue<19>::Mask, + has_cl_khr_local_int32_base_atomics = KhrValue<20>::Mask, + has_cl_khr_local_int32_extended_atomics = KhrValue<21>::Mask, + has_cl_khr_byte_addressable_store = KhrValue<22>::Mask, + has_cles_khr_int64 = KhrValue<23>::Mask, + has_cles_khr_2d_image_array_writes = KhrValue<24>::Mask, }; size_t m_extVector;