Closed
Bug 1198021
Opened 9 years ago
Closed 9 years ago
[APZ] Sometimes seeing checkerboarding when displayport changes size
Categories
(Core :: Layout, defect, P2)
Core
Layout
Tracking
()
RESOLVED
FIXED
mozilla45
People
(Reporter: mstange, Assigned: mstange)
References
()
Details
Attachments
(1 file)
STR:
1. Go to http://lea.verou.me/2015/06/conical-gradients-today/
2. Scroll down to the bottom of the page very quickly.
3. Quickly scroll up and down again.
4. Repeat step 3 until you see the page turn white briefly.
Actual results:
After seeing orange checkerboarding, suddenly the whole page turns white and then gets refreshed with the painted page contents.
Expected results:
The white flash shouldn't happen. We know that the page background is light orange, and we are using that color as the checkerboarding color usually, just not in some cases when scrolling to the page bottom.
Updated•9 years ago
|
Blocks: apz-desktop
Assignee | ||
Comment 1•9 years ago
|
||
I've seen these white flashes in many places, and I think we need to fix this before we ship APZ.
Comment 2•9 years ago
|
||
Do you have any other URLs on which you've seen this? I can't reproduce it on the URL you provided in comment 0. I can hit checkerboarding easily enough, but it's always the orange color that is the page background.
Assignee | ||
Comment 4•9 years ago
|
||
I can't reproduce it on the URL from comment 0 anymore either. So maybe we fixed something!
I also can't reproduce it with the URL from bug 1217786 anymore.
I can still reproduce it with the testcase in bug 1221094, on the first scroll after the page loads.
Flags: needinfo?(mstange)
Comment 5•9 years ago
|
||
Hm, so with the testcase on bug 1221094 I can reproduce a flash of white on the first scroll. I copied the page and added a background-color:orange to the body, and when I scroll I don't see the flash of white. The text still disappears for a split second, but the background is orange throughout. I also turned on the minimap and the flash seems to correspond with an increase in the size of the displayport as we go from panning slowly to panning fast.
I'll update this bug to cover this issue, assuming we don't already have a bug for it somewhere else.
Summary: [APZ] Sometimes seeing white checkerboarding, even when the page background isn't white → [APZ] Sometimes seeing checkerboarding when displayport changes size
Assignee | ||
Comment 6•9 years ago
|
||
When the flash happens, the layer's content client changes from SingleTiled to MultiTiled, and the corresponding content host disappears for a few composites.
Matt, do you want to fix this?
> LayerManager (0x129251640)
> ContainerLayerComposite (0x112c62800) [shadow-visible=< (x=0, y=0, w=1988, h=978); >] [visible=< (x=0, y=0, w=1988, h=978); >] [opaqueContent] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=978.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=489.000000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=489.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(0, 0, 0, 0.000000)] [scrollId=9] [z=2] }]
> PaintedLayerComposite (0x112c67400) [shadow-visible=< (x=0, y=0, w=1988, h=2); >] [bounds=(x=0, y=-2, w=1988, h=980)] [visible=< (x=0, y=0, w=1988, h=978); >] { hitregion=< (x=0, y=0, w=1988, h=978); >} [opaqueContent] [valid=< (x=0, y=0, w=1988, h=978); >]
> TiledContentHost (0x112c8fae0)
> RefLayerComposite (0x112c64400) [shadow-clip=(x=0, y=2, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 2; ]] [shadow-visible=< (x=0, y=0, w=1988, h=976); >] [clip=(x=0, y=2, w=1988, h=976)] [transform=[ 1 0; 0 1; 0 2; ]] [visible=< (x=0, y=0, w=1988, h=976); >] [id=8]
> ContainerLayerComposite (0x11f454400) [shadow-visible=< (x=0, y=0, w=1988, h=976); >] [visible=< (x=0, y=0, w=1988, h=976); >] [opaqueContent]
> PaintedLayerComposite (0x119f1f000) [not visible] { hitregion=< (x=0, y=0, w=1988, h=976); >} [opaqueContent]
> PaintedLayerComposite (0x12083c800) [shadow-clip=(x=0, y=0, w=0, h=0)] [shadow-transform=[ 1 0; 0 1; 0 -20; ]] [clip=(x=0, y=0, w=0, h=0)] [not visible] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }]
> ColorLayerComposite (0x1239cf400) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 -20; ]] [shadow-visible=< (x=0, y=20, w=1988, h=14); (x=0, y=34, w=504, h=962); (x=1492, y=34, w=496, h=962); >] [bounds=(x=0, y=0, w=1988, h=34643)] [visible=< (x=0, y=0, w=1988, h=1536); >] { hitregion=< (x=0, y=0, w=1988, h=34644); >} [opaqueContent] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }] [color=rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1988, h=1536)]
> ContainerLayerComposite (0x12009c400) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 505 12; ]] [shadow-visible=< (x=-1, y=2, w=988, h=962); >] [transform=[ 1 0; 0 1; 505 32; ]] [visible=< (x=-1, y=2, w=988, h=1475); >] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }]
> PaintedLayerComposite (0x12083a400) [shadow-visible=< (x=-1, y=2, w=988, h=962); >] [bounds=(x=-2, y=2, w=989, h=1475)] [visible=< (x=-1, y=2, w=988, h=1359); (x=-1, y=1365, w=933, h=35); (x=-1, y=1403, w=974, h=35); (x=-1, y=1442, w=475, h=35); >] { hitregion=< (x=0, y=0, w=978, h=34580); >} [opaqueContent] [valid=< (x=-1, y=2, w=988, h=1359); (x=-1, y=1365, w=933, h=35); (x=-1, y=1403, w=974, h=35); (x=-1, y=1442, w=475, h=35); >]
> !!! ---> TiledContentHost (0x1125998e0)
> ContainerLayerComposite (0x1285e6000) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-visible=< (x=1956, y=0, w=32, h=976); >] [clip=(x=0, y=0, w=1988, h=976)] [visible=< (x=1956, y=0, w=32, h=976); >]
> PaintedLayerComposite (0x1287f8c00) [shadow-visible=< (x=1956, y=0, w=32, h=976); >] [bounds=(x=1956, y=0, w=32, h=976)] [visible=< (x=1956, y=0, w=32, h=976); >] { hitregion=< (x=1956, y=0, w=32, h=976); >} [valid=< (x=1956, y=0, w=32, h=976); >]
> TiledContentHost (0x1125997c0)
> ContainerLayerComposite (0x1285e6c00) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 0.546513; ]] [shadow-visible=< (x=1960, y=2, w=26, h=52); >] [clip=(x=0, y=0, w=1988, h=976)] [visible=< (x=1960, y=2, w=26, h=52); >] [vscrollbar=6]
> PaintedLayerComposite (0x1285f1800) [shadow-transform=[ 1 0; 0 1; 1960 2; ]] [shadow-visible=< (x=0, y=0, w=26, h=52); >] [transform=[ 1 0; 0 1; 1960 2; ]] [bounds=(x=0, y=0, w=26, h=52)] [visible=< (x=0, y=0, w=26, h=52); >] { hitregion=< (x=0, y=0, w=26, h=52); > dispatchtocontentregion=< (x=0, y=0, w=26, h=52); >} [valid=< (x=0, y=0, w=26, h=52); >]
> TiledContentHost (0x112599340)
> PaintedLayerComposite (0x124eb9c00) [not visible] { hitregion=< (x=0, y=2, w=100, h=32); (x=32, y=34, w=68, h=4); >} [opaqueContent]
>
> Painting --- compositing layer tree:
> LayerManager (0x129251640)
> ContainerLayerComposite (0x112c62800) [shadow-visible=< (x=0, y=0, w=1988, h=978); >] [visible=< (x=0, y=0, w=1988, h=978); >] [opaqueContent] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=978.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=489.000000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=489.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(0, 0, 0, 0.000000)] [scrollId=9] [z=2] }]
> PaintedLayerComposite (0x112c67400) [shadow-visible=< (x=0, y=0, w=1988, h=978); >] [bounds=(x=0, y=-2, w=1988, h=980)] [visible=< (x=0, y=0, w=1988, h=978); >] { hitregion=< (x=0, y=0, w=1988, h=978); >} [opaqueContent] [valid=< (x=0, y=0, w=1988, h=978); >]
> TiledContentHost (0x112c8fae0)
> RefLayerComposite (0x112c64400) [shadow-clip=(x=0, y=2, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 2; ]] [shadow-visible=< (x=0, y=0, w=1988, h=976); >] [clip=(x=0, y=2, w=1988, h=976)] [transform=[ 1 0; 0 1; 0 2; ]] [visible=< (x=0, y=0, w=1988, h=976); >] [id=8]
> ContainerLayerComposite (0x11f454400) [shadow-visible=< (x=0, y=0, w=1988, h=976); >] [visible=< (x=0, y=0, w=1988, h=976); >] [opaqueContent]
> PaintedLayerComposite (0x119f1f000) [not visible] { hitregion=< (x=0, y=0, w=1988, h=976); >} [opaqueContent]
> PaintedLayerComposite (0x12083c800) [shadow-clip=(x=0, y=0, w=0, h=0)] [shadow-transform=[ 1 0; 0 1; 0 -86; ]] [clip=(x=0, y=0, w=0, h=0)] [not visible] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }]
> ColorLayerComposite (0x1239cf400) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 -86; ]] [shadow-visible=< (x=0, y=0, w=1988, h=1536); >] [bounds=(x=0, y=0, w=1988, h=34643)] [visible=< (x=0, y=0, w=1988, h=1536); >] { hitregion=< (x=0, y=0, w=1988, h=34644); >} [opaqueContent] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }] [color=rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1988, h=1536)]
> ContainerLayerComposite (0x12009c400) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 505 -54; ]] [shadow-visible=< (x=-1, y=2, w=988, h=1475); >] [transform=[ 1 0; 0 1; 505 32; ]] [visible=< (x=-1, y=2, w=988, h=1475); >] [metrics0={ [cb=(x=0.000000, y=0.000000, w=1988.000000, h=976.000000)] [sr=(x=0.000000, y=0.000000, w=994.000000, h=17321.599609)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=994.000000, h=768.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [color=rgba(255, 255, 255, 1.000000)] [scrollId=6] [rcd] [clip=(x=0, y=0, w=1988, h=976)] [z=2] }]
> ! ----> PaintedLayerComposite (0x12083a400) [shadow-visible=< (x=-1, y=2, w=988, h=1359); (x=-1, y=1365, w=933, h=35); (x=-1, y=1403, w=974, h=35); (x=-1, y=1442, w=475, h=35); >] [bounds=(x=-2, y=2, w=989, h=1475)] [visible=< (x=-1, y=2, w=988, h=1359); (x=-1, y=1365, w=933, h=35); (x=-1, y=1403, w=974, h=35); (x=-1, y=1442, w=475, h=35); >] { hitregion=< (x=0, y=0, w=978, h=34580); >} [opaqueContent] [valid=< (x=-1, y=2, w=988, h=1359); (x=-1, y=1365, w=933, h=35); (x=-1, y=1403, w=974, h=35); (x=-1, y=1442, w=475, h=35); >]
> ContainerLayerComposite (0x1285e6000) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-visible=< (x=1956, y=0, w=32, h=976); >] [clip=(x=0, y=0, w=1988, h=976)] [visible=< (x=1956, y=0, w=32, h=976); >]
> PaintedLayerComposite (0x1287f8c00) [shadow-visible=< (x=1956, y=0, w=32, h=976); >] [bounds=(x=1956, y=0, w=32, h=976)] [visible=< (x=1956, y=0, w=32, h=976); >] { hitregion=< (x=1956, y=0, w=32, h=976); >} [valid=< (x=1956, y=0, w=32, h=976); >]
> TiledContentHost (0x1125997c0)
> ContainerLayerComposite (0x1285e6c00) [shadow-clip=(x=0, y=0, w=1988, h=976)] [shadow-transform=[ 1 0; 0 1; 0 2.35001; ]] [shadow-visible=< (x=1960, y=2, w=26, h=52); >] [clip=(x=0, y=0, w=1988, h=976)] [visible=< (x=1960, y=2, w=26, h=52); >] [vscrollbar=6]
> PaintedLayerComposite (0x1285f1800) [shadow-transform=[ 1 0; 0 1; 1960 2; ]] [shadow-visible=< (x=0, y=0, w=26, h=52); >] [transform=[ 1 0; 0 1; 1960 2; ]] [bounds=(x=0, y=0, w=26, h=52)] [visible=< (x=0, y=0, w=26, h=52); >] { hitregion=< (x=0, y=0, w=26, h=52); > dispatchtocontentregion=< (x=0, y=0, w=26, h=52); >} [valid=< (x=0, y=0, w=26, h=52); >]
> TiledContentHost (0x112599340)
> PaintedLayerComposite (0x124eb9c00) [not visible] { hitregion=< (x=0, y=2, w=100, h=32); (x=32, y=34, w=68, h=4); >} [opaqueContent]
Flags: needinfo?(matt.woodrow)
Assignee | ||
Comment 7•9 years ago
|
||
So the ContentHost is forcefully detached from CompositableParent::Destroy, which is called from the child process from the SingleTiledContentClient destructor (or rather its inherited CompositableClient destructor). The SingleTiledContentClient is destroyed in ClientTiledPaintedLayer::ClearCachedResources(), which is called from ClientTiledPaintedLayer::RenderLayer() because !mContentClient->SupportsLayerSize(layerSize, ClientManager()).
Assignee | ||
Comment 8•9 years ago
|
||
Bug 1198021 - When the ContentClient of a ClientTiledPaintedLayer changes, don't destroy the old content client until after the layer transaction has been sent. r?nical
Attachment #8693002 -
Flags: review?(nical.bugzilla)
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → mstange
Status: NEW → ASSIGNED
Flags: needinfo?(matt.woodrow)
Updated•9 years ago
|
Attachment #8693002 -
Flags: review?(nical.bugzilla) → review+
Comment 9•9 years ago
|
||
Comment on attachment 8693002 [details]
MozReview Request: Bug 1198021 - When the ContentClient of a ClientTiledPaintedLayer changes, don't destroy the old content client until after the layer transaction has been sent. r?nical
https://reviewboard.mozilla.org/r/26369/#review23883
Updated•9 years ago
|
Priority: -- → P2
Assignee | ||
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/830117f932295a398962749c7bf1759d6c445518
Bug 1198021 - When the ContentClient of a ClientTiledPaintedLayer changes, don't destroy the old content client until after the layer transaction has been sent. r=nical
Comment 11•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox45:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in
before you can comment on or make changes to this bug.
Description
•