gecko-dev/gfx
Andrew Osmond d19566e09c Bug 1454149 - Do not advance animated images which are not displayed. r=tnikkel
All animated images on a page are currently registered with the refresh
driver and advance with the tick refresh. These animations may not even
be in view, and if they are large and thus cause redecoding, cause a
marked increase in CPU usage for no benefit to the user.

This patch adds an additional flag, mCompositedFrameRequested, to the
AnimationState used by FrameAnimator. It is set to true each time the
current animated image frame is requested via
FrameAnimator::GetCompositedFrame. It is set to false each time the
frame is advanced in FrameAnimator::AdvanceFrame (via
FrameAnimator::RequestRefresh). If it is true when
FrameAnimator::RequestRefresh is called, then it will advance the
animation according to the normal rules. If it is false, then it will
set the current animation time to the current time instead of advancing.

This should not cause the animation to fall behind anymore or skip
frames more than it does today. This is because if
FrameAnimator::GetCompositedFrame is not called, then the internal state
of the animation is advancing ahead of what the user sees. Once it is
called, the new frame is far ahead of the previously displayed frame.
The only difference now is that we will display the previous frame for
slightly longer until the next refresh tick.

Note that if an animated image is layerized (should not happen today) or
otherwise uses an ImageContainer, this optimization fails. While we know
whether or not we have an image container, we do not know if anything is
actively using it.
2018-05-09 08:04:20 -04:00
..
2d Bug 1425484 - Part 3. Integrate shared surfaces with the blob image recordings. r=jrmuizel 2018-04-26 19:00:16 -04:00
angle Bug 1455782 - Remove c++14->c++11 patch. - r=kvark 2018-04-24 13:23:07 -07:00
cairo Bug 1456952: Reapply bug 624198 fix that got lost in an upstream update. r=jrmuizel 2018-04-25 17:38:18 -04:00
config Bug 1191971 part 2 - Add capatiblity to enable DComp r=bas 2018-03-29 11:23:31 +09:00
doc Backed out 3 changesets (bug 1439960) for build bustages on APZInputBridgeChild.cpp and FrameBuilder.cpp. CLOSED TREE 2018-03-20 23:18:44 +02:00
docs
gl Bug 1444432 - Create Compositor::BlitRenderTarget and implement it for CompositorOGL. r=jrmuizel 2018-04-12 15:28:26 -04:00
graphite2 Bug 1443095 - Update graphite2 library to release 1.3.11 (plus upstream commit 6e24eb7e to fix leak). r=jrmuizel 2018-03-10 10:43:38 +00:00
harfbuzz Bug 1443812 - Update HarfBuzz to 1.7.6. r=jfkthame 2018-03-07 13:29:23 -05:00
ipc Bug 1366808: Start passing parentBuildID to GPU process to detect buildID mismatches. r=jimm 2018-05-08 10:31:52 -04:00
layers Bug 1459895 - Avoid underflow in TimeStamp in the middle of the calcuration of animation's ready time. r=birtles 2018-05-09 10:47:51 +09:00
ots Bug 1457412 - Update OTS to upstream tip (c903692702), to pick up recent fixes. r=jrmuizel 2018-04-30 15:45:38 +01:00
qcms Bug 1432067 - Ignore zero sized tables. r=jrmuizel 2018-05-07 16:33:33 -04:00
sfntly
skia Bug 1457284 - add Skia m66 cherry-picks. r=rhunt 2018-04-26 22:45:34 -04:00
src Bug 1457967: Don't needlessly include smmintrin.h on platforms where we're only using SSE2. r=jrmuizel 2018-05-03 15:20:01 +00:00
tests Bug 1458364: Skip test_font_whitelist.html on Windows ASan. DONTBUILD 2018-05-04 14:48:59 -04:00
thebes Bug 1454149 - Do not advance animated images which are not displayed. r=tnikkel 2018-05-09 08:04:20 -04:00
vr Bug 1451363 - part 5 - remove ProtocolName virtual function; r=mccr8 2018-04-23 14:13:36 -04:00
webrender Bug 1458870 - Update webrender to commit 9a3bc6b965554c04c0bba326cdee45240c3b4ba7. r=jrmuizel 2018-05-08 09:33:03 -04:00
webrender_api Bug 1458870 - Update webrender to commit 9a3bc6b965554c04c0bba326cdee45240c3b4ba7. r=jrmuizel 2018-05-08 09:33:03 -04:00
webrender_bindings Bug 1458598 - Expose the generated reference frame id for stacking contexts. r=mstange 2018-05-08 09:16:26 -04:00
wrench Bug 1458870 - Update webrender to commit 9a3bc6b965554c04c0bba326cdee45240c3b4ba7. r=jrmuizel 2018-05-08 09:33:03 -04:00
ycbcr Bug 1422368: Use intrinsics-based YUV functions from Win64 under Win32 clang-cl. r=jrmuizel 2018-04-04 08:41:36 -04:00
moz.build