From 904e0c989bb50ad09c33b0df712a16618ac10ac2 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Mon, 19 Jul 2021 12:18:11 +0200 Subject: [PATCH] broadcom/compiler: emit TMU flush before a jump Like in the case of emitting a block, process pending TMU operations before a jump is executed. Fixes dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional. Fixes: 197090a3fca ("broadcom/compiler: implement pipelining for general TMU operations") Reviewed-by: Iago Toral Quiroga Signed-off-by: Juan A. Suarez Romero Part-of: (cherry picked from commit dc40157888a8825fe5c411f20029466c7c2f1d47) --- .pick_status.json | 2 +- src/broadcom/compiler/nir_to_vir.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index acf9c3b79e6..e21a7a040f7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -841,7 +841,7 @@ "description": "broadcom/compiler: emit TMU flush before a jump", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "197090a3fcae47a4aa0faa06ea3a45e1bb64a458" }, diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index e313a82d731..c70d1288103 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -3456,6 +3456,10 @@ ntq_emit_instr(struct v3d_compile *c, nir_instr *instr) break; case nir_instr_type_jump: + /* Always flush TMU before jumping to another block, for the + * same reasons as in ntq_emit_block. + */ + ntq_flush_tmu(c); if (vir_in_nonuniform_control_flow(c)) ntq_emit_jump(c, nir_instr_as_jump(instr)); else