• Saman Sami's avatar
    Reland "Revert "Skip MISSED frames in browser compositor"" · e89d907e
    Saman Sami authored
    This reverts commit 1374013c and
    disables some media tests that flake due to a race that is exposed
    by the revert.
    
    Reason for revert: causes jank https://crbug.com/947587
    The original reason for landing this CL does not apply anymore. It is
    no longer the case that viz skips a BeginFrame if an undrawn frame
    exists. See https://crrev.com/c/1521967
    
    Original change's description:
    > Skip MISSED frames in browser compositor
    >
    > This CL fixes a dropped frame issue when a scroll transitions from
    > dragging to a momentum "fling" phase. When the user is scrolling and
    > lifts their finger with velocity, the scroll continues according to a
    > decelerating animation curve. When this happens, the FlingController
    > receives a FlingStart instead of a ScrollUpdate and it uses that to
    > create an animation curve.
    >
    > When this happens the browser process registers itself as an animation
    > observer so that it begins to receive BeginFrame signals. However, the
    > display service issues a MISSED BeginFrame for the frame in which the
    > animation was registered. This will frequently miss submission in the
    > current frame, so it submit next frame and won't receive a BeginFrame
    > then. This leads to a frame without the browser ticking the fling
    > animation. See https://crbug.com/882907#c50 for a diagram and more
    > complete explanation of the issue.
    >
    > The browser process shouldn't require processing MISSED frames so in
    > this CL we simply drop MISSED frames if we're in the browser compositor
    > (commit_to_active_tree is true). Longer term, the display scheduler
    > should make these decisions but this is an immediate fix for the fling
    > issue.
    >
    > Bug: 882907
    > Change-Id: Ieb6d14051dc05c5e177da1920dbd27684f941d29
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1517164
    > Commit-Queue: David Bokan <bokan@chromium.org>
    > Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#640172}
    
    TBR=bokan@chromium.org,sunnyps@chromium.org
    
    
    Bug: 947587,882907,963141
    Change-Id: Id23b586f89de67f9e77212ee265f4ad2db5a6fe7
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613363Reviewed-by: default avatarSaman Sami <samans@chromium.org>
    Reviewed-by: default avatarDavid Bokan <bokan@chromium.org>
    Commit-Queue: Saman Sami <samans@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#660014}
    e89d907e
scheduler_unittest.cc 164 KB