Using runtime D3(RTD3) power management on GeForce GTX 1650 (Notebook) running on Linux

I own an ASUS FX505DT, which has a GeForce GTX 1650 having Turing architecture along with AMD Ryzen 3550H APU. I want to use Nvidia’s RTD3 feature on my Void Linux install. I’ve read the documentation however this feature doesn’t work with PRIME render offload.
My laptop does meet the requirements mentioned in the docs:

  • My laptop is a notebook.
  • ACPI methods “_PR0” and “_PR3” are available in my ACPI tables. (I verified this by disassembling my ACPI tables".
  • I have a Turing GPU.
  • My kernel version is 5.12.6. (I compiled this myself, with AMDGPU firmware built-in)
  • CONFIG_PM is set to y in my kernel config.

From what I can speculate, the GPU simply doesn’t get suspended because Xorg starts using Nvidia. If I run Xorg using my integrated AMDGPU driver, then Nvidia does get suspended, but I can’t use PRIME render offload anymore.

I verify the state of the gpu through “cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status” which outputs active

Please guide me on how to properly implement this feature.

1 Like

I have a similar laptop (Acer Nitro 5 AN515-43) with the same APU and GPU. I have a slightly different problem on my hands though: the Nvidia GPU does get suspended but it wakes up for a few seconds every time a new window gets created. Then it gets suspended again.

I’d like to know how to possibly fix this behavior.