[Unstable Update] October 2024 Edition

So my case is likely related to PSR.

(a power saving feature)

With amdgpu there are certain approaches and workarounds that I have not investigated.

But for amdgpu you could use a boot option derived from these values;

enum DC_DEBUG_MASK {
	DC_DISABLE_PIPE_SPLIT = 0x1,
	DC_DISABLE_STUTTER = 0x2,
	DC_DISABLE_DSC = 0x4,
	DC_DISABLE_CLOCK_GATING = 0x8,
	DC_DISABLE_PSR = 0x10,
	DC_FORCE_SUBVP_MCLK_SWITCH = 0x20,
	DC_DISABLE_MPO = 0x40,
	DC_ENABLE_DPIA_TRACE = 0x80,
	DC_ENABLE_DML2 = 0x100,
	DC_DISABLE_PSR_SU = 0x200,
	DC_DISABLE_REPLAY = 0x400,
	DC_DISABLE_IPS = 0x800,

(some definitions: Core Driver Infrastructure — The Linux Kernel documentation)

Meaning something like these:

DC_DISABLE_PSR_SU

amdgpu.dcdebugmask=0x200

OR

DC_DISABLE_PSR_SU and DC_DISABLE_REPLAY

amdgpu.dcdebugmask=0x600

OR

DC_DISABLE_PSR (automatically also SU)

amdgpu.dcdebugmask=0x10

OR

DC_DISABLE_PSR (automatically also SU) & DC_DISABLE_STUTTER

amdgpu.dcdebugmask=0x12

In the case of Intel and Intel+Nvidia users you may also be affected by the new PSR stuff.
For intel you might try this boot option;

i915.enable_psr=0

(put it in /etc/default/grub or equivalent and run update-grub)


And an older but different bug may also be worth mentioning which is some issues with triple buffering - especially on slightly older or underpowered hardware.

A workaround is the KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1 variable.

Ideally you might just apply it to the plasma-kwin_wayland service.

~/.config/systemd/user/plasma-kwin_wayland.service.d/override.conf

[Service]
Environment="KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1"

Another approach is adding the variable to /etc/environment.

I also have not investigated this because it does not seem pertinent to my case but I leave it here for any possible usefulness to others.


PS.

I have a vague memory of some other variable that I want to mention but cannot find for the life of me. I want to say it even had ‘FREEZE’ or ‘FREEZING’ in the variable name. Was it a dream? Someone put me out of my misery. :sob:

EDIT. AHA. (I think)
The other variable was SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false
See the following archwiki section;
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#System_freezes_for_60_seconds_and_then_wakes_back_up_or_hangs_after_waking_up



A bunch of links…

3 Likes