Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

script: Lenovo Legion Go display configuration #1573

Closed

Conversation

matte-schwartz
Copy link

@matte-schwartz matte-schwartz commented Oct 10, 2024

Add support for the Lenovo Legion Go handheld, which features a rotated 1600x2560 panel that reports 60hz and 144hz in the EDID. VRR and HDR are not supported, and only one panel model is known to be in use.

Starting with every integer between 60hz and 144hz, valid refresh rates for the panel were tested one-by-one in two games:

  • Hades II
  • Portal 2

With dynamic modegen, the range of valid refresh rates can be expanded to 60hz + 125hz -> 144hz, offering more frame limit notches in the lower range of the Steam UI unified slider. This new range is what was used for further validation across several units.

Linux setups tested include:

  • Bazzite 40 with kernel 6.9.12-210.fsync
  • SteamOS Main 20240919.1002 with kernel 6.8.12-valve2-1

Games tested with the new range include:

  • Hades II
  • Portal 2
  • Left 4 Dead 2
  • Metro Exodus
  • Outer Wilds
  • God of War: Ragnarok
  • Hi-Fi Rush
  • Manor Lords
  • Nine Sols

All games tested were able to run with the slider behaving like SteamOS on a Steam Deck LCD when modesetting and maintaining a frame limit.


At this point further validation would be welcome on additional machines, but the configuration has proven stable thus far.

To read up on the new config system that makes all this possible, as well as some general words of warning, you can refer to the readme in the scripts folder and the existing display configurations:
https://github.com/ValveSoftware/gamescope/blob/master/scripts/README.md

A full Steam System Report from gamescope-session on my unit is available for reference:
https://gist.github.com/matte-schwartz/e7723214478de5122216874621bc22d2

Add support for the Lenovo Legion Go handheld, which features a
rotated 1600x2560 panel that reports 60hz and 144hz in the EDID.
VRR and HDR are not supported, and only one panel model is known
to be in use.

Starting with every integer between 60hz and 144hz, valid refresh rates
for the panel were tested one-by-one in two games:

* Hades II
* Portal 2

With dynamic modegen, the range of valid refresh rates can be expanded
to 60hz + 125hz -> 144hz, offering more frame limit notches in the lower
range of the Steam UI unified slider. This new range is what was used
for further validation across several units.

Linux setups tested include:

* Bazzite 40 with kernel 6.9.12-210.fsync
* SteamOS Main 20240919.1002 with kernel 6.8.12-valve2-1

Games tested with the new range include:

* Hades II
* Portal 2
* Left 4 Dead 2
* Metro Exodus
* Outer Wilds
* God of War: Ragnarok
* Hi-Fi Rush
* Manor Lords
* Nine Sols

All games tested were able to run with the slider behaving like SteamOS
on a Steam Deck LCD when modesetting and maintaining a frame limit.

Tested-by: Kyle Gospodnetich <[email protected]>
Signed-off-by: Matthew Schwartz <[email protected]>
@matte-schwartz
Copy link
Author

After continued testing of the earlier version of this config with additional units, a sporadic edgecase has been found where even though modesetting appears successful, the display loses touchscreen capabilities until performing an additional modeset.

it happens most often with refresh rates in the 120hz range, but I've also been able to reproduce it after several minutes of constant refresh rate changes on the other dynamic modegen notches as well.

Given this additional context and testing, it seems safest to stick with the two advertised modesets for the Legion Go, 60Hz and 144Hz, neither of which have shown the issue described above. after more thorough testing, I will re-open with a simplified display config with just those two timings if it checks out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant