From 58d45725c7cca54c02079566e0f0bb59b16a1e5d Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Tue, 24 Mar 2026 03:07:09 +0100 Subject: [PATCH] rusticl/device: Fix reporting of global memory on mixed memory devices AMD APUs are hitting this case where they have very small discrete VRAM, but a lot of staging memory, which can be used additionally. Fixes: 7487ac20463 ("rusticl/device: support query_memory_info to retrieve available memory") Part-of: --- src/gallium/frontends/rusticl/core/device.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/frontends/rusticl/core/device.rs b/src/gallium/frontends/rusticl/core/device.rs index 3e2c9d43370..1fde16e680d 100644 --- a/src/gallium/frontends/rusticl/core/device.rs +++ b/src/gallium/frontends/rusticl/core/device.rs @@ -999,11 +999,19 @@ impl DeviceBase { pub fn global_mem_size(&self) -> cl_ulong { if let Some(memory_info) = self.screen.query_memory_info() { - let memory: cl_ulong = if memory_info.total_device_memory != 0 { - memory_info.total_device_memory.into() + let device_memory: cl_ulong = memory_info.total_device_memory.into(); + let staging_memory: cl_ulong = memory_info.total_staging_memory.into(); + + // In case some driver doesn't set uma correctly. + let memory = if device_memory == 0 { + staging_memory + } else if self.unified_memory() { + // For UMA devices we expose both. + staging_memory + device_memory } else { - memory_info.total_staging_memory.into() + device_memory }; + memory * 1024 } else { self.screen.compute_caps().max_global_size