1*6467f958SSadaf Ebrahimi // 2*6467f958SSadaf Ebrahimi // Copyright (c) 2020 The Khronos Group Inc. 3*6467f958SSadaf Ebrahimi // 4*6467f958SSadaf Ebrahimi // Licensed under the Apache License, Version 2.0 (the "License"); 5*6467f958SSadaf Ebrahimi // you may not use this file except in compliance with the License. 6*6467f958SSadaf Ebrahimi // You may obtain a copy of the License at 7*6467f958SSadaf Ebrahimi // 8*6467f958SSadaf Ebrahimi // http://www.apache.org/licenses/LICENSE-2.0 9*6467f958SSadaf Ebrahimi // 10*6467f958SSadaf Ebrahimi // Unless required by applicable law or agreed to in writing, software 11*6467f958SSadaf Ebrahimi // distributed under the License is distributed on an "AS IS" BASIS, 12*6467f958SSadaf Ebrahimi // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*6467f958SSadaf Ebrahimi // See the License for the specific language governing permissions and 14*6467f958SSadaf Ebrahimi // limitations under the License. 15*6467f958SSadaf Ebrahimi // 16*6467f958SSadaf Ebrahimi #ifndef _featureHelpers_h 17*6467f958SSadaf Ebrahimi #define _featureHelpers_h 18*6467f958SSadaf Ebrahimi 19*6467f958SSadaf Ebrahimi #include "compat.h" 20*6467f958SSadaf Ebrahimi #include "testHarness.h" 21*6467f958SSadaf Ebrahimi 22*6467f958SSadaf Ebrahimi struct OpenCLCFeatures 23*6467f958SSadaf Ebrahimi { 24*6467f958SSadaf Ebrahimi bool supports__opencl_c_3d_image_writes; 25*6467f958SSadaf Ebrahimi bool supports__opencl_c_atomic_order_acq_rel; 26*6467f958SSadaf Ebrahimi bool supports__opencl_c_atomic_order_seq_cst; 27*6467f958SSadaf Ebrahimi bool supports__opencl_c_atomic_scope_device; 28*6467f958SSadaf Ebrahimi bool supports__opencl_c_atomic_scope_all_devices; 29*6467f958SSadaf Ebrahimi bool supports__opencl_c_device_enqueue; 30*6467f958SSadaf Ebrahimi bool supports__opencl_c_generic_address_space; 31*6467f958SSadaf Ebrahimi bool supports__opencl_c_fp64; 32*6467f958SSadaf Ebrahimi bool supports__opencl_c_images; 33*6467f958SSadaf Ebrahimi bool supports__opencl_c_int64; 34*6467f958SSadaf Ebrahimi bool supports__opencl_c_pipes; 35*6467f958SSadaf Ebrahimi bool supports__opencl_c_program_scope_global_variables; 36*6467f958SSadaf Ebrahimi bool supports__opencl_c_read_write_images; 37*6467f958SSadaf Ebrahimi bool supports__opencl_c_subgroups; 38*6467f958SSadaf Ebrahimi bool supports__opencl_c_work_group_collective_functions; 39*6467f958SSadaf Ebrahimi }; 40*6467f958SSadaf Ebrahimi 41*6467f958SSadaf Ebrahimi int get_device_cl_c_features(cl_device_id device, OpenCLCFeatures& features); 42*6467f958SSadaf Ebrahimi 43*6467f958SSadaf Ebrahimi #endif // _featureHelpers_h 44