From 4ec011cd55856f3825672431b15c0318022c6948 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 24 Jun 2018 12:19:21 -0500 Subject: Fix kdesktop_lock screensaver stuttering on modern GPUs --- kdesktop/lock/lockprocess.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc index 5dbc4d152..7d853b0dc 100644 --- a/kdesktop/lock/lockprocess.cc +++ b/kdesktop/lock/lockprocess.cc @@ -872,7 +872,11 @@ void LockProcess::createSaverWindow() info = glXGetVisualFromFBConfig(x11Display(), fbc[j]); if( info ) { if (argb_visual) { - if (info->depth < 32) { + // Xorg can only use GPU compositing for ARGB32 8:8:8:8 visuals + // Ensure the selected visual is 8 bits per RGB + // Selecting a non-8-bit visual will result in stuttering and high + // CPU load, while Xorg tries to composite each frame on the CPU! + if ((info->depth < 32) || (info->bits_per_rgb != 8)) { XFree( info ); info = NULL; continue; -- cgit v1.2.3