• Sidney San Martín's avatar
    De-jank window resizing in MacViews (part 2). · 9387b40d
    Sidney San Martín authored
    Part 1: https://chromium-review.googlesource.com/c/chromium/src/+/1066304
    
    This change picks up from the above CL and adds hooks into the GPU process to
    coordinate its CATransaction with the browser's on request (e.g. for resize).
    
    New GPU IPCs let the browser process, via CATransactionObserver, begin a
    transaction and then end it while in the post commit phase of its
    CATransaction. This makes compositor changes display atomically with changes in
    the browser process. It also fixes the window frame jank described in the above
    CL when the GPU process assigns new IOSurfaces as CALayer contents.
    
    I think this is because the two CATransactions happen as one from the window
    server's point of view: in a test app, committing the two transactions like
    this significantly reduced the time to commit.
    
    Bug: 837660
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
    Change-Id: Ib5b2a3a3cae76640cc9872b7f265cb3bd13143a4
    Reviewed-on: https://chromium-review.googlesource.com/1077047Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
    Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
    Reviewed-by: default avatarccameron <ccameron@chromium.org>
    Commit-Queue: Sidney San Martín <sdy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#565687}
    9387b40d
ca_transaction_observer.h 3.13 KB