nir: add nir_lower_to_explicit()
authorRhys Perry <pendingchaos02@gmail.com>
Tue, 9 Apr 2019 19:18:11 +0000 (20:18 +0100)
committerJason Ekstrand <jason@jlekstrand.net>
Thu, 8 Aug 2019 17:10:39 +0000 (12:10 -0500)
commitfd73ed1bd7e4d5a6af05d29908d6c4e2cca868b5
treee1b02f6eb96ba121eb2ad116362f0197dfba79e9
parent8bd2e138f5db8ab6f82ec7597edb946d84edd3bf
nir: add nir_lower_to_explicit()

v2: use glsl_type_size_align_func
v2: move get_explicit_type() to glsl_types.cpp/nir_types.cpp
v2: use align() instead of util_align_npot()
v2: pack arrays a bit tighter
v2: rename mem_* to field_*
v2: don't attempt to handle when struct offsets are already set
v2: use column_type() instead of recreating it
v2: use a branch instead of |= in nir_lower_to_explicit_impl()
v2: assign locations to variables and update shared_size and num_shared
v2: allow the pass to be used with nir_var_{shader_temp,function_temp}
v4: rebase
v5: add TODO
v5: small formatting changes
v5: remove incorrect assert in get_explicit_type()
v5: rename to nir_lower_vars_to_explicit_types
v5: correctly update progress when only variables are updated
v5: rename get_explicit_type() to get_explicit_shared_type()
v5: add comment explaining how get_explicit_shared_type() is different
v5: update cast strides
v6: update progress when lowering nir_var_function_temp variables
v6: formatting changes
v6: add more detailed documentation comment for get_explicit_shared_type
v6: rename get_explicit_shared_type to get_explicit_type_for_size_align
v7: fix comment in nir_lower_vars_to_explicit_types_impl()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (v5)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/glsl_types.cpp
src/compiler/glsl_types.h
src/compiler/nir/nir.h
src/compiler/nir/nir_lower_io.c
src/compiler/nir_types.cpp
src/compiler/nir_types.h