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.
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…