In pixman/fbcompose.c, fbFetchTransformed(), Bool projective is not set if the transformation matrix is not projective but contains homogenous components that are not 1; this will result in wrongly scaled images to be drawn. The initialization should be done similar to the one in fbFetchSourcePict() above. I'll attach a patch for this. NB. I think 'projective' is a misnomer - maybe 'simple_transform' is better? NB.2. I don't think this gets triggered by cairo's usage of the pixman code, does it?
Created attachment 3297 [details] [review] proposed fix [pixman] Changelog 2005-09-16 Bertram Felgenhauer <int-e@gmx.de> Bug #4476 * src/fbcompose.c (fbFetchTransformed): correct check for nonprojective transforms
Created attachment 3299 [details] [review] proposed patch fixed a stupid typo in the patch - cut&paste coding is evil.
Can you attach a minimal test case that shows the bug? That helps confirming the bug, as well as adding it to the test suite.
As far as I know, this is not a bug as far as cairo is concerned; projective transforms aren't used anywhere. It might affect the X-Server; I've never looked at what functionality the Render extension exposes. I noticed the bug while looking at #2488; back then I got the impression that the code might be merged back into the X-server. I believe that's no longer the case. (cairo might actually want to get rid of that functionality in pixman)
This is fixed in the xorg X server. I'll stick to my analysis about cairo and close this bug. Thanks.
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.