Mesa (main): broadcom/compiler: emit TMU flush before a jump

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 20 10:30:17 UTC 2021


Module: Mesa
Branch: main
Commit: dc40157888a8825fe5c411f20029466c7c2f1d47
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc40157888a8825fe5c411f20029466c7c2f1d47

Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Mon Jul 19 12:18:11 2021 +0200

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 <itoral at igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11971>

---

 src/broadcom/ci/deqp-v3dv-rpi4-skips.txt | 3 ---
 src/broadcom/compiler/nir_to_vir.c       | 4 ++++
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/broadcom/ci/deqp-v3dv-rpi4-skips.txt b/src/broadcom/ci/deqp-v3dv-rpi4-skips.txt
index 13879c2984c..d77cbf798c1 100644
--- a/src/broadcom/ci/deqp-v3dv-rpi4-skips.txt
+++ b/src/broadcom/ci/deqp-v3dv-rpi4-skips.txt
@@ -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
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index 9f0dc14519f..2a4dac723f6 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -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



More information about the mesa-commit mailing list