From 006eca8b3caa2a9e2f7a6bffbb894d1e2eea178a Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sat, 7 Jun 2025 00:59:00 +0200 Subject: [PATCH] rusticl/mesa: catch invalid use of resource_assign_vma in debug builds Part-of: --- src/gallium/frontends/rusticl/mesa/pipe/screen.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/frontends/rusticl/mesa/pipe/screen.rs b/src/gallium/frontends/rusticl/mesa/pipe/screen.rs index 7f28c62f478..dc304c00796 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/screen.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/screen.rs @@ -107,6 +107,14 @@ impl PipeScreen { pub fn resource_assign_vma(&self, res: &PipeResource, address: u64) -> bool { if let Some(resource_assign_vma) = self.screen().resource_assign_vma { + // Validate that we already acquired the vm range + if cfg!(debug_assertions) { + if let Some(address) = NonZeroU64::new(address) { + debug_assert!(self + .alloc_vm(address, NonZeroU64::new(1).unwrap()) + .is_none()); + } + } unsafe { resource_assign_vma(self.screen.as_ptr(), res.pipe(), address) } } else { false