Fails to set HDR on builtin laptop monitor
I wanted to work on implementing HDR support in GTK using gnome-shell's new HDR support and got this shiny new laptop, but it seems HDR support doesn't work. We (read: me with the help of the gnome-shell developers) made sure that the kernel calls are actually succeeding, but I could not see any visual difference from switch HDR on and off.
Steps to reproduce:
- Get a ThinkPad X1 Carbon Gen 9 20XXS95H00 containing "PCI 8086:9a49 Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics]".
- Make sure it contains the fancy HDR monitor with this edid:
Block 0, Base EDID:
EDID Structure Version & Revision: 1.4
Vendor & Product Identification:
Manufacturer: CSO
Model: 5123
Made in: 2020
Basic Display Parameters & Features:
Digital display
Bits per primary color channel: 10
DisplayPort interface
Maximum image size: 30 cm x 19 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
First detailed timing includes the native pixel format and preferred refresh rate
Display is continuous frequency
Color Characteristics:
Red : 0.6650, 0.3359
Green: 0.2539, 0.6875
Blue : 0.1386, 0.0527
White: 0.3066, 0.3408
Established Timings I & II: none
Standard Timings: none
Detailed Timing Descriptors:
DTD 1: 3840x2400 60.000000 Hz 16:10 148.800 kHz 595.200000 MHz (302 mm x 189 mm)
Hfront 48 Hsync 32 Hback 80 Hpol N
Vfront 3 Vsync 6 Vback 71 Vpol N
Display Range Limits:
Monitor ranges (Bare Limits): 48-60 Hz V, 149-149 kHz H, max dotclock 600 MHz
Alphanumeric Data String: 'CSOT T3'
Alphanumeric Data String: 'MNE007ZA1-2'
Extension blocks: 1
Checksum: 0x71
----------------
Block 1, CTA-861 Extension Block:
Revision: 3
Native detailed modes: 0
Colorimetry Data Block:
BT2020RGB
HDR Static Metadata Data Block:
Electro optical transfer functions:
Traditional gamma - SDR luminance range
SMPTE ST2084
Supported static metadata descriptors:
Static metadata type 1
Desired content max luminance: 106 (496.743 cd/m^2)
Desired content max frame-average luminance: 106 (496.743 cd/m^2)
Desired content min luminance: 36 (0.099 cd/m^2)
Checksum: 0x9a Unused space in Extension Block: 112 bytes
- Get stock Fedora 38
- (optional) Install drm-tip kernel
- run gnome-shell
- follow instructions outlined in the merge request adding HDR modes and enable HDR mode in gnome-shell.
- observe the screen blanking when changing that setting to "on" (or back to "off").
- ensure that when the setting is "on",
drm_info
reports:
...
│ ├───Connector 0
│ │ ├───Object ID: 308
│ │ ├───Type: eDP
│ │ ├───Status: connected
│ │ ├───Physical size: 300x190 mm
│ │ ├───Subpixel: unknown
│ │ ├───Encoders: {0}
│ │ ├───Modes
│ │ │ └───3840x2400@60.00 preferred driver nhsync nvsync
│ │ └───Properties
│ │ ├───"EDID" (immutable): blob = 368
│ │ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ │ ├───"link-status": enum {Good, Bad} = Good
│ │ ├───"non-desktop" (immutable): range [0, 1] = 0
│ │ ├───"TILE" (immutable): blob = 0
│ │ ├───"CRTC_ID" (atomic): object CRTC = 98
│ │ ├───"scaling mode": enum {Full, Center, Full aspect} = Full aspect
│ │ ├───"panel orientation" (immutable): enum {Normal, Upside Down, Left Side Up, Right Side Up} = Normal
│ │ ├───"Broadcast RGB": enum {Automatic, Full, Limited 16:235} = Automatic
│ │ ├───"max bpc": range [6, 12] = 12
│ │ ├───"Colorspace": enum {Default, RGB_Wide_Gamut_Fixed_Point, RGB_Wide_Gamut_Floating_Point, opRGB, DCI-P3_RGB_D65, BT2020_RGB, BT601_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, BT2020_CYCC, BT2020_YCC} = BT2020_RGB
│ │ ├───"HDR_OUTPUT_METADATA": blob = 375
│ │ └───"vrr_capable" (immutable): range [0, 1] = 1
...
- fail to see any visual changes.