WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
156860
Subpixel rendering: Cleanup RenderLayerBacking::updateGeometry.
https://bugs.webkit.org/show_bug.cgi?id=156860
Summary
Subpixel rendering: Cleanup RenderLayerBacking::updateGeometry.
zalan
Reported
2016-04-21 12:48:37 PDT
nested/clipped/containment/masks etc.
Attachments
WIP patch
(42.15 KB, patch)
2016-04-21 13:13 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
WIP
(42.09 KB, patch)
2016-05-27 13:31 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews121 for ios-simulator-wk2
(650.84 KB, application/zip)
2016-05-27 14:27 PDT
,
Build Bot
no flags
Details
Patch
(51.21 KB, patch)
2016-08-04 19:44 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews126 for ios-simulator-wk2
(702.61 KB, application/zip)
2016-08-04 20:42 PDT
,
Build Bot
no flags
Details
UpdateGeometry layers
(1.26 MB, image/jpeg)
2016-08-05 21:09 PDT
,
zalan
no flags
Details
Patch
(51.46 KB, patch)
2016-08-07 18:58 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews125 for ios-simulator-wk2
(696.29 KB, application/zip)
2016-08-07 19:55 PDT
,
Build Bot
no flags
Details
Patch
(51.63 KB, patch)
2016-08-08 21:04 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Patch
(74.44 KB, patch)
2016-08-16 11:03 PDT
,
zalan
buildbot
: commit-queue-
Details
Formatted Diff
Diff
Archive of layout-test-results from ews122 for ios-simulator-elcapitan-wk2
(702.63 KB, application/zip)
2016-08-16 13:21 PDT
,
Build Bot
no flags
Details
Patch
(75.47 KB, patch)
2016-08-16 15:11 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Patch
(75.54 KB, patch)
2016-08-16 15:31 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Patch
(75.61 KB, patch)
2016-08-16 16:18 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews122 for ios-simulator-elcapitan-wk2
(703.68 KB, application/zip)
2016-08-16 18:55 PDT
,
Build Bot
no flags
Details
Patch
(75.61 KB, patch)
2016-08-16 19:09 PDT
,
zalan
no flags
Details
Formatted Diff
Diff
Show Obsolete
(14)
View All
Add attachment
proposed patch, testcase, etc.
zalan
Comment 1
2016-04-21 13:13:31 PDT
Created
attachment 276946
[details]
WIP patch
zalan
Comment 2
2016-05-27 13:31:12 PDT
Created
attachment 279987
[details]
WIP rebaselined
Build Bot
Comment 3
2016-05-27 14:27:10 PDT
Comment on
attachment 279987
[details]
WIP
Attachment 279987
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/1393148
New failing tests: fast/scrolling/ios/overflow-scrolling-ancestor-clip.html fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html
Build Bot
Comment 4
2016-05-27 14:27:13 PDT
Created
attachment 279993
[details]
Archive of layout-test-results from ews121 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews121 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.4
zalan
Comment 5
2016-08-04 19:44:57 PDT
Created
attachment 285395
[details]
Patch
Build Bot
Comment 6
2016-08-04 20:42:38 PDT
Comment on
attachment 285395
[details]
Patch
Attachment 285395
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/1814735
New failing tests: fast/scrolling/ios/overflow-scrolling-ancestor-clip.html fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html
Build Bot
Comment 7
2016-08-04 20:42:41 PDT
Created
attachment 285398
[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.5
zalan
Comment 8
2016-08-05 21:09:16 PDT
Created
attachment 285478
[details]
UpdateGeometry layers
zalan
Comment 9
2016-08-07 18:58:07 PDT
Created
attachment 285553
[details]
Patch
Build Bot
Comment 10
2016-08-07 19:55:33 PDT
Comment on
attachment 285553
[details]
Patch
Attachment 285553
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/1832013
New failing tests: fast/scrolling/ios/overflow-scrolling-ancestor-clip.html fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html
Build Bot
Comment 11
2016-08-07 19:55:35 PDT
Created
attachment 285555
[details]
Archive of layout-test-results from ews125 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.5
zalan
Comment 12
2016-08-08 21:04:08 PDT
Created
attachment 285629
[details]
Patch
zalan
Comment 13
2016-08-08 21:05:29 PDT
RenderLayerBacking::computeParentGraphicsLayerRect() should drop ancestorClippingLayerOffset somehow.
zalan
Comment 14
2016-08-16 11:03:00 PDT
Created
attachment 286186
[details]
Patch
Build Bot
Comment 15
2016-08-16 13:21:05 PDT
Comment on
attachment 286186
[details]
Patch
Attachment 286186
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/1882656
New failing tests: fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html
Build Bot
Comment 16
2016-08-16 13:21:09 PDT
Created
attachment 286197
[details]
Archive of layout-test-results from ews122 for ios-simulator-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews122 Port: ios-simulator-elcapitan-wk2 Platform: Mac OS X 10.11.5
zalan
Comment 17
2016-08-16 15:11:29 PDT
Created
attachment 286212
[details]
Patch
zalan
Comment 18
2016-08-16 15:23:17 PDT
rdar://problem/25432352
zalan
Comment 19
2016-08-16 15:31:46 PDT
Created
attachment 286216
[details]
Patch
Simon Fraser (smfr)
Comment 20
2016-08-16 15:40:52 PDT
Comment on
attachment 286216
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=286216&action=review
> Source/WebCore/ChangeLog:11 > + It also subpixel jiggling with clipping layers (both ancestor and child containment layers).
it also fixes?
> Source/WebCore/rendering/RenderLayerBacking.cpp:719 > + LayoutSize m_subpixelOffset; > + LayoutSize m_devicePixelOffset;
I think logically I would put m_devicePixelOffset first, so the ordering matches SnappedRectInfo
> Source/WebCore/rendering/RenderLayerBacking.cpp:750 > + LayoutSize ancestorRenderLayerOffsetFromAncestorGraphicsLayer = -(LayoutSize(compositedAncestor->backing()->graphicsLayer()->offsetFromRenderer()) > + + compositedAncestor->backing()->subpixelOffsetFromRenderer());
Maybe RLB should expose a function that returns offsetFromRenderer() + subpixelOffsetFromRenderer()
> Source/WebCore/rendering/RenderLayerBacking.cpp:768 > + if (!m_fromParentGraphicsLayer) > + m_fromParentGraphicsLayer = fromAncestorGraphicsLayer() - m_parentGraphicsLayerOffset; > + return m_fromParentGraphicsLayer.value();
Isn't there some Optional magic that allows you to do this on one line?
> Source/WebCore/rendering/RenderLayerBacking.cpp:782 > + RenderLayer* compositedAncestor = m_renderLayer.ancestorCompositingLayer();
ancestorCompositingLayer() is an ancestor layer walk so I'm surprised we call it so much.
> Source/WebCore/rendering/RenderLayerBacking.cpp:809 > + RenderLayer* compositedAncestor = m_owningLayer.ancestorCompositingLayer();
like here
> Source/WebCore/rendering/RenderLayerBacking.cpp:826 > + LayoutSize clippingBoxOffset = computeOffsetFromAncestorGraphicsLayer(m_owningLayer.ancestorCompositingLayer(), clippingBox.location());
and here
> Source/WebCore/rendering/RenderLayerBacking.cpp:835 > + LayoutRect paddingBox(renderBox.borderLeft(), renderBox.borderTop(), > + renderBox.width() - renderBox.borderLeft() - renderBox.borderRight(), > + renderBox.height() - renderBox.borderTop() - renderBox.borderBottom());
Seems like this should be a function on RenderBox
> Source/WebCore/rendering/RenderLayerBacking.cpp:919 > + // Compute renderer offset from graphics layer. Note that primaryGraphicsLayerRect is in parentGraphicsLayer coordidate system which is not necessarily
which GraphicsLayer? parentGraphicsLayer's coordinate system
> Source/WebCore/rendering/RenderLayerBacking.cpp:1108 > + RenderLayer* compositedAncestor = m_owningLayer.ancestorCompositingLayer();
and here
zalan
Comment 21
2016-08-16 16:18:19 PDT
Created
attachment 286229
[details]
Patch
zalan
Comment 22
2016-08-16 16:21:45 PDT
(In reply to
comment #20
)
> Comment on
attachment 286216
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=286216&action=review
> > > Source/WebCore/ChangeLog:11 > > + It also subpixel jiggling with clipping layers (both ancestor and child containment layers). > > it also fixes?
Fixed.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:719 > > + LayoutSize m_subpixelOffset; > > + LayoutSize m_devicePixelOffset; > > I think logically I would put m_devicePixelOffset first, so the ordering > matches SnappedRectInfo
Fixed.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:750 > > + LayoutSize ancestorRenderLayerOffsetFromAncestorGraphicsLayer = -(LayoutSize(compositedAncestor->backing()->graphicsLayer()->offsetFromRenderer()) > > + + compositedAncestor->backing()->subpixelOffsetFromRenderer()); > > Maybe RLB should expose a function that returns offsetFromRenderer() + > subpixelOffsetFromRenderer()
Will do in a separate patch.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:768 > > + if (!m_fromParentGraphicsLayer) > > + m_fromParentGraphicsLayer = fromAncestorGraphicsLayer() - m_parentGraphicsLayerOffset; > > + return m_fromParentGraphicsLayer.value(); > > Isn't there some Optional magic that allows you to do this on one line?
valueOrCompute() is the closest match but it does not engage the return value.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:782 > > + RenderLayer* compositedAncestor = m_renderLayer.ancestorCompositingLayer(); > > ancestorCompositingLayer() is an ancestor layer walk so I'm surprised we > call it so much. > > > Source/WebCore/rendering/RenderLayerBacking.cpp:809 > > + RenderLayer* compositedAncestor = m_owningLayer.ancestorCompositingLayer(); > > like here
Fixed.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:826 > > + LayoutSize clippingBoxOffset = computeOffsetFromAncestorGraphicsLayer(m_owningLayer.ancestorCompositingLayer(), clippingBox.location()); > > and here > > > Source/WebCore/rendering/RenderLayerBacking.cpp:835 > > + LayoutRect paddingBox(renderBox.borderLeft(), renderBox.borderTop(), > > + renderBox.width() - renderBox.borderLeft() - renderBox.borderRight(), > > + renderBox.height() - renderBox.borderTop() - renderBox.borderBottom()); > > Seems like this should be a function on RenderBox
RenderBox already has a paddingBox() function but it computes the paddings in a slightly different way. Need to figure out if it is intentional.
> > > Source/WebCore/rendering/RenderLayerBacking.cpp:919 > > + // Compute renderer offset from graphics layer. Note that primaryGraphicsLayerRect is in parentGraphicsLayer coordidate system which is not necessarily > > which GraphicsLayer? > parentGraphicsLayer's coordinate system
Fixed.
Build Bot
Comment 23
2016-08-16 18:55:14 PDT
Comment on
attachment 286229
[details]
Patch
Attachment 286229
[details]
did not pass ios-sim-ews (ios-simulator-wk2): Output:
http://webkit-queues.webkit.org/results/1884124
New failing tests: fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html
Build Bot
Comment 24
2016-08-16 18:55:19 PDT
Created
attachment 286248
[details]
Archive of layout-test-results from ews122 for ios-simulator-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews122 Port: ios-simulator-elcapitan-wk2 Platform: Mac OS X 10.11.5
zalan
Comment 25
2016-08-16 19:09:24 PDT
Created
attachment 286249
[details]
Patch
WebKit Commit Bot
Comment 26
2016-08-16 20:19:57 PDT
Comment on
attachment 286249
[details]
Patch Clearing flags on attachment: 286249 Committed
r204552
: <
http://trac.webkit.org/changeset/204552
>
WebKit Commit Bot
Comment 27
2016-08-16 20:20:03 PDT
All reviewed patches have been landed. Closing bug.
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