New issue
Advanced search Search tips

Issue 890224 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 878028



Sign in to add a comment

Move rasterization of SkiaVectorAnimation to worker threads

Project Member Reported by malaykeshav@chromium.org, Sep 28

Issue description

For phase 2 of implementing native Skottie on CrOS, we want to move the rasterization from the UI thread to the cc worker threads. This requires creating a PaintOp for the SkiaVectorAnimation class so that the animation can be stored in a PaintRecord to be sent to cc.

go/cros-skottie
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f45bb828a740421d700c398ef3e7e0e8e39dd9ba

commit f45bb828a740421d700c398ef3e7e0e8e39dd9ba
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Wed Oct 03 04:06:58 2018

Implement a thread safe wrapper for Skottie

This patch implements a thread safe wrapper for the core skottie
animation object. We want to share the same animation resource file for
multiple SkiaVectorAnimation objects. This would allow us to do that.

This is also needed to implement the Phase 2 and Phase 3 of
rasterization where the rasterization would be handled by different
threads.

go/cros-skottie

Bug:  890512 ,  890224 
Change-Id: I40371e58985ea4db5661f28a2ee8b31aab354a03
Component: Skia vector animation, skottie
Reviewed-on: https://chromium-review.googlesource.com/c/1253071
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596118}
[modify] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/BUILD.gn
[modify] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/skia_vector_animation.cc
[modify] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/skia_vector_animation.h
[modify] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/skia_vector_animation_unittest.cc
[add] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/skottie_wrapper.cc
[add] https://crrev.com/f45bb828a740421d700c398ef3e7e0e8e39dd9ba/ui/gfx/skottie_wrapper.h

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8479b804a212dda0ab0e6ccb9101f44a20ab6365

commit 8479b804a212dda0ab0e6ccb9101f44a20ab6365
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Wed Oct 17 20:26:01 2018

Move SkottieWrapper to cc paint

This patch moves the SkottieWrapper from ui/gfx to cc/paint. This is the
next step in moving the rasterization of skottie to worker threads.

Bug:  890224 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I2b5f47b60a11bfbc495bb260ad6003ced85d6fad
Component: cc, paint, gfx, views
Reviewed-on: https://chromium-review.googlesource.com/c/1285091
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600540}
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/cc/paint/BUILD.gn
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/cc/paint/DEPS
[rename] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/cc/paint/skottie_wrapper.cc
[rename] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/cc/paint/skottie_wrapper.h
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/gfx/BUILD.gn
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/gfx/skia_vector_animation.cc
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/gfx/skia_vector_animation.h
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/gfx/skia_vector_animation_unittest.cc
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/views/controls/animated_image_view.cc
[modify] https://crrev.com/8479b804a212dda0ab0e6ccb9101f44a20ab6365/ui/views/examples/animated_image_view_example.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf4ceef1f39ff2085106bd534668fc35426f79fc

commit cf4ceef1f39ff2085106bd534668fc35426f79fc
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Fri Oct 19 17:56:51 2018

Introduce a new PaintOp for Skottie

This patch introduces a new PaintOp for Skottie objects. This PaintOp
currently does not support serialization/deserialization. This is
needed to move the rasterization of skottie onto the worker threads.
This patch also introduces a new API in PaintCanvas to accept the new
PaintOp.

           SkiaPaintCanvas

Bug:  890224 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I989cafc066f1b43ee4d497a3fa204fc2a7fa90e0
Component: PaintOp, PaintCanvas, RecordPaintCanvas,
Reviewed-on: https://chromium-review.googlesource.com/c/1278350
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601220}
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/paint_canvas.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/paint_op_buffer.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/paint_op_buffer.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/paint_op_buffer_unittest.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/record_paint_canvas.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/record_paint_canvas.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/skia_paint_canvas.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/skia_paint_canvas.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/skottie_wrapper.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/paint/solid_color_analyzer.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/test/paint_op_helper.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/test/skia_common.cc
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/cc/test/skia_common.h
[modify] https://crrev.com/cf4ceef1f39ff2085106bd534668fc35426f79fc/third_party/blink/renderer/platform/graphics/test/mock_paint_canvas.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/00d6281c163ceb4cd3d36b56f62e9c9f659c2c42

commit 00d6281c163ceb4cd3d36b56f62e9c9f659c2c42
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Sun Oct 21 03:52:37 2018

Add API in gfx::Canvas for Skottie

This patch adds an API to gfx::Canvas to draw skottie directly on the
backing canvas. It also removes the bitmap rasterization of each
animation frame from the ui thread and offloads it to cc.

Bug:  890224 
Change-Id: Ibf8d9b682428be26c12caa4cccaae9bd53bb255a
Component: gfx, canvas, skia vector animation
Reviewed-on: https://chromium-review.googlesource.com/c/1292527
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601419}
[modify] https://crrev.com/00d6281c163ceb4cd3d36b56f62e9c9f659c2c42/ui/gfx/canvas.cc
[modify] https://crrev.com/00d6281c163ceb4cd3d36b56f62e9c9f659c2c42/ui/gfx/canvas.h
[modify] https://crrev.com/00d6281c163ceb4cd3d36b56f62e9c9f659c2c42/ui/gfx/skia_vector_animation.cc

Status: Fixed (was: Started)

Sign in to add a comment