diff --git a/src/gallium/frontends/rusticl/core/kernel.rs b/src/gallium/frontends/rusticl/core/kernel.rs index 4dba616e0fb..fdf26a3ae2f 100644 --- a/src/gallium/frontends/rusticl/core/kernel.rs +++ b/src/gallium/frontends/rusticl/core/kernel.rs @@ -925,7 +925,7 @@ impl Kernel { } else { input.extend_from_slice(&(mem.offset as u32).to_ne_bytes()); } - resource_info.push((Some(res.clone()), arg.offset)); + resource_info.push((res.clone(), arg.offset)); } else { let format = mem.image_format.to_pipe_format().unwrap(); let (formats, orders) = if arg.kind == KernelArgType::Image { @@ -985,7 +985,7 @@ impl Kernel { InternalKernelArgType::ConstantBuffer => { assert!(dev_state.constant_buffer.is_some()); input.extend_from_slice(null_ptr); - resource_info.push((dev_state.constant_buffer.clone(), arg.offset)); + resource_info.push((dev_state.constant_buffer.clone().unwrap(), arg.offset)); } InternalKernelArgType::GlobalWorkOffsets => { if q.device.address_bits() == 64 { @@ -1007,7 +1007,7 @@ impl Kernel { ); input.extend_from_slice(null_ptr); - resource_info.push((Some(buf.clone()), arg.offset)); + resource_info.push((buf.clone(), arg.offset)); printf_buf = Some(buf); } diff --git a/src/gallium/frontends/rusticl/mesa/pipe/context.rs b/src/gallium/frontends/rusticl/mesa/pipe/context.rs index c1275554c59..0df09a25f1a 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/context.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/context.rs @@ -356,11 +356,8 @@ impl PipeContext { unsafe { self.pipe.as_ref().launch_grid.unwrap()(self.pipe.as_ptr(), &info) } } - pub fn set_global_binding(&self, res: &[Option>], out: &mut [*mut u32]) { - let mut res: Vec<_> = res - .iter() - .map(|o| o.as_ref().map_or(ptr::null_mut(), |r| r.pipe())) - .collect(); + pub fn set_global_binding(&self, res: &[Arc], out: &mut [*mut u32]) { + let mut res: Vec<_> = res.iter().map(|r| r.pipe()).collect(); unsafe { self.pipe.as_ref().set_global_binding.unwrap()( self.pipe.as_ptr(),