mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 02:20:11 +01: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>
This commit is contained in:
parent
2f587ea8be
commit
c56c746b71
1 changed files with 4 additions and 0 deletions
|
|
@ -26,6 +26,10 @@ radv_cs_emit_write_event_eop(struct radv_cmd_stream *cs, enum amd_gfx_level gfx_
|
|||
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