summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_optimization.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2015-04-23 13:34:14 +1000
committerDave Airlie <[email protected]>2015-07-23 17:25:37 +1000
commit7dd429e8f74302d44af00d051e59911439152369 (patch)
tree981cfd00a26af8bc66bad43b0890825d2ca6912a /src/glsl/ir_optimization.h
parent65ac360823ee12ac2d1f3bb6758d352fcd0d9210 (diff)
glsl/ir: add subroutine lowering pass (v2.3)
This lowers the enhanced ir_call using the lookaside table of subroutines into an if ladder. This initially was done at the AST level but it caused some ordering issues so a separate pass was required. v2: clone return value derefs. v2.1: update for subroutine->int convert. v2.2: add a clone for the array index Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/glsl/ir_optimization.h')
-rw-r--r--src/glsl/ir_optimization.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/glsl/ir_optimization.h b/src/glsl/ir_optimization.h
index 766b723df0b..eef107e5249 100644
--- a/src/glsl/ir_optimization.h
+++ b/src/glsl/ir_optimization.h
@@ -137,6 +137,8 @@ bool lower_tess_level(gl_shader *shader);
bool lower_vertex_id(gl_shader *shader);
+bool lower_subroutine(exec_list *instructions, struct _mesa_glsl_parse_state *state);
+
ir_rvalue *
compare_index_block(exec_list *instructions, ir_variable *index,
unsigned base, unsigned components, void *mem_ctx);