diff options
author | Rob Clark <robclark@freedesktop.org> | 2016-03-25 15:15:44 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2016-05-11 12:20:11 -0400 |
commit | 5261947260bf63693fc13eaaf8a1e845ab130a57 (patch) | |
tree | 4b9e520742f6b1936095000df6f44100142c8a61 /src/compiler/nir/nir.h | |
parent | b10cc245198d375b940a49b4f93a73bc75e47ce8 (diff) | |
download | external_mesa3d-5261947260bf63693fc13eaaf8a1e845ab130a57.zip external_mesa3d-5261947260bf63693fc13eaaf8a1e845ab130a57.tar.gz external_mesa3d-5261947260bf63693fc13eaaf8a1e845ab130a57.tar.bz2 |
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 <robclark@freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
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 5177341..68f948e 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); |