Closed Bug 1457466 Opened 6 years ago Closed 6 years ago

Use async scene building better (i.e. make scrolling smooth on pages with slow scene builds)

Categories

(Core :: Graphics: WebRender, enhancement, P1)

Other Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: kats, Assigned: kats)

References

()

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files, 1 obsolete file)

We've turned on the scene builder thread with gfx.webrender.async-scene-build, but since *all* the transactions are going through that thread, including the GenerateFrame transactions with APZ transforms, APZ scrolling is still slow on pages with slow scene builds. http://tests.themasta.com/gibberish.txt is a good example page.

We need to make the GenerateFrame transaction not go through the scene builder thread so that it can race ahead and generate frames even while the scene builder is stuck on a slow scene build.
Attached patch WIP (obsolete) — Splinter Review
This is basically all that's needed. However, the OMTA transforms are also baked into the GenerateFrame transactions, which means we need to fix bug 1453360 before we do this, so that we don't try to generate frames with incomplete animation info.
Attachment #8971566 - Attachment is obsolete: true
Comment on attachment 8973281 [details]
Bug 1457466 - Make the GenerateFrame transaction bypass the scene builder thread.

https://reviewboard.mozilla.org/r/241750/#review249212
Attachment #8973281 - Flags: review?(nical.bugzilla) → review+
Comment on attachment 8973280 [details]
Bug 1457466 - Trigger a render/composite after an async scene build has been swapped in.

https://reviewboard.mozilla.org/r/241748/#review249218
Attachment #8973280 - Flags: review?(nical.bugzilla) → review+
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s cbdb39dccbc09e36f3f89de7d74da3c9203fa08e -d ba91fec47e90: rebasing 463171:cbdb39dccbc0 "Bug 1457466 - Trigger a render/composite after an async scene build has been swapped in. r=nical"
merging gfx/layers/ipc/CompositorBridgeParent.cpp
merging gfx/webrender_bindings/src/bindings.rs
merging gfx/webrender_bindings/webrender_ffi_generated.h
rebasing 463172:2f3134391707 "Bug 1457466 - Make the GenerateFrame transaction bypass the scene builder thread. r=nical" (tip)
merging gfx/webrender_bindings/WebRenderAPI.cpp
merging gfx/webrender_bindings/WebRenderAPI.h
warning: conflicts while merging gfx/webrender_bindings/WebRenderAPI.cpp! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/31d09eea3629
Trigger a render/composite after an async scene build has been swapped in. r=nical
https://hg.mozilla.org/integration/autoland/rev/8c90bee8f6f3
Make the GenerateFrame transaction bypass the scene builder thread. r=nical
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: