Bug 84070 - [chromium] Damage Tracker needs to use CCMathUtil transforms
Summary: [chromium] Damage Tracker needs to use CCMathUtil transforms
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Shawn Singh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-16 13:44 PDT by Shawn Singh
Modified: 2012-04-22 13:22 PDT (History)
5 users (show)

See Also:


Attachments
Patch (8.01 KB, patch)
2012-04-20 16:37 PDT, Shawn Singh
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Shawn Singh 2012-04-16 13:44:08 PDT
Without this, damage is incorrectly propagated to target surfaces, because of the perspective w<0 issue.

This can be reproduced on OSX using --enable-partial-swap on http://css-3d.org/space-cube-2.htm, after clicking "move inside".
Comment 1 Shawn Singh 2012-04-20 16:37:30 PDT
Created attachment 138194 [details]
Patch
Comment 2 Shawn Singh 2012-04-20 16:37:52 PDT
A note about the unit test on this patch - I wasn't able to come up with a tighter test that allowed us to test exact values of a clipped rect.  The problem is that when clipping to w < 0 does occur, the values are usually quite large, and theoretically represent infinity.

So, the best I could do was to construct a case where the incorrect un-clipped implementation was very small.  Please let me know if you have a better idea for creating a test that covers this change, but I think the test should be acceptable =)
Comment 3 Adrienne Walker 2012-04-21 17:12:51 PDT
Comment on attachment 138194 [details]
Patch

The test looks great! R=me.
Comment 4 WebKit Review Bot 2012-04-22 13:22:41 PDT
Comment on attachment 138194 [details]
Patch

Clearing flags on attachment: 138194

Committed r114858: <http://trac.webkit.org/changeset/114858>
Comment 5 WebKit Review Bot 2012-04-22 13:22:46 PDT
All reviewed patches have been landed.  Closing bug.