SUMMARY It would be useful to have the option to disable the slow transition in Night Light. It makes the entire display freeze when multiple high resolution monitors are connected, and causes stutters in games. Relevant AMD bug report: https://gitlab.freedesktop.org/drm/amd/-/issues/3708 STEPS TO REPRODUCE 1. Connect multiple 3840x2160 displays to the same GPU. 2. Turn on Night Light. OBSERVED RESULT The entire display freezes while the colour is changing. It also makes games stutter when this is slowly happening if `Switching times` is set to `Sunrise and sunset`. EXPECTED RESULT Ideally this would be fixed in the kernel, but there's not much that can be done according to the comments on the AMD issues tracker. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora Linux 43 KDE Plasma Version: 6.5.3 KDE Frameworks Version: 6.20.0 Qt Version: 6.10.1 GPU: AMD Radeon RX 7900 XTX (Sapphire Nitro+)
Id the transition causes a problem, the solution is to fix the issue, not provide a way for people to work around it! Let's focus on the issue itself, and see if there's anything we can do in KWin until the driver bug is fixed.
This is quite challenging to fix tbh. There's two things that need to happen for this: 1. we need new API so KMS won't drop any frames when programming a new LUT is slow. There have been some ideas for this before, like allowing the compositor to program color properties for a future frame, without actually applying it yet, so it's decoupled from the current frame. 2. if the LUT is not immediately applied, we have to fall back to a shader There is however some risk that implementing the fallback will also cause some slight stutter, because KWin has to allocate some shadow buffers and do an additional copy, which increases how long KWin has to render vs. previous frames. Another possibility is that KWin starts programming the frame a lot earlier if a lut needs to be programmed, but we don't actually know how long programming it takes on each hardware, so that's also very difficult.