After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 695006 - Application contents don't repaint with mutter master
Application contents don't repaint with mutter master
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.7.x
Other Linux
: Normal blocker
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2013-03-02 16:46 UTC by Cosimo Cecchi
Modified: 2013-03-02 17:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
compositor: Make sure we always call the post_paint handlers (1.66 KB, patch)
2013-03-02 17:10 UTC, drago01
none Details | Review
compositor: Make sure we always call the post_paint handlers (1.67 KB, patch)
2013-03-02 17:13 UTC, drago01
committed Details | Review
shell-global: Fix regression from 071a4e5f83db6a0e0ab01a3 (1.97 KB, patch)
2013-03-02 17:15 UTC, drago01
committed Details | Review

Description Cosimo Cecchi 2013-03-02 16:46:31 UTC
With mutter from today's git master, applications don't seem to repaint their contents anymore.
Reverting these two commits fixes it:

commit e4269002ce18ea5262db28f983ccdd21039ca7fc
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date:   Sat Mar 2 13:06:30 2013 +0100

    meta-background-group: Report a paint volume
    
    We never paint outside of the allocation so we can simply use
    clutter_paint_volume_set_from_allocation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694988

commit 4f2bb583bf8c7f7e37f74ba09006a17c6974d792
Author: Adel Gadllah <adel.gadllah@gmail.com>
Date:   Sat Mar 2 13:15:23 2013 +0100

    compositor: Don't connect to the stage's paint signal
    
    Doing so causes useless full stage redraws and breaks culling
    as clutter cannot know how the signal handler affects painting.
    
    So use clutter_threads_add_repaint_func_full with the
    CLUTTER_REPAINT_FLAGS_POST_PAINT flag instead.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694988
Comment 1 drago01 2013-03-02 17:10:50 UTC
Created attachment 237822 [details] [review]
compositor: Make sure we always call the post_paint handlers

Commit 4f2bb583bf8c7f started to use a clutter_threads_add_repaint_func_full
callback instead of connecting to the stage's paint signal.

The callback has to return TRUE if it wants to be called again, so fix that
as we want to call it for every frame (otherwise apps supporting the WM SYNC
protocol will stop drawing).
Comment 2 drago01 2013-03-02 17:13:51 UTC
Created attachment 237823 [details] [review]
compositor: Make sure we always call the post_paint handlers

Commit 4f2bb583bf8c7f started to use a clutter_threads_add_repaint_func_full
callback instead of connecting to the stage's paint signal.

The callback has to return TRUE if it wants to be called again, so fix that
as we want to call it for every frame (otherwise apps supporting the WM SYNC
protocol will stop drawing).
Comment 3 drago01 2013-03-02 17:15:22 UTC
Created attachment 237824 [details] [review]
shell-global: Fix regression from 071a4e5f83db6a0e0ab01a3

The clutter_threads_add_repaint_func_full need to return TRUE otherwise
they will be only called once.
Comment 4 drago01 2013-03-02 17:16:47 UTC
(In reply to comment #0)
> With mutter from today's git master, applications don't seem to repaint their
> contents anymore.
> Reverting these two commits fixes it:

Caused by the second one (see patch) ... didn't notice as only WM SYNC supporting apps are affected and I am still on F18. Can reproduce with gtk3-demo from jhbuild though. (fixed with the attached patch).
Comment 5 Rui Matos 2013-03-02 17:22:25 UTC
Review of attachment 237823 [details] [review]:

++
Comment 6 Rui Matos 2013-03-02 17:22:46 UTC
Review of attachment 237824 [details] [review]:

++
Comment 7 drago01 2013-03-02 17:25:06 UTC
Comment on attachment 237823 [details] [review]
compositor: Make sure we always call the post_paint handlers

Attachment 237823 [details] pushed as 436d3ff - compositor: Make sure we always call the post_paint handlers
Comment 8 drago01 2013-03-02 17:26:06 UTC
Attachment 237824 [details] pushed as 95ec8ef - shell-global: Fix regression from 071a4e5f83db6a0e0ab01a3