mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
radv: Don't use EVENT_WRITE_EOS on GFX7
EOS events are buggy on GFX7 and can cause hangs when used
together in the same IB with CP DMA packets that use L2.
While we don't use the L2 for CP DMA copies, we still use it
with CP DMA prefetches, so the issue needs to be mitigated.
As a mitigation, avoid using EVENT_WRITE_EOS and prefer to use
the BOTTOM_OF_PIPE event instead of PS_DONE/CS_DONE, which should
be close enough.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37121>
(cherry picked from commit c56c746b71)
This commit is contained in:
parent
79a84be743
commit
56d84fb02f
2 changed files with 5 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue