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