On Wed, Nov 2, 2016 at 2:55 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > On 29.10.2016 01:13, Marek Olšák wrote: >> >> From: Marek Olšák <marek.ol...@amd.com> >> >> --- >> src/compiler/glsl/ir_optimization.h | 3 ++- >> src/compiler/glsl/lower_if_to_cond_assign.cpp | 23 >> ++++++++++++++++++++--- >> src/compiler/glsl/test_optpass.cpp | 2 +- >> src/mesa/drivers/dri/i965/brw_link.cpp | 2 +- >> src/mesa/program/ir_to_mesa.cpp | 3 ++- >> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 3 ++- >> 6 files changed, 28 insertions(+), 8 deletions(-) >> > [snip] >> >> @@ -105,20 +109,33 @@ check_ir_node(ir_instruction *ir, void *data) >> case ir_type_call: >> case ir_type_discard: >> case ir_type_loop: >> case ir_type_loop_jump: >> case ir_type_return: >> case ir_type_emit_vertex: >> case ir_type_end_primitive: >> case ir_type_barrier: >> v->found_unsupported_op = true; >> break; >> + >> + case ir_type_dereference_variable: { >> + ir_variable *var = >> ir->as_dereference_variable()->variable_referenced(); >> + >> + /* Tess control shader outputs are like shared memory with complex >> + * side effects, so treat it that way. >> + */ >> + if (v->stage == MESA_SHADER_TESS_CTRL && >> + var->data.mode == ir_var_shader_out) >> + v->found_unsupported_op = true; >> + break; >> + } >> + > > > I don't understand this rationale. What side effects are there, and can you > give an example where the transformation would be wrong?
Well I can't think of a case now where it would break something. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev