GNOME Bugzilla – Bug 613936
Screen flickers to black when clicking on the calendar
Last modified: 2012-03-01 16:25:43 UTC
Hi, I'm testing the new gnome-shell and I'm using the Ubuntu packages from a PPA that follows git master. I'm experiencing some annoying visual glitches that happen especially when I click on the calendar on the top bar. This also happens all the times when the gnome-shell notification area appears, and sometimes also when I click on the Activities button in the top left corner. I'm on a Sony Vaio laptop with a GeForce 6200 go video card, using NVIDIA proprietary drivers 195.36 on an up-to-date Ubuntu Lucid installation.
This seems to be caused by commit 5060081db5fb0a5848dd04d7723ed3f5d02c1668
Created attachment 157205 [details] [review] [NOT FOR REVIEW] Workaround for flicker bug Can you please try this patch? It does seem to fix it for me (I don't know why though; but having you confirm it would be helpful in tracking down the root cause).
Created attachment 157211 [details] [review] 'Fix' weird black flash Tween coordinates directly seems to have an odd side effect that can cause "black flashes" and even a huge performance degration on nvidia hardware when going to the overview (as we tween the message tray there).
Comment on attachment 157211 [details] [review] 'Fix' weird black flash NOTE: I still don't know _why_ this happens. This version fixes a calender regression the previews patch introduced.
(In reply to comment #1) > This seems to be caused by commit 5060081db5fb0a5848dd04d7723ed3f5d02c1668 Seems like I was wrong on this one, it might have made it easier to trigger but it didn't cause it,
This patch solves all problems for me using Nvidia 8800GT card. The tearing issue that happened during the transition effect to overview, and the 'blink' effect that happened when a notification appeared. The calendar problem never appeared on my system. FYI I'm using the latest Gnome-Shell snapshot from Ricotz PPA. Also Clutter 1.2 etc.
OK, after some testing and debugging we found out that: *) The calls to XFixesSetWindowShapeRegion() in do_set_stage_input_region() (mutter/src/compositor/compositior.c) are causing this when being called from during the animation. *) It only affects the messageTray and the clock because they are children of Main.chrome and therefor cause do_set_stage_input_region to be called on allocate (which happens when setting y (queues a relayout) but not when setting anchor_y (only queues a redraw) that is why the above patch helps). (The overview issue is related to the fact that we show the messageTray there) *) The xserver change proposed by Owen: ---------- diff --git a/xfixes/region.c b/xfixes/region.c index 966eda0..11656d3 100644 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -670,6 +670,7 @@ SProcXFixesSetGCClipRegion (ClientPtr client) } typedef RegionPtr (*CreateDftPtr)(WindowPtr pWin); +void miSetShape(WindowPtr pWin); int ProcXFixesSetWindowShapeRegion (ClientPtr client) @@ -745,7 +746,10 @@ ProcXFixesSetWindowShapeRegion (ClientPtr client) if (*pDestRegion) REGION_DESTROY(pScreen, *pDestRegion); *pDestRegion = pRegion; - (*pScreen->SetShape) (pWin); + if (stuff->destKind == ShapeInput) + miSetShape(pWin); + else + (*pScreen->SetShape) (pWin); SendShapeNotify (pWin, stuff->destKind); return (client->noClientException); } -- 1.6.6.1 -------------- did not fix the issue for me.
Created attachment 157326 [details] [review] Workaround for nvidia flashing / performance issue Replacing the previous patch with a simpler one, but note that I still haven't tracked down the root cause yet, so marking this as rejected (not intended to be merged).
With last patch, everything works fine for me. Thanks!
*** Bug 609953 has been marked as a duplicate of this bug. ***
I have the same problem with my NVIDIA Quadro FX 2500M and i can confirm that the workaround in #8 fixed the issue.
I too have the same problem with my NVIDIA GeForce 8400M GS and i can confirm that the workaround in #8 fixed the issue.
> Created an attachment (id=157326) [details] [review] > Workaround for nvidia flashing / performance issue > > Replacing the previous patch with a simpler one, but note that I still haven't > tracked down the root cause yet, so marking this as rejected (not intended to > be merged). Thank you very much. I have an Nvidia G105M and I can confirm this workaround solved the flickering. It seems also to have improved performance but can't say that for sure.
I don't know if it is really related to this, but I'm experience something similar with a ATI Mobility Radeon 2600HD with proprietary driver. Screen is flickering during every animation (clock, overview and messagetray). The proposed workaround reduce it but does not solve it.
(In reply to comment #8) > Created an attachment (id=157326) [details] [review] > Workaround for nvidia flashing / performance issue > > Replacing the previous patch with a simpler one, but note that I still haven't > tracked down the root cause yet, so marking this as rejected (not intended to > be merged). Didn't see this earlier. Applying this change massively improved performance on my NVIDIA 9300 IGP, but it didn't completely eliminate flickering. It did cause a reduction. The increase in overall speed though is quite dramatic.
(In reply to comment #15) > (In reply to comment #8) > > Created an attachment (id=157326) [details] [review] [details] [review] > > Workaround for nvidia flashing / performance issue > > > > Replacing the previous patch with a simpler one, but note that I still haven't > > tracked down the root cause yet, so marking this as rejected (not intended to > > be merged). > > Didn't see this earlier. Applying this change massively improved performance on > my NVIDIA 9300 IGP, but it didn't completely eliminate flickering. It did cause > a reduction. The increase in overall speed though is quite dramatic. Yeah the issue has been tracked down, the fix is here: http://cgit.freedesktop.org/xorg/xserver/commit/?id=643cb6e87c10ab554c03ada81930001a8ebcc909 Which is part of xserver-1.9 RC1, but note that you can't use it yet as the server breaks the ABI and NVIDIA still has to release a driver that works with the new ABI.
I had though(In reply to comment #16) > (In reply to comment #15) > > (In reply to comment #8) > > > Created an attachment (id=157326) [details] [review] [details] [review] [details] [review] > > > Workaround for nvidia flashing / performance issue > > > > > > Replacing the previous patch with a simpler one, but note that I still haven't > > > tracked down the root cause yet, so marking this as rejected (not intended to > > > be merged). > > > > Didn't see this earlier. Applying this change massively improved performance on > > my NVIDIA 9300 IGP, but it didn't completely eliminate flickering. It did cause > > a reduction. The increase in overall speed though is quite dramatic. > > Yeah the issue has been tracked down, the fix is here: > http://cgit.freedesktop.org/xorg/xserver/commit/?id=643cb6e87c10ab554c03ada81930001a8ebcc909 > > Which is part of xserver-1.9 RC1, but note that you can't use it yet as the > server breaks the ABI and NVIDIA still has to release a driver that works with > the new ABI. I had thought the latest unstable driver (256 series) had 1.9 support.
I also get this during alt-tab, magic-corner animation, alt-f2 etc. I am also using the ATI proprietary drivers. I just built using jhbuild today on lucid, but it has been happening for at least a week.
This bug was reported against 2.29, which is no longer a supported version. If this bug can be reproduced on a more modern version (at least 3.0), with newer graphic drivers, please reopen. Very useful would be testing with current development versions. Thanks for taking the time to report this bug. However, you are using a version that is too old and not supported anymore. GNOME developers are no longer working on that version, so unfortunately there will not be any bug fixes for the version that you use. By upgrading to a newer version of GNOME you could receive bug fixes and new functionality. You may need to upgrade your Linux distribution to obtain a newer version of GNOME. Please feel free to reopen this bug if the problem still occurs with a newer version of GNOME.