New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 808315 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 25
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Performance regression: tab_switching

Project Member Reported by sadrul@chromium.org, Feb 2 2018

Issue description

Link: https://chromeperf.appspot.com/report?sid=866c88bf04f4e11ad73c213374820547264ae94ad86fc9998c22531f9c2d6dd1

The tab_switching metric seems to have regressed on win7-intel quite a bit. I am going to trigger a bisect.
 
📍 Couldn't reproduce a difference.
https://pinpoint-dot-chromeperf.appspot.com/job/1289d676840000
Owner: fsam...@chromium.org
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/14fbdb76840000

RELAND: Surface synchronization: Enable by default on Aura platforms by fsamuel@chromium.org
chromium @ 966d29e791e4811124037ae509754c4277391fd1

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6de28ba11ef3d94306472ff46525ee53e8e55adc

commit 6de28ba11ef3d94306472ff46525ee53e8e55adc
Author: Fady Samuel <fsamuel@chromium.org>
Date: Wed Feb 07 03:34:40 2018

Surface synchronization: Measure deadlines in wall time instead of BeginFrames

Queuing delay can cause BeginFrames to arrive late in SurfaceDependencyDeadline.

Prior to this CL, SurfaceDependencyDeadline counted BeginFrames to determine
whether a deadline was hit. The problem is each BeginFrame could be delayed and
so 4+ BeginFrames could translate into hundreds of milliseconds even if the
system is intended to run at 60fps (67ms for 4 BeginFrames).

This CL converts SurfaceDependencyDeadline to measure wall time instead and uses
BeginFrames as a signal to check how much time is left until the deadline.

This CL mocks out base::TimeTicks::Now() through a base::TickClock object. This
allows this code to be unit-testable.

Bug:  808315 ,  672962 
TBR: skyosil@chromium.org
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I6f76d1f55ea9e7920d7872414618ec225c25d454
Reviewed-on: https://chromium-review.googlesource.com/902844
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534902}
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface.cc
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface.h
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_client.h
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_dependency_deadline.cc
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_dependency_deadline.h
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_dependency_tracker.cc
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_manager.cc
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/components/viz/service/surfaces/surface_manager.h
[modify] https://crrev.com/6de28ba11ef3d94306472ff46525ee53e8e55adc/headless/public/util/compositor_controller_browsertest.cc

There does not seem to have been a difference from the last change: https://chromeperf.appspot.com/report?sid=853545e79686926f77a69bf5cc1daf574063e6a61fc1328518d8ec3fc31810f1
Ping sadrul@, is this still relevant? The deadline is now 0 frames so this should have completely recovered.
Status: Fixed (was: Assigned)
It doesn't look like there was a corresponding regression from UMA. So I don't think there's anything more to be done.

Sign in to add a comment