mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
i965: Do our lowering passes before the loop of optimization.
The optimization loop won't reinsert noise instructions or quadop vectors, so we were traversing the tree for nothing. Lowering vector indexing was in the loop after do_common_optimization() to avoid the work if it ended up that the index was actually constant, but that has been called already in the core.
This commit is contained in:
parent
c75427f4c8
commit
b60651a17b
1 changed files with 8 additions and 10 deletions
|
|
@ -120,6 +120,14 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
do_lower_texture_projection(shader->ir);
|
||||
do_vec_index_to_cond_assign(shader->ir);
|
||||
brw_do_cubemap_normalize(shader->ir);
|
||||
lower_noise(shader->ir);
|
||||
lower_quadop_vector(shader->ir, false);
|
||||
lower_variable_index_to_cond_assign(shader->ir,
|
||||
GL_TRUE, /* input */
|
||||
GL_TRUE, /* output */
|
||||
GL_TRUE, /* temp */
|
||||
GL_TRUE /* uniform */
|
||||
);
|
||||
|
||||
do {
|
||||
progress = false;
|
||||
|
|
@ -134,16 +142,6 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
) || progress;
|
||||
|
||||
progress = do_common_optimization(shader->ir, true, 32) || progress;
|
||||
|
||||
progress = lower_noise(shader->ir) || progress;
|
||||
progress =
|
||||
lower_variable_index_to_cond_assign(shader->ir,
|
||||
GL_TRUE, /* input */
|
||||
GL_TRUE, /* output */
|
||||
GL_TRUE, /* temp */
|
||||
GL_TRUE /* uniform */
|
||||
) || progress;
|
||||
progress = lower_quadop_vector(shader->ir, false) || progress;
|
||||
} while (progress);
|
||||
|
||||
validate_ir_tree(shader->ir);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue