Prime synchronization won't activate and can't get external HDMI screen work at native resolution/fr...

Following this reddit post and this archlinux support question I finally been able to have a display on my HDMI external monitor.

The problem is: the native resolution of the external screen 2560x1440 is only working at 30Hz (if I force the mode) and should be working at 60Hz since the HDMI version is 1.4b on my Asus Rog g552vw.

Interestingly it works fine on Windows 10.

At 30hz it displays fine most of the time but there’s some intermittent blank screen and flickering.

Another problem is I can’t get PRIME synchronization to activate, I keep getting

randr: falling back to unsynchronized pixmap sharing

for some reasons.

Please find the attached nvidia-bug-report.log.gz
nvidia-bug-report.log.gz (760 KB)

PRIME sync is currently broken with kernel 5.4 and up. You would have to downgrade it to e.g. an lts version to have vsync.
The external output is connected to the intel gpu, so the i915 driver is responsible for it. According to xrandr, the display is running at 60Hz:

2560x1440 (0x234) 241.500MHz +HSync -VSync *current +preferred
        h: width  2560 start 2608 end 2640 total 2720 skew    0 clock  88.79KHz
        v: height 1440 start 1443 end 1448 total 1481           clock  59.95Hz

Where do you get 30Hz reported?

Alright for the vsync, at worst I could live without it.
As for the external monitor xrandr reports it running at 60hz but nothing show on screen except for maybe one or two flashes (see reddit video). I know the 30Hz mode is not reported but it works when I do:

$ cvt 2560 1440 30
# 2560x1440 29.94 Hz (CVT) hsync: 43.95 kHz; pclk: 146.25 MHz
Modeline "2560x1440_30.00"  146.25  2560 2680 2944 3328  1440 1443 1448 1468 -hsync +vsync
$ xrandr --newmode  "2560x1440_30.00"  146.25  2560 2680 2944 3328  1440 1443 1448 1468 -hsync +vsync
$ xrandr --addmode HDMI-1-2 2560x1440_30.00
$ xrandr --output HDMI-1-2 --mode 2560x1440_30.00
$ xrandr
Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080     60.05*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   (...)
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-2 connected 2560x1440+1920+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95 +
   1920x1080     60.00    50.00    59.94  
   1680x1050     59.88  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
   2560x1440_30.00  29.94* 
DP-1-2 disconnected (normal left inverted right x axis y axis)
HDMI-1-3 disconnected (normal left inverted right x axis y axis)
  2560x1440_30.00 (0x27e) 146.250MHz -HSync +VSync
        h: width  2560 start 2680 end 2944 total 3328 skew    0 clock  43.95KHz
        v: height 1440 start 1443 end 1448 total 1468           clock  29.94Hz

When this mode is on I get a display on my screen but it’s still unstable as it goes frequently blank (every 15-30s for a second or two).

Ok, that explains the frequent log messages

[    18.329] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[    18.519] randr: falling back to unsynchronized pixmap sharing
[    18.563] randr: falling back to unsynchronized pixmap sharing
[    20.430] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[    20.540] (II) event6  - Logitech G500: SYN_DROPPED event - some input events have been lost.
[    90.867] (EE) modeset(G0): failed to set mode: Invalid argument
[    92.220] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   157.329] (EE) modeset(G0): failed to set mode: Invalid argument
[   158.746] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   204.561] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   206.166] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   211.800] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   348.284] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   348.599] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   350.395] (II) event6  - Logitech G500: SYN_DROPPED event - some input events have been lost.
[   350.536] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   350.873] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   473.509] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   478.153] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   478.467] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   487.886] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   501.099] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   501.349] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   501.653] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   501.977] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   503.590] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   503.884] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   506.343] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   565.783] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   566.169] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   566.466] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   571.990] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   573.583] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   573.869] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   762.543] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   762.796] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   763.124] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[   763.453] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1195.610] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1207.799] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1214.697] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1214.990] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1221.253] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1221.539] (--) modeset(G0): HDMI max TMDS frequency 250000KHz
[  1532.519] (--) modeset(G0): HDMI max TMDS frequency 250000KHz

There’s something really unstable concerning your hdmi connection so the i915 driver is repeatedly renegotiating connection speed. Maybe it works with Windows because it reverts to 6bpp so it only needs low bandwidth. Please check if another hdmi cable does the trick.

Thanks a lot to take the time to look into my issue.

I have tried 3 different cables with the exact same result: works perfectly on windows but not on linux.

Windows does not seem to lower the bpp or it doesn’t say:
https://i.imgur.com/VL5hsRP.png

So I did a bit of investigation on windows and discover that there are 2 different EDID (SAM0F56 and SAM0F57) in the registry for this screen, so I tried forcing the one that linux wasn’t using:

Monitor
  Model name............... C27JG5x
  Manufacturer............. Samsung
  Plug and Play ID......... SAM0F57
  Serial number............ HTOM702690-810889805
  Manufacture date......... 2019, ISO week 30
  Filter driver............ None
  -------------------------
  EDID revision............ 1.3
  Input signal type........ Digital
  Color bit depth.......... Undefined
  Display type............. RGB color
  Screen size.............. 600 x 340 mm (27,2 in)
  Power management......... Active off/sleep
  Extension blocs.......... 1 (CEA/CTA-EXT)
  -------------------------
  DDC/CI................... Supported
  MCCS revison............. 2.0
  Display technology....... TFT
  Controller............... Mstar 0x1000
  Firmware revision........ 0.1
  Firmware flags........... 0x00000001
  Active power on time..... Not supported
  Power consumption........ Not supported
  Current frequency........ 16711,68kHz, 0,00Hz

Color characteristics
  Default color space...... Non-sRGB
  Display gamma............ 2,20
  Red chromaticity......... Rx 0,652 - Ry 0,341
  Green chromaticity....... Gx 0,320 - Gy 0,608
  Blue chromaticity........ Bx 0,146 - By 0,065
  White point (default).... Wx 0,313 - Wy 0,329
  Additional descriptors... None

Timing characteristics
  Horizontal scan range.... 30-225kHz
  Vertical scan range...... 50-144Hz
  Video bandwidth.......... 600MHz
  CVT standard............. Not supported
  GTF standard............. Not supported
  Additional descriptors... None
  Preferred timing......... Yes
  Native/preferred timing.. 2560x1440p at 144Hz (16:9)
    Modeline............... "2560x1440" 580,080 2560 2568 2632 2720 1440 1443 1448 1481 +hsync -vsync

Standard timings supported
     720 x  400p at  70Hz - IBM VGA
     640 x  480p at  60Hz - IBM VGA
     640 x  480p at  67Hz - Apple Mac II
     640 x  480p at  72Hz - VESA
     640 x  480p at  75Hz - VESA
     800 x  600p at  56Hz - VESA
     800 x  600p at  60Hz - VESA
     800 x  600p at  72Hz - VESA
     800 x  600p at  75Hz - VESA
     832 x  624p at  75Hz - Apple Mac II
    1024 x  768p at  60Hz - VESA
    1024 x  768p at  70Hz - VESA
    1024 x  768p at  75Hz - VESA
    1280 x 1024p at  75Hz - VESA
    1152 x  870p at  75Hz - Apple Mac II
    1152 x  864p at  75Hz - VESA STD
    1280 x  800p at  60Hz - VESA STD
    1280 x  720p at  60Hz - VESA STD
    1280 x 1024p at  60Hz - VESA STD
    1440 x  900p at  60Hz - VESA STD
    1600 x  900p at  60Hz - VESA STD
    1680 x 1050p at  60Hz - VESA STD

EIA/CEA/CTA-861 Information
  Revision number.......... 3
  IT underscan............. Supported
  Basic audio.............. Supported
  YCbCr 4:4:4.............. Supported
  YCbCr 4:2:2.............. Supported
  Native formats........... 1
  Detailed timing #1....... 1920x1080p at 60Hz (16:9)
    Modeline............... "1920x1080" 148,500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
  Detailed timing #2....... 2560x1440p at 60Hz (16:9)
    Modeline............... "2560x1440" 241,500 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
  Detailed timing #3....... 2560x1440p at 100Hz (16:9)
    Modeline............... "2560x1440" 410,500 2560 2608 2640 2720 1440 1443 1448 1510 +hsync -vsync
  Detailed timing #4....... 2560x1440p at 120Hz (16:9)
    Modeline............... "2560x1440" 497,750 2560 2608 2640 2720 1440 1443 1448 1525 +hsync -vsync

CE video identifiers (VICs) - timing/formats supported
    1920 x 1080p at  60Hz - HDTV (16:9, 1:1) [Native]
    1920 x 1080p at  50Hz - HDTV (16:9, 1:1)
    1280 x  720p at  60Hz - HDTV (16:9, 1:1)
    1280 x  720p at  50Hz - HDTV (16:9, 1:1)
     720 x  480p at  60Hz - EDTV (16:9, 32:27)
     720 x  576p at  50Hz - EDTV (16:9, 64:45)
    NB: NTSC refresh rate = (Hz*1000)/1001

without success but now TDMS clock seems to stay at 300000MHz. (see the attached log)

Any ideas?

Edit: My bad, the SAM0F56 edid seems to be the same as the SAM0F57 without the extension block. What changed here is that I changed the max frequency to 144 Hz in the OSD. Doesn’t work either.

Nb: I can’t access OSD when the screen is black, or just for some ms, it looks like it’s looping around resetting the resolution.
nvidia-bug-report.log.gz (771 KB)

There have been changes in the kernel which might be triggering this, is it possible to downgrade to e.g. an lts kernel for testing?

Sure, but it doesn’t change much.
nvidia-bug-report.log.gz (1.62 MB)

Please check

  • if the nvidia driver is involved at all by switching to an intel only config
  • if the monitor works at a lower resolution
  • if not, does a different monitor work?
  • It does the exact same thing without any nvidia drivers installed
  • It works at lower resolution / frequencies
  • It does the same with my TV, 1920x1080i@60 works 1920x1080@30 works too but 1920x1080@50 doesn’t and 1920x1080@60 neither

Ok, then there’s something wrong with the intel i915 driver or its firmware. Please open a bug at freedesktop.org for it.