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 {
unsafe { nak_postprocess_nir(nir, nak) };
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);

View file

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

View file

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