diff options
author | Dave Airlie <[email protected]> | 2015-04-23 13:34:14 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2015-07-23 17:25:37 +1000 |
commit | 7dd429e8f74302d44af00d051e59911439152369 (patch) | |
tree | 981cfd00a26af8bc66bad43b0890825d2ca6912a /src/glsl/ir_optimization.h | |
parent | 65ac360823ee12ac2d1f3bb6758d352fcd0d9210 (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.h | 2 |
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); |