diff --git a/.pick_status.json b/.pick_status.json index 05e54094921..d38a853573e 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);