Mesa (staging/21.2): freedreno/a6xx: Add missing PC_CCU_INVALIDATE_x

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 27 18:59:26 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: d23a2a0128a2a457453e1f7349130c23ee6ae025
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d23a2a0128a2a457453e1f7349130c23ee6ae025

Author: Rob Clark <robdclark at chromium.org>
Date:   Fri Jul 23 17:10:51 2021 -0700

freedreno/a6xx: Add missing PC_CCU_INVALIDATE_x

The kernel normally inserts these between submits, but when we merge
submits in userspace we need to add them ourselves.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5114
Fixes: cccdc513e3e ("freedreno/drm/sp: Implement deferred submit merging")
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12049>
(cherry picked from commit 53c39f710ffa86fbc1107002b818cb5ed8ddd1f0)

---

 .pick_status.json                             | 2 +-
 src/gallium/drivers/freedreno/a6xx/fd6_emit.h | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 6fb4f49d2d2..b6a4f8bc98b 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -427,7 +427,7 @@
         "description": "freedreno/a6xx: Add missing PC_CCU_INVALIDATE_x",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "cccdc513e3ee58b4119e9686c3086b606500d6a9"
     },
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
index e829970a4cb..5d54f8d8a1a 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
@@ -170,6 +170,8 @@ fd6_event_write(struct fd_batch *batch, struct fd_ringbuffer *ring,
 static inline void
 fd6_cache_inv(struct fd_batch *batch, struct fd_ringbuffer *ring)
 {
+   fd6_event_write(batch, ring, PC_CCU_INVALIDATE_COLOR, false);
+   fd6_event_write(batch, ring, PC_CCU_INVALIDATE_DEPTH, false);
    fd6_event_write(batch, ring, CACHE_INVALIDATE, false);
 }
 



More information about the mesa-commit mailing list