You are not logged in.

#1 2020-05-04 23:06:09

SmallAndSimple
Member
Registered: 2015-11-25
Posts: 58

Xrandr cannot find screen connected to Nvidia, but Xorg does find it

I have a laptop with both an intel and a Nvidia graphics card. The Nvidia does have some ports connected to it which are only accessable through the Nvidia card.
I use the https://wiki.archlinux.org/index.php/PRIME setup with closed-source drivers.
When I connect a TV to the displayport output, the following shows up in /var/log/Xorg.0.log:

[   286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   286.478] (--) NVIDIA(GPU-0): 
[   306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   306.949] (--) NVIDIA(GPU-0): 
[   307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   307.059] (--) NVIDIA(GPU-0): 
[   307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   307.511] (--) NVIDIA(GPU-0): 
[   307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   307.621] (--) NVIDIA(GPU-0): 
[   455.355] (--) NVIDIA(GPU-0): DFP-0: disconnected
[   455.355] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[   455.355] (--) NVIDIA(GPU-0): DFP-0: 340.0 MHz maximum pixel clock
[   455.355] (--) NVIDIA(GPU-0): 
[   458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[   458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[   458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[   458.352] (--) NVIDIA(GPU-0): 

So, it seems to work. But xrandr does not seem to want to find it:

 $ xrandr --listmonitors                     
Monitors: 1
 0: +*eDP1 1920/340x1080/190+0+0  eDP1

Moreover, xrandr seems to think that there are no outputs on the Nvidia GPU at all:

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x46 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:Intel
Provider 1: id: 0x321 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0

The Reverse PRIME trick also does not work:

$ xrandr --setprovideroutputsource NVIDIA-G0 Intel
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:  0x321
  Serial number of failed request:  16
  Current serial number in output stream:  17

So, what is going on here? And how can I fix it?

Offline

#2 2020-05-04 23:29:43

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: Xrandr cannot find screen connected to Nvidia, but Xorg does find it

The Nvidia driver can't share its outputs. You will have to turn your setup around and run your desktop on your Nvidia GPU instead of the Intel GPU. This is the only way to get access to the output that's wired to the Nvidia GPU. You then make the Intel GPU share its eDP1 connector instead of the Nvidia GPU share its monitor connector.

From what I could see, the easiest way to get things working is a tool "optimus-manager":

https://wiki.archlinux.org/index.php/NV … us-manager

https://github.com/Askannz/optimus-manager

Offline

Board footer

Powered by FluxBB