You are not logged in.

#1 2021-01-12 13:09:55

Komisch
Member
Registered: 2018-05-30
Posts: 43

Connect second Monitor with PRIME render offload setup

Dear Community,

I am running a Lenovo P15 Gen 1 with hybrid graphics (i7-10750H, Quadro T2000) using PRIME render offload. When I try:

xrandr:

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.99    59.99    59.96    59.95  
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   1792x1344     60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    59.93  
   1600x1200     60.00  
   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  
HDMI-1-0 connected
   1920x1080     60.00 +  59.94    50.00    23.98  
   1440x900     119.85  
   1280x1024     75.02  
   1280x720      60.00    59.94    50.00  
   1024x768     119.99   100.00    75.03    60.00  
   800x600      119.97   100.00    75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480      120.01    99.99    75.00    59.93    59.94  

and run:

xrandr --output "eDP-1" --auto --output "HDMI-1-0" --auto --above "eDP-1"

I get an error:

xrandr: Configure crtc 3 failed
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:  21 (RRSetCrtcConfig)
  Value in failed request:  0x0
  Serial number of failed request:  63
  Current serial number in output stream:  63

I wasn't sure how to interpret this error. I am just guessing that maybe only the dGPU is connected to the HDMI port. Is there a command to see which GPU is connected to which port?

Also I thought maybe it is necessary to activate PRIME Synchronization to connect a second monitor. So I enabled modesetting on my nvidia GPU after checking some xrandr outputs

> xrandr --listproviders

Providers: number : 2
Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 1 name:modesetting
Provider 1: id: 0x2b5 cap: 0x2, Sink Output crtcs: 4 outputs: 5 associated providers: 1 name:NVIDIA-G0
> xrandr --prop

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
        EDID:
                00ffffffffffff000e6f001500000000
                001d0104b522137803c13da85335b726
                114f5700000001010101010101010101
                01010101010140ce00a0f07028803020
                350058c2100000180000000000000000
                00000000000000000018000000fe0043
                534f542054330a2020202020000000fe
                004d4e463630314541312d310a200148
                02030f00e3058000e606050173732100
                00000000000000000000000000000000
                00000000000000000000000000000000
                00000000000000000000000000000000
                00000000000000000000000000000000
                00000000000000000000000000000000
                00000000000000000000000000000000
                0000000000000000000000000000008b
        scaling mode: Full aspect
                supported: Full, Center, Full aspect
        Colorspace: Default
                supported: 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
        max bpc: 12
                range: (6, 12)
        Broadcast RGB: Automatic
                supported: Automatic, Full, Limited 16:235
        panel orientation: Normal
                supported: Normal, Upside Down, Left Side Up, Right Side Up
        link-status: Good
                supported: Good, Bad
        CONNECTOR_ID: 95
                supported: 95
        non-desktop: 0
                range: (0, 1)

HDMI-1-0 connected
        EDID:
                00ffffffffffff0009d1147f45540000
                21170103803c22782e3dc1a4564e9e28
                0f5054a56b80d1c0317c4568457c6168
                617c953c3168023a801871382d40582c
                450055502100001e000000ff004c3844
                3034393735534c300a20000000fd0018
                780f8711000a202020202020000000fc
                0042656e5120584c32373230540a0187
                020323f1509005040302011112131406
                0715161f202309070765030c00200083
                010000023a801871382d40582c450055
                502100001f011d8018711c1620582c25
                0055502100009f011d007251d01e206e
                28550055502100001f8c0ad08a20e02d
                10103e96005550210000190000000000
                00000000000000000000000000000017
        PRIME Synchronization: 1
                supported: 0, 1
        CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
                0 1
        CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0
        BorderDimensions: 4
                supported: 4
        Border: 0 0 0 0
                range: (0, 65535)
        SignalFormat: TMDS
                supported: TMDS
        ConnectorType: HDMI
        ConnectorNumber: 1
        _ConnectorLocation: 1
        non-desktop: 0
                supported: 0, 1

and rebooted. Now I tried:

xrandr --output "eDP-1" --auto --output "HDMI-1-0" --set "PRIME Synchronization" 1 --auto --above "eDP-1"

and

xrandr --output "eDP-1" --set "PRIME Synchronization" 1 --auto --output "HDMI-1-0" --auto --above "eDP-1" --set "PRIME Synchronization" 1

since I wasn't sure about the command order. Both led to

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  11 (RRQueryOutputProperty)
  Serial number of failed request:  50
  Current serial number in output stream:  50

So I am not even sure whether or not PRIME Synchronization is the answer to my problem. I am also not sure if my problem is that the iGPU is not connected to the external HDMI output but the dGPU is since I don't know how to check this property. I would be very happy if you could tell me how to find an optimal solution for my problem. (When I connect an external display to my notebook I am almost always connected to a power source.)

Thank you very much in advance for your time and help!

Offline

#2 2021-01-14 22:32:42

jonathon
Member
Registered: 2016-09-19
Posts: 60

Re: Connect second Monitor with PRIME render offload setup

Komisch wrote:

X Error of failed request:  BadValue (integer parameter out of range for operation)

The last time I saw this it error was due to a conflict in driver and configuration files, and the "solution" was to remove all NVIDIA packages and related config files (see e.g. `lostfiles`), then start over.

Last edited by jonathon (2021-01-14 22:32:51)

Offline

#3 2021-01-15 00:47:54

Komisch
Member
Registered: 2018-05-30
Posts: 43

Re: Connect second Monitor with PRIME render offload setup

