diff --git a/src/gallium/frontends/rusticl/core/program.rs b/src/gallium/frontends/rusticl/core/program.rs index e914d330a7f..e976b018897 100644 --- a/src/gallium/frontends/rusticl/core/program.rs +++ b/src/gallium/frontends/rusticl/core/program.rs @@ -42,7 +42,11 @@ struct ProgramDevBuild { log: String, } -fn prepare_options(options: &str) -> Vec { +fn prepare_options(options: &str, dev: &Device) -> Vec { + let mut options = options.to_owned(); + if !dev.image_supported() { + options.push_str(" -U__IMAGE_SUPPORT__"); + } options .split_whitespace() .map(|a| match a { @@ -126,7 +130,7 @@ impl Program { let mut info = self.build_info(); let d = Self::dev_build_info(&mut info, dev); - let args = prepare_options(&options); + let args = prepare_options(&options, dev); let (spirv, log) = spirv::SPIRVBin::from_clc(&self.src, &args, &Vec::new(), dev.cl_features()); @@ -165,7 +169,7 @@ impl Program { ) -> bool { let mut info = self.build_info(); let d = Self::dev_build_info(&mut info, dev); - let args = prepare_options(&options); + let args = prepare_options(&options, dev); let (spirv, log) = spirv::SPIRVBin::from_clc(&self.src, &args, headers, dev.cl_features());