Bug 317156 - Enabling "Suspend desktop effects for fullscreen windows" disables the screen saver
Summary: Enabling "Suspend desktop effects for fullscreen windows" disables the screen...
Status: RESOLVED UNMAINTAINED
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (show other bugs)
Version: 4.10.1
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-21 20:09 UTC by Woodsman
Modified: 2016-11-02 15:56 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Woodsman 2013-03-21 20:09:48 UTC
The code logic likely is correct, but enabling "Suspend desktop effects for fullscreen windows" disables the screen saver.

Reproducible: Always

Steps to Reproduce:
1. Set the screen saver timeout to 1 minute (or less if directly editing kscreensaverrc).
2. Enable "Suspend desktop effects for fullscreen windows."
3. Wait for the screen saver to activate.

Actual Results:  
The screen saver does not activate. Only the Simple locker appears.

Expected Results:  
The screen saver should activate.

This bug report is not about the code logic but potential user confusion. I wrote that the expected results are the screen saver should activate. I wrote that not from a coder's perspective but a general user.

I suspect many users do not consider a screen saver to be a "desktop effect," although technically this might well be true. Therein lies potential for confusion. :)

There is some reason for this disassociation because the screen saver configurations are in Display and Monitor while "Suspend desktop effects for fullscreen windows" is in Desktop Effects -> Advanced. Reading text such as "Suspend desktop effects" while in the Desktop Effects section leads users to not think about screen savers. From a coder's perspective this association might be incorrect, but from a usability perspective of general users this association probably is normal.

With that said, one solution is to add a detailed help popup for the check box reminding users that enabling the suspension will disable screen savers.

A parallel solution is to revise the text of the text box control, perhaps to something like:

"Suspend desktop effects and screen savers for fullscreen windows"

Another solution is to add a popup warning when enabling suspension that screen savers will be disabled as well as the usual desktop effects.

Possibly a popup warning could be added to the screen saver configuration that "Suspend desktop effects for fullscreen windows" is enabled in Desktop Effects -> Advanced and that the screen saver will not activate while that control is enabled.

Or, disable the screen saver configuration options (grayed or ghosted out) when that control is enabled along with a special text warning explaining why.

Another solution is to exempt the screen saver from the suspension but I suspect this check box control exists for gamers and movie video watchers where screen savers are annoying during that type of usage.

Just ideas. :)
Comment 1 Thomas Lübking 2013-03-21 20:25:35 UTC
I don't think the screensaver is some kwin effect.

* which one in particular?
* tried others?
* does it happen with xrender compositing?
* what about turning off compositing altogether?
* does the simple locker "interact" (eg. on hovering a button or so) w/o clicking it first?
Comment 2 Woodsman 2013-03-21 20:38:57 UTC
I tried Asciiquarium, Blank Screen, Apple ][, Fluid Balls, Clock, Polygons,  and some others that I don't remember the name. The result is repeatable for me, but possibly I'm doing something unexpected. :)

xrender compositing: what is involved with testing that? The only compositing I am aware on my system is that provided with KDE.

Disabling compositing: Do you mean disabling Desktop Effects -> General -> Enable desktop effects at startup? Yes, when I disable that option then the screen saver activates as expected.

When I select the Simple locker option, the locker dialog appears rather than a screen saver. When the screen saver is not activating as expected the Simple locker still appears.

The Simple locker dialog always appears even when the screen saver is activating as expected. The dialog appears for a moment and then the screen saver activates. I saw bug report 310871 and was left with the impression that this behavior is known but not yet corrected.

Directly activating the locker works as expected, regardless of the screen saver configurations, whether invoked by keyboard shortcut (Ctrl+L), the launcher menu, or the panel widget.
Comment 3 Thomas Lübking 2013-03-21 21:19:32 UTC
To temporarily suspend (disable) compositing just press "Shift+Alt+F12" (and again to reactivate it)

The xrender compositing backend can be selected in "kcmshell4 kwincompositing" (where you found the unredirection setting that caused this report)

> The Simple locker dialog always appears even when the screen saver is activating as expected.
It's not only about "appearing" but also about whether it reacts on passive input (iirc the screensaver makes a dump of it and blends it as static pixmap into its background)

> Directly activating the locker works as expected
You mean "including the screensaver" and with "suspend compositing for fullscreen windows" checked?
Comment 4 Woodsman 2013-03-21 22:31:28 UTC
> To temporarily suspend (disable) compositing just press "Shift+Alt+F12" (and again to reactivate it)

Okay, that's the same as Desktop Effects -> General -> Enable desktop effects at startup. :) Toggling that option is as I shared in my previous response.

> The xrender compositing backend can be selected in "kcmshell4 kwincompositing" (where you found the unredirection setting that caused this report)

Oh, okay. I changed only the setting from OpenGL to Xrender and restarted KDE. The screen saver activated as expected.

