You are not logged in.

#1 2025-04-15 06:24:24

lourcarter
Member
Registered: 2025-04-15
Posts: 2

Lag when switching between iGPU and dGPU in all AMD laptop.

I'm experiencing a small issue that has me a little bit stumped.

I recently bought an all AMD laptop in hopes of getting a better overall experience, I settled on an ASUS TUF A16 Advantage edition (honestly it was the only all AMD laptop available and had good results according to the wiki laptop page).
It works almost perfectly. Even sleep to ram, which reportedly is broken, does just fine.

However, I found a small issue when I use blender (the 3D modelling software). If I just run it from the application launcher in Plasma, it uses the iGPU by default which isn't ideal so, by prepending it with DRI_PRIME=1, I force it to run on the dGPU. The thing is, when I move to a different window, say to look at reference, read documentation, or anything else really (even for just a couple of seconds) and then go back to blender it freezes for a moment and it starts working again.

After doing some tests I have found out that the dGPU goes into the D3 Cold power state almost immediately and it seems to take a couple of seconds to power back on when going back to the blender window so I am assuming that the issue is the machine switching from iGPU to dGPU on the fly. Granted, it still works but the switching is just slow enough to be noticeable and insidiously grind at one's sanity.

I tried, without results, turning off SAG in the laptops bios and some troubleshooting from the PRIME wiki page changing my environment file (granted that fix was meant for NVIDIA but it sounded like a similar set of symptoms and a simple enough solution for me not to try it).

Could someone give me some advice on what else I could try or where else I could look? Maybe a way to make the dGPU wake up faster, power down less often, or to force it to remain active under certain conditions? In fairness, it being powered down gives me, sometimes, up to 7 or 8 hours of battery which is great, but having it be an option would be fantastic.

Thank you all in advance, have a good day.



SYSTEM SPECS:

OS: Arch Linux x86_64 on Wayland

Host: ASUS TUF Gaming A16 FA617NT_FA617NT 1.0 

Kernel: 6.14.1-arch1-1   

DE: Plasma 6.3.4 

WM: kwin   

CPU: AMD Ryzen 7 7735HS with Radeon Graphics (16) @ 4.830GHz 

dGPU: AMD ATI Radeon 7700S

iGPU: AMD ATI Radeon 680M 

Memory: 3862MiB / 15219MiB

Last edited by lourcarter (2025-04-15 07:01:55)

Offline

#2 2025-04-15 06:49:20

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 9,003
Website

Re: Lag when switching between iGPU and dGPU in all AMD laptop.

lourcarter wrote:

a way to make the dGPU power down less often

Change /sys/class/drm/card0/power/autosuspend_delay_ms using tmpfiles.d(5). Replace X with the correct number for the card (1?).

EDIT: I have that exact machine. The dGPU is card0 :-)

Last edited by Head_on_a_Stick (2025-04-15 06:52:30)


Jin, Jîyan, Azadî

Offline

#3 2025-04-15 07:39:02

lourcarter
Member
Registered: 2025-04-15
Posts: 2

Re: Lag when switching between iGPU and dGPU in all AMD laptop.

Head_on_a_Stick wrote:
lourcarter wrote:

a way to make the dGPU power down less often

Change /sys/class/drm/card0/power/autosuspend_delay_ms using tmpfiles.d(5). Replace X with the correct number for the card (1?).

EDIT: I have that exact machine. The dGPU is card0 :-)

Hi!

Thank you very much for this tip. I did it and it actually works a lot better now, set the timeout threshold to around 10 minutes and it's working.
It so happens that my laptop doesn't have a card0. For some reason the dGPU is card1 and the iGPU is card2.

I will just write out what I did so that, if another person like me has a similar issue they can maybe try the same thing.

As you said, I used tmpfiles.d.

I made a new gpu-power.conf file in

/etc/tmpfiles.d

and added the following line

w /sys/class/drm/card1/device/power/autosuspend_delay_ms - - - - 600000

then ran

systemd-tmpfiles --create

checked with

cat /sys/class/drm/card1/device/power/autosuspend_delay_ms

and it's working.

Thank you again for your help!

Last edited by lourcarter (2025-04-15 07:41:35)

Offline

Board footer

Powered by FluxBB