New issue
Advanced search Search tips

Issue 763334 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

36.7%-39.3% regression in smoothness.tough_canvas_cases at 500168:500215

Project Member Reported by rmcilroy@chromium.org, Sep 8 2017

Issue description

See the link to graphs below.
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=763334

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=7eadd0a502d0976b298a137c76ffe6d37ec6d589c37adec87f40f8cd111e0e62


Bot(s) for this bug's original alert(s):

android-nexus7v2
Cc: zheda.c...@intel.com
Owner: zheda.c...@intel.com
Status: Assigned (was: Untriaged)

=== Auto-CCing suspected CL author zheda.chen@intel.com ===

Hi zheda.chen@intel.com, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : Zheda Chen
  Commit : 580652faa4a52b2c418e99c4cca1241d140361c3
  Date   : Thu Sep 07 01:56:23 2017
  Subject: Increase kExpensiveOverdrawThreshold

Bisect Details
  Configuration: android_nexus7_perf_bisect
  Benchmark    : smoothness.gpu_rasterization.tough_path_rendering_cases
  Metric       : frame_times/GUIMark Vector Chart Test
  Change       : 40.56% | 23.94882855 -> 33.6627163

Revision             Result                   N
chromium@500167      23.9488 +- 0.667648      6      good
chromium@500179      24.1546 +- 0.875447      6      good
chromium@500181      24.2488 +- 0.804909      6      good
chromium@500182      33.6019 +- 1.9874        6      bad       <--
chromium@500185      33.6926 +- 0.380808      5      bad
chromium@500191      33.7017 +- 1.77225       6      bad
chromium@500215      33.6627 +- 1.50845       6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=GUIMark.Vector.Chart.Test smoothness.gpu_rasterization.tough_path_rendering_cases

More information on addressing performance regressions:
  http://g.co/ChromePerformanceRegressions

Debug information about this bisect:
  https://chromeperf.appspot.com/buildbucket_job_status/8969026138275623920


For feedback, file a bug with component Speed>Bisection
I can reproduce this regression on Nexus7 device. It seems that deferral rendering mode performance is worse in this unique case. Will look into the issue further to find root cause.
Project Member

Comment 6 by 42576172...@developer.gserviceaccount.com, Sep 12 2017


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : Zheda Chen
  Commit : 580652faa4a52b2c418e99c4cca1241d140361c3
  Date   : Thu Sep 07 01:56:23 2017
  Subject: Increase kExpensiveOverdrawThreshold

Bisect Details
  Configuration: android_nexus7_perf_bisect
  Benchmark    : smoothness.tough_canvas_cases
  Metric       : frame_times/http___www.craftymind.com_factory_guimark2_HTML5ChartingTest.html
  Change       : 33.96% | 23.140598585 -> 30.9997626209

Revision             Result                   N
chromium@500167      23.1406 +- 0.74746       6      good
chromium@500179      23.3803 +- 0.549841      6      good
chromium@500181      23.1287 +- 0.809182      6      good
chromium@500182      31.2361 +- 1.17685       6      bad       <--
chromium@500185      30.4751 +- 1.7501        6      bad
chromium@500191      31.6298 +- 2.00059       6      bad
chromium@500215      30.9998 +- 0.918967      6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=http...www.craftymind.com.factory.guimark2.HTML5ChartingTest.html smoothness.tough_canvas_cases

More information on addressing performance regressions:
  http://g.co/ChromePerformanceRegressions

Debug information about this bisect:
  https://chromeperf.appspot.com/buildbucket_job_status/8968650167923655712


For feedback, file a bug with component Speed>Bisection

Comment 7 Deleted

Root cause of the regression is identified, it's because that the case uses the deprecated frame animation method-----setInterval. After the patch to increase kExpensiveOverdrawThreshold, the case stays in deferral rendering mode. Sometimes it records double pixels (actually pixels of two frames) and draws together in one frame, which makes the frame much longer, thus causes slow animation (see Fig 2). It's caused by deprecated frame animation method. When i modify the case to use requestAnimationFrame(RAF) instead, don't see any performance regression w/ the patch. (see Fig 3)

Thus we recommend to modify the case to use requestAnimationFrame to solve the problem.
Fig1-trace_nexus7-R63.0.3206.0-nopatch-VectorChartCase-ImmediateMode.PNG
149 KB View Download
Fig2-trace_nexus7-R63.0.3206.0-withpatch-VectorChartCase-DeferralMode.PNG
189 KB View Download
Fig3-trace_nexus7-R63.0.3206.0-withpatch-VectorChartCase-RAF-DeferralMode.PNG
151 KB View Download
Cc: junov@chromium.org
@junov, 
could u please take a look at the issue, trace and my analysis? Thanks!

Comment 10 by junov@chromium.org, Sep 16 2017

Thanks for the analysis. I agree with your conclusion. I think the right solution is to fix the test to make it use RAF. We do not want to optimize Chrome for deprecated usage patterns.
Thanks Justin. The test case is from GUIMark 2 benchmark (2010), do u know any owner of the smoothness.tough_canvas_cases who can update the test case in telemetry ?
Status: WontFix (was: Started)
The issue only occurs on web pages with deprecated usage pattern, won't fix it in Chrome. Instead, modify the test case (guimark2--HTML5ChartingTest.html) to use requestAnimationFrame(RAF). Probably it can proceed in a new bug issue.
Owner: junov@chromium.org
Status: Assigned (was: WontFix)
Re-assigning to junov, test owner, to see if changing the test case is the right next action, as in #12.
Components: Blink>Canvas
junov: can you take a look at whether this test case should be updated or removed?

Comment 16 by junov@chromium.org, Jan 29 2018

Not sure. We need to think about how we want to modernize canvas performance testing in general, then see how this test fits in the new paradigm.  Let's keep this open at least until the canvas team launches its next performance testing overhaul/review.
Components: Internals>GPU>Metrics
Cc: -junov@chromium.org
Owner: ----
Status: Available (was: Assigned)

Sign in to add a comment