Hey! I’m trying to get nvidia prime offload working on a Dell XPS 15" 7590.
It comes with
- CPU: i7-9750H
- GPU: GeForce GTX 1650 Mobile / Max-Q] (rev a1)
- First question:
When referencing the wiki page on nvidia, it seems that the card should power completely off when not in use. I previously used Arch Linux, where I used Optimus-Manager to manually turn it off. This resulted in a power draw of ~2W. Right now NixOS is drawing ~8-10W. To be honest, I do not know if this is what should be expected, but it seems too high.
When I disable the card entirely (in NixOs), I get a draw of ~2W, but I would love if the offload mode could yield the same results. I have tried the following things:
- Doing exactly what the Nvidia wiki page proposed
- using latest kernel
- add “modesetting” to video drivers
- using lightdm instead of gdm
- adding options
nvidia "NVreg_DynamicPowerManagement=0x02"
to modprobe, both in nixboot.extraModprobeConfig
and imperatively in/etc/modprobe.d/nvidia.conf
- setting
hardware.nvidia.powerManagement.enable
to true - adding udev rules from nvidia’s site:
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1"
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
'';
Has anyone with a similar setup got this working?
- Second question
I can not get the nvidia card working at all in offload mode, when using GDM.
nvidia-offload glxinfo | grep vendor
returns
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 152 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 39
Current serial number in output stream: 40
It works when using lightdm however. Have anyone made it work with GDM?
Thanks!
(Also asked on reddit)