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] - Add support for BOE-panel ROG Ally X models w/ Alphanumeric Data String identifier #1670

Open
matte-schwartz opened this issue Dec 17, 2024 · 2 comments

Comments

@matte-schwartz
Copy link

matte-schwartz commented Dec 17, 2024

There are actually two ROG Ally X panel models in use: the standard TMX TL070FVXS01-0 which is shared with the original ROG Ally, and an additional panel model that is only used on some ROG Ally X models: a BOE TS070FHM-LU0. The complicating factor is the fact that this BOE panel model stores its model information in a very strange field within the EDID, Alphanumeric Data String

full EDID for the BOE panel unit is here:
edid-decode (hex):

00 ff ff ff ff ff ff 00 09 e5 33 0c 00 00 00 00
12 21 01 04 a5 0f 09 78 07 ee 95 a3 54 4c 99 26
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 8a 6f 80 a0 70 38 40 40 30 20
62 0c 9b 57 00 00 00 1a c5 37 80 a0 70 38 40 40
30 20 62 0c 9b 57 00 00 00 1a 00 00 00 fd 00 30
78 8c 8c 1d 01 0a 20 20 20 20 20 20 00 00 00 fe
00 54 53 30 37 30 46 48 4d 2d 4c 55 30 0a 00 40

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: BOE
    Model: 3123
    Made in: week 18 of 2023
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 15 cm x 9 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    Default (sRGB) color space is primary color space
    First detailed timing includes the native pixel format and preferred refresh rate
    Display is continuous frequency
  Color Characteristics:
    Red  : 0.6396, 0.3300
    Green: 0.2998, 0.5996
    Blue : 0.1503, 0.0595
    White: 0.3134, 0.3291
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1080  119.998991 Hz  16:9    137.279 kHz    285.540000 MHz (155 mm x 87 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront   54 Vsync   2 Vback    8 Vpol N
    DTD 2:  1920x1080   59.999496 Hz  16:9     68.639 kHz    142.770000 MHz (155 mm x 87 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront   54 Vsync   2 Vback    8 Vpol N
    Display Range Limits:
      Monitor ranges (Bare Limits): 48-120 Hz V, 140-140 kHz H, max dotclock 290 MHz
    Alphanumeric Data String: 'TS070FHM-LU0'
Checksum: 0x40

----------------

Preferred Video Timing if only Block 0 is parsed:
  DTD   1:  1920x1080  119.998991 Hz  16:9    137.279 kHz    285.540000 MHz (155 mm x 87 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront   54 Vsync   2 Vback    8 Vpol N

----------------

Native Video Resolution:
  1920x1080

----------------

edid-decode SHA: 84ddf9155376 2021-10-03 10:37:45

Warnings:

Block 0, Base EDID:
  Basic Display Parameters & Features: Dubious maximum image size (15x9 is smaller than 10x10 cm).
EDID:
  Base EDID: Some timings are out of range of the Monitor Ranges:
    Horizontal Freq: 68.639 - 137.278 kHz (Monitor: 140.000 - 140.000 kHz)

Failures:

Block 0, Base EDID:
  Basic Display Parameters & Features: sRGB is signaled, but the chromaticities do not match.
  Missing Display Product Name.

EDID conformity: FAIL
compared to my own unit's EDID, with a TMX panel:
edid-decode (hex):

00 ff ff ff ff ff ff 00 51 b8 02 00 00 00 00 00
1e 20 01 04 a5 10 0a 78 07 6e a1 a4 52 4c 9a 25
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 8a 6f 80 a0 70 38 40 40 30 20
62 0c 9e 5f 00 00 00 18 c5 37 80 a0 70 38 40 40
30 20 62 0c 9e 5f 00 00 00 1a 00 00 00 fd 00 30
78 8c 8c 1d 01 0a 20 20 20 20 20 20 00 00 00 fc
00 54 4c 30 37 30 46 56 58 53 30 31 2d 30 00 9d

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: TMX
    Model: 2
    Made in: week 30 of 2022
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 16 cm x 10 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    Default (sRGB) color space is primary color space
    First detailed timing includes the native pixel format and preferred refresh rate
    Display supports continuous frequencies
  Color Characteristics:
    Red  : 0.6416, 0.3222
    Green: 0.2998, 0.6035
    Blue : 0.1464, 0.0605
    White: 0.3125, 0.3291
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1080  119.998991 Hz  16:9    137.279 kHz    285.540000 MHz (158 mm x 95 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol N
                 Vfront   54 Vsync   2 Vback    8 Vpol N
    DTD 2:  1920x1080   59.999496 Hz  16:9     68.639 kHz    142.770000 MHz (158 mm x 95 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol P
                 Vfront   54 Vsync   2 Vback    8 Vpol N
    Display Range Limits:
      Monitor ranges (Range Limits Only): 48-120 Hz V, 140-140 kHz H, max dotclock 290 MHz
    Display Product Name: 'TL070FVXS01-0'
Checksum: 0x9d

The panel timings are exactly the same according to owners of said units, but in order to get it working they had to add their own vendor and product number without using a model string, give that it's blank in their EDID. Just using those two fields alone for matching seems a bit too broad to integrate upstream as it is.

According to @sharkautarch, we should be able to retrieve this Alphanumeric Data String field with di_edid_get_display_descriptors() and di_edid_display_descriptor_get_string() and add in m_Mutable::szDataAscii

I tried to see if I could hook something up on this branch: https://github.com/matte-schwartz/gamescope/tree/panel-unknown-descriptor but while it does still recognize my TMX unit, it only gives me 17fps and 119fps as options on the slider so clearly something is going wrong... I figured I'd file this as an issue instead to brainstorm if this is really the best method to go with.

@sharkautarch
Copy link

@matte-schwartz
Hmmm I’ll make an edited version of the commit you made, not sure if it’ll fix it but we’ll see

@sharkautarch
Copy link

@matte-schwartz Hey check if this commit fixes it:
sharkautarch@82eca5a

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

No branches or pull requests

2 participants