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 <mhenning@darkrefraction.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37135>
This commit is contained in:
Karol Herbst 2025-09-02 10:22:37 +02:00 committed by Marge Bot
parent 083a3dc545
commit 3c9fa18069
3 changed files with 6 additions and 4 deletions

View file

@ -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];

View file

@ -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,

View file

@ -569,7 +569,7 @@ fn fill_qmd<Q: 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());