From 3c9fa18069dfe52a3922d3cf49c3883964693a49 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Tue, 2 Sep 2025 10:22:37 +0200 Subject: [PATCH] nvk: prepare for higher shared memory sizes On hw we have up to 228k of available Shared memory so a 16 bit int isn't enough for that. Reviewed-by: Mel Henning Reviewed-by: Faith Ekstrand Part-of: --- src/nouveau/compiler/nak.h | 4 ++-- src/nouveau/compiler/nak/hw_runner.rs | 4 +++- src/nouveau/compiler/nak/qmd.rs | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/nouveau/compiler/nak.h b/src/nouveau/compiler/nak.h index f50b0c708e8..32bcdc9da44 100644 --- a/src/nouveau/compiler/nak.h +++ b/src/nouveau/compiler/nak.h @@ -244,8 +244,8 @@ struct nak_qmd_cbuf { struct nak_qmd_info { uint64_t addr; - uint16_t smem_size; - uint16_t smem_max; + uint32_t smem_size; + uint32_t smem_max; uint32_t global_size[3]; diff --git a/src/nouveau/compiler/nak/hw_runner.rs b/src/nouveau/compiler/nak/hw_runner.rs index 08da8994bc3..f1f0249fce5 100644 --- a/src/nouveau/compiler/nak/hw_runner.rs +++ b/src/nouveau/compiler/nak/hw_runner.rs @@ -500,7 +500,9 @@ impl<'a> Runner { } else { shader_addr }, - smem_size: unsafe { shader.info.__bindgen_anon_1.cs }.smem_size, + smem_size: unsafe { shader.info.__bindgen_anon_1.cs } + .smem_size + .into(), smem_max: 48 * 1024, global_size: [invocations.div_ceil(local_size.into()), 1, 1], num_cbufs: 1, diff --git a/src/nouveau/compiler/nak/qmd.rs b/src/nouveau/compiler/nak/qmd.rs index fefe334ad8d..d3084e54016 100644 --- a/src/nouveau/compiler/nak/qmd.rs +++ b/src/nouveau/compiler/nak/qmd.rs @@ -569,7 +569,7 @@ fn fill_qmd(info: &nak_shader_info, qmd_info: &nak_qmd_info) -> Q { qmd.set_crs_size(info.crs_size); qmd.set_slm_size(info.slm_size); - assert!(qmd_info.smem_size >= cs_info.smem_size); + assert!(qmd_info.smem_size >= u32::from(cs_info.smem_size)); assert!(qmd_info.smem_size <= qmd_info.smem_max); qmd.set_smem_size(qmd_info.smem_size.into(), qmd_info.smem_max.into());