Bug 111566 - [Texturemapper] transform-style 'flat' value is broken
Summary: [Texturemapper] transform-style 'flat' value is broken
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: Bruno Abinader (history only)
URL: http://dev.w3.org/csswg/css3-3d-trans...
Keywords:
Depends on: 111065
Blocks: 110790 111630
  Show dependency treegraph
 
Reported: 2013-03-06 05:29 PST by Bruno Abinader (history only)
Modified: 2013-03-11 08:40 PDT (History)
11 users (show)

See Also:


Attachments
Patch (3.18 KB, patch)
2013-03-06 14:38 PST, Bruno Abinader (history only)
no flags Details | Formatted Diff | Diff
Patch (5.05 KB, patch)
2013-03-07 05:09 PST, Bruno Abinader (history only)
no flags Details | Formatted Diff | Diff
Patch (5.05 KB, patch)
2013-03-07 05:54 PST, Bruno Abinader (history only)
allan.jensen: review+
Details | Formatted Diff | Diff
Patch (5.05 KB, patch)
2013-03-07 06:00 PST, Bruno Abinader (history only)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno Abinader (history only) 2013-03-06 05:29:42 PST
CSS3 3D Transform's "transform-style" property, when used with 'flag' value has recently broken on WebKit. You can verify by running the example from Surfin' Safari blog [1] and noticing the weird white boxes drawn while hovering mouse (or a single tap on mobile mode, as confirmed by Rafael) over the rotating div. I'm going to bisect the code to find the dangling patch.

Links:
[1] https://www.webkit.org/blog-files/3d-transforms/transform-style.html
Comment 1 Bruno Abinader (history only) 2013-03-06 08:51:16 PST
I've bisected the code and found out that a fix for a patch that avoids redundant state clipping was causing the issue ( http://trac.webkit.org/changeset/144290 ), from bug 111065. Reverting the patch solves the issue, however like Allan commented, it breaks clipping on some Apple HTML5 examples (i.e. http://www.apple.com/html5/showcase/transitions/ ).
Comment 2 Bruno Abinader (history only) 2013-03-06 14:38:34 PST
Created attachment 191834 [details]
Patch

Proposed patch
Comment 3 Noam Rosenthal 2013-03-06 22:08:44 PST
Comment on attachment 191834 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=191834&action=review

> Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:1097
> +    m_clipStack.apply(m_context3D.get(), false);

This is a boolean trap.
I prefer to have apply(...) and applyIfNeeded(...). From bindDefaultSurface we'd call apply, and from everywhere else applyIfNeeded.
Comment 4 Bruno Abinader (history only) 2013-03-07 05:09:59 PST
Created attachment 191976 [details]
Patch

Added applyIfNeeded() to avoid boolean trap as reviewed by Noam
Comment 5 Bruno Abinader (history only) 2013-03-07 05:54:12 PST
Created attachment 191980 [details]
Patch

ChangeLog typo fixes as reviewed by Allan
Comment 6 Allan Sandfeld Jensen 2013-03-07 05:56:29 PST
Comment on attachment 191980 [details]
Patch

LGTM
Comment 7 Bruno Abinader (history only) 2013-03-07 06:00:34 PST
Created attachment 191981 [details]
Patch

Patch for landing (last minute ChangeLog typo fix)
Comment 8 WebKit Review Bot 2013-03-07 06:25:33 PST
Comment on attachment 191981 [details]
Patch

Clearing flags on attachment: 191981

Committed r145071: <http://trac.webkit.org/changeset/145071>
Comment 9 Bruno Abinader (history only) 2013-03-11 08:40:23 PDT
All reviewed patches have been landed.  Closing bug.