The test case paint-with-alpha-group-clip has been extracted from the bug report at https://bugs.launchpad.net/inkscape/+bug/1258265 The rectangle is gray on the image surface output and black on the paginated backends. Up until 8020e0bc this was working. After that commit the output is blank. Sometime later the output started appearing again but the alpha has been lost.
The commit mentioned above http://cgit.freedesktop.org/cairo/commit/src/cairo-recording-surface.c?id=8020e0bc8cbd3e5ac188eb305b74ae1c1f362a31 introduced an explicit copy of the command array and you can easily spot that in '_cairo_recording_surface_copy__mask' the pattern 'src->mask.source.base' is copied both to the 'command->source.base' and to 'command->mask.base'. Copying 'src->mask.mask.base' to 'command->mask.base' seems to fix the issue here and that reported at: https://bugs.freedesktop.org/show_bug.cgi?id=73901 and few other test suite failures.
*** Bug 89533 has been marked as a duplicate of this bug. ***
Created attachment 116725 [details] [review] Copy source and mask to the recording surface This implements the fix Massimo suggests.
commit 1bcce4362927952b25cb916f862dde6fd35f8125 Author: Bryce Harrington <bryce@osg.samsung.com> AuthorDate: Thu Jun 25 18:54:23 2015 -0700 Commit: Bryce Harrington <bryce@osg.samsung.com> CommitDate: Thu Jun 25 18:54:23 2015 -0700 cairo-recording-surface: Fix loss of alpha when clipping Commit 8020e0bc introduced a regression due to a typo when copying a mask for a cairo recording surface. It should copy the source and mask members from the command source to the recording surface, but instead it copies the source twice. Fix suggested by Massimo. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73038 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73901
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.