Bug 1793176 - Lenovo P52 (optimus) cannot use external displays
Summary: Lenovo P52 (optimus) cannot use external displays
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-server
Version: 31
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: ---
Assignee: X/OpenGL Maintenance List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-01-20 20:56 UTC by James Hewitt
Modified: 2020-02-24 10:10 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-02-24 08:17:58 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
nvidia-settings UI showing monitor attachment (112.05 KB, image/png)
2020-01-23 22:00 UTC, James Hewitt
no flags Details
displays ui (48.77 KB, image/png)
2020-01-23 22:00 UTC, James Hewitt
no flags Details
dmesg from boot to pluggin in hdmi (96.02 KB, text/plain)
2020-01-23 22:01 UTC, James Hewitt
no flags Details

Description James Hewitt 2020-01-20 20:56:39 UTC
User-Agent:       Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Build Identifier: 

Attempting to use:
- an external display
- in Hybrid mode
- on a Lenovo P52
- over HDMI
- using the nvidia drivers from rpmfusion (akmod-nvidia-440.44-1.fc31.x86_64)

The screen is not detected by the "displays" app, the screen is not used, nvidia-settings detects the screen but does not allow it to be enabled.

Reproducible: Always

Steps to Reproduce:
Connect screen over HDMI
Actual Results:  
Nothing

Expected Results:  
Screen is used

$ intel-virtual-output 
No VIRTUAL outputs on ":1".

Attempted to fix with:
`xrandr --setprovideroffloadsink modesetting nvidia-G0`

I got:
X Error of failed request:  BadValue (integer parameter out of range for operation)
 Major opcode of failed request:  140 (RANDR)
 Minor opcode of failed request:  35 (RRSetProviderOutputSource)
 Value in failed request:  0x1f9
 Serial number of failed request:  16
 Current serial number in output stream:  17


Workaround is to use the laptop in Discrete only mode

Comment 1 James Hewitt 2020-01-23 21:59:12 UTC
lspci:
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake Mobile PCH SATA AHCI Controller (rev 10)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1c.7 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #8 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1e.0 Communication controller: Intel Corporation Cannon Lake PCH Serial IO UART Host Controller (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a30e (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107GLM [Quadro P1000 Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
70:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
71:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983


xrandr:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080     60.01*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   640x400       59.88    59.98  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  


rpm -qa | grep -i xorg:
xorg-x11-drv-wacom-0.37.0-2.fc31.x86_64
xorg-x11-drv-nvidia-440.44-2.fc31.x86_64
xorg-x11-drv-qxl-0.1.5-12.fc31.x86_64
xorg-x11-drv-openchrome-0.6.0-8.fc31.x86_64
xorg-x11-xinit-1.4.0-5.fc31.x86_64
xorg-x11-font-utils-7.5-43.fc31.x86_64
xorg-x11-drv-fbdev-0.5.0-4.fc31.x86_64
abrt-addon-xorg-2.13.0-2.fc31.x86_64
xorg-x11-drv-intel-2.99.917-43.20180618.fc31.x86_64
xorg-x11-drv-nvidia-cuda-libs-440.44-2.fc31.x86_64
xorg-x11-server-Xorg-1.20.6-1.fc31.x86_64
xorg-x11-drv-wacom-serial-support-0.37.0-2.fc31.x86_64
xorg-x11-xauth-1.1-2.fc31.x86_64
xorg-x11-drv-ati-19.0.1-3.fc31.x86_64
xorg-x11-drv-vmware-13.2.1-10.fc31.x86_64
xorg-x11-drv-nvidia-libs-440.44-2.fc31.x86_64
xorg-x11-utils-7.5-33.fc31.x86_64
xorg-x11-drv-evdev-2.10.6-5.fc31.x86_64
xorg-x11-drv-libinput-0.29.0-1.fc31.x86_64
xorg-x11-drv-vesa-2.4.0-7.fc31.x86_64
xorg-x11-server-Xwayland-1.20.6-1.fc31.x86_64
xorg-x11-server-utils-7.7-32.fc31.x86_64
xorg-x11-server-common-1.20.6-1.fc31.x86_64
xorg-x11-drv-nouveau-1.0.15-8.fc31.x86_64
xorg-x11-drv-nvidia-kmodsrc-440.44-2.fc31.x86_64
xorg-x11-xkb-utils-7.7-31.fc31.x86_64

Comment 2 James Hewitt 2020-01-23 22:00:17 UTC
Created attachment 1654922 [details]
nvidia-settings UI showing monitor attachment

Comment 3 James Hewitt 2020-01-23 22:00:34 UTC
Created attachment 1654923 [details]
displays ui

Comment 4 James Hewitt 2020-01-23 22:01:06 UTC
Created attachment 1654924 [details]
dmesg from boot to pluggin in hdmi

Comment 5 Nicolas Chauvet (kwizart) 2020-02-05 16:49:33 UTC
This might be a side effect of 
https://rpmfusion.org/Howto/Optimus#External%20Monitors%20detection

Can you confirm that using PrimaryGPU as documented works for you
(and please close the bug if relevant)

Comment 6 James Hewitt 2020-02-07 23:13:26 UTC
Thanks, using primary GPU sorts it out.

The documentation is unclear though, I feel like the section says "before full Optimus support" so I ignored it. I was on that page before opening the bug.

Where can I contribute changes to that?

I'd also argue it's still a bug, it doesn't work out of the box. Do you know where the work to make this seamless will come from?

Comment 7 Nicolas Chauvet (kwizart) 2020-02-24 07:23:57 UTC
I've reworded the wiki on this topic. Do you see anything to improve ?
You can forward the request for enhancement to nvidia using the devtalk.
Here an existing topic https://devtalk.nvidia.com/default/topic/1072074/linux/nvidia-driver-doesn-t-use-primarygpu-option/

Comment 8 Nicolas Chauvet (kwizart) 2020-02-24 08:17:58 UTC
Closing since this issue is not relevant for here.

Comment 9 James Hewitt 2020-02-24 09:56:02 UTC
What originally confused me was the discussion about "Previous behaviour", which implied that was an old section, when really it is still relevant. Your updates make it much more clear, thank you.

I would recommend removing the sentence: "To recover this previous behaviour, you can use:", maybe put something like "To enable the PrimaryGPU option, you can use:"

FYI, there seems to be a bug in the PRIME Sync section, it says this: "It should be enabled bytThen you can enable Prime Synchronisation for your session:"

Comment 10 James Hewitt 2020-02-24 10:10:49 UTC
FYI, have raised a new topic here to see if anyone from nvidia can help: https://devtalk.nvidia.com/default/topic/1072101/linux/optimus-and-external-displays-external-outputs-on-nvidia-gpu/


Note You need to log in before you can comment on or make changes to this bug.