From 4e6e814f5ece2e0fcd10f9aed379076f2071bccc Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Tue, 14 Nov 2023 12:41:44 -0600 Subject: [PATCH] nak: Rename TLS to SLM Shader Local Memory is what NVIDIA calls it in the shader header docs as well as the command stream headers. Better to be consistent even if it gets my Intel brain confused. (Intel uses SLM for shared memory.) Part-of: --- src/nouveau/compiler/nak.h | 4 ++-- src/nouveau/compiler/nak.rs | 4 ++-- src/nouveau/compiler/nak_from_nir.rs | 2 +- src/nouveau/compiler/nak_ir.rs | 2 +- src/nouveau/compiler/nak_lower_copy_swap.rs | 22 ++++++++++----------- src/nouveau/compiler/nak_sph.rs | 4 ++-- src/nouveau/vulkan/nvk_shader.c | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/nouveau/compiler/nak.h b/src/nouveau/compiler/nak.h index 21a5f4a7536..70c808d6be1 100644 --- a/src/nouveau/compiler/nak.h +++ b/src/nouveau/compiler/nak.h @@ -79,8 +79,8 @@ struct nak_shader_info { /** Number of barriers used */ uint8_t num_barriers; - /** Size of thread-local storage */ - uint32_t tls_size; + /** Size of shader local (scratch) memory */ + uint32_t slm_size; union { struct { diff --git a/src/nouveau/compiler/nak.rs b/src/nouveau/compiler/nak.rs index 6a4ea1ffef8..29a3802cf57 100644 --- a/src/nouveau/compiler/nak.rs +++ b/src/nouveau/compiler/nak.rs @@ -281,7 +281,7 @@ pub extern "C" fn nak_compile_shader( stage: nir.info.stage(), num_gprs: s.info.num_gprs, num_barriers: s.info.num_barriers, - tls_size: s.info.tls_size, + slm_size: s.info.slm_size, __bindgen_anon_1: match &s.info.stage { ShaderStageInfo::Compute(cs_info) => { nak_shader_info__bindgen_ty_1 { @@ -387,7 +387,7 @@ pub extern "C" fn nak_compile_shader( }; eprintln!("Stage: {}", stage_name); eprintln!("Num GPRs: {}", info.num_gprs); - eprintln!("TLS size: {}", info.tls_size); + eprintln!("SLM size: {}", info.slm_size); if info.stage != MESA_SHADER_COMPUTE { eprint_hex("Header", &info.hdr); diff --git a/src/nouveau/compiler/nak_from_nir.rs b/src/nouveau/compiler/nak_from_nir.rs index 8f5029dcedb..db4ee2c16ed 100644 --- a/src/nouveau/compiler/nak_from_nir.rs +++ b/src/nouveau/compiler/nak_from_nir.rs @@ -20,7 +20,7 @@ fn init_info_from_nir(nir: &nir_shader, sm: u8) -> ShaderInfo { sm: sm, num_gprs: 0, num_barriers: 0, - tls_size: nir.scratch_size, + slm_size: nir.scratch_size, uses_global_mem: false, writes_global_mem: false, // TODO: handle this. diff --git a/src/nouveau/compiler/nak_ir.rs b/src/nouveau/compiler/nak_ir.rs index 7f6fe31fc1e..f573dca76fc 100644 --- a/src/nouveau/compiler/nak_ir.rs +++ b/src/nouveau/compiler/nak_ir.rs @@ -5022,7 +5022,7 @@ pub struct ShaderInfo { pub sm: u8, pub num_gprs: u8, pub num_barriers: u8, - pub tls_size: u32, + pub slm_size: u32, pub uses_global_mem: bool, pub writes_global_mem: bool, pub uses_fp64: bool, diff --git a/src/nouveau/compiler/nak_lower_copy_swap.rs b/src/nouveau/compiler/nak_lower_copy_swap.rs index 6eba047997a..7d2fd1727dc 100644 --- a/src/nouveau/compiler/nak_lower_copy_swap.rs +++ b/src/nouveau/compiler/nak_lower_copy_swap.rs @@ -6,15 +6,15 @@ use crate::nak_ir::*; use std::cmp::max; struct LowerCopySwap { - tls_start: u32, - tls_size: u32, + slm_start: u32, + slm_size: u32, } impl LowerCopySwap { - fn new(tls_size: u32) -> Self { + fn new(slm_size: u32) -> Self { Self { - tls_start: tls_size, - tls_size: tls_size, + slm_start: slm_size, + slm_size: slm_size, } } @@ -50,8 +50,8 @@ impl LowerCopySwap { space: MemSpace::Local, order: MemOrder::Strong(MemScope::CTA), }; - let addr = self.tls_start + src_reg.base_idx() * 4; - self.tls_size = max(self.tls_size, addr + 4); + let addr = self.slm_start + src_reg.base_idx() * 4; + self.slm_size = max(self.slm_size, addr + 4); b.push_op(OpLd { dst: copy.dst, addr: Src::new_zero(), @@ -105,8 +105,8 @@ impl LowerCopySwap { space: MemSpace::Local, order: MemOrder::Strong(MemScope::CTA), }; - let addr = self.tls_start + dst_reg.base_idx() * 4; - self.tls_size = max(self.tls_size, addr + 4); + let addr = self.slm_start + dst_reg.base_idx() * 4; + self.slm_size = max(self.slm_size, addr + 4); b.push_op(OpSt { addr: Src::new_zero(), data: copy.src, @@ -176,8 +176,8 @@ impl LowerCopySwap { impl Shader { pub fn lower_copy_swap(&mut self) { - let mut pass = LowerCopySwap::new(self.info.tls_size); + let mut pass = LowerCopySwap::new(self.info.slm_size); pass.run(self); - self.info.tls_size = pass.tls_size; + self.info.slm_size = pass.slm_size; } } diff --git a/src/nouveau/compiler/nak_sph.rs b/src/nouveau/compiler/nak_sph.rs index 0dc27926e59..01ad101a6ae 100644 --- a/src/nouveau/compiler/nak_sph.rs +++ b/src/nouveau/compiler/nak_sph.rs @@ -421,8 +421,8 @@ pub fn encode_header( sph.set_does_global_store(shader_info.writes_global_mem); sph.set_does_fp64(shader_info.uses_fp64); - let tls_size = shader_info.tls_size.next_multiple_of(16); - sph.set_shader_local_memory_size(tls_size.into()); + let slm_size = shader_info.slm_size.next_multiple_of(16); + sph.set_shader_local_memory_size(slm_size.into()); match &shader_info.io { ShaderIoInfo::Vtg(io) => { diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c index 42db934b2c1..e2fe817e3b7 100644 --- a/src/nouveau/vulkan/nvk_shader.c +++ b/src/nouveau/vulkan/nvk_shader.c @@ -407,7 +407,7 @@ nvk_compile_nir_with_nak(struct nvk_physical_device *pdev, else shader->num_gprs = MAX2(4, bin->info.num_gprs); shader->num_barriers = bin->info.num_barriers; - shader->slm_size = bin->info.tls_size; + shader->slm_size = bin->info.slm_size; switch (nir->info.stage) { case MESA_SHADER_COMPUTE: