@@ -78,10 +78,55 @@ OPENCL_EXTENSION(cl_khr_depth_images, true, 120)
7878OPENCL_EXTENSION(cl_khr_gl_msaa_sharing,true , 120 )
7979
8080// OpenCL 2.0.
81+ OPENCL_EXTENSION(cl_ext_float_atomics, false , 200 )
82+ OPENCL_EXTENSION(cl_khr_extended_bit_ops, false , 200 )
83+ OPENCL_EXTENSION(cl_khr_integer_dot_product, false , 200 )
84+ OPENCL_EXTENSION(cl_khr_kernel_clock, false , 200 )
8185OPENCL_EXTENSION(cl_khr_mipmap_image, true , 200 )
8286OPENCL_EXTENSION(cl_khr_mipmap_image_writes, true , 200 )
8387OPENCL_EXTENSION(cl_khr_srgb_image_writes, true , 200 )
88+ OPENCL_EXTENSION(cl_khr_subgroup_ballot, false , 200 )
89+ OPENCL_EXTENSION(cl_khr_subgroup_clustered_reduce, false , 200 )
90+ OPENCL_EXTENSION(cl_khr_subgroup_extended_types, false , 200 )
91+ OPENCL_EXTENSION(cl_khr_subgroup_non_uniform_arithmetic, false , 200 )
92+ OPENCL_EXTENSION(cl_khr_subgroup_non_uniform_vote, false , 200 )
93+ OPENCL_EXTENSION(cl_khr_subgroup_rotate, false , 200 )
94+ OPENCL_EXTENSION(cl_khr_subgroup_shuffle_relative, false , 200 )
95+ OPENCL_EXTENSION(cl_khr_subgroup_shuffle, false , 200 )
8496OPENCL_EXTENSION(cl_khr_subgroups, true , 200 )
97+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_order_acq_rel, false , 200 , OCL_C_20)
98+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_order_seq_cst, false , 200 , OCL_C_20)
99+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_scope_all_devices, false , 200 , OCL_C_20)
100+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_scope_device, false , 200 , OCL_C_20)
101+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_device_enqueue, false , 200 , OCL_C_20)
102+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_global_atomic_add, false , 200 , OCL_C_20)
103+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_global_atomic_load_store, false , 200 , OCL_C_20)
104+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_global_atomic_min_max, false , 200 , OCL_C_20)
105+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_local_atomic_add, false , 200 , OCL_C_20)
106+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_local_atomic_load_store, false , 200 , OCL_C_20)
107+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp16_local_atomic_min_max, false , 200 , OCL_C_20)
108+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp32_global_atomic_add, false , 200 , OCL_C_20)
109+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp32_global_atomic_min_max, false , 200 , OCL_C_20)
110+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp32_local_atomic_add, false , 200 , OCL_C_20)
111+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp32_local_atomic_min_max, false , 200 , OCL_C_20)
112+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp64_global_atomic_add, false , 200 , OCL_C_20)
113+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp64_global_atomic_min_max, false , 200 , OCL_C_20)
114+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp64_local_atomic_add, false , 200 , OCL_C_20)
115+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_fp64_local_atomic_min_max, false , 200 , OCL_C_20)
116+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_image_raw10_raw12, false , 200 , OCL_C_20)
117+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_image_unorm_int_2_101010, false , 200 , OCL_C_20)
118+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_ext_image_unsigned_10x6_12x4_14x2, false , 200 , OCL_C_20)
119+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_generic_address_space, false , 200 , OCL_C_20)
120+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_images, false , 200 , OCL_C_20)
121+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_integer_dot_product_input_4x8bit, false , 200 , OCL_C_20)
122+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_integer_dot_product_input_4x8bit_packed, false , 200 , OCL_C_20)
123+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_kernel_clock_scope_device, false , 200 , OCL_C_20)
124+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_kernel_clock_scope_sub_group, false , 200 , OCL_C_20)
125+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_kernel_clock_scope_work_group, false , 200 , OCL_C_20)
126+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_pipes, false , 200 , OCL_C_20)
127+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_program_scope_global_variables, false , 200 , OCL_C_20)
128+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_read_write_images, false , 200 , OCL_C_20)
129+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_work_group_collective_functions, false , 200 , OCL_C_20)
85130
86131// Clang Extensions.
87132OPENCL_EXTENSION(cl_clang_storage_class_specifiers, true , 100 )
@@ -100,17 +145,9 @@ OPENCL_EXTENSION(cl_intel_subgroups_short, true, 120)
100145OPENCL_EXTENSION(cl_intel_device_side_avc_motion_estimation, true , 120 )
101146
102147// OpenCL C 3.0 features (6.2.1. Features)
103- OPENCL_OPTIONALCOREFEATURE(__opencl_c_pipes, false , 300 , OCL_C_30)
104- OPENCL_OPTIONALCOREFEATURE(__opencl_c_generic_address_space, false , 300 , OCL_C_30)
105- OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_order_acq_rel, false , 300 , OCL_C_30)
106- OPENCL_OPTIONALCOREFEATURE(__opencl_c_atomic_order_seq_cst, false , 300 , OCL_C_30)
107- OPENCL_OPTIONALCOREFEATURE(__opencl_c_subgroups, false , 300 , OCL_C_30)
108148OPENCL_OPTIONALCOREFEATURE(__opencl_c_3d_image_writes, false , 300 , OCL_C_30)
109- OPENCL_OPTIONALCOREFEATURE(__opencl_c_device_enqueue, false , 300 , OCL_C_30)
110- OPENCL_OPTIONALCOREFEATURE(__opencl_c_read_write_images, false , 300 , OCL_C_30)
111- OPENCL_OPTIONALCOREFEATURE(__opencl_c_program_scope_global_variables, false , 300 , OCL_C_30)
112149OPENCL_OPTIONALCOREFEATURE(__opencl_c_fp64, false , 300 , OCL_C_30)
113- OPENCL_OPTIONALCOREFEATURE(__opencl_c_images , false , 300 , OCL_C_30)
150+ OPENCL_OPTIONALCOREFEATURE(__opencl_c_subgroups , false , 300 , OCL_C_30)
114151
115152#undef OPENCL_OPTIONALCOREFEATURE
116153#undef OPENCL_COREFEATURE
0 commit comments