Actors hidden below other opaque actors still receive frame callbacks on update
How to reproduce:
- open
gnome-terminal
- run
weston-simple-damage --verbose
- hide the demo app behind the terminal
Expected results:
- output of verbose info in terminal should stop [1]
Observed results:
- output of verbose info in terminal continues forever
What does work:
- moving some non-updating opaque actor, like another terminal or nautilus above the demo
Additional observations:
- apparently the same is true for e.g.
weston-simple-egl
in fullscreen mode (F11
) - Weston does seem to optimize out frame callbacks at all
- a workaround is to move windows to another workspace. But we really shouldn't require users to do that if they prefer alt-tabbing stacked windows
Why should we care:
- applications that repaint themselves on frame callback do unnecessary work, wasting resources
1: Verbose output implies what weston-simple-damage
received a frame callback. As the terminal is opaque and weston-simple-damage
therefore does not need to get repainted, it should not receive a frame callback.
Edited by Robert Mader