Patches 1 & 3 are, Reviewed-by: Edward O'Callaghan <[email protected]> and patch 2 is, Acked-by: Edward O'Callaghan <[email protected]>
On 11/18/2016 09:00 AM, Nicolai Hähnle wrote: > From: Nicolai Hähnle <[email protected]> > > Consider a geometry shader that contains code like this: > > some_out = expr; > > if (cond) { > ... > EmitVertex(); > } else { > ... > EmitVertex(); > } > > Both branches should see the correct value of some_out. > > Since this is a rather subtle and rare case, I'm submitting a piglit test > for this as well. > > GLSL says that the values of output variables are undefined after > EmitVertex(). With this change, the values will now be defined and > unmodified. This may reduce optimization opportunities in the probably > quite rare case where subsequent compiler passes cannot prove that the > value of the output variable is overwritten. > > Cc: 13.0 <[email protected]> > --- > src/compiler/glsl/lower_output_reads.cpp | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/src/compiler/glsl/lower_output_reads.cpp > b/src/compiler/glsl/lower_output_reads.cpp > index 732f4d3..8a375ac 100644 > --- a/src/compiler/glsl/lower_output_reads.cpp > +++ b/src/compiler/glsl/lower_output_reads.cpp > @@ -150,21 +150,20 @@ ir_visitor_status > output_read_remover::visit_leave(ir_return *ir) > { > hash_table_call_foreach(replacements, emit_return_copy, ir); > return visit_continue; > } > > ir_visitor_status > output_read_remover::visit_leave(ir_emit_vertex *ir) > { > hash_table_call_foreach(replacements, emit_return_copy, ir); > - _mesa_hash_table_clear(replacements, NULL); > return visit_continue; > } > > ir_visitor_status > output_read_remover::visit_leave(ir_function_signature *sig) > { > if (strcmp(sig->function_name(), "main") != 0) > return visit_continue; > > hash_table_call_foreach(replacements, emit_main_copy, sig); >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
