rusticl/kernel: move add_sysval into KernelExecBuilder

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36917>
This commit is contained in:
Karol Herbst
2025-08-21 13:43:45 +02:00
committed by Marge Bot
parent 955c83992b
commit f83cfe7b21
+12 -10
View File
@@ -1269,6 +1269,16 @@ impl<'a> KernelExecBuilder<'a> {
self.input.extend_from_slice(&address.to_ne_bytes());
}
}
fn add_sysval(&mut self, vals: &[usize; 3]) {
if self.dev.address_bits() == 64 {
self.input
.extend_from_slice(unsafe { as_byte_slice(&vals.map(|v| v as u64)) });
} else {
self.input
.extend_from_slice(unsafe { as_byte_slice(&vals.map(|v| v as u32)) });
}
}
}
impl Kernel {
@@ -1441,14 +1451,6 @@ impl Kernel {
null_ptr_v3 = [0u8; 12].as_slice();
};
fn add_sysval(ctx: &QueueContext, input: &mut Vec<u8>, vals: &[usize; 3]) {
if ctx.dev.address_bits() == 64 {
input.extend_from_slice(unsafe { as_byte_slice(&vals.map(|v| v as u64)) });
} else {
input.extend_from_slice(unsafe { as_byte_slice(&vals.map(|v| v as u32)) });
}
}
let mut printf_buf = None;
if nir_kernel_build.printf_info.is_some() {
let buf = ctx
@@ -1589,14 +1591,14 @@ impl Kernel {
exec_builder.add_global(res, 0);
}
CompiledKernelArgType::GlobalWorkOffsets => {
add_sysval(ctx, &mut exec_builder.input, &offsets);
exec_builder.add_sysval(&offsets);
}
CompiledKernelArgType::WorkGroupOffsets => {
workgroup_id_offset_loc = Some(exec_builder.input.len());
exec_builder.input.extend_from_slice(null_ptr_v3);
}
CompiledKernelArgType::GlobalWorkSize => {
add_sysval(ctx, &mut exec_builder.input, &api_grid);
exec_builder.add_sysval(&api_grid);
}
CompiledKernelArgType::PrintfBuffer => {
let res = printf_buf.as_ref().unwrap();