WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
86276
[chromium] Transforms should not flatten children to RenderSurfaces if the surface preserves 3d
https://bugs.webkit.org/show_bug.cgi?id=86276
Summary
[chromium] Transforms should not flatten children to RenderSurfaces if the su...
Shawn Singh
Reported
2012-05-11 17:22:27 PDT
Scenario: Layer A is the container, with -webkit-transform-style: preserves-3d Layer B is a child of A, with -webkit-transform-style: preserves-3d. It so happens that Layer B becomes a renderSurface for other unrelated reasons (such as having a CSS reflection) Layer C is a child of layer B, with some 3-d transform. In this scenario, chromium compositor code will incorrectly flatten Layer C onto surface B. The reason our code would incorrectly do that is because whenever we create a new renderSurface, we are resetting the drawTransform hierarchy at that layer, and the rest of the subtree inherits from that layer. This bug should do 3 things: (1) first create a webkit layout test that reproduces the problem (Safari will probably pass such a test case already, that is a good way to double-check that the test is OK) (2) change the way that we initialize transforms, for both RenderSurfaces and layers: the hierarchy should be reset only if the renderSurface is considered the "root of the 3D rendering context", which I think in our code is the first layer where preserves3d is true but its parent does not preserve 3d. David I'll probably be modifying the exact same code here, so we need to coordinate when you get to this step. (3) create a unit test that fails without the fix in (2), and passes with it. The test should probably live in Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp, that's where several other transform hierarchy tests are located
Attachments
Test case repro
(940 bytes, text/html)
2012-05-17 15:06 PDT
,
Shawn Singh
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Shawn Singh
Comment 1
2012-05-17 14:40:16 PDT
Update: David created a useful test case, but it looks like Safari does also flatten the layers contradictory to the W3C spec. So it looks like this bug is WONTFIX for now, until that question is settled.
Vangelis Kokkevis
Comment 2
2012-05-17 14:45:39 PDT
(In reply to
comment #1
)
> Update: > > David created a useful test case, but it looks like Safari does also flatten the layers contradictory to the W3C spec. > > So it looks like this bug is WONTFIX for now, until that question is settled.
Can you attach the example so that we have it for future reference?
Shawn Singh
Comment 3
2012-05-17 15:06:15 PDT
Created
attachment 142564
[details]
Test case repro This was the test written by David. Also, Ian had a similar example -
http://www.corp.google.com/~vollick/reflect2.html
In both tests, if we go to the inspector, and disable the reflection, then suddenly the layers become more 3d.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug