diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2018-06-24 12:19:21 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2018-06-24 19:41:57 +0200 |
commit | bc08650da1a29f4178fa2f412b18474fbf6727fb (patch) | |
tree | d77f802b21f016d4fa347c5a3f4c6d754e0de1bb /kdesktop/lock/lockprocess.cc | |
parent | 24ee9f5775095a8535d9249ed3436e028ba0b750 (diff) | |
download | tdebase-bc08650da1a29f4178fa2f412b18474fbf6727fb.tar.gz tdebase-bc08650da1a29f4178fa2f412b18474fbf6727fb.zip |
Fix kdesktop_lock screensaver stuttering on modern GPUs
(cherry picked from commit 4ec011cd55856f3825672431b15c0318022c6948)
Diffstat (limited to 'kdesktop/lock/lockprocess.cc')
-rw-r--r-- | kdesktop/lock/lockprocess.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc index dbe0da500..b4120f120 100644 --- a/kdesktop/lock/lockprocess.cc +++ b/kdesktop/lock/lockprocess.cc @@ -868,7 +868,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; |