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

Issue 659052 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

18.7%-20.7% regression in blink_perf.canvas at 426648:426708

Project Member Reported by alexclarke@chromium.org, Oct 25 2016

Issue description

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

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgnYfesgsM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg3aCqrgkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg3cLXtgoM


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

chromium-rel-win7-gpu-ati
chromium-rel-win7-gpu-intel
chromium-rel-win7-gpu-nvidia
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Oct 25 2016

Cc: ccameron@chromium.org
Owner: ccameron@chromium.org

=== Auto-CCing suspected CL author ccameron@chromium.org ===

Hi ccameron@chromium.org, the bisect results pointed to your CL below as possibly
causing a regression. Please have a look at this info and see whether
your CL be related.


===== BISECT JOB RESULTS =====
Status: completed


===== SUSPECTED CL(s) =====
Subject : DrawingBuffer: Clean up GL state restoration
Author  : ccameron
Commit description:
  
Several of DrawingBuffer's methods leave the caller's state dirty,
and the responsibility for restoring this state comes in three forms:
- Responsibility of DrawingBuffer.
  - E.g, DrawingBuffer::PrepareTextureMailbox, which calls
    DrawingBuffer::finishPrepareTextureMailboxGpu, which restores
    texture and framebuffer bindings.
- Responsibility of the caller
  - E.g, WebGLRenderingContextBase::restoreStateAfterClear and
    everything that calls it.
  - Except..
- Both, together, in strange ways. That is, the caller will explicitly
  restore some state, but it will also call into DrawingBuffer to
  restore some of the state
  - E.g, WebGLRenderingContextBase::reshape, where we have all
    sorts of state restore calls, from all sorts of places.

Note how strange it is to have WebGLRenderingContextBase call
DrawingBuffer to have it restore state. WebGLRenderingContextBase is
the structure that knows the values to restore -- DrawingBuffer only
knows these values because WebGLRenderingContextBase told them to it.

Get rid of all of the state tracking in DrawingBuffer. Instead, have
it call back to its Client (WebGLRenderingContextBase) to restore state
at the end of all of its public entrypoints.

There exists no testing for this state restoration. Sprinkle "verify
that state was restored correctly" calls throughout the existing tests.

Also, make some method names more sensical. Change "commit" to a
name that reflects what it does and the state changes associated with it.
Change "reset" to "resize".

BUG= 648707 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel

Review-Url: https://chromiumcodereview.appspot.com/2402273002
Cr-Commit-Position: refs/heads/master@{#426686}
Commit  : 123016bf9ed08d599540dddc9a3b92a0df7eba2e
Date    : Fri Oct 21 02:07:29 2016


===== TESTED REVISIONS =====
Revision         Mean     Std Dev  N  Good?
chromium@426648  10582.2  164.763  5  good
chromium@426678  10590.0  63.1892  5  good
chromium@426682  10636.9  130.645  5  good
chromium@426684  10684.6  99.0625  5  good
chromium@426685  10707.0  280.409  5  good
chromium@426686  8586.66  80.9698  5  bad    <--
chromium@426693  8547.26  61.9807  5  bad
chromium@426707  8538.19  61.4833  5  bad

Bisect job ran on: winx64nvidia_perf_bisect
Bug ID: 659052

Test Command: src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests blink_perf.canvas
Test Metric: draw-dynamic-webgl-to-hw-accelerated-canvas-2d/draw-dynamic-webgl-to-hw-accelerated-canvas-2d
Relative Change: 19.32%
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/winx64nvidia_perf_bisect/builds/1935
Job details: https://chromeperf.appspot.com/buildbucket_job_status/8997836226429324640


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5318598053068800

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!
ccameron, have you had a chance to look into this?
This issue spontaneously resolved about a week later (Chromium Commit Position range: 428854 - 428914).

I don't see any changes in that range that seem to have been relevant. I suspect that this was entirely bogus. Just because I'm curious. I've kicked off bisect jobs to reproduce the original regression, and another to see when it got fixed.
Project Member

Comment 8 by 42576172...@developer.gserviceaccount.com, Dec 21 2016


===== BISECT JOB RESULTS =====
Status: failed


=== Bisection aborted ===
The bisect was aborted because Bisect cannot identify a culprit: 
Please contact the the team (see below) if you believe this is in error.

===== TESTED REVISIONS =====
Revision         Mean     Std Dev  N   Good?
chromium@428853  8264.5   20818.0  30  good
chromium@428884  10345.4  1333.86  30  unknown
chromium@428914  10465.7  1096.18  30  bad

Bisect job ran on: winx64ati_perf_bisect
Bug ID: 659052

Test Command: src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests blink_perf.canvas
Test Metric: draw-dynamic-webgl-to-hw-accelerated-canvas-2d/draw-dynamic-webgl-to-hw-accelerated-canvas-2d
Relative Change: 26.63%

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/winx64ati_perf_bisect/builds/1675
Job details: https://chromeperf.appspot.com/buildbucket_job_status/8992707570350521216


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5782984316157952

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!
Project Member

Comment 9 by 42576172...@developer.gserviceaccount.com, Dec 21 2016


===== BISECT JOB RESULTS =====
Status: failed


=== Bisection aborted ===
The bisect was aborted because Bisect cannot identify a culprit: 
Please contact the the team (see below) if you believe this is in error.

===== TESTED REVISIONS =====
Revision         Mean     Std Dev  N   Good?
chromium@426648  10611.3  976.109  30  good
chromium@426656  10526.3  1122.97  30  unknown
chromium@426663  10412.1  1341.2   30  bad
chromium@426678  10364.6  1963.68  30  bad
chromium@426708  8522.9   21013.8  30  bad

Bisect job ran on: winx64nvidia_perf_bisect
Bug ID: 659052

Test Command: src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests blink_perf.canvas
Test Metric: draw-dynamic-webgl-to-hw-accelerated-canvas-2d/draw-dynamic-webgl-to-hw-accelerated-canvas-2d
Relative Change: 19.68%

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/winx64nvidia_perf_bisect/builds/1983
Job details: https://chromeperf.appspot.com/buildbucket_job_status/8992707252559162432


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5905368738168832

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!
Status: Fixed (was: Untriaged)
Shrugs. Closing as fixed.
Project Member

Comment 12 by 42576172...@developer.gserviceaccount.com, Apr 11 2017

Cc: piman@chromium.org
Owner: piman@chromium.org

=== Auto-CCing suspected CL author piman@chromium.org ===

Hi piman@chromium.org, 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 : piman
  Commit : 02b9c4e04a6c4fbcee7d3a6902145a43110bff1e
  Date   : Tue Nov 01 00:29:01 2016
  Subject: Reduce GPU mailbox size to 16 bytes

Bisect Details
  Configuration: winx64ati_perf_bisect
  Benchmark    : blink_perf.canvas
  Metric       : draw-dynamic-webgl-to-hw-accelerated-canvas-2d/draw-dynamic-webgl-to-hw-accelerated-canvas-2d
  Change       : 19.86% | 8542.09803385 -> 10238.1755144

Revision             Result                  N
chromium@428853      8542.1 +- 798.473       6      good
chromium@428869      8751.11 +- 203.33       6      good
chromium@428877      8652.97 +- 168.873      6      good
chromium@428879      8781.34 +- 144.345      6      good
chromium@428880      8776.15 +- 131.786      6      good
chromium@428881      10388.9 +- 238.913      6      bad       <--
chromium@428884      10213.0 +- 520.416      6      bad
chromium@428914      10238.2 +- 150.078      6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests blink_perf.canvas

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8982592430037278704

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5782984316157952


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!

Sign in to add a comment