Hello,
I’m trying to configure XRandR display offload from an NVIDIA GPU to an integrated Intel GPU:
$ lspci |grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
06:00.0 VGA compatible controller: NVIDIA Corporation GP107GL [Quadro P1000] (rev a1)
I’m using Xorg and NVIDIA drivers from Debian testing.
I have the following Xorg configuration:
Section "ServerLayout"
Identifier "layout"
Screen 0 "eGPU"
Inactive "iGPU"
EndSection
Section "Screen"
Identifier "iGPU"
Device "iGPU"
EndSection
Section "Device"
Identifier "iGPU"
Driver "modesetting"
Option "AccelMethod" "glamor"
Option "Backlight" "intel_backlight"
EndSection
Section "Screen"
Identifier "eGPU"
Device "eGPU"
EndSection
Section "Device"
Identifier "eGPU"
Driver "nvidia"
BusID "PCI:6:0:0"
Option "AllowExternalGpus" "yes"
Option "AllowEmptyInitialConfiguration"
EndSection
I can see both GPUs with the appropriate capabilities in xrandr --listproviders, and xrandr --setprovideroutputsource modesetting NVIDIA-0 succeeds:
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x219 cap: 0x1, Source Output crtcs: 4 outputs: 8 associated providers: 0 name:NVIDIA-0
Provider 1: id: 0x24b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 0 name:modesetting
$ xrandr --setprovideroutputsource modesetting NVIDIA-0
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x219 cap: 0x1, Source Output crtcs: 4 outputs: 8 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x24b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 1 name:modesetting
However, xrandr --auto fails with a BadMatch error in RRSetScreenSize:
$ xrandr --output eDP-1-1 --auto --verbose
screen 0: 3200x1800 1086x611 mm 74.80dpi
crtc 4: 3200x1800 59.98 +0+0 "eDP-1-1"
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 7 (RRSetScreenSize)
Serial number of failed request: 57
Current serial number in output stream: 58
Each time I run it, the following line appears in the Xorg log:
randr: failed to create shared pixmap
The complete log is at https://paste.debian.net/1125612/.
I’ve tried:
- Using `Option "AccelMethod" "none"` and even renaming `libglamoregl.so` so that it is not found by Xorg. No change.
- Explicitly loading the `intel` module using a `Section "Module"`, which appears to change how modesetting works. (The iGPU Device section still had `Driver "modesetting"`.) No change.
- With explicitly loaded `intel` module, using `Option "Tiling" "no"` and/or `Option "LinearFramebuffer" "yes"`, in case this issue is somehow related to https://devtalk.nvidia.com/default/topic/1051368/. No change.
- Updating to 435.21 driver downloaded from the NVIDIA website. No change. Remarkably, PRIME render offload works just fine, it's PRIME display offload that doesn't work.
Essentially every xrandr command I tried fails with that error, e.g. xrandr --auto, xrandr --output eDP-1-1 --auto, xrandr --output eDP-1-1 --off, xrandr --output eDP-1-1 --primary --size 3200x1800, xrandr --output eDP-1-1 --primary --size 640x480 all fail.
Any ideas?