> Directly activating the locker works as expected You mean "including the screensaver" and with "suspend compositing for fullscreen windows" checked?

With the both the screen saver and "suspend compositing for fullscreen windows" enabled, the screen saver does not activate, only the locker dialog appears, as previously shared. When I explicitly activate screen locking with the panel widget, the dialog appears as expected, and the lock functions as expected in that I have to enter a password to gain access to the desktop.

In all of these tests I always restart KDE (logout/login) to ensure no misinterpretations. :)
Comment 5 Woodsman 2013-03-21 22:35:45 UTC
I should add that with the screen saver enabled and "Suspend" disabled, explicitly activating the screen lock works too. The locker dialog appears, the screen saver then activates, and I still have to enter a password to gain access to the desktop.
Comment 6 Thomas Lübking 2013-03-21 22:37:28 UTC
bottomline: screensaver + opengl compositor + unredirection = trouble
please attach the output of "qdbus org.kde.kwin /KWin supportInformation"

We need to figure whether the bug is in the OpenGL driver or kwin.
Comment 7 Woodsman 2013-03-21 23:44:17 UTC
Version
=======
KWin version: 4.10.1
KDE SC version (runtime): 4.10.1
KDE SC version (compile): 4.10.1
Qt Version: 4.8.4

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: false
placement: 6
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
showDesktopIsMinimizeAll: true
rollOverDesktops: false
focusStealingPreventionLevel: 0
legacyFullscreenSupport: false
operationTitlebarDblClick: 
commandActiveTitlebar1: 0                                                                                                               
commandActiveTitlebar2: 30                                                                                                              
commandActiveTitlebar3: 2                                                                                                               
commandInactiveTitlebar1: 4                                                                                                             
commandInactiveTitlebar2: 30                                                                                                            
commandInactiveTitlebar3: 2                                                                                                             
commandWindow1: 7                                                                                                                       
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorders: false
electricBorderDelay: 150
electricBorderCooldown: 350
electricBorderPushbackPixels: 1
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
unredirectFullscreen: false
glSmoothScale: 2
glVSync: true
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 17
refreshRate: 0
vBlankTime: 6144
glDirect: true
glStrictBinding: false
glStrictBindingFollowsDriver: true
glLegacy: false

Screens
=======
Multi-Head: no
Number of Screens: 1
Screen 0 Geometry: 0,0,1680x1050

Compositing
===========
Qt Graphics System: native
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 6150/integrated/SSE2/3DNOW!
OpenGL version string: 2.1.2 NVIDIA 295.75
OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
Driver: NVIDIA
Driver version: 295.75
GPU class: NV40/G70
OpenGL version: 2.1.2
GLSL version: 1.20
X server version: 1.12.3
Linux kernel version: 3.2.29
Direct rendering: yes
Requires strict binding: no
GLSL shaders:  limited
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used

Loaded Effects:
---------------
kwin4_effect_mouseclick
kwin4_effect_login
kwin4_effect_coverswitch
kwin4_effect_cubeslide

Currently Active Effects:
-------------------------

Effect Settings:
----------------
kwin4_effect_mouseclick:
color1: #ff0000
color2: #00ff00
color3: #0000ff
lineWidth: 1
ringLife: 300
ringSize: 20
ringCount: 2
showText: true
font: Arial,10,-1,5,50,0,0,0,0,0
enabled: false

kwin4_effect_login:
fadeToBlack: false

kwin4_effect_coverswitch:
animationDuration: 400
animateSwitch: true
animateStart: true
animateStop: true
reflection: true
windowTitle: true
zPosition: 298
dynamicThumbnails: true
thumbnailWindows: 8
primaryTabBox: true
secondaryTabBox: false

kwin4_effect_cubeslide:
rotationDuration: 1000
dontSlidePanels: false
dontSlideStickyWindows: false
usePagerLayout: true
useWindowMoving: false
Comment 8 Thomas Lübking 2013-03-22 15:21:33 UTC
> OpenGL version string: 2.1.2 NVIDIA 295.75
can you try a 3xx.xx series driver (the "early" ones should still support that GPU, yesno?)
Comment 9 Woodsman 2013-03-22 17:40:55 UTC
I kind of suspected somebody might ask that. :)

I tried compiling the 3xx series but they won't build. I seem to recall the Nvidia folks stopped supporting series 6 GPUs when they started the 3xx drivers. My motherboard has a GeForce 6150 MCP51 controller. Hardly old in any book, but if my memory is correct, then that explains why I can't build the 3xx series on this system.

I'll look into this again and will post something if I learn anything new.
Comment 10 Woodsman 2013-03-23 01:27:33 UTC
Update:

I was correct the Nvidia folks stopped supporting the series 6 controllers, but they stopped that support after the 304.xx series of drivers. The 304.xx series is still maintained.

I first tried the latest 304.84 but that series is broken as reported around the web and in the Nvidia forums. I then tried the previous 304.64 version. There was no change in the original problem description, same results. I hope that information helps. :)
Comment 11 Thomas Lübking 2013-03-23 13:50:12 UTC
(In reply to comment #10)
> I hope that information helps. :)

No, it means i got to install "screensavers" and check what's going on there :-(
Comment 12 Thomas Lübking 2013-03-23 15:34:46 UTC
OK, doesn't happen here (nvidia, gt520, 313.26 driver)

Tried "MatrixView" screensaver, fs unredirection, (xrender,) OpenGL  and
- explicit activation
- timered activation
- timered activation + 10s delay password demand

Because it works for you with xrender compositing this smells a lot like a driver issue.
Can you try nouveau?
Comment 13 Woodsman 2013-03-23 20:07:53 UTC
My apologies. :(

Changing to xrender works when suspend is disabled but when suspend is enabled then the screen saver does not activate. In other words, the same behavior.
Comment 14 Janet 2013-05-21 04:12:15 UTC
I only have this behaviour every once in a while, it happens sometimes when the screensaver starts for the first time after login, that only the lock screen is shown but no screensaver. 

"Suspend desktop effects for fullscreen windows." is enabled, composite type is OpenGL, Nvidia driver is 313.30 (Nvidia GF 8400), KDE SC 4.10.3, screensaver is some GL xscreensaver module integrated into kscreensaver.
Comment 15 francescobat 2013-07-10 13:36:30 UTC
Hello !
I am a new user.
I don't know if it can to be helpful.
I have kde 4.10 running on PCLinuxOS in 2 pc:
1) Pc with Nvidia Geforce
2) Notebook acer 5220 Extensa (Intel Graphic).

Pc works well; Acer Extensa kscreensaver doesn't works.
The problem is: with effects enabled, kscreensaver doesn't work but simple locker appears; if i try kscreensaver in fullscreen, white screen appear.
If i disabled effects, it works.
The problem is Xscreensaver too; it works but random it does Kwin error and i must reboot pc.
Bye
Francesco bat
Comment 16 Thomas Lübking 2013-07-10 13:58:25 UTC
(In reply to comment #15)
> Pc works well; Acer Extensa kscreensaver doesn't works.
> The problem is: with effects enabled, kscreensaver doesn't work but simple
> locker appears; if i try kscreensaver in fullscreen, white screen appear.

run "kcmshell4 kwincompositing", on the third tab uncheck "Suspend desktop effects for fullscreen effects" (it it's not checked, you're not encountering /this/ bug)
-> problem gone?


> The problem is Xscreensaver too; it works but random it does Kwin error 
> and i must reboot pc.
Also on the nvidia machine or only on the intel one?
Comment 17 francescobat 2013-07-10 15:54:58 UTC
(In reply to comment #16)
> (In reply to comment #15)
> > Pc works well; Acer Extensa kscreensaver doesn't works.
> > The problem is: with effects enabled, kscreensaver doesn't work but simple
> > locker appears; if i try kscreensaver in fullscreen, white screen appear.
> 
> run "kcmshell4 kwincompositing", on the third tab uncheck "Suspend desktop
> effects for fullscreen effects" (it it's not checked, you're not
> encountering /this/ bug)
> -> problem gone?
> 
> 
> > The problem is Xscreensaver too; it works but random it does Kwin error 
> > and i must reboot pc.
> Also on the nvidia machine or only on the intel one?

Yes !
If i uncheck "Suspend desktop effects for fullscreen effects", kscreensaver works :-)
Thank you very much, i solved; however i think it is a bug.
The problem is just with Intel card notebook's my wife.
With my pc with Nvidia card, i have not problems ;-)
Bye
Francesco bat
Comment 18 Thomas Lübking 2013-07-10 18:02:33 UTC
(In reply to comment #17)

> The problem is just with Intel card notebook's my wife.
> With my pc with Nvidia card, i have not problems ;-)

That pretty much boils down to bug #252817 (and the non-available screensaver just means that the screensaver crashed)
Intel and or MESA have issue with unredirection and the presence of more than one GL context (why the feature is initially off)

This bug however is claimed to also affect the nvidia blob AND XRender.
Comment 19 Janet 2013-07-12 11:38:54 UTC
I just disabled the option to "Suspend desktop effects for fullscreen effects" and now the screensaver always starts. When I re-enable the option the locker appears for the first time after login when the screensaver should start but after that the screensaver works. It is only one first use after login that the screensaver crashes/does not start when the option is enabled.
Comment 20 Martin Flöser 2016-11-02 14:07:23 UTC
The option "Suspend desktop effects for fullscreen windows" got removed in 5.8.
Comment 21 Janet 2016-11-02 15:56:48 UTC
(In reply to Martin Gräßlin from comment #20)
> The option "Suspend desktop effects for fullscreen windows" got removed in
> 5.8.
Does that mean they are disabled in fullscreen - or enabled? IMHO window effects don't make sense on fullscreen windows?