Issue metadata
Sign in to add a comment
|
40% regression in blink_perf.canvas at 528068:528137 |
||||||||||||||||||||
Issue descriptionSee the link to graphs below.
,
Jan 11 2018
Started bisect job https://chromeperf.appspot.com/buildbucket_job_status/8957695527210999360
,
Jan 11 2018
=== Auto-CCing suspected CL author xlai@chromium.org === Hi xlai@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 : xlai Commit : 95fadc78e3995e16f8f5d11707b05bf27abcff57 Date : Tue Jan 09 21:17:37 2018 Subject: Replace ImageBuffer with CanvasResourceProvider in OffscreenCanvas Bisect Details Configuration: android_webview_nexus6_aosp_perf_bisect Benchmark : blink_perf.canvas Metric : transferFromImageBitmap/transferFromImageBitmap Change : 41.84% | 7262.62223898 -> 4223.76742337 Revision Result N chromium@528067 7262.62 +- 257.559 6 good chromium@528102 7271.58 +- 271.967 6 good chromium@528111 7099.45 +- 577.739 6 good chromium@528113 7208.12 +- 408.233 6 good chromium@528114 4364.39 +- 149.587 6 bad <-- chromium@528116 4352.72 +- 98.5267 6 bad chromium@528120 4342.06 +- 203.887 6 bad chromium@528137 4223.77 +- 195.983 6 bad Please refer to the following doc on diagnosing blink_perf regressions: https://chromium.googlesource.com/chromium/src/+/master/docs/speed/benchmark_harnesses/blink_perf.md To Run This Test src/tools/perf/run_benchmark -v --browser=android-webview --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests blink_perf.canvas More information on addressing performance regressions: http://g.co/ChromePerformanceRegressions Debug information about this bisect: https://chromeperf.appspot.com/buildbucket_job_status/8957695527210999360 For feedback, file a bug with component Speed>Bisection
,
Jan 11 2018
It looks like switching AcceleratedImageBufferSurface to CanvasResourceProvider (kAcceleratedResourceUsage) causes the regression. I suspect that it's because the way Snapshot is taken is implemented differently between the two classes. In CanvasResourceProvider::Snapshot(), the AcceleratedStaticBitmapImage->RetainOriginalSkImageForCopyOnWrite() is not invoked. But this is invoked in AcceleratedImageBufferSurface::MakeNewSnapshot(). junov@: Do you have an idea of what this function RetainOriginalSkImageForCopyOnWrite is used for in this context?
,
Jan 11 2018
A direct switch from AcceleratedStaticBitmapImage to CanvasResourceProvider in SharedGpuContextTest.cpp will cause MailboxSharedGpuContextTest.MailboxCacheSurvivesSkiaRecycling unit test to fail. This implies that the cached gpu::Mailbox (https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/gpu/GraphicsContext3DUtils.h?l=41) is not made used in CanvasResourceProvider. So the GrTexture is being created over and over again, causing a preformance regression.
,
Jan 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/18d54b65156a1cbed1090b0b77773a87087c0e0b commit 18d54b65156a1cbed1090b0b77773a87087c0e0b Author: xlai <xlai@chromium.org> Date: Fri Jan 12 16:41:59 2018 Fix perf regression on replacing AcceleratedImageBufferSurface with CanvasResourceProvider AcceleratedImageBufferSurface::NewImageSnapshot() did call RetainOriginalSkImageForCopyOnWrite(), which is essential in triggering texture caching. CanvasResourceProvider::Snapshot() should do the same thing. Bug: 801140 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I1a3880d9db7b50c3b7cdf17a638608fd9628651a Reviewed-on: https://chromium-review.googlesource.com/862687 Commit-Queue: Olivia Lai <xlai@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Cr-Commit-Position: refs/heads/master@{#528968} [modify] https://crrev.com/18d54b65156a1cbed1090b0b77773a87087c0e0b/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp
,
Jan 15 2018
After my fix r528968 has been landed, the perf graphs reported in https://chromeperf.appspot.com/group_report?bug_id=801140 have all returned back to normal. So I'll mark this issue as fixed.
,
Jan 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/152957dd913e7f22712828839d237d38a9d9f10c commit 152957dd913e7f22712828839d237d38a9d9f10c Author: Chris Harrelson <chrishtr@chromium.org> Date: Tue Jan 23 00:37:14 2018 Fix perf regression on replacing AcceleratedImageBufferSurface with CanvasResourceProvider AcceleratedImageBufferSurface::NewImageSnapshot() did call RetainOriginalSkImageForCopyOnWrite(), which is essential in triggering texture caching. CanvasResourceProvider::Snapshot() should do the same thing. TBR=xlai@chromium.org (cherry picked from commit 18d54b65156a1cbed1090b0b77773a87087c0e0b) Bug: 801140 ,800071 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I1a3880d9db7b50c3b7cdf17a638608fd9628651a Reviewed-on: https://chromium-review.googlesource.com/862687 Commit-Queue: Olivia Lai <xlai@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#528968} Reviewed-on: https://chromium-review.googlesource.com/879745 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/branch-heads/3282@{#578} Cr-Branched-From: 5fdc0fab22ce7efd32532ee989b223fa12f8171e-refs/heads/master@{#520840} [modify] https://crrev.com/152957dd913e7f22712828839d237d38a9d9f10c/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Jan 11 2018