[Webkit-unassigned] [Bug 86276] New: [chromium] Transforms should not flatten children to RenderSurfaces if the surface preserves 3d
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri May 11 17:23:22 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=86276
Summary: [chromium] Transforms should not flatten children to
RenderSurfaces if the surface preserves 3d
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Layout and Rendering
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: shawnsingh at chromium.org
CC: enne at google.com, shawnsingh at chromium.org,
dtu at chromium.org
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
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list