mesa/src/amd/llvm
Marek Olšák 4263b49778 ac/nir: remove ngg_scratch LDS ABI, allocate it in the lowering pass
This is a cleanup.

Old gs LDS layout: [es outputs][gs outputs][scratch]
Old nogs LDS layout: [xfb/cull][scratch]

New gs LDS layout: [es outputs][scratch|gs outputs]
New nogs LDS layout: [scratch|xfb/cull]

The LDS scratch is moved to the beginning of the preceding buffer in LDS,
while the addresses in that LDS buffer are offset by the scratch size.
It effectively merges the LDS scratch with the preceding buffer in LDS.
Thanks to that, we no longer need the ngg_scratch ABI and the offset
in a user SGPR.

The lowering passes now return the LDS scratch size, which is used
by the drivers to determine the final LDS size.

The ngg_lds_layout SGPR is now unused without GS in RADV.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35352>
2025-07-02 20:27:41 +00:00
..
ac_llvm_build.c ac/llvm: rewrite shuffle waterfall loop 2025-06-14 13:59:11 +00:00
ac_llvm_build.h ac/llvm: rewrite shuffle waterfall loop 2025-06-14 13:59:11 +00:00
ac_llvm_helper.cpp ac/llvm: Don't use getTriple() on LLVM21+ 2025-03-11 20:54:34 +00:00
ac_llvm_util.c ac/llvm: remove the low-optimizing compiler option 2025-01-16 02:58:03 +00:00
ac_llvm_util.h ac/llvm: remove the low-optimizing compiler option 2025-01-16 02:58:03 +00:00
ac_nir_to_llvm.c ac/nir: remove ngg_scratch LDS ABI, allocate it in the lowering pass 2025-07-02 20:27:41 +00:00
ac_nir_to_llvm.h amd: lower load_local_invocation_index in NIR 2025-01-02 17:36:55 +00:00
ac_shader_abi.h ac: Don't include full nir.h anymore. 2025-02-12 22:33:07 +01:00
meson.build build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00