GNOME Bugzilla – Bug 657869
screensaver is generally broken
Last modified: 2011-09-23 13:42:39 UTC
1. Often, the unlock screen is not drawn correctly, or at all. (It will be completely black except for the titlebar, for example.) 2. It does not lock correctly on resume from suspend - instead of starting locked, it will resume with the full desktop shown, and then lock. gnome-screensaver-3.1.5-1.fc16.x86_64
1. Which graphics hardware is this about?
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) 'Arrandale', if you're into the marketing/chipset name.
Both of these issues should be fixed in 3.1.90, I hope. Please reopen if I'm wrong
The first is not fixed, although it seems to now more consistently be a black screen with no visible unlock dialog.
The second also still occurs sometimes. (2/2 today.)
I get something similar to this, 100% of the time. I don't lock manually, but I often hit the ten minute 'fade to black' timeout - the screens go into power saving mode, and GNOME locks the screen. When I move the mouse, the screens wake up, and I see my desktop from before the idle timeout. However, it's clear that the lock screen is 'there', but invisible. The cursor will be stuck on one of the screens, and will change shape not in response to what I can see, but in response to the elements present on the lock screen that I can't see. I am not able to interact with the desktop at all. If I blindly type my user password and hit enter, I can unlock the screen: the display updates and now shows my desktop _at the current point in time_, the cursor moves around and interacts with the desktop, etc. so the lock screen is present and functioning correctly, but is entirely invisible, and I see my 'old' desktop 'underneath' it. this is on an NVIDIA GeForce 9600 GT, nouveau driver, in current F16. 01:00.0 VGA compatible controller [0300]: nVidia Corporation G94 [GeForce 9600 GT] [10de:0622] (rev a1)
(In reply to comment #6) > I get something similar to this, 100% of the time. > > I don't lock manually, but I often hit the ten minute 'fade to black' timeout - > the screens go into power saving mode, and GNOME locks the screen. When I move > the mouse, the screens wake up, and I see my desktop from before the idle > timeout. However, it's clear that the lock screen is 'there', but invisible. > The cursor will be stuck on one of the screens, and will change shape not in > response to what I can see, but in response to the elements present on the lock > screen that I can't see. I am not able to interact with the desktop at all. If > I blindly type my user password and hit enter, I can unlock the screen: the > display updates and now shows my desktop _at the current point in time_, the > cursor moves around and interacts with the desktop, etc. Confirming the same thing happening on an updated Fedora 16 and Intel Ironlake.
ajax, any idea what this might be? it looks like it's something X-y, but I'm not sure what. Nothing leaps out at me immediately from any logs.
are you guys all running a newer than 3.0 kernel?
(In reply to comment #9) > are you guys all running a newer than 3.0 kernel? Yeah... [cosimoc@x201: ~]$ uname -a Linux x201 3.1.0-0.rc5.git0.0.fc16.x86_64 #1 SMP Fri Sep 9 14:33:44 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
right now, yes, though I'm almost sure I was using a 3.0 kernel some of the time I saw this: I've been using one recently due to the very sluggish performance of 3.1 with debugging options enabled. But I'm about to boot back to 3.0.1-5.fc16 to double check.
booting 3.0.1-5.fc16 and manually locking the screen (I didn't bother waiting for the timeout) reproduces the bug.
so here's some more data on this: * enabling the screen recorder mode with ctrl-alt-shift-r works around the bug: as long as there's a screen recording going on, the lock screen works properly. I see a black background with a panel on both screens, and a lock dialog on the right hand screen. * disabling one monitor works around the bug: I see a black background with a panel on the active screen, and a lock dialog. * rotation makes no difference: single-screen rotated works, dual-screen not rotated does not work. so, the conditions to encounter this bug seem to be at least 'dual screen, screen recorder not running'.
to be more precise, in the 'working' case with the screen recorder, when I lock the screen I see black background with a panel on both displays, no unlock dialog; when I move the mouse, the right-hand screen suddenly gets a background, and the unlock dialog appears on it. The left-hand screen continues to be black with a panel.
and to be precise about the failure case: when I hit ctrl-alt-l I see the 'fade to black' animation. when it completes, I see the current desktop on both displays (disregard the incorrect description above in which I said what I saw was a stale, pre-lock desktop). the desktop updates normally, but I cannot interact with it in any way. When I move the mouse, I don't see any change (though what should be happening when I move the mouse is the unlock dialog appearing). the mouse pointer does not change with regards to what's on the desktop; it seems like it briefly changes to a I when it goes over where the unlock password entry box should be, but only once, on following passes it doesn't. when I type my password and hit enter, the unlock operation occurs and I can use the desktop normally. I see absolutely no feedback of any kind when typing the password.
Bill - are you using dual monitors too? Cosimo - are you seeing this too? And are you using dual monitors? For both of you - can you confirm Adam's comment #13 ?
Not dual monitors here - just laptop LCD (Not in a position to test right now re: comment #13, will try later.)
(In reply to comment #16) > Cosimo - are you seeing this too? And are you using dual monitors? > > For both of you - can you confirm Adam's comment #13 ? Yes, I am seeing this. I confirm the same symptoms Adam mentioned, i.e. - using the recorder at the same time makes the bug go away - disabling the external monitor makes the bug go away, and re-enabling it makes the bug appear again
Created attachment 196669 [details] [review] Compositor: Fix cow shaping on multi montior setups XFixesCreateRegionFromWindow does not take the window's position into account, which results into setting the a wrong shape for windows not located on the leftmost monitor. Fix that by creating the region from the window's MetaRectangle.
Created attachment 196671 [details] [review] Compositor: Fix cow shaping on multi montior setups XFixesCreateRegionFromWindow does not take the window's position into account, which results into setting the a wrong shape for windows not located on the leftmost monitor. Fix that by creating the region from the window's MetaRectangle.
-> mutter Looks like this might be a bug in mutter after all.
it seems like the bug Cosimo and I are seeing is not the same as Bill's after all, so we have hijacked Bill's report - sorry, Bill. :( devs, would it be better to split off my and Cosimo's issue from this report, or split off Bill's? His was first, but we've used the report mostly to discuss my and Cosimo's issue. Will test drago's patch.
fwiw, Bill's issue ended up being a kernel driver bug when frame buffer compression is enabled, so we can just keep this bug for your issue.
fix works good here on a first test, thanks!
Created attachment 196689 [details] [review] compositor: Fix cow shaping on multi montior setups XFixesCreateRegionFromWindow does not take the window's position into account, which results into setting the a wrong shape for windows not located on the leftmost monitor. Fix that by creating the region from the window's MetaRectangle. --- Whitespace fix.
Review of attachment 196689 [details] [review]: Typos in the summary and commit message: s/montior/monitor/, s/the a wrong/a wrong/ Code looks good. ::: src/compositor/compositor.c @@ +618,2 @@ int width, height; + MetaRectangle *rect = meta_window_get_rect (metaWindow); Will this only be called for unframed windows? In that case it's OK, otherwise meta_window_get_outer_rect() would be needed here.
(In reply to comment #26) > Review of attachment 196689 [details] [review]: > > Typos in the summary and commit message: s/montior/monitor/, s/the a wrong/a > wrong/ Oops. > Code looks good. > > ::: src/compositor/compositor.c > @@ +618,2 @@ > int width, height; > + MetaRectangle *rect = meta_window_get_rect (metaWindow); > > Will this only be called for unframed windows? In that case it's OK, otherwise > meta_window_get_outer_rect() would be needed here. Yeah they only override redirect windows for now, but this function should be generic so will fix that.
Created attachment 196742 [details] [review] compositor: Fix cow shaping on multi monitor setups XFixesCreateRegionFromWindow does not take the window's position into account, which results into setting the a wrong shape for windows not located on the leftmost monitor. Fix that by creating the region from the window's MetaRectangle. --- Fixed typo and switched to use get_outer_rect()
Created attachment 196743 [details] [review] compositor: Fix cow shaping on multi monitor setups XFixesCreateRegionFromWindow does not take the window's position into account, which results into setting a wrong shape for windows not located on the leftmost monitor. Fix that by creating the region from the window's MetaRectangle. --- Really fix the typos this time.
Quick irc review: <mclasen> fmuellner: hey, is bug 657869 on your radar ? <bebot> Bug http://bugzilla.gnome.org/show_bug.cgi?id=657869 normal, Normal, ---, mutter-maint, NEW, screensaver is generally broken <fmuellner> mclasen: not really <mclasen> it has a mutter patch <fmuellner> mclasen: looks reasonable at a quick glance
Review of attachment 196743 [details] [review]: Looks good to me
Attachment 196743 [details] pushed as 6923973 - compositor: Fix cow shaping on multi monitor setups
*** Bug 659497 has been marked as a duplicate of this bug. ***
Is it really just a problem of mutter? I updated to latest 3.1.92 and my problems as describe in bug 659497 (similar to comment #6) still exist.
Ok, mutter seems Ok to me. I've installed mutter 3.1.92 but reverted gnome-screensaver back to version 3.0.0. Now screensaver is working as expected again.
Stephan, after you upgraded mutter, did you log out? You shouldn't need to touch gnome-screensaver, since it hasn't really changed that much since 3.0.0
To be honest I did not on the first computer I had this problem. I just restarted mutter with "mutter --replace" and gnome-shell with ALT-F2+"r". Then I started gnome-screensaver (latest version) but nothing changed. Killing gnome-screensaver, reinstalling old version 3.0.0 and restarting it helped. On the second computer I had to reboot but I have reverted already gnome-screensaver to 3.0.0 because of the known problem. On the other side: Yes, I "logged" out ;) I just reinstalled gnome-screensaver 3.1.91, restarted gnome-screensaver and had this problem again. Reverting back to gnome-screensaver 3.0.0 and everything is fine. So sth. was changed that makes gnome-screensaver (in the latest version) a blocker for me.
okay let's undupe your bug report and work on your issue there.