diff --git a/.pick_status.json b/.pick_status.json index 59cdfda0662..76c10532e27 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -8674,7 +8674,7 @@ "description": "radv: Don't use EVENT_WRITE_EOS on GFX7", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_cs.c b/src/amd/vulkan/radv_cs.c index 5672c9b7dc8..2a2d444fa57 100644 --- a/src/amd/vulkan/radv_cs.c +++ b/src/amd/vulkan/radv_cs.c @@ -26,6 +26,10 @@ radv_cs_emit_write_event_eop(struct radeon_cmdbuf *cs, enum amd_gfx_level gfx_le return; } + /* EOS events may be buggy on GFX7, prefer not to use them. */ + if (gfx_level == GFX7 && (event == V_028A90_CS_DONE || event == V_028A90_PS_DONE)) + event = V_028A90_BOTTOM_OF_PIPE_TS; + const bool is_mec = qf == RADV_QUEUE_COMPUTE && gfx_level >= GFX7; unsigned op = EVENT_TYPE(event) | EVENT_INDEX(event == V_028A90_CS_DONE || event == V_028A90_PS_DONE ? 6 : 5) | event_flags;