summaryrefslogtreecommitdiff
path: root/src/glsl/ir_optimization.h
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2013-06-12 13:23:48 +0200
committerMarek Olšák <maraeo@gmail.com>2013-07-02 17:02:14 +0200
commitb3d8b4c0b423539f17c13713673cfeb6d66ff7ed (patch)
tree58ea816c6292ff40f5b820a1bdc2398b78708ebd /src/glsl/ir_optimization.h
parent3c555827c3e2fdb84ee4b4b8fd8296985cbb1fda (diff)
glsl/linker: eliminate unused and set-but-unused built-in varyings
This eliminates built-in varyings such as gl_Color, gl_SecondaryColor, gl_TexCoord, and gl_FogFragCoord if they are unused by the next stage or not written at all (e.g. gl_TexCoord elements). The gl_TexCoord array is broken down into separate vec4s if needed. v2: - use a switch statement in varying_info_visitor::visit(ir_variable*) - use snprintf - disable the optimization for GLES2 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/ir_optimization.h')
-rw-r--r--src/glsl/ir_optimization.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/ir_optimization.h b/src/glsl/ir_optimization.h
index d38d5e3036..fad6f1bfe5 100644
--- a/src/glsl/ir_optimization.h
+++ b/src/glsl/ir_optimization.h
@@ -76,6 +76,10 @@ bool do_constant_variable_unlinked(exec_list *instructions);
bool do_copy_propagation(exec_list *instructions);
bool do_copy_propagation_elements(exec_list *instructions);
bool do_constant_propagation(exec_list *instructions);
+void do_dead_builtin_varyings(struct gl_context *ctx,
+ exec_list *producer, exec_list *consumer,
+ unsigned num_tfeedback_decls,
+ class tfeedback_decl *tfeedback_decls);
bool do_dead_code(exec_list *instructions, bool uniform_locations_assigned);
bool do_dead_code_local(exec_list *instructions);
bool do_dead_code_unlinked(exec_list *instructions);