Mesa (staging/21.1): radeonsi/gfx7: always sync pfp/me

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 30 08:10:55 UTC 2021


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

Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date:   Mon Jun 28 14:52:07 2021 +0200

radeonsi/gfx7: always sync pfp/me

Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764

Fixes: c5326164 ("radeonsi: add SI_CONTEXT_PFP_SYNC_ME to skip syncing PFP for image operations")
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
(cherry picked from commit 822f37773687a4753a2dff8eba1173d57eb0ce18)

---

 .pick_status.json                        | 2 +-
 src/gallium/drivers/radeonsi/si_gfx_cs.c | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index feaee38b087..3f3f17e6c3a 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -139,7 +139,7 @@
         "description": "radeonsi/gfx7: always sync pfp/me",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "c53261645deca271522367e4af40393ff152eaee"
     },
diff --git a/src/gallium/drivers/radeonsi/si_gfx_cs.c b/src/gallium/drivers/radeonsi/si_gfx_cs.c
index 24c830ab7dc..a3065d48f27 100644
--- a/src/gallium/drivers/radeonsi/si_gfx_cs.c
+++ b/src/gallium/drivers/radeonsi/si_gfx_cs.c
@@ -576,7 +576,9 @@ void si_emit_surface_sync(struct si_context *sctx, struct radeon_cmdbuf *cs, uns
 
    assert(sctx->chip_class <= GFX9);
 
-   cp_coher_cntl |= 1u << 31; /* don't sync PFP, i.e. execute the sync in ME */
+   /* This seems problematic with GFX7 (see #4764) */
+   if (sctx->chip_class != GFX7)
+      cp_coher_cntl |= 1u << 31; /* don't sync PFP, i.e. execute the sync in ME */
 
    radeon_begin(cs);
 



More information about the mesa-commit mailing list