Skip to content

Feature: Add Lenovo Legion Go 2 OLED#5

Open
jefflopes wants to merge 1 commit into
bazzite-org:gamescope-bafrom
jefflopes:gamescope-ba
Open

Feature: Add Lenovo Legion Go 2 OLED#5
jefflopes wants to merge 1 commit into
bazzite-org:gamescope-bafrom
jefflopes:gamescope-ba

Conversation

@jefflopes

Copy link
Copy Markdown

Not sure if this is already being worked on but if not here's a display profile for the Legion Go 2 OLED panel. Luminance values were pulled from here. VFPs for 30hz to 144hz were calculated from 144hz timings in EDID.

Tested on my Legion Go 2 and confirmed the lua is selected correctly and that it enables new refresh rates, but was not able to confirm some of the lower refresh rates (like 30hz) due to how refresh rates are chosen for a given frame limit. Please let me know if there's a better way to test this.

@dkatzdev

dkatzdev commented Dec 2, 2025

Copy link
Copy Markdown

just realized you did this already. I also implemented the chromicity values and some other things in my pull request if you want to take a look and just absorb it into yours

@dkatzdev

dkatzdev commented Dec 2, 2025

Copy link
Copy Markdown

These values were pulled from my EDID, using the block 0 as spec and the "native" values as measured and can be placed at the top of the file

local legiongo2_oled_colorimetry_spec = {
    r = { x = 0.6835, y = 0.3154 },
    g = { x = 0.2402, y = 0.7138 },
    b = { x = 0.1396, y = 0.0439 },
    w = { x = 0.3134, y = 0.3291 }
}

local legiongo2_oled_colorimetry_measured = {
    r = { x = 0.684082, y = 0.314941 },
    g = { x = 0.239990, y = 0.714111 },
    b = { x = 0.139893, y = 0.043945 },
    w = { x = 0.312988, y = 0.329102 }
}

if I have them backwards let me know, but I assumed native was the measured value as it's native to the panel

@jefflopes

Copy link
Copy Markdown
Author

These values were pulled from my EDID, using the block 0 as spec and the "native" values as measured and can be placed at the top of the file

local legiongo2_oled_colorimetry_spec = {
    r = { x = 0.6835, y = 0.3154 },
    g = { x = 0.2402, y = 0.7138 },
    b = { x = 0.1396, y = 0.0439 },
    w = { x = 0.3134, y = 0.3291 }
}

local legiongo2_oled_colorimetry_measured = {
    r = { x = 0.684082, y = 0.314941 },
    g = { x = 0.239990, y = 0.714111 },
    b = { x = 0.139893, y = 0.043945 },
    w = { x = 0.312988, y = 0.329102 }
}

if I have them backwards let me know, but I assumed native was the measured value as it's native to the panel

I had originally included the colorimetry data but it was just what I pulled from the EDID so it seemed redundant. How did you come up with the measured values?

@antheas

antheas commented Dec 2, 2025

Copy link
Copy Markdown

Adding refresh rates with VRR off is kind of hacky. I would not say it is a needed feature.

The big feature with this would be that the max nits when using HDR are fixed. Can either of you verify?

@dkatzdev

dkatzdev commented Dec 2, 2025

Copy link
Copy Markdown

If it pulls color from the edid properly than feel free to ignore my comment. But Jeff said he tested his changes in the PR. Hopefully it helps with the HDR detection

@antheas

antheas commented Dec 2, 2025

Copy link
Copy Markdown

I would rather us fix the part in the code that pulls the max nits because it's incorrect. The rest of the values should be covered by the edid already.

I don't think the go 2 needs a lua file. It's an easy fix for the HDR issue but kind of a band-aid

@jefflopes

Copy link
Copy Markdown
Author

I would rather us fix the part in the code that pulls the max nits because it's incorrect. The rest of the values should be covered by the edid already.

I don't think the go 2 needs a lua file. It's an easy fix for the HDR issue but kind of a band-aid

If 120hz works I think a lot of people will want it. You don't think it's worth supporting?

@antheas

antheas commented Dec 2, 2025

Copy link
Copy Markdown

Is 120hz in the EDID? If not, what's the difference between using vrr and setting the display to 120hz and this

@jefflopes

Copy link
Copy Markdown
Author

Is 120hz in the EDID? If not, what's the difference between using vrr and setting the display to 120hz and this

EDID only has 144hz and 60hz. I assume there are people who want locked 120hz for emulation and streaming. If you set frame limit to 120fps and rely on VRR it could drop below 120hz. Upstream gamescope supports non-EDID fixed refresh rates for other devices (ie, ROG Ally and Legion Go S). What makes the Legion Go 2 different in your mind?

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.

3 participants