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>
This commit is contained in:

committed by
Jason Ekstrand

parent
8bd2e138f5
commit
fd73ed1bd7
@@ -3464,6 +3464,11 @@ bool nir_lower_io(nir_shader *shader,
|
||||
|
||||
bool nir_io_add_const_offset_to_base(nir_shader *nir, nir_variable_mode mode);
|
||||
|
||||
bool
|
||||
nir_lower_vars_to_explicit_types(nir_shader *shader,
|
||||
nir_variable_mode modes,
|
||||
glsl_type_size_align_func type_info);
|
||||
|
||||
typedef enum {
|
||||
/**
|
||||
* An address format which is a simple 32-bit global GPU address.
|
||||
|
Reference in New Issue
Block a user