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);
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to