diff --git a/src/gallium/frontends/rusticl/api/kernel.rs b/src/gallium/frontends/rusticl/api/kernel.rs index 70f2b065a6e..e038bc23212 100644 --- a/src/gallium/frontends/rusticl/api/kernel.rs +++ b/src/gallium/frontends/rusticl/api/kernel.rs @@ -338,7 +338,7 @@ fn create_kernels_in_program( unsafe { kernels .add(num_kernels as usize) - .write(Kernel::new(name.clone(), p.clone(), &build).into_cl()); + .write(Kernel::new(name.clone(), Arc::clone(&p), &build).into_cl()); } } num_kernels += 1; diff --git a/src/gallium/frontends/rusticl/core/event.rs b/src/gallium/frontends/rusticl/core/event.rs index 23bfbbb8242..db4fed5d901 100644 --- a/src/gallium/frontends/rusticl/core/event.rs +++ b/src/gallium/frontends/rusticl/core/event.rs @@ -64,8 +64,8 @@ impl Event { ) -> Arc { Arc::new(Self { base: CLObjectBase::new(RusticlTypes::Event), - context: queue.context.clone(), - queue: Some(queue.clone()), + context: Arc::clone(&queue.context), + queue: Some(Arc::clone(queue)), cmd_type: cmd_type, deps: deps, state: Mutex::new(EventMutState { diff --git a/src/gallium/frontends/rusticl/core/kernel.rs b/src/gallium/frontends/rusticl/core/kernel.rs index e263a540639..6a3452400d5 100644 --- a/src/gallium/frontends/rusticl/core/kernel.rs +++ b/src/gallium/frontends/rusticl/core/kernel.rs @@ -1197,7 +1197,7 @@ impl Kernel { let builds = prog_build .builds .iter() - .filter_map(|(&dev, b)| b.kernels.get(&name).map(|k| (dev, k.clone()))) + .filter_map(|(&dev, b)| b.kernels.get(&name).map(|k| (dev, Arc::clone(k)))) .collect(); let values = vec![None; kernel_info.args.len()]; @@ -1801,11 +1801,11 @@ impl Clone for Kernel { fn clone(&self) -> Self { Self { base: CLObjectBase::new(RusticlTypes::Kernel), - prog: self.prog.clone(), + prog: Arc::clone(&self.prog), name: self.name.clone(), values: Mutex::new(self.arg_values().clone()), builds: self.builds.clone(), - kernel_info: self.kernel_info.clone(), + kernel_info: Arc::clone(&self.kernel_info), } } } diff --git a/src/gallium/frontends/rusticl/core/memory.rs b/src/gallium/frontends/rusticl/core/memory.rs index efae80c1a03..cca9c6caa28 100644 --- a/src/gallium/frontends/rusticl/core/memory.rs +++ b/src/gallium/frontends/rusticl/core/memory.rs @@ -808,7 +808,7 @@ impl MemBase { Arc::new(Buffer { base: Self { base: CLObjectBase::new(RusticlTypes::Buffer), - context: parent.context.clone(), + context: Arc::clone(&parent.context), mem_type: CL_MEM_OBJECT_BUFFER, flags: flags, size: size, @@ -967,8 +967,8 @@ impl MemBase { shadow .iter() .map(|(k, v)| { - let gl_res = imported_gl_tex.get(k).unwrap().clone(); - res_map.insert(v.clone(), gl_res); + let gl_res = Arc::clone(imported_gl_tex.get(k).unwrap()); + res_map.insert(Arc::clone(v), gl_res); }) .for_each(drop); diff --git a/src/gallium/frontends/rusticl/mesa/pipe/context.rs b/src/gallium/frontends/rusticl/mesa/pipe/context.rs index 2f28073c79a..16b612e42d4 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/context.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/context.rs @@ -41,7 +41,7 @@ impl PipeContext { pub(super) fn new(context: *mut pipe_context, screen: &Arc) -> Option { let s = Self { pipe: NonNull::new(context)?, - screen: screen.clone(), + screen: Arc::clone(screen), }; if !has_required_cbs(unsafe { s.pipe.as_ref() }) { diff --git a/src/gallium/frontends/rusticl/mesa/pipe/fence.rs b/src/gallium/frontends/rusticl/mesa/pipe/fence.rs index c673dcce259..7aeb1b7bea0 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/fence.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/fence.rs @@ -26,7 +26,7 @@ impl PipeFence { pub fn new(fence: *mut pipe_fence_handle, screen: &Arc) -> Self { Self { fence: fence, - screen: screen.clone(), + screen: Arc::clone(screen), } }