Sample OMTA transforms during the sampling step prior to rendering
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: kats, Assigned: hiro)
References
(Blocks 1 open bug)
Details
(Whiteboard: [gfx-noted])
Attachments
(5 files, 4 obsolete files)
Comment 1•6 years ago
|
||
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Reporter | ||
Comment 5•6 years ago
|
||
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
Updated•6 years ago
|
Reporter | ||
Comment 15•6 years ago
|
||
Assignee | ||
Comment 16•4 years ago
|
||
Blocking scroll timeline (bug 1321428) and jank partial prerender transform for WebRender (bug 1638152). At the time Botond implemented the initial scroll timeline, we didn't have WebRender backends, but now we have it.
I am going to work on this for bug 1638152.
Assignee | ||
Comment 17•4 years ago
|
||
I was suspecting that this change will make reftest-no-flush reftests flaky on WebRender, but it actually didn't at least on this try run (I re-triggered a bunch of times for the reftests in question there). https://treeherder.mozilla.org/#/jobs?repo=try&revision=d2e8f2cba8c6f15f86930ecca2f180b493b76067
I did also try to see whether there will appear jankiness or not (that was my concern in comment 13), attaching file has a transform animation on relatively large frame, with this file as far as I can tell there is no jankiness happening at all, probably if there are tons of animations, jankiness might happen though.
Assignee | ||
Comment 18•4 years ago
|
||
Assignee | ||
Comment 19•4 years ago
|
||
|mPreviousFrameTimeStamp| will be moved into the sampler for OTMA in the next
commit though.
Depends on D79980
Assignee | ||
Comment 20•4 years ago
|
||
Now CompositorAnimationStorage::GetAnimatedValue() and SetAnimatedValue()s
are called on the sampler thread in case of WebRender, are called on the
compositor thread in case of non WebRender, so we drop assertions of
IsInCompositorThread check there. A mLock.AssertCurrentThreadOwns call in
each function should make sure the function gets called on the
sampler/compositor thread with acquiring the lock.
One caveat in this change is that in case we try to get an animation value via
nsIDOMWindowUtils.getOMTAStyle(), we do sample animations on the compositor
thread and we never call UpdateDynamicProperties, which means if it gets called
in testing refresh driver mode, visual results will differ from what the value
returned by the getOMTAStyle should look like. But it should be fine because we
disallow using any chrome priviledge APIs in reftests and also we will never use
the testing refresh driver mode in the reftest harness. Also in mochitests the
visual results' differences might make people confusing if the person can notice
it, but in principal getOMTAStyle() is designed to get computed animating values
so that it doesn't matter what the visual result is.
Depends on D79981
Comment 21•4 years ago
|
||
Comment 22•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/b43c4bccbe3d
https://hg.mozilla.org/mozilla-central/rev/37cf2bf562f8
https://hg.mozilla.org/mozilla-central/rev/bd42396d45d7
Description
•