Created attachment 52111 [details]
Test showing the wrong behavior
with current git, a recording surface always returns 0, 0 for x,y in cairo_recording_surface_ink_extents(). The width/height is the correct value, so it didn't translate the result or something like that.
Attached is a test which shows this behavior. I'd expect both lines of output to show the same results, but they don't.
Created attachment 56300 [details] [review]
Kind-of patch which fixes this bug for me
The attached patch fixes the problem for me (ignore my printf-debugging output).
Could someone check if that _cairo_clip_translate() really is wrong and remove it?
I think you are right and that code is superfluous; a result of my confused thinking. I was confusing extents with device transform, and trying to use the extents to place the origin (0,0) of the surface at a random point in device space. Unbounded coordinates make me nervous...
Uli, please go ahead and push the cleaned up version with a Reviewed-by: Chris Wilson <email@example.com>, so you can always blame me for bad advice later. ;-)
Thanks Chris. Fixed in commit f7eaf37f0432952c.