4k monitor works @60Hz on Windows; only 30Hz on Linux

I have this monitor: https://www.lg.com/us/support-product/lg-32UD59-B .

And this laptop: https://www.msi.com/Laptop/GS65-Stealth-9SX-GTX .

It has a GTX 1660 Ti.

I connect them through Displayport. For some reason, HDMI does not work, but that might be the screen’s fault.

Using Nvidia’s driver (430.86) on Windows, 4k @ 60Hz works fine.

Using Nvidia’s driver (430.26) on Ubuntu 19.04, 4k only works at 30Hz. The 60Hz option is selectable in nvidia-settings, but the monitor screen just goes black once applying it.

A few oddities:

The monitor has an “Enable Displayport 1.2” option. If it is enabled, the 4k@60Hz resolution shows up on xrandr (and thus is selectable in the GUI through nvidia-settings and Gnome’s display settings). If I disable it, only 4k@30Hz shows up. However, on Windows, the monitor is only even detected if that option is DISABLED, and 4k@60Hz then works fine, which is weird.

I’ve spent already a few hours going through possible solutions, but couldn’t find anything that works. A few things I tried/didn’t try:

  1. Installed lightdm. With the default display manager (gdm), the monitor wasn’t even detected by xrandr.

  2. Manually adding a new 4k@60Hz option through xrandr newmode, addmode etc. Fails with “X Error of failed request: BadName (named color or font does not exist)”. I’ve read that the newer nvidia drivers stopped supporting manual xrandr commands, but I can’t confirm if that’s true.

  3. Custom EDID. I haven’t tried this since my monitor’s EDID seems fine (I can paste the decoded version here if useful), showing 4k@60Hz and appropriate pixel clock (something around 500Mhz, more than enough).

  4. A strange virtual splitting of the monitor into 2 (or 4?) virtual monitors of lesser resolutions through a custom xorg.conf file. I haven’t tried this either since even exporting a xorg.conf file directly through nvidia-settings and placing it in /etc/X11 results in a black screen after reboot.

I’m available to post whatever logs or debug stuff you think might be useful.

Cheers

EDIT 1 Added nvidia-bug-report.log.gz.
nvidia-bug-report.log.gz (1.03 MB)

Sounds rather like a broken monitor. Maybe it supports color subsampling so 4k@60Hz works with DP1.1 at YUV420.
Please run nvidia-bug-report.sh as root and attach the resulting .gz file to your post. Hovering the mouse over an existing post of yours will reveal a paperclip icon.
https://devtalk.nvidia.com/default/topic/1043347/announcements/attaching-files-to-forum-topics-posts/

Thanks, I updated the post with the log.

Also, Nvidia’s driver on Windows shows the following:

Output color depth: 8bpc
Output color format: YCbCr422

DP1.1+422 subsampling also works, but results in a lower color resolution than rgb or yuv444.
With gdm, probably a wayland session was started on the igpu so the nvidia dgpu and the external monitor connected to it was ignored. Switching to lightdm was correct since it’s an optimus notebook.
Looking at the logs, it looks like you switched between 4k@60 and 4k@30 but no errors showed up, so I suspect the problem is either with the monitor or the cable.

For reference, the decoded edid:

header:          00 ff ff ff ff ff ff 00
serial number:   1e 6d 09 5b 01 01 01 01 01 19
version:         01 04
basic params:    b5 3c 22 78 9e
chroma info:     30 35 a7 55 4e a3 26 0f 50 54
established:     21 08 00
standard:        71 40 81 80 81 c0 a9 c0 d1 c0 81 00 01 01 01 01
descriptor 1:    4d d0 00 a0 f0 70 3e 80 30 20 65 0c 58 54 21 00 00 1a
descriptor 2:    28 68 00 a0 f0 70 3e 80 08 90 65 0c 58 54 21 00 00 1a
descriptor 3:    00 00 00 fd 00 38 3d 1e 87 38 00 0a 20 20 20 20 20 20
descriptor 4:    00 00 00 fc 00 4c 47 20 55 6c 74 72 61 20 48 44 0a 20
extensions:      01
checksum:        9d

Manufacturer: GSM Model 5b09 Serial Number 16843009
Made week 1 of 2015
EDID version: 1.4
Digital display
10 bits per primary color channel
DisplayPort interface
Maximum image size: 60 cm x 34 cm
Gamma: 2.20
DPMS levels: Standby
Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
Default (sRGB) color space is primary color space
First detailed timing is preferred timing
Established timings supported:
  640x480@60Hz
  800x600@60Hz
  1024x768@60Hz
Standard timings supported:
  1152x864@60Hz
  1280x1024@60Hz
  1280x720@60Hz
  1600x900@60Hz
  1920x1080@60Hz
  1280x800@60Hz
Detailed mode: Clock 533.250 MHz, 600 mm x 340 mm
               3840 3888 3920 4000 hborder 0
               2160 2214 2219 2222 vborder 0
               +hsync -vsync 
Detailed mode: Clock 266.640 MHz, 600 mm x 340 mm
               3840 3848 3992 4000 hborder 0
               2160 2214 2219 2222 vborder 0
               +hsync -vsync 
Monitor ranges (GTF): 56-61Hz V, 30-135kHz H, max dotclock 560MHz
Monitor name: LG
Has 1 extension blocks
Checksum: 0x9d (valid)

CEA extension block
Extension version: 3
13 bytes of CEA data
  Video data block
    VIC  16 1920x1080@60Hz (native)
    VIC   4 1280x720@60Hz 
    VIC   3 720x480@60Hz 
    VIC   1 640x480@60Hz 
  Audio data block
    Linear PCM, max channels 2
    Supported sample rates (kHz): 48 44.1 32
    Supported sample sizes (bits): 24 20 16
  Speaker allocation data block
    Speaker map: FL/FR
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
1 native detailed modes
Detailed mode: Clock 148.500 MHz, 600 mm x 340 mm
               1920 2008 2052 2200 hborder 0
               1080 1084 1089 1125 vborder 0
               +hsync +vsync 
Detailed mode: Clock 241.500 MHz, 600 mm x 340 mm
               2560 2608 2640 2720 hborder 0
               1440 1443 1448 1481 vborder 0
               +hsync -vsync 
Checksum: 0xc8 (valid)

EDID block does NOT conform to EDID 1.3!
	Detailed block string not properly terminated

I guess that settles it – the monitor is likely defective.

Additionally to what I mentioned here, I also tested both HDMI inputs in the monitor with 2 different laptops, both with Windows, and none even detected the monitor.

It’s a shame that a brand new equipment is defective, but it sure seems it is the case. I’m going to give it one last try with USB-C and then return it.

EDIT to my surprise, USB-C to Displayport actually worked fine with 4k@60Hz. I’ll update this thread with the debug log once I get once of those cables.

Update: the laptop/monitor now works perfectly with 4k@60Hz with a USB-C to DP cable. So to summarize, here’s what worked and what didn’t:

Cable/OS	Windows	        Ubuntu
HDMI to HDMI	Not detected	Not detected
USB-C to HDMI	4k 30Hz	        4k 30Hz
Mini-DP to DP	4k 60Hz *	4k 30Hz
USB-C to DP	4k 60Hz   	4k 60Hz

* Some kind of color subsampling was going on.