RADV & RadeonSI Drivers See New Fixes For AMD GCN 1.0/1.1 GPUs
([Radeon] 3 Hours Ago
GFX6 + GFX7)
- Reference: 0001644067
- News link: https://www.phoronix.com/news/RADV-L2-Flush-Fix-GFX6-GFX7
- Source link:
Timur Kristóf of Valve's Linux graphics driver team continues taking special focus on AMD Radeon GCN 1.0 and GCN 1.1 era GPUs for enhancing the open-source graphics driver support for these aging graphics cards.
The newest improvement for AMD GCN 1.0 "GFX6" and GCN 1.1 "GFX7" graphics processors is working around hardware and firmware bugs for both the RADV Vulkan driver and RadeonSI Gallium3D (OpenGL) driver. A change was made to these Mesa drivers to now wait for shaders and flushing the L2 cache after every submission on these GFX6/GFX7 GPUs.
The [1]RADV patch explains:
"Due to HW and FW bugs, EVENT_WRITE_EOP on GFX6-7 can't wait for L2 writeback and signals the fence while L2 is still dirty, resulting in VM faults. GFX6-7 will hang if the VMID is invalidated while the L2 is still busy.
...
Compared to what was there before, this commit further clarifies why the flush is necessary, uses the same implementation on both GFX6-7 and additionally adds a CB/DB/meta flush."
The [2]RadeonSI patch is waiting for shaders and flushing the L2 on every submission for GFX6/GFX7 for the same reason. No word on the performance implications from the additional waiting and extra cache flushing.
[3]Another patch part of this merge reverts a prior commit to the RADV driver that was applied to workaround a Hawaii issue. An AMDGPU kernel driver workaround for Hawaii has since been upstreamed to the Linux kernel and so the Mesa patch can be dropped since it regressed the performance on Hawaii GPUs.
[1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=80ae3148e9972928e2456ab4aed612a39f4d6739
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=998611e943658774c2780e6a892b7a3aaf4a55a7
[3] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=738de1f7a49f2bc8b6d72e6fb172dadfc3a1b8a9
The newest improvement for AMD GCN 1.0 "GFX6" and GCN 1.1 "GFX7" graphics processors is working around hardware and firmware bugs for both the RADV Vulkan driver and RadeonSI Gallium3D (OpenGL) driver. A change was made to these Mesa drivers to now wait for shaders and flushing the L2 cache after every submission on these GFX6/GFX7 GPUs.
The [1]RADV patch explains:
"Due to HW and FW bugs, EVENT_WRITE_EOP on GFX6-7 can't wait for L2 writeback and signals the fence while L2 is still dirty, resulting in VM faults. GFX6-7 will hang if the VMID is invalidated while the L2 is still busy.
...
Compared to what was there before, this commit further clarifies why the flush is necessary, uses the same implementation on both GFX6-7 and additionally adds a CB/DB/meta flush."
The [2]RadeonSI patch is waiting for shaders and flushing the L2 on every submission for GFX6/GFX7 for the same reason. No word on the performance implications from the additional waiting and extra cache flushing.
[3]Another patch part of this merge reverts a prior commit to the RADV driver that was applied to workaround a Hawaii issue. An AMDGPU kernel driver workaround for Hawaii has since been upstreamed to the Linux kernel and so the Mesa patch can be dropped since it regressed the performance on Hawaii GPUs.
[1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=80ae3148e9972928e2456ab4aed612a39f4d6739
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=998611e943658774c2780e6a892b7a3aaf4a55a7
[3] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41583/diffs?commit_id=738de1f7a49f2bc8b6d72e6fb172dadfc3a1b8a9