From 360b832c580da0cef2d78016c5c9d3606f038bc8 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Thu, 13 Jun 2019 11:38:45 +0200 Subject: [PATCH] v3d: do not setup execute flags for else block in uniform control flow Either all channels executed the 'then' block, in which case all channels will directly jump to the 'endif' block at the end of the 'then' block, or all channels execute the 'else' block (so no execution masking is necessary). Shader-db results: total instructions in shared programs: 9119238 -> 9117550 (-0.02%) instructions in affected programs: 401252 -> 399564 (-0.42%) helped: 855 HURT: 77 total uniforms in shared programs: 3022622 -> 3022605 (<.01%) uniforms in affected programs: 3566 -> 3549 (-0.48%) helped: 17 HURT: 0 total max-temps in shared programs: 1327762 -> 1327774 (<.01%) max-temps in affected programs: 619 -> 631 (1.94%) helped: 2 HURT: 15 Reviewed-by: Eric Anholt --- src/broadcom/compiler/nir_to_vir.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 702e4bf15f8..242414983e1 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -2015,7 +2015,6 @@ ntq_emit_uniform_if(struct v3d_compile *c, nir_if *if_stmt) /* Emit the else block. */ vir_set_emit_block(c, else_block); - ntq_activate_execute_for_block(c); ntq_emit_cf_list(c, &if_stmt->else_list); } -- 2.11.0