mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glsl2: Perform initial bits of loop analysis during compilation
This commit is contained in:
parent
bfe3fbb38e
commit
8df2dbf91d
2 changed files with 10 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ extern "C" {
|
|||
#include "glsl_parser_extras.h"
|
||||
#include "glsl_parser.h"
|
||||
#include "ir_optimization.h"
|
||||
#include "loop_analysis.h"
|
||||
|
||||
_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct __GLcontextRec *ctx,
|
||||
GLenum target, void *mem_ctx)
|
||||
|
|
@ -739,6 +740,10 @@ do_common_optimization(exec_list *ir, bool linked)
|
|||
progress = do_swizzle_swizzle(ir) || progress;
|
||||
progress = do_noop_swizzle(ir) || progress;
|
||||
|
||||
loop_state *ls = analyze_loop_variables(ir);
|
||||
progress = set_loop_controls(ir, ls) || progress;
|
||||
delete ls;
|
||||
|
||||
return progress;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "ir_optimization.h"
|
||||
#include "ir_print_visitor.h"
|
||||
#include "program.h"
|
||||
#include "loop_analysis.h"
|
||||
|
||||
extern "C" struct gl_shader *
|
||||
_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type);
|
||||
|
|
@ -174,6 +175,10 @@ compile_shader(struct gl_shader *shader)
|
|||
progress = do_vec_index_to_swizzle(shader->ir) || progress;
|
||||
progress = do_vec_index_to_cond_assign(shader->ir) || progress;
|
||||
progress = do_swizzle_swizzle(shader->ir) || progress;
|
||||
|
||||
loop_state *ls = analyze_loop_variables(shader->ir);
|
||||
set_loop_controls(shader->ir, ls);
|
||||
delete ls;
|
||||
} while (progress);
|
||||
|
||||
validate_ir_tree(shader->ir);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue