Unintended shadows are rendered for the Unity Launcher and Panel

Bug #1012956 reported by Sam Spilsbury on 2012-06-14
48
This bug affects 7 people
Affects Status Importance Assigned to Milestone
Compiz
Medium
Sam Spilsbury
Compiz Core
Medium
Łukasz Zemczak
compiz (Ubuntu)
Medium
Unassigned
Precise
Medium
Unassigned

Bug Description

[Test Case]
1. Start Unity
   -> Verify that the Launcher and panel drop no shadows

[Regression Potential]
Broken decorations and window decoration shadows.

Original description:

DecorWindow::glDraw checks if we are drawing a desktop window and forcibly draws dock window shadows on top of the desktop window. If the dock window is in the paint list, but is never actually painted, it is possible for the dock window shadow to be painted anyways.

Another "bug" here is that dock window shadows will get painted with the desktop window's matrix and paint attributes, which could be different and the shadow would become detached.

WORKAROUND:
For quantal users with Unity 6.0, but a slightly older compiz 0.9.8:
CCSM > Window Decoration > Shadow windows =
    !(title=unity-panel) & !(title=unity-launcher)

Related branches

Changed in compiz:
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → Sam Spilsbury (smspillaz)
milestone: none → 0.9.8.0
status: Confirmed → In Progress
Daniel van Vugt (vanvugt) wrote :

Also fixes bug 1011120?

Daniel van Vugt (vanvugt) wrote :

BTW, Sam, please make sure you're reproducing this bug with vanilla Ubuntu packages. I recall a recent proposal of yours to lp:unity caused changes to the panel shadow rendering that you might not have intended. And that other people would not (yet) experience.

Sam Spilsbury (smspillaz) wrote :

Indeed, this is related to lp:~smspillaz/unity/unity.fix_paint_insanity . The bug is thus there "in theory", but I have a fix for it anyways ;-)

Sam Spilsbury (smspillaz) wrote :

Doesn't also fix bug 1011120 . The panel shadow for unity is rendered independently and we don't support the cube.

summary: - It is possible for the panel shadow to be painted even if the panel
- window isn't painted
+ It is possible for a dock shadow to be painted even if the dock window
+ isn't painted
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz at revision 325

Changed in compiz:
status: In Progress → Fix Committed
Daniel van Vugt (vanvugt) wrote :

Revision 3258, I mean.

tags: added: regression-regionaldamage
description: updated
Changed in compiz (Ubuntu):
status: New → Triaged
Changed in compiz-core:
status: New → Triaged
importance: Undecided → Medium
Changed in compiz (Ubuntu):
importance: Undecided → Medium
Changed in compiz-core:
milestone: none → 0.9.7.10
summary: - It is possible for a dock shadow to be painted even if the dock window
- isn't painted
+ Unintended shadows are rendered for the Unity Launcher and Panel
Changed in unity:
status: New → Invalid
no longer affects: unity
Changed in compiz-core:
status: Triaged → In Progress
assignee: nobody → Łukasz Zemczak (sil2100)
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz-core/0.9.7 at revision 3115

Changed in compiz-core:
status: In Progress → Fix Committed
description: updated
Didier Roche (didrocks) on 2012-07-28
Changed in compiz (Ubuntu):
status: Triaged → Fix Committed
Steve Langasek (vorlon) on 2012-08-03
Changed in compiz (Ubuntu Precise):
importance: Undecided → Medium

Hello Sam, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8-0ubuntu1.3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in compiz (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
Steve Langasek (vorlon) wrote :

This patch introduces a build regression on armhf and armel. https://bugs.launchpad.net/compiz/+bug/1032902

tags: added: verification-failed
removed: verification-needed
Adam Conrad (adconrad) wrote :

Hello Sam, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8-0ubuntu1.4 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-failed
tags: added: verification-needed
Timo Jyrinki (timo-jyrinki) wrote :

This seems fine, even though the patch was wanted in advance before Unity 5.16 will be released. I have been running the patched 1.3 version and now 1.4 for about a week on two computers (Intel Atom + AMD HD 4670) and three weeks on Sandy Bridge Intel computer without seeing regressions in the shadow behavior.

From IRC at one point, when I checked on this last patch that was added in the 1.3:
< duflu> the bug was only ever "released" and visible in Unity 6.0 (quantal)
< Mirv> duflu: ok, so it's just "good to have" also in the SRU because it makes sense, but there's not much that can be actually verified except for no regressions?
< duflu> Mirv: That's right. It can't be verified until the code triggering it is also released in precise (which it will be in unity 5.16)

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.7.8-0ubuntu1.4

---------------
compiz (1:0.9.7.8-0ubuntu1.4) precise-proposed; urgency=low

  [ Steve Langasek ]
  * debian/patches/compiz-package-gles2.patch: refresh to account for
    fix_1012956.patch, which introduces non-GLES2 objects that need to be
    patched back out for ARM. LP: #1032902.

compiz (1:0.9.7.8-0ubuntu1.3) precise-proposed; urgency=low

  [ Łukasz 'sil2100' Zemczak ]
  * Cherry-pick upstream patches:
    - CMake Error at FindCompiz.cmake:84 (include): include could not find load
      file: CompizDefaults (LP: #993608)
    - compiz (decor) - Warn: failed to bind pixmap to texture (LP: #929989)
    - gtk-window-decorator crashed with SIGFPE in
      _decor_blend_horz_border_picture() (LP: #963794)
    - [callgrind] compiz spends ~25% of its time constructing/destructing
      strings in PrivateScreen::handleActionEvent (LP: #1005569)
    - gtk-window-decorator crashed with SIGSEGV in meta_get_decoration_geometry
      (LP: #1007754)
    - composite refresh rate falls back to 50Hz, which is wrong in most cases
      (LP: #1009338)
    - [callgrind] compiz spends ~7% of its time inserting into and destructing
      the events list in PrivateScreen::processEvents() (LP: #1006335)
    - It is possible for a dock shadow to be painted even if the dock window
      isn't painted (LP: #1012956)

  [ Timo Jyrinki ]
  * Cherry-pick upstream patches:
    - gtk-window-decorator crashes with BadWindow (invalid Window parameter),
      from XGetWindowProperty() from get_frame_type() (LP: #1019337)
    - Fix gtk-window-decorator crash in meta_get_button_position
      (LP: #1015593)
    - Fix crash LP: #1019337 properly this time. The original fix did not
      handle the case where (win != NULL && xid != None && !valid_window(xid))
      so would still exit with an X error. Now we trap and handle such errors
      gracefully, instead of hitting the default handler which kills
      gtk-window-decorator.
 -- Timo Jyrinki <email address hidden> Tue, 07 Aug 2012 12:32:27 +0300

Changed in compiz (Ubuntu Precise):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (7.9 KiB)

This bug was fixed in the package compiz - 1:0.9.8+bzr3319-0ubuntu1

---------------
compiz (1:0.9.8+bzr3319-0ubuntu1) quantal-proposed; urgency=low

  [ Didier Roche ]
  * debian/patches/ubuntu-config.patch:
    - refresh with latest trunk
  * debian/*docs:
    - remove the TODO copy now removed upstream
  * debian/compiz-plugins.install:
    - install stackswitch, trip plugins
  * debian/rules, debian/control:
    - remove the compiz gnome-control-center key sedding through metacity.
      Compiz now directly ships them.
    - we do not need metacity-common anymore as a build-dep then
  * debian/compiz-gnome.migrations, debian/control:
    - build-dep on dh-migrations and ship gconf -> gsettings migration file

  [ Matthieu Baerts (matttbe) ]
  * Update apport hook for python3 ; thanks to Edward Donovan (LP: #1013171)

  [ Timo Jyrinki ]
  * New upstream snapshot.
    - Fix Compiz crash in movementWindowOnScreen (LP: #1015151)
    - Start window decorator when decor plugin starts (LP: #1014461)
    - Fixed: Crash in compiz::wall::movementWindowOnScreen (LP: #1015151)
    - Don't waste memory leaving /bin/sh running (LP: #1015422)
    - Add reliable detection of the compiz bin directory (LP: #1015898)
    - Check if the window would actually paint before painting the shadow,
      since it is possible that another plugin could be inhibiting paint of
      the dock window. (LP: #1012956)
    - Don't insert the window into the server list above the window it was
      created above. (LP: #1008020) (LP: #886605)
    - makes compiz enhanced zoom and show mouse plugins considerably
      smoother to use (LP: #930783)
    - Don't set decoration contexts on undecorated windows, since that
      might be read later and code will assume the window is decorated when
      it isn't. (LP: #1015593)
    - Fix potentially unterminated string leading to an uninitialized memory
      read (LP: #1018302)
    - Lift the 31/32 character restriction on key names that was causing so
      many warnings. It's now 1024 characters according to glib. (LP: #1018730)
    - Don't print the result of BUILD_DEB. It prevents ccsm et al from
      installing. (LP: #1018916)
    - Use the XDamage extension more efficiently (the way it was designed to be
      used). This dramatically reduces CPU usage, reduces wakeups, and
      increases frame rates. It also solves at least one observed performance
      bug (LP: #1007299) and probably several more.
    - Do the initial work to get libcompizconfig under test. (LP: #990690)
    - Add support for initiating window picker in other than nomal mode. For
      now added only the additional 'All windows' picker (LP: #933776)
      (LP: #955035)
    - Fixes (LP: #1018602) : An invalid read when using g_variant_iter_loop.
    - Don't allow unbinds of textures kept around for animations in any case,
      not just resizing. (LP: #1016366)
    - Wait for the server to finish processing requests before doing a bind
      (LP: #1016367)
    - Using the next/previous bindings the wall plugin didn't calculate
      correctly the next workspace when it reaches the begin or the end of a
      row of workspaces, so it didn't jump to the n...

Read more...

Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
Changed in compiz:
status: Fix Committed → Fix Released
Changed in compiz-core:
status: Fix Committed → Fix Released
Changed in compiz-core:
status: Fix Released → Fix Committed
Changed in compiz-core:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers