summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir.h
diff options
context:
space:
mode:
authorRob Clark <robclark@freedesktop.org>2016-03-25 15:15:44 -0400
committerRob Clark <robclark@freedesktop.org>2016-05-11 12:20:11 -0400
commit5261947260bf63693fc13eaaf8a1e845ab130a57 (patch)
tree4b9e520742f6b1936095000df6f44100142c8a61 /src/compiler/nir/nir.h
parentb10cc245198d375b940a49b4f93a73bc75e47ce8 (diff)
downloadexternal_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.h1
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);