Closed Bug 778036 Opened 7 years ago Closed 7 years ago

Cross-process+omtc layers causing up to 5x excessive recomposites


(Core :: Graphics: Layers, defect)

Gonk (Firefox OS)
Not set





(Reporter: cjones, Assigned: mattwoodrow)




(4 files)

 (1) Flash an otoro with latest everything
 (2) Turn on the FPS monitor
 (3) Fire up the crystalskull webgl demo

The FPS monitor reports 30-40fps, but it's obviously running at 5-10fps.

 (4) Force crystalskull back in-process (
 (5) Reinstall gaia
 (6) Fire up demo again

The performance is qualitatively the same (because we still have to read back), but this time it reports the more believable 5-10fps.

Something in our cross-process gfx pipeline is forcing us to recomposite *way* too much.

Betting it's sometime to do with .
Summary: Cross-process layers causing up to 5x excessive recomposites → Cross-process+omtc layers causing up to 5x excessive recomposites
Matt is looking at this right now.
Assignee: nobody → matt.woodrow
This helps, but still doesn't really fix the issue. We still have the problem where FrameLayerBuilder sets the visible region / transform multiple times and this as marked as a mutation.

DLBI's layer tree comparison code can fix this properly, not sure if it's worth separating that out, or just taking this for now and waiting for DLBI.
Attachment #648054 - Flags: review?(roc)
This doesn't appear to cause any issues as the comment suggested it did.
Attachment #648055 - Flags: review?(jones.chris.g)
Comment on attachment 648055 [details] [diff] [review]
Only call SendNotifyCompositorTransaction on the first paint

We still need this because of the SetCurrentRemoteFrame() hack in RenderFrameParent, but we probably can't kill that without breaking xul-fennec so this looks good.  Tested thoroughly on device.

Not sure what the problem was originally then ... oh well!
Attachment #648055 - Flags: review?(jones.chris.g) → review+
Sorry, I had to back this out because it caused all native Android tests runs to crash/timeout:
Really want to get this landed.  Fired off new try build
You need to log in before you can comment on or make changes to this bug.