New issue
Advanced search Search tips

Issue 837297 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2018
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug-Regression



Sign in to add a comment

36KB regression in resource_sizes (MonochromePublic.apk) at 553815:553815

Project Member Reported by mheikal@google.com, Apr 26 2018

Issue description

Caused by “SkiaRenderer: Add SkiaOutputSurface to allow SkiaRenderer to use SkDDL”

Commit: b0478d0c86e6c90c497a8c3cffd0dc4077ae0efa

Link to size graph: https://chromeperf.appspot.com/report?sid=a097e74b1aa288511afb4cb616efe0f95ba4d347ad61d5e835072f23450938ba&num_points=10&rev=553815

Debugging size regressions is documented at: https://chromium.googlesource.com/chromium/src/+/master/docs/speed/apk_size_regressions.md#Debugging-Apk-Size-Increase

Based on the graph: 36kb of native code.


It's not clear to me whether or not this increase was expected.
Please have a look and either:

Close as “Won't Fix” with a short justification, or
Land a revert / fix-up.
 
Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Apr 26 2018

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=837297

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


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

Android Builder Perf
Project Member

Comment 2 by 42576172...@developer.gserviceaccount.com, Apr 26 2018

Assigning to penghuang@chromium.org because this is the only CL in range:
SkiaRenderer: Add SkiaOutputSurface to allow SkiaRenderer to use SkDDL

This CL adds a new interface viz::SkiaOutputSurface which extends
viz::OutputSurface for SkiaRenderer to support compositing with SkDDL
(skia deferred display list). SkiaRenderer draws quads into a DDL SkCanvas,
and draw operations will be recorded into a DDL.
In OutputSurface::SwapBuffers(), a GPU task will be scheduled with
gpu::Schduler. The task will be executed on the GPU thread when all resource
sync tokes are satisfied. The task will play the DDL back on a GrContext
which is backed by a native platform GL context.

We have a goal to use SkiaRenderer everywhere, and remove GLRenderer and
Software Compositor. The new viz::SkiaOutputSurface interface and
viz::OutputSurface interface will be merged into one interface when DirectRenderer
subclasses are removed. The new interface is for making development
faster because when we change methods in viz::SkiaOutputSurface, we will not break
all other existing OutputSurface implementations.

Bug:  824382 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I776a76dc8496d40f88950856867596f5c44f735f
Reviewed-on: https://chromium-review.googlesource.com/978366
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553815}
Labels: OS-Android
Section Legend: t=.text, r=.rodata, R=.data.rel.ro, d=.data, b=.bss, x=.dex, m=.dex.method, p=.pak.translations, P=.pak.nontranslated, o=.other
Index | Running Total | Section@Address | Δ PSS (Δ size_without_padding) | Path
------------------------------------------------------------
+ 0)       8664 (23.1%) t@0x8537d8   8664 (0->8664)     third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp
               GrGLMakeAssembledGLESInterface
+ 1)      16800 (44.8%) t@0x8559b0   8136 (0->8136)     third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp
               GrGLMakeAssembledGLInterface
~ 2)      20188 (53.8%) o@0x0        3388 (0->0)        {no path}
               Overhead: APK file
~ 3)      21683 (57.8%) o@0x0        1495 (0->0)        {no path}
               Overhead: ELF file
+ 4)      22543 (60.1%) t@0x8dc988   860 (0->860)       third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp
               SkDeferredDisplayListRecorder::init
~ 5)      23251 (62.0%) o@0x0        708 (1960448->1961156) base/trace_event/cfi_backtrace_android.cc
+ 6)      23795 (63.4%) t@0x876f2c   544 (0->544)       third_party/skia/src/image/SkImage_Gpu.cpp
               SkImage_Gpu::MakePromiseTexture
+ 7)      24319 (64.8%) t@0xef94fc   524 (0->524)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::ReshapeOnGpuThread
+ 8)      24777 (66.0%) t@0xf05ed8   458 (0->456)       components/viz/service/gl/gpu_service_impl.cc
               viz::GpuServiceImpl::CreateGrContextIfNecessary
+ 9)      25225 (67.2%) t@0xef904c   448 (0->448)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::InitializeOnGpuThread
+ 10)     25615 (68.3%) t@Group      390 (0->390)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::~SkiaOutputSurfaceImpl (count=2)
+ 11)     25967 (69.2%) t@0x87798c   352 (0->352)       third_party/skia/src/image/SkImage_Gpu.cpp
               PromiseImageHelper::getTexture
+ 12)     26263 (70.0%) t@0xef920c   296 (0->296)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::Reshape
+ 13)     26551 (70.8%) t@0xeedc82   288 (0->288)       components/viz/service/display/skia_renderer.cc
               std::__ndk1::__split_buffer<>::emplace_back<>
+ 14)     26839 (71.5%) t@0xeeaf74   288 (0->288)       components/viz/service/display/skia_renderer.cc
               viz::SkiaRenderer::ScopedSkImageBuilder::ScopedSkImageBuilder
+ 15)     27117 (72.3%) t@0xef9744   278 (0->276)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::MakePromiseSkImage
+ 16)     27389 (73.0%) t@0x8dc7a6   272 (0->272)       third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp
               SkDeferredDisplayListRecorder::SkDeferredDisplayListRecorder
+ 17)     27651 (73.7%) t@0xef9880   262 (0->260)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::SkiaSwapBuffers
+ 18)     27901 (74.4%) t@0xed7f04   250 (0->248)       components/viz/service/display/display.cc
               viz::Display::Display
+ 19)     28145 (75.0%) t@0xeedb18   244 (0->244)       components/viz/service/display/skia_renderer.cc
               std::__ndk1::vector<>::emplace<>
- 20)     27903 (74.4%) t@0x0        -242 (240->0)      components/viz/service/display/display.cc
               viz::Display::Display
+ 21)     28131 (75.0%) t@0xef8f68   228 (0->228)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               viz::SkiaOutputSurfaceImpl::BindToClient
+ 22)     28353 (75.6%) t@0xeeb134   222 (0->220)       components/viz/service/display/skia_renderer.cc
               viz::SkiaRenderer::SkiaRenderer
+ 23)     28569 (76.2%) t@0xef9334   216 (0->216)       components/viz/service/display_embedder/skia_output_surface_impl.cc
               SkSurfaceCharacterization::createResized const
+ 24)     28779 (76.7%) t@0x8dc8b6   210 (0->210)       third_party/skia/src/core/SkDeferredDisplayListRecorder.cpp
               SkDeferredDisplayListRecorder::~SkDeferredDisplayListRecorder
- 25)     28581 (76.2%) t@0x0        -198 (196->0)      components/viz/service/display/skia_renderer.cc
               viz::SkiaRenderer::SkiaRenderer
+ 26)     28773 (76.7%) t@0xd5cf84   192 (0->192)       cc/resources/display_resource_provider.cc
               cc::DisplayResourceProvider::LockForExternalUse


******************************Resource Sizes Diff******************************
MonochromePublic.apk_Breakdown (+37,278 bytes)
    +3,388 bytes Zip Overhead
      +708 bytes unwind_cfi (dev and canary only) size
   +33,184 bytes Native code size
        -2 bytes Package metadata size
MonochromePublic.apk_Specifics
   +36,570 bytes normalized apk size
   +33,184 bytes main lib size

Status: WontFix (was: Assigned)
This is expected. And in future, we will use SkiaRenderer + SkiaDDL to replace all other DirectRenderer subclasses and Software compositing related code. It will reduce resource size in the long run.

Sign in to add a comment