nak: Plumb the SM through to nak::Shader

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
This commit is contained in:
Faith Ekstrand 2023-01-30 20:53:18 -06:00 committed by Marge Bot
parent 611ed96557
commit 5daff0876f
3 changed files with 9 additions and 6 deletions

View file

@ -261,8 +261,9 @@ pub extern "C" fn nak_compile_shader(
) -> *mut nak_shader_bin { ) -> *mut nak_shader_bin {
unsafe { nak_postprocess_nir(nir, nak) }; unsafe { nak_postprocess_nir(nir, nak) };
let nir = unsafe { &*nir }; let nir = unsafe { &*nir };
let nak = unsafe { &*nak };
let mut s = nak_shader_from_nir(nir); let mut s = nak_shader_from_nir(nir, nak.sm);
println!("NAK IR:\n{}", &s); println!("NAK IR:\n{}", &s);

View file

@ -363,8 +363,8 @@ impl<'a> ShaderFromNir<'a> {
self.func.take().unwrap() self.func.take().unwrap()
} }
pub fn parse_shader(&mut self) -> Shader { pub fn parse_shader(&mut self, sm: u8) -> Shader {
let mut s = Shader::new(); let mut s = Shader::new(sm);
for nf in self.nir.iter_functions() { for nf in self.nir.iter_functions() {
if let Some(nfi) = nf.get_impl() { if let Some(nfi) = nf.get_impl() {
let f = self.parse_function_impl(nfi); let f = self.parse_function_impl(nfi);
@ -375,6 +375,6 @@ impl<'a> ShaderFromNir<'a> {
} }
} }
pub fn nak_shader_from_nir(ns: &nir_shader) -> Shader { pub fn nak_shader_from_nir(ns: &nir_shader, sm: u8) -> Shader {
ShaderFromNir::new(ns).parse_shader() ShaderFromNir::new(ns).parse_shader(sm)
} }

View file

@ -1149,12 +1149,14 @@ impl fmt::Display for Function {
} }
pub struct Shader { pub struct Shader {
pub sm: u8,
pub functions: Vec<Function>, pub functions: Vec<Function>,
} }
impl Shader { impl Shader {
pub fn new() -> Shader { pub fn new(sm: u8) -> Shader {
Shader { Shader {
sm: sm,
functions: Vec::new(), functions: Vec::new(),
} }
} }