New issue
Advanced search Search tips

Issue 684483 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

57.6% regression in smoothness.gpu_rasterization_and_decoding.image_decoding_cases at 445267:445282

Project Member Reported by toyoshim@chromium.org, Jan 24 2017

Issue description

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

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgIDg0PLQ8AsM


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

chromium-rel-win7-gpu-intel
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Jan 24 2017

Cc: brianosman@google.com
Owner: brianosman@google.com

=== Auto-CCing suspected CL author brianosman@google.com ===

Hi brianosman@google.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 : Brian Osman
  Commit : 8ccbbb455c6ef194920c47e846b95b50f5017138
  Date   : Fri Jan 20 20:26:59 2017
  Subject: Remove SkImage::MakeTextureFromPixmap

Bisect Details
  Configuration: winx64intel_perf_bisect
  Benchmark    : smoothness.gpu_rasterization_and_decoding.image_decoding_cases
  Metric       : frame_times/frame_times
  Change       : 44.38% | 21.3299485829 -> 30.7955606252

Revision                             Result                  N
chromium@445266                      21.3299 +- 1.68972      6      good
chromium@445274                      20.9677 +- 1.27125      6      good
chromium@445275                      21.3474 +- 2.27543      6      good
chromium@445275,skia@34c69d6347      21.4449 +- 1.35986      6      good
chromium@445275,skia@f833215420      21.4869 +- 2.81312      6      good
chromium@445275,skia@aaedae7acb      21.51 +- 2.05677        6      good
chromium@445275,skia@5b2f579331      21.3526 +- 2.06771      6      good
chromium@445275,skia@8ccbbb455c      30.2272 +- 2.00632      6      bad       <--
chromium@445276                      30.1837 +- 1.97545      6      bad
chromium@445278                      30.8411 +- 2.63358      6      bad
chromium@445282                      30.7956 +- 1.99862      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 smoothness.gpu_rasterization_and_decoding.image_decoding_cases

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

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


| 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!
Cc: bsalo...@google.com cblume@chromium.org
I'm skeptical of this result. Chris, the test is explicitly making sure to draw JPG sources, as it's attempting to test GPU accelerated YUV conversion, right? Is it also going to be going through getDeferredTextureImageData (doing the JPG decode there) + MakeFromDeferredTextureImageData?

If so, it's not doing GPU YUV conversion anyway. If not, then I don't see how my change impacted the test.

Comment 5 by cblume@google.com, Jan 24 2017

I'm not sure what is causing this. In SkImage_Gpu.cpp I see the removal of

if (mipLevelCount == 1) {
    return SkImage::MakeTextureFromPixmap(...);
} else {
    return SkImage::MakeTextureFromMipMap(...);
}

It now always calls MakeTextureFromMipMap().


But calls to MakeTextureFromPixmap would end up calling into the same code path that generated mipmaps anyway. Maybe there is a subtle difference in there? Maybe something is different in the descriptor causing a different execution path??

I don't see anything jumping out at me though.
I couldn't repro this result locally (on Windows) - reverting the Skia commit had no impact on that test. bsalomon also tested on Linux - same result. Can we re-run the bisect?
I kicked off another bisect. Note that this only occurs on one of our many Windows configs, so it might be hardware-specific somehow?
Project Member

Comment 10 by 42576172...@developer.gserviceaccount.com, Jan 24 2017


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

Suspected Commit
  Author : Brian Osman
  Commit : 8ccbbb455c6ef194920c47e846b95b50f5017138
  Date   : Fri Jan 20 20:26:59 2017
  Subject: Remove SkImage::MakeTextureFromPixmap

Bisect Details
  Configuration: winx64intel_perf_bisect
  Benchmark    : smoothness.gpu_rasterization_and_decoding.image_decoding_cases
  Metric       : frame_times/frame_times
  Change       : 51.75% | 17.5461843568 -> 26.6260923977

Revision                             Result                   N
chromium@445266                      17.5462 +- 0.555079      6      good
chromium@445274                      17.578 +- 0.852159       6      good
chromium@445275                      17.5932 +- 0.837124      6      good
chromium@445275,skia@34c69d6347      17.7965 +- 0.472788      6      good
chromium@445275,skia@f833215420      17.4616 +- 0.546898      6      good
chromium@445275,skia@aaedae7acb      17.5274 +- 0.526185      6      good
chromium@445275,skia@5b2f579331      17.4774 +- 0.816344      6      good
chromium@445275,skia@8ccbbb455c      28.0954 +- 1.57113       6      bad       <--
chromium@445276                      28.4022 +- 2.08807       6      bad
chromium@445278                      27.658 +- 2.31756        6      bad
chromium@445282                      26.6261 +- 2.76838       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 smoothness.gpu_rasterization_and_decoding.image_decoding_cases

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

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


| 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 11 by 42576172...@developer.gserviceaccount.com, Jan 24 2017


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

Suspected Commit
  Author : Brian Osman
  Commit : 8ccbbb455c6ef194920c47e846b95b50f5017138
  Date   : Fri Jan 20 20:26:59 2017
  Subject: Remove SkImage::MakeTextureFromPixmap

Bisect Details
  Configuration: winx64intel_perf_bisect
  Benchmark    : smoothness.gpu_rasterization_and_decoding.image_decoding_cases
  Metric       : frame_times/frame_times
  Change       : 60.41% | 17.5655334915 -> 28.1768251874

Revision                             Result                   N
chromium@445266                      17.5655 +- 1.16856       6      good
chromium@445274                      17.647 +- 1.02018        6      good
chromium@445275                      17.4225 +- 0.43222       6      good
chromium@445275,skia@34c69d6347      17.6727 +- 0.758674      6      good
chromium@445275,skia@f833215420      17.7588 +- 0.198371      6      good
chromium@445275,skia@aaedae7acb      17.7519 +- 0.612855      6      good
chromium@445275,skia@5b2f579331      17.3627 +- 0.796117      6      good
chromium@445275,skia@8ccbbb455c      27.5203 +- 1.7746        6      bad       <--
chromium@445276                      28.9684 +- 2.29027       6      bad
chromium@445278                      27.9208 +- 2.47891       6      bad
chromium@445282                      28.1768 +- 1.92668       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 smoothness.gpu_rasterization_and_decoding.image_decoding_cases

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

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


| 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!
I can't explain this at all. Like Chris said, the function I removed/changed previously just funneled to the same place. Regardless, I've reverted the Skia change so we can see if it fixes the problem once the current roll lands.
If the revert "fixes" the regression, as a next step you can run on the same devices we bisected on using perf trybots (it is winx64intel): https://www.chromium.org/developers/telemetry/performance-try-bots
Status: Fixed (was: Untriaged)
The revert fixed it. I'll find a way to do this that doesn't incur the regression.
Labels: Performance-Responsiveness

Sign in to add a comment