RadeonSI Lands Regression Fix For ~10x Higher CPU Usage For Some Games
Merged one month ago was RadeonSI enabling by default its optimization to replace uniforms with literals inside shaders. This uniform inlining helped with SPECViewPerf and other workloads but it turns out in the process sharply drove up CPU usage when running some games.
This RadeonSI change led to some games seeing their CPU usage around ten times higher than with this AMD Radeon Gallium3D OpenGL driver prior to the change. The Godot Engine and Honeycomb Crunch were among the software found to now see much higher CPU usage.
This issue is now fortunately fixed today in the latest Mesa Git code. The fix is not creating an infinite number of variants. The inlining optimization could hit a case where it would end up generating a new shader variant per frame if a timestamp is being modified each frame. But now the fix is to have a hard limit on the number of variants being generated from a shader and if surpassed will disable the inlining for that particular shader.
So if you've been running Mesa Git from recent weeks and have noticed your CPU usage abnormally higher, it's worth upgrading against the newest Mesa Git snapshots to resolve this issue.
On an entirely separate matter but related to the open-source AMD Radeon improvements today in Mesa Git, there is also a RADV improvement for enabling DCC MSAA fast clears for Navi 1/2.
This RadeonSI change led to some games seeing their CPU usage around ten times higher than with this AMD Radeon Gallium3D OpenGL driver prior to the change. The Godot Engine and Honeycomb Crunch were among the software found to now see much higher CPU usage.
This issue is now fortunately fixed today in the latest Mesa Git code. The fix is not creating an infinite number of variants. The inlining optimization could hit a case where it would end up generating a new shader variant per frame if a timestamp is being modified each frame. But now the fix is to have a hard limit on the number of variants being generated from a shader and if surpassed will disable the inlining for that particular shader.
So if you've been running Mesa Git from recent weeks and have noticed your CPU usage abnormally higher, it's worth upgrading against the newest Mesa Git snapshots to resolve this issue.
On an entirely separate matter but related to the open-source AMD Radeon improvements today in Mesa Git, there is also a RADV improvement for enabling DCC MSAA fast clears for Navi 1/2.
11 Comments