clutter/actor: Always update last_paint_volumes during painting

It's currently possible that some last_paint_volumes don't get updated
during a paint cycle, this can happen when a ClutterOffscreenEffect is
used: The offscreen effect might skip painting the content and the
children of an actor because it uses its own offscreened texture
instead. This means the offscreen effect doesn't call
clutter_actor_continue_paint(), and thus the the last_paint_volumes of
the children won't be updated.

Now one might think that isn't a problem, because as soon as a child
changes it's size or position, the offscreened texture would get
invalidated and clutter_actor_continue_paint() would get called. It's
not that easy though: Because the last_paint_volume includes all the
transformation matrices up to eye-coordinates, it has to be updated on
any changes to matrices, which includes position/transformation changes
to any actor up the hierarchy.

Now that's where get into problems with the offscreen effect: In case of
transformation changes to the offscreened actor or an actor up the
hierarchy, the offscreened texture won't get invalidated (that makes
sense, we can simply paint it transformed) and the last_paint_volumes
won't get updated even though they should.

This leaves us around with outdated last_paint_volumes where
last_paint_volume_valid is still set to TRUE. It can cause issues with
culling and clipped redraws.

So fix that by ensuring that all children that would get painted by
Clutter get their last_paint_volumes updated in case a ClutterEffect
decided not to call clutter_actor_continue_paint().

This ignores the case where a paint() vfunc override does the same and
doesn't call clutter_actor_paint() on children. Let's ignore this case
for now, there shouldn't be any implementation which does that and
ideally in a world that's painted solely by ClutterContent, we can get
rid of that vfunc in the future.
9 jobs for !1591 with always-update-last-paint-volumes in 12 minutes and 5 seconds (queued for 1 second)
detached
Status Job ID Name Coverage
  Review
passed #999393
check-commit-log

00:00:15

passed #999394
check-merge-request

00:00:31

 
  Prepare
passed #999395
build-fedora-container

00:00:38

 
  Build
passed #999396
build-mutter

00:03:58

passed #999398
build-without-native-backend-and-wayland

00:01:13

passed #999397
build-without-opengl-and-glx

00:01:28

 
  Test
passed #999400
can-build-gnome-shell

00:01:28

passed #999399
test-mutter

00:03:59

 
  Coverage
passed #999401
test-mutter-coverage

00:02:57

45.0%