diff --git a/src/nouveau/compiler/meson.build b/src/nouveau/compiler/meson.build index a5db9f10ed2..2a77a6e921c 100644 --- a/src/nouveau/compiler/meson.build +++ b/src/nouveau/compiler/meson.build @@ -49,6 +49,7 @@ nak_bindings_rs = rust.bindgen( '--raw-line', '#![allow(non_upper_case_globals)]', '--allowlist-type', 'exec_list', '--allowlist-type', 'exec_node', + '--allowlist-type', 'gl_access_qualifier', '--allowlist-type', 'gl_frag_result', '--allowlist-type', 'gl_interp_mode', '--allowlist-type', 'gl_shader_stage', diff --git a/src/nouveau/compiler/nir.rs b/src/nouveau/compiler/nir.rs index d70f6268dfa..f2c70baa357 100644 --- a/src/nouveau/compiler/nir.rs +++ b/src/nouveau/compiler/nir.rs @@ -256,6 +256,7 @@ pub trait NirIntrinsicInstr { fn cluster_size(&self) -> u32; fn image_dim(&self) -> glsl_sampler_dim; fn image_array(&self) -> bool; + fn access(&self) -> gl_access_qualifier; fn align(&self) -> u32; fn align_mul(&self) -> u32; fn align_offset(&self) -> u32; @@ -324,6 +325,10 @@ impl NirIntrinsicInstr for nir_intrinsic_instr { self.get_const_index(NIR_INTRINSIC_IMAGE_ARRAY) != 0 } + fn access(&self) -> gl_access_qualifier { + self.get_const_index(NIR_INTRINSIC_ACCESS) as gl_access_qualifier + } + fn align(&self) -> u32 { let mul = self.align_mul(); let offset = self.align_offset();