nir: Add a load/store bit size lowering pass

This is based on brw_nir_lower_mem_access_bit_sizes() but ended up being
substantially different.  While the core concepts are all the same, the
brw_* version made a lot of Intel-specific assumptions.  The new version
takes a callback which takes a number of bytes of data and an alignment
pair and returns a bit size and number of components to load/store.

Reviewed-by: M Henning <drawoc@darkrefraction.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21232>
This commit is contained in:
Faith Ekstrand
2023-02-09 18:01:16 -06:00
committed by Marge Bot
parent 34e11963fa
commit 2e2d7803c7
3 changed files with 355 additions and 0 deletions

View File

@@ -178,6 +178,7 @@ files_libnir = files(
'nir_lower_is_helper_invocation.c',
'nir_lower_multiview.c',
'nir_lower_mediump.c',
'nir_lower_mem_access_bit_sizes.c',
'nir_lower_memcpy.c',
'nir_lower_memory_model.c',
'nir_lower_non_uniform_access.c',