• Sadrul Habib Chowdhury's avatar
    [cc/metrics] Reset 'partial update' flag if main-thread had no updates. · f8fe4ca3
    Sadrul Habib Chowdhury authored
    If the main-thread is blocked until a vsync's deadline, then the
    reporter is cloned, submitted, and marked as having 'partial update'.
    However, it is possible for the main-thread to respond, after the
    deadline, with 'no updates' (or 'no damage'). In such cases, the frame
    that was submitted did not really have a 'partial update' So reset the
    flag that was set, so that the metrics are reported correctly.
    
    To do this:
     . When a reporter is cloned, track the link between the original
       reporter and the cloned reporter.
     . When the original reporter is no longer blocked, check if the frame
       ended with 'no updates'. If it did, then unset the 'partial update'
       flag from the cloned reporter.
     . The cloned reporter can be displayed before the original reporter has
       a response from the main-thread. In such cases, keep the cloned
       reporter alive until the original reporter receives the main-thread
       response, so that the 'partial update' flag can be unset if
       necessary.
    
    BUG=1115376
    
    Change-Id: Ib2e8b0bc1fc924e7442625c4cb82dfa5a88ced95
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2385929
    Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
    Reviewed-by: default avatarBehdad Bakhshinategh <behdadb@chromium.org>
    Reviewed-by: default avatarXida Chen <xidachen@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#804528}
    f8fe4ca3
compositor_frame_reporter.cc 47.6 KB