From 8f71f1527ada600725afbf0ed1eca1976ec93ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20de=20B=C3=BArca?= Date: Thu, 7 Aug 2025 16:49:18 -0700 Subject: [PATCH] rusticl: clarify naming of program-related structs and fields Reviewed-by: Karol Herbst Part-of: --- src/gallium/frontends/rusticl/core/kernel.rs | 4 +- src/gallium/frontends/rusticl/core/program.rs | 40 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/gallium/frontends/rusticl/core/kernel.rs b/src/gallium/frontends/rusticl/core/kernel.rs index 73707b66017..0b5e6096617 100644 --- a/src/gallium/frontends/rusticl/core/kernel.rs +++ b/src/gallium/frontends/rusticl/core/kernel.rs @@ -1175,7 +1175,7 @@ impl SPIRVToNirResult { } pub(super) fn convert_spirv_to_nir( - build: &ProgramDevBuild, + build: &DeviceProgramBuild, name: &str, args: &[spirv::SPIRVKernelArg], spec_constants: &HashMap, @@ -1239,7 +1239,7 @@ impl Kernel { pub fn new(name: String, prog: Arc, prog_build: &ProgramBuild) -> Arc { let kernel_info = Arc::clone(prog_build.kernel_info.get(&name).unwrap()); let builds = prog_build - .builds + .builds_by_device .iter() .filter_map(|(&dev, b)| b.kernels.get(&name).map(|k| (dev, Arc::clone(k)))) .collect(); diff --git a/src/gallium/frontends/rusticl/core/program.rs b/src/gallium/frontends/rusticl/core/program.rs index a96c6f94448..7dde54020a5 100644 --- a/src/gallium/frontends/rusticl/core/program.rs +++ b/src/gallium/frontends/rusticl/core/program.rs @@ -90,7 +90,7 @@ pub struct Program { impl_cl_type_trait!(cl_program, Program, CL_INVALID_PROGRAM); pub struct ProgramBuild { - pub builds: HashMap<&'static Device, ProgramDevBuild>, + pub builds_by_device: HashMap<&'static Device, DeviceProgramBuild>, pub kernel_info: HashMap>, spec_constants: HashMap, kernels: Vec, @@ -103,7 +103,7 @@ impl ProgramBuild { fn rebuild_kernels(&mut self, devs: &[&'static Device], is_src: bool) { let mut kernels: Vec<_> = self - .builds + .builds_by_device .values() .filter_map(|b| b.spirv.as_ref()) .flat_map(|s| s.kernels()) @@ -125,7 +125,7 @@ impl ProgramBuild { // TODO: we could run this in parallel? for dev in devs { - let Some(build) = self.builds.get_mut(dev) else { + let Some(build) = self.builds_by_device.get_mut(dev) else { continue; }; @@ -137,7 +137,7 @@ impl ProgramBuild { convert_spirv_to_nir(&build, kernel_name, &args, &self.spec_constants, dev); kernel_info_set.insert(build_result.kernel_info); - self.builds.get_mut(dev).unwrap().kernels.insert( + self.builds_by_device.get_mut(dev).unwrap().kernels.insert( kernel_name.clone(), Arc::new(build_result.nir_kernel_builds), ); @@ -158,12 +158,12 @@ impl ProgramBuild { } } - fn dev_build(&self, dev: &Device) -> &ProgramDevBuild { - self.builds.get(dev).unwrap() + fn dev_build(&self, dev: &Device) -> &DeviceProgramBuild { + self.builds_by_device.get(dev).unwrap() } - fn dev_build_mut(&mut self, dev: &Device) -> &mut ProgramDevBuild { - self.builds.get_mut(dev).unwrap() + fn dev_build_mut(&mut self, dev: &Device) -> &mut DeviceProgramBuild { + self.builds_by_device.get_mut(dev).unwrap() } pub fn kernels(&self) -> &[String] { @@ -171,12 +171,12 @@ impl ProgramBuild { } pub fn has_successful_build(&self) -> bool { - self.builds.values().any(|b| b.is_success()) + self.builds_by_device.values().any(|b| b.is_success()) } } #[derive(Default)] -pub struct ProgramDevBuild { +pub struct DeviceProgramBuild { spirv: Option, status: cl_build_status, options: String, @@ -185,7 +185,7 @@ pub struct ProgramDevBuild { pub kernels: HashMap>, } -impl ProgramDevBuild { +impl DeviceProgramBuild { pub fn hash_key( &self, cache: Option<&DiskCacheBorrowed>, @@ -309,12 +309,12 @@ fn prepare_options(options: &str, dev: &Device) -> Vec { impl Program { fn create_default_builds( devs: &[&'static Device], - ) -> HashMap<&'static Device, ProgramDevBuild> { + ) -> HashMap<&'static Device, DeviceProgramBuild> { devs.iter() .map(|&d| { ( d, - ProgramDevBuild { + DeviceProgramBuild { status: CL_BUILD_NONE, ..Default::default() }, @@ -327,7 +327,7 @@ impl Program { Arc::new(Self { base: CLObjectBase::new(RusticlTypes::Program), build: Mutex::new(ProgramBuild { - builds: Self::create_default_builds(&context.devs), + builds_by_device: Self::create_default_builds(&context.devs), spec_constants: HashMap::new(), kernels: Vec::new(), kernel_info: HashMap::new(), @@ -410,14 +410,14 @@ impl Program { let mut errors = vec![CL_SUCCESS as cl_int; devs.len()]; for (idx, (&d, b)) in devs.iter().zip(bins).enumerate() { let build = match Self::spirv_from_bin_for_dev(d, b) { - Ok((spirv, bin_type)) => ProgramDevBuild { + Ok((spirv, bin_type)) => DeviceProgramBuild { spirv: Some(spirv), bin_type: bin_type, ..Default::default() }, Err(err) => { errors[idx] = err; - ProgramDevBuild { + DeviceProgramBuild { status: CL_BUILD_ERROR, ..Default::default() } @@ -432,7 +432,7 @@ impl Program { } let mut build = ProgramBuild { - builds: builds, + builds_by_device: builds, spec_constants: HashMap::new(), kernels: Vec::new(), kernel_info: HashMap::new(), @@ -456,7 +456,7 @@ impl Program { context: context, src: ProgramSourceType::Il(SPIRVBin::from_bin(spirv)), build: Mutex::new(ProgramBuild { - builds: builds, + builds_by_device: builds, spec_constants: HashMap::new(), kernels: Vec::new(), kernel_info: HashMap::new(), @@ -738,7 +738,7 @@ impl Program { builds.insert( d, - ProgramDevBuild { + DeviceProgramBuild { spirv: spirv, status: status, log: log, @@ -749,7 +749,7 @@ impl Program { } let mut build = ProgramBuild { - builds: builds, + builds_by_device: builds, spec_constants: HashMap::new(), kernels: Vec::new(), kernel_info: HashMap::new(),