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());