summaryrefslogtreecommitdiff
path: root/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs')
-rw-r--r--src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs b/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs
index 8aadb26a8f6..f53203af000 100644
--- a/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs
+++ b/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs
@@ -70,11 +70,15 @@ impl SPIRVBin {
headers: &[CLCHeader],
cache: &Option<DiskCache>,
features: clc_optional_features,
+ spirv_extensions: &[CString],
address_bits: u32,
) -> (Option<Self>, String) {
let mut hash_key = None;
let has_includes = args.iter().any(|a| a.as_bytes()[0..2] == *b"-I");
+ let mut spirv_extensions: Vec<_> = spirv_extensions.iter().map(|s| s.as_ptr()).collect();
+ spirv_extensions.push(ptr::null());
+
if let Some(cache) = cache {
if !has_includes {
let mut key = Vec::new();
@@ -117,7 +121,7 @@ impl SPIRVBin {
num_args: c_args.len() as u32,
spirv_version: clc_spirv_version::CLC_SPIRV_VERSION_MAX,
features: features,
- allowed_spirv_extensions: ptr::null(),
+ allowed_spirv_extensions: spirv_extensions.as_ptr(),
address_bits: address_bits,
};
let mut msgs: Vec<String> = Vec::new();