mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
The main difference between load_global and load_global_constant is that the latter can be reordered arbitrarily. If the access being lowered is already tagged as being reorderable, then we can preserve that by using the load_global_constant intrinsics instead of load_global. This gives us more flexibility. On Intel, this lets us use the load_global_constant_uniform_block_intel intrinsic for doing convergent block loads in more cases. This nets us significant reductions in spill/fills: Borderlands 3 on Lunarlake sees spills/fills reduced by 53%. Alchemist sees a 13% reduction. Improves performance of Borderlands 3 DX12 on Intel Battlemage by around 44%. Improves Hogwarts Legacy by around 14%. Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31995> |
||
|---|---|---|
| .. | ||
| clc | ||
| glsl | ||
| isaspec | ||
| nir | ||
| rust | ||
| spirv | ||
| builtin_types.py | ||
| builtin_types_c.py | ||
| builtin_types_h.py | ||
| glsl_types.c | ||
| glsl_types.h | ||
| meson.build | ||
| shader_enums.c | ||
| shader_enums.h | ||
| shader_info.h | ||