tbocek Thanks, I’ll try it. I’ve been reading through those bug reports and source documentation. This seems to be a known issue and affects AMD, Intel and Nvidia GPUs as well. It’s a bit overkill but here are all the possible DC_DEBUG_MASK parameters we can pass to the kernel amdgpu driver module with amdgpu.dcdebugmask
.
0x1 = DC_DISABLE_PIPE_SPLIT, If set, disable pipe-splitting
0x2 = DC_DISABLE_STUTTER, If set, disable memory stutter mode
0x4 = DC_DISABLE_DSC, If set, disable display stream compression
0x8 = DC_DISABLE_CLOCK_GATING, If set, disable clock gating optimizations
0x10 = DC_DISABLE_PSR, If set, disable Panel self refresh v1 and PSR-SU
0x20 = DC_FORCE_SUBVP_MCLK_SWITCH, If set, force mclk switch in subvp, even if mclk switch in vblank is possible
0x40 = DC_DISABLE_MPO, If set, disable multi-plane offloading
0x80 = DC_ENABLE_DPIA_TRACE, If set, enable trace logging for DPIA
0x100 = DC_ENABLE_DML2, If set, force usage of DML2, even if the DCN version does not default to it.
0x200 = DC_DISABLE_PSR_SU, If set, disable PSR SU
0x400 = DC_DISABLE_REPLAY, If set, disable all Idle Power States, all the time. If more than one IPS debug bit is set, the lowest bit takes precedence. For example, if DC_FORCE_IPS_ENABLE and DC_DISABLE_IPS_DYNAMIC are set, then DC_DISABLE_IPS_DYNAMIC takes precedence.
0x800 = DC_DISABLE_IPS, If set, disable all IPS, all the time, *except* when driver goes into suspend.
0x1000 = DC_DISABLE_IPS_DYNAMIC, If set, disable IPS2 (IPS1 allowed) if there is an enabled display. Otherwise, enable all IPS.
0x2000 = DC_DISABLE_IPS2_DYNAMIC, If set, force enable all IPS, all the time.
0x8000 = DC_DISABLE_ACPI_EDID, If set, don't attempt to fetch EDID for eDP display from ACPI _DDC method.
0x10000 = DC_DISABLE_HDMI_CEC, If set, disable HDMI-CEC feature in amdgpu driver.
0x20000 = DC_DISABLE_SUBVP_FAMS, If set, disable DCN Sub-Viewport & Firmware Assisted Memory Clock Switching (FAMS) feature in amdgpu driver.
0x40000 = DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE, If set, disable support for custom brightness curves
0x80000 = DC_HDCP_LC_FORCE_FW_ENABLE, If set, use HDCP Locality Check FW path regardless of reported HW capabilities.
0x100000 = DC_HDCP_LC_ENABLE_SW_FALLBACK, If set, upon HDCP Locality Check FW path failure, retry using legacy SW path.
0x200000 = DC_SKIP_DETECTION_LT, If set, skip detection link training
Specifically for this issue some have reported that amdgpu.dcdebugmask=0x10
seems to resolve but I also saw other reports that for them it didn’t resolve. I’ll try it and see how it goes.
References:
- https://wiki.archlinux.org/title/AMDGPU
- https://gitlab.freedesktop.org/drm/amd/-/issues/4002
- https://gitlab.freedesktop.org/drm/amd/-/issues/4141
- https://zamundaaa.github.io/wayland/2025/07/22/display-next-hackfest-2025.html#:~:text=My%20%E2%80%9CFavorite%E2%80%9D%3A%20Pageflip%20Timeouts
- https://forum.endeavouros.com/t/howto-mitigate-gfx-crash-lockup-apparent-freeze-with-amdgpu/73082
- https://docs.kernel.org/gpu/amdgpu/module-parameters.html
- https://codebrowser.dev/linux/linux/drivers/gpu/drm/amd/include/amd_shared.h.html