Mesa (staging/20.3): freedreno/a6xx: Flush depth at the end of bypass rendering, too.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Dec 18 22:14:43 UTC 2020


Module: Mesa
Branch: staging/20.3
Commit: 1e32cb0675b9a2e7de200c2ed254abe8d193c86f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e32cb0675b9a2e7de200c2ed254abe8d193c86f

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Dec 17 12:30:16 2020 -0800

freedreno/a6xx: Flush depth at the end of bypass rendering, too.

We apparently don't have anything else making sure that it's flushed in
between use as a render target and use as a texture source, so bypass-mode
depth texture sampling could get stale data.

Fixes consistent (as far as I could see) failures in FD_MESA_DEBUG=nogmem
on:

dEQP-GLES31.functional.texture.multisample.samples_*.use_texture_depth_2d
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8146>
(cherry picked from commit e4cdbeab814bdc2b468ec2375a74fc961a423213)

---

 .gitlab-ci/deqp-freedreno-a630-flakes.txt     | 5 -----
 .pick_status.json                             | 2 +-
 src/gallium/drivers/freedreno/a6xx/fd6_gmem.c | 1 +
 3 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/.gitlab-ci/deqp-freedreno-a630-flakes.txt b/.gitlab-ci/deqp-freedreno-a630-flakes.txt
index 93d3e93ffc4..da401078b9f 100644
--- a/.gitlab-ci/deqp-freedreno-a630-flakes.txt
+++ b/.gitlab-ci/deqp-freedreno-a630-flakes.txt
@@ -25,11 +25,6 @@ dEQP-GLES31.functional.ssbo.atomic.compswap.mediump_uint
 # Non-sysmem flakes
 dEQP-VK.pipeline.spec_constant.compute.composite.matrix.mat3x2
 
-# Sysmem flakes
-dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d
-dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array
-dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
-
 # Fails NIR_VALIDATE so probably flaky
 dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.buffer.comp
 
diff --git a/.pick_status.json b/.pick_status.json
index 05d707607ce..ac40dae8887 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -328,7 +328,7 @@
         "description": "freedreno/a6xx: Flush depth at the end of bypass rendering, too.",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
index 47fe1307ef1..110060c99b4 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
@@ -1447,6 +1447,7 @@ fd6_emit_sysmem_fini(struct fd_batch *batch)
 	fd6_emit_lrz_flush(ring);
 
 	fd6_event_write(batch, ring, PC_CCU_FLUSH_COLOR_TS, true);
+	fd6_event_write(batch, ring, PC_CCU_FLUSH_DEPTH_TS, true);
 }
 
 void



More information about the mesa-commit mailing list