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.