Diagnosing Performance Issues on Legion Go 2
Creating this thread to separate out a conversation from the general Legion Go 2 support thread.
This discussion is primarily performance issues that are present in bazzite but may or may not be caused by bazzite. I will fill in more findings and test data later, but for now the overview is that in side by side comparison testing with identical settings and configuration between the Legion Go 2 Z2E and Xbox Ally X Z2E, the Legion is consistently performing 10-20% worse in identical benchmarks. In some scenarios, the Legion also has very inconsistent framerate where the Ally is smooth and consistent.
It appears to be at least partially caused by the fact that the Legion is allocating significantly more power to the CPU than the GPU. With a 20W TDP, in tests it was observed the CPU would get 11-14W of power while the GPU would get 6-9W, despite the CPU load being at 20-50% and GPU load at 95%+.
I believe this is an issue caused by the SMU, bios, or other firmware code written by Lenovo, which determines the power budgeting and APU preferences/behaviors. It was noted that although the LeGo2 and XAX match on almost every CPU setting exposed by the kernel, the SMU versions appear to be on different revisions.
In addition, in tests the TDP boost does not appear to activate properly on the Legion, locking it to 20W almost immediately, and the EPP setting has little to no bearing on this power budget. Another point of data is that at idle, the Fabric clock sits at 1050MHz on the Legion and 400MHz on the XAX, but it is unclear what speed it uses under load. It is possible the Legion is not clocking up fabric high enough.
Regardless of the source, 20% is a massive performance gap for what should be identical APUs (minus the NPU which is unused here anyway). I will continue testing and investigating the cause and we are in contact with Lenovo to try to get a firmware update pushed if necessary.
This discussion is primarily performance issues that are present in bazzite but may or may not be caused by bazzite. I will fill in more findings and test data later, but for now the overview is that in side by side comparison testing with identical settings and configuration between the Legion Go 2 Z2E and Xbox Ally X Z2E, the Legion is consistently performing 10-20% worse in identical benchmarks. In some scenarios, the Legion also has very inconsistent framerate where the Ally is smooth and consistent.
It appears to be at least partially caused by the fact that the Legion is allocating significantly more power to the CPU than the GPU. With a 20W TDP, in tests it was observed the CPU would get 11-14W of power while the GPU would get 6-9W, despite the CPU load being at 20-50% and GPU load at 95%+.
I believe this is an issue caused by the SMU, bios, or other firmware code written by Lenovo, which determines the power budgeting and APU preferences/behaviors. It was noted that although the LeGo2 and XAX match on almost every CPU setting exposed by the kernel, the SMU versions appear to be on different revisions.
In addition, in tests the TDP boost does not appear to activate properly on the Legion, locking it to 20W almost immediately, and the EPP setting has little to no bearing on this power budget. Another point of data is that at idle, the Fabric clock sits at 1050MHz on the Legion and 400MHz on the XAX, but it is unclear what speed it uses under load. It is possible the Legion is not clocking up fabric high enough.
Regardless of the source, 20% is a massive performance gap for what should be identical APUs (minus the NPU which is unused here anyway). I will continue testing and investigating the cause and we are in contact with Lenovo to try to get a firmware update pushed if necessary.