Closed Bug 1160052 Opened 10 years ago Closed 10 years ago

Reduce overpainting of display items that are covered by other display items

Categories

(Core :: Layout, defect)

All
Unspecified
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: pchang, Unassigned)

Details

By dumping the display items for each layer, there are some items that are covered by other display items. But we still need to paint those itemes which are not visible on the screen. The following are the display item dump for message app. And you can see the first 'BackgroundColor p=0xb1849670' is covered by Background(p=0xb184af08) and BackgroundColor (p=0xb184a8b8). CanvasBackgroundColor p=0xb1849560 f=0xb2c3e8d0(Canvas(html)(-1)) bounds(0,0,19200,32360) layerBounds(0,0,19200,32360) visible(0,0,0,0) componentAlpha(0,0,0,0) clip() uniform (opaque 0,0,19200,32360) (rgba 255,255,255,255) layer=0xb184bc00 BackgroundColor p=0xb1849670 f=0xb221f968(HTMLScroll(article)(1) id:main-wrapper class:wrapper) bounds(0,0,19200,32360) layerBounds(0,0,19200,32360) visible(0,3000,19200,29360) componentAlpha(0,0,0,0) clip(0,0,19200,32360) uniform (opaque 0,0,19200,32360) (rgba 1,1,1,1) layer=0xb184bc00 Background p=0xb184af08 f=0xb22246f8(HTMLScroll(div)(11) id:threads-no-messages class:) bounds(3600,11680,12000,12000) layerBounds(3600,11680,12000,12000) visible(3600,11680,12000,12000) componentAlpha(0,0,0,0) clip(0,3000,19200,29360) layer=0xb184bc00 BackgroundColor p=0xb184a8b8 f=0xb1868250(FlexContainer(div)(0) class:inner) bounds(0,0,19200,3000) layerBounds(0,0,19200,3000) visible(0,0,19200,3000) componentAlpha(0,0,0,0) clip(0,0,19200,3000) uniform (opaque 0,0,19200,3000) (rgba 0.152941,0.784314,0.760784,1) layer=0xb184bc00
After checking the paint items, I found gecko did some optimization [1](like occlusion culling) to skip the painting for item BackgroundColor (p=0xb1849670). Therefore, gecko now doesn't spend time to paint the display items which are covered by others. With this optimization, I think we might be able to set the empty visible region on that display item. Will open another bug for it. [1]https://dxr.mozilla.org/mozilla-central/source/layout/base/FrameLayerBuilder.cpp#4970
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.