As promised in bug 15349: _cairo_pattern_acquire_surface_for_surface() sometimes will acquire only part of the source surface. If this part doesn't start at 0,0, howevever, there is no adjustment to attr->matrix or attr->x/y offset. That has to be a bug. First step would be coming up with a test case. It might be as simple as drawing an image surface to a native surface at a point with x,y < 0. (Wouldn't someone have noticed, though???) For a final test case you'd want to test with a couple of different transforms .. integer offset, 90 degree rotation, arbitrary rotaton.
It's odd that nobody has reported a problem, considering that the clone_similar() interface required that the cloned surface be the same size as the original (so that no offsets where required and attr->matrix could be used unadjusted) but this was blithely ignored in the win32 backend... Anyway, I had to fix this as part of extracting a sub-region to resolve the large-source XFAIL.
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.