From a8f4ff691bb1705dcdc67a9bddd2335f3d1b4ee3 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Tue, 11 Jun 2024 18:19:47 +0200 Subject: [PATCH] rusticl/kernel/launch: fix global work offsets for 32 bit archs again Fixes: bb2453c6495 ("rusticl/kernel: move most of the code in launch inside the closure") Reviewed-by: Iago Toral Quiroga Part-of: --- src/gallium/frontends/rusticl/core/kernel.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gallium/frontends/rusticl/core/kernel.rs b/src/gallium/frontends/rusticl/core/kernel.rs index d92d9fb8568..b88261546fb 100644 --- a/src/gallium/frontends/rusticl/core/kernel.rs +++ b/src/gallium/frontends/rusticl/core/kernel.rs @@ -1117,7 +1117,23 @@ impl Kernel { add_global(q, &mut input, &mut resource_info, res, 0); } InternalKernelArgType::GlobalWorkOffsets => { - input.extend_from_slice(unsafe { as_byte_slice(&offsets) }); + if q.device.address_bits() == 64 { + input.extend_from_slice(unsafe { + as_byte_slice(&[ + offsets[0] as u64, + offsets[1] as u64, + offsets[2] as u64, + ]) + }); + } else { + input.extend_from_slice(unsafe { + as_byte_slice(&[ + offsets[0] as u32, + offsets[1] as u32, + offsets[2] as u32, + ]) + }); + } } InternalKernelArgType::WorkGroupOffsets => { workgroup_id_offset_loc = Some(input.len());