diff --git a/src/gallium/frontends/rusticl/api/icd.rs b/src/gallium/frontends/rusticl/api/icd.rs index acb239b2db9..6387bbacc23 100644 --- a/src/gallium/frontends/rusticl/api/icd.rs +++ b/src/gallium/frontends/rusticl/api/icd.rs @@ -1656,17 +1656,22 @@ extern "C" fn cl_get_device_and_host_timer( } extern "C" fn cl_get_kernel_sub_group_info( - _kernel: cl_kernel, - _device: cl_device_id, - _param_name: cl_kernel_sub_group_info, - _input_value_size: usize, - _input_value: *const ::std::os::raw::c_void, - _param_value_size: usize, - _param_value: *mut ::std::os::raw::c_void, - _param_value_size_ret: *mut usize, + kernel: cl_kernel, + device: cl_device_id, + param_name: cl_kernel_sub_group_info, + input_value_size: usize, + input_value: *const ::std::os::raw::c_void, + param_value_size: usize, + param_value: *mut ::std::os::raw::c_void, + param_value_size_ret: *mut usize, ) -> cl_int { - println!("cl_get_kernel_sub_group_info not implemented"); - CL_OUT_OF_HOST_MEMORY + match_err!(kernel.get_info_obj( + (device, input_value_size, input_value), + param_name, + param_value_size, + param_value, + param_value_size_ret, + )) } extern "C" fn cl_set_program_release_callback( diff --git a/src/gallium/frontends/rusticl/api/kernel.rs b/src/gallium/frontends/rusticl/api/kernel.rs index b19573fdc0b..0bb43d1aac1 100644 --- a/src/gallium/frontends/rusticl/api/kernel.rs +++ b/src/gallium/frontends/rusticl/api/kernel.rs @@ -14,6 +14,7 @@ use self::mesa_rust_util::string::*; use self::rusticl_opencl_gen::*; use std::collections::HashSet; +use std::os::raw::c_void; use std::ptr; use std::slice; use std::sync::Arc; @@ -101,6 +102,19 @@ impl CLInfoObj for cl_kernel { } } +impl CLInfoObj for cl_kernel { + fn query( + &self, + (d, _input_value_size, _input_value): (cl_device_id, usize, *const c_void), + _q: cl_program_build_info, + ) -> CLResult> { + let _kernel = self.get_ref()?; + let _dev = d.get_arc()?; + + Err(CL_INVALID_OPERATION) + } +} + const ZERO_ARR: [usize; 3] = [0; 3]; /// # Safety