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