Bug 54446

Summary: WebKit regression observed in Cairo commit 83bfd85
Product: cairo Reporter: Dominik Röttsches (drott) <dominik.rottsches>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED DUPLICATE QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: blocker    
Priority: medium CC: ranma42, sudarsana.nagineni
Version: 1.12.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Cairo script output pre regression
Cairo Script output post regression
Fix proposal, for review

Description Dominik Röttsches (drott) 2012-09-03 15:15:30 UTC
Running WebKit EFL r127416 against cairo at git revision 83bfd85 causes a regression when running the following webkit test which uses clipping, pattern filling and transformation matrices, push/pop groups:

run-webkit-tests  --efl --debug --no-new-test-result --results-directory=lt_c3 LayoutTests/svg/transforms/transformed-text-fill-pattern.html 

Running a patched WebKit that generates cairo script output produces the following cairo script outputs: preRegression.cs, postRegression.cs - note how the drawn rectangles seem incorrectly be shifted by -8,-8 in the post regression case.

I am attaching a patch that removes pushing the device transform on the group surface and adjusting the path. The way I understand the patch 83bfd85, device transforms should be handled by the backend - is that right?

Using that patch, the WebKit regression does not occur. Could you review whether the fix proposal makes sense, Chris?
Comment 1 Dominik Röttsches (drott) 2012-09-03 15:17:00 UTC
Created attachment 66556 [details]
Cairo script output pre regression
Comment 2 Dominik Röttsches (drott) 2012-09-03 15:17:19 UTC
Created attachment 66557 [details]
Cairo Script output post regression
Comment 3 Dominik Röttsches (drott) 2012-09-03 15:18:00 UTC
Created attachment 66558 [details] [review]
Fix proposal, for review
Comment 4 Dominik Röttsches (drott) 2012-09-06 07:56:33 UTC
We plan to bump the cairo version used by WebKit EFL to 1.12 in order to fix a couple of remaining web canvas 2d bugs, this one is a blocker regression on the way to do that.
Comment 5 Chris Wilson 2012-09-10 14:15:04 UTC
Is there a recipe for compiling WebKit as using autogen itself doesn't work on linux? (I remember having compiled it for EFL in the past, just not how.) The reason is that the suggestion is very scary so I would like to dig into the issue, and in particular run through the test cases locally.

Is this affected by commit f34b87f6d76cbea93acd4a8c73c8c6a6b412a302?
Comment 6 Dominik Röttsches (drott) 2012-09-10 14:30:16 UTC
(In reply to comment #5)
> Is there a recipe for compiling WebKit as using autogen itself doesn't work on
> linux? (I remember having compiled it for EFL in the past, just not how.) The
> reason is that the suggestion is very scary so I would like to dig into the
> issue, and in particular run through the test cases locally.

Basically clone from git.webkit.org (instructions here http://trac.webkit.org/wiki/UsingGitWithWebKit#Checkout )
then, follow the instructions as in (this page has a list of required dependencies as well) - otherwise feel free to contact me for help):
http://trac.webkit.org/wiki/EFLWebKit#Building
Comment 7 Dominik Röttsches (drott) 2012-09-10 14:31:10 UTC
(In reply to comment #5)
> Is this affected by commit f34b87f6d76cbea93acd4a8c73c8c6a6b412a302?

Will check.
Comment 8 Dominik Röttsches (drott) 2012-09-10 15:48:54 UTC
Yes, f34b87f6d76cbea93acd4a8c73c8c6a6b412a302 solves it. No need for my "scary" patch then - in the end, it did have something to do with an incorrect transformation related to the device context, so I was close, but not quite right yet :-)

Thanks, Chris - glad to see this one solved.

Are you going to do a new release with those blockers solved? We would also need bug 54507 resolved to be able to bump cairo for WebKit.

*** This bug has been marked as a duplicate of bug 54732 ***

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.