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: 197090a3fc ("broadcom/compiler: implement pipelining for general
TMU operations")

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11971>
This commit is contained in:
Juan A. Suarez Romero 2021-07-19 12:18:11 +02:00 committed by Marge Bot
parent 54e1ec017d
commit dc40157888
2 changed files with 4 additions and 3 deletions

View File

@ -2,9 +2,6 @@
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltazero
dEQP-VK.rasterization.depth_bias.d32_sfloat
# This test causes GPU hangs (vk-gl-cts 1.2.6.2)
dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional
# Timeout tests (> 1 minute to run)
dEQP-VK.api.object_management.max_concurrent.query_pool
dEQP-VK.graphicsfuzz.spv-stable-maze-flatten-copy-composite

View File

@ -3601,6 +3601,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