Tried to remove all nvidia config files in /usr/share/X11/** and removed all nvidia related files in /etc/X11/xorg.conf.d as well as /etc/X11/xorg.conf is now an empty file.
Also tried to reboot and reinstall nvidia drivers but since I wasn't able to get a working setup I reset everything to the without any driver state. Now atm I only have the "mesa" package and
xrandr prints now:

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.99    59.99    59.96    59.95  
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   1792x1344     60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    59.93  
   1600x1200     60.00  
   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 

and xrandr --listproviders shows:

Providers: number : 1
Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 0 name:modesetting

lspci | grep VGA shows:

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation TU117GLM [Quadro T2000 Mobile / Max-Q] (rev a1)

Could you maybe tell me how to exactly get a working setup?

1 - My intention would be to be able to detect and determine to which GPU my HDMI and DP ports are connected
2 - Choose a proper setup based on my findings e.g. PRIME render offload
3 - Install it in a way that it works

(I already tried it before - but as it seems it didn't work out quite so well https://bbs.archlinux.org/viewtopic.php?id=261934 in this thread I also got the default hint you always got here "follow the guides" - therefore to show them I tried to I explained in detail which steps I followed in which order and that it still didn't work out for me - maybe I am especially stupid - but still I at least was able to aquire 1.0 masters degree in computer science (maybe more on the theoretical/mathematical path) but I can't be that stupid)

Last edited by Komisch (2021-01-15 00:51:51)

Offline

#4 2021-01-15 09:32:56

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 11,851

Re: Connect second Monitor with PRIME render offload setup

By removing the nvidia file (... hopefully just the nvidia file?) under /usr/share/X11 (this is a package provided location you usually don't  want to muck around there manually) you've broken the nvidia driver integration with xorg.

To fix that, reinstall nvidia-utils. Adding another monitor is a different goal from what your other thread talked about, and requires one additional step in xrandr, which is mentioned in https://wiki.archlinux.org/index.php/PR … erse_PRIME (... and for an initial test just this small section).

So given you've restored the setup to a point as it was in your original post, you need to run

xrandr --setprovideroutputsource NVIDIA-G0 modesetting
xrandr --auto

Verify this works first, worry about proper alignment later.

Offline

#5 2021-01-17 19:24:34

Komisch
Member
Registered: 2018-05-30
Posts: 43

Re: Connect second Monitor with PRIME render offload setup

Hi V1del,
had to completely reinstall Archlinux took me some time.

Prime render offload seemd to work now by simple installing the nvidia package and the nvidia-prime and rebooting the system. No further adjustments. Could check with glxinfo. Anyways I added both xrandr commands to my .xinitrc even so the first one still throws a badvalue error (when executed manually with a running xserver).

Afterwards I installed the optimus-manager and the optimus-manager-qt. I enabled the systemctl service (optimus-manager.service) and added the qt to my .xinitrc script:

xrandr --setprovideroutputsource NVIDIA-G0 modesetting
xrandr --auto

# stuff

./usr/bin/primeoffload &
optimus-manager-qt &
exec i3

then in https://github.com/Askannz/optimus-manager , since I run startx directly from terminal there was this guide telling me how to run a command after the xserver has stopped (by adding the following to my .zshrc):

if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]];
then 
    sudo /usr/bin/prime-switch
    exec startx
fi

and added to /etc/sudoers

myUsername ALL = NOPASSWD: /usr/bin/prime-switch

but I can't get the optimus-manager to work. It somehow defaulted to shutting down the Nvidia GPU and only run on intel. Which would be nice when I would know how to change the mode again (I mean not the command but making the command actually work.).

When I execute the

optimus-manager --switch hybrid

from terminal I get:

ERROR: a GPU setup was initiated but Xorg post-start hook did not run.
Log at /var/log/optimus-manager/switch/switch-20210117T192606.log
If your login manager is GDM, make sure to follow those instructions:
https://github.com/Askannz/optimus-manager#important--gnome-and-gdm-users
If your display manager is neither GDM, SDDM nor LightDM, or if you don't use one, read the wiki:
https://github.com/Askannz/optimus-manager/wiki/FAQ,-common-issues,-troubleshooting

The referenced log shows:

[23] INFO: # Xorg pre-start hook
[23] INFO: Previous state was: {'type': 'pending_pre_xorg_start', 'requested_mode': 'intel', 'current_mode': None}
[23] INFO: Requested mode is: intel
[23] INFO: Checking for GDM display servers
[1209] INFO: Available modules: ['nouveau', 'acpi_call', 'nvidia', 'nvidia_drm', 'nvidia_modeset', 'nvidia_uvm']
[1209] INFO: Unloading modules ['nvidia_drm', 'nvidia_modeset', 'nvidia_uvm', 'nvidia'] (if loaded)
[1213] INFO: Setting Nvidia PCI power state to auto
[1269] INFO: Loaded extra Intel Xorg options (0 lines)
[1269] INFO: Loaded extra Intel Xorg options (0 lines)
[1269] INFO: Writing to /etc/X11/xorg.conf.d/10-optimus-manager.conf
[1269] INFO: Writing state {'type': 'pending_post_xorg_start', 'switch_id': '20210117T195210', 'requested_mode': 'intel'}
[1269] INFO: Xorg pre-start hook completed successfully.

Even so the tray (optimus-manager-qt) as well as xrandr --listproviders now shows again that I am in intel only mode:

Providers: number : 1
Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 0 name:modesetting

So I am guessing I am almost where I would like to get with my setup but still a very small step away...

@Edit

noticed that the . in ./usr/bin/primeoffload & is most likely idiocy and removed it - rebooted and checked again - everything as before - same errors (just to fix this error before somebody mentions it)

@Edit

Solved the problem missing dash in prime-offload ....
Still have another problem that is only indirectly linked with this one - will create a separate thread (autostart apps in i3wm - ofc I know the guide and a lot of different approaches but the official ones all seem not to work).

Last edited by Komisch (2021-01-17 20:50:58)

Offline

Board footer

Powered by FluxBB