diff options
author | Rob Clark <[email protected]> | 2016-03-25 15:15:44 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-05-11 12:20:11 -0400 |
commit | 5261947260bf63693fc13eaaf8a1e845ab130a57 (patch) | |
tree | 4b9e520742f6b1936095000df6f44100142c8a61 /src/compiler/nir/nir.h | |
parent | b10cc245198d375b940a49b4f93a73bc75e47ce8 (diff) |
nir: lower-io-types pass
A pass to lower complex (struct/array/mat) inputs/outputs to primitive
types. This allows, for example, linking that removes unused components
of a larger type which is not indirectly accessed.
In the near term, it is needed for gallium (mesa/st) support for NIR,
since only used components of a type are assigned VBO slots, and we
otherwise have no way to represent that to the driver backend. But it
should be useful for doing shader linking in NIR.
v2: use glsl_count_attribute_slots() rather than passing a type_size
fxn pointer
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir.h')
-rw-r--r-- | src/compiler/nir/nir.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 51773412d20..68f948e83a5 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -2293,6 +2293,7 @@ void nir_lower_io(nir_shader *shader, nir_src *nir_get_io_offset_src(nir_intrinsic_instr *instr); nir_src *nir_get_io_vertex_index_src(nir_intrinsic_instr *instr); +void nir_lower_io_types(nir_shader *shader); void nir_lower_vars_to_ssa(nir_shader *shader); bool nir_remove_dead_variables(nir_shader *shader, nir_variable_mode modes); |