History log of /frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5a663768c463d70fa8ff0bc3080e178c16241a07 23-Apr-2018 Leon Scroggins III <scroggo@google.com> Use filtering when drawing nine-patches

Bug: 77917978
Test: Look at toggles; CtsUiRenderingTestCases

Prior to this change, the toggles look pixelated due to using a
"nearest" filter instead of a "bilerp".

This matches the behavior of the hwui renderer.

Depends on changes in Skia (Ib7d0abdd51981bddf36ec5c3fd84bb651f405f0f)
to respect the filter quality when drawing to a GPU canvas and to
remove the resulting "bleeding" effect from drawImageLattice.

Change-Id: I59d81a17f351e18574539479a38a580a02e1619b
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
cebb647802c66ad2e6358a02e98d79986c784260 02-Mar-2018 Stan Iliev <stani@google.com> kClear blend mode is drawn as kDstOut

kClear blend mode is drawn as kDstOut on hardware canvas for
compatibility with Android O and older.
On SDK released with Android P, the kClear blend mode is respected.

Bug: 71602378
Test: Ran Flo app
Change-Id: I6b0fa8b8bf5aa14aa5a351a914bf2ed0469ac660
(cherry picked from commit f9a461feafded09a0949f5acfd42187dc857a823)
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
65e678fdb1375fe183e628ff158f66b2f04331d0 07-Feb-2018 Stan Iliev <stani@google.com> Cache VectorDrawable bounds at record time

Cache VectorDrawable bounds at record time, because the same
drawable object may be used several times with different bounds.

Bug: 71737362
Test: Wrote a new unit test, tried sample app attached to the bug
Change-Id: If7be934acf0c16b328cb0f95d849e463dcd3b88b
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
2d14213849d6df70d0fa80319ab4ffc08743a683 22-Jan-2018 Derek Sollenberger <djsollen@google.com> Initial implmentation of AnimatedImageDrawables on the RenderThread.

The current implementation schedules the next frame of the images
to be decoded after the current frame completes but potentially
schedules tasks that will result in a no-op execution if a new
frame is not yet needed.

Test: HwAccelerationTest
Change-Id: I0510cb5a1b801abd651327e924deb586af0306d6
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
e12d7315dd921301a18935d4c78119716753c30f 04-Dec-2017 Stan Iliev <stani@google.com> Enable fast drawing for solid color nine patch rectangles

Pass a hint to Skia, about which lattice rectangles are solid
color rectangles.

Bug: 69796044
Test: Measured ninepatch performance using sample app from the bug
Change-Id: Ib07b1b64c78ab16195f9af88a989d28682084565
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
4eb214459f418122f3f6711c53174ef057b60d98 09-Nov-2017 Derek Sollenberger <djsollen@google.com> Fix bug in View system recording where Skia dropped the colorFilter.

Test: CtsUiRenderingTestCases added ColorFilterTests::testColorMatrix
Bug: 69071705
Change-Id: I45268c9a40e47d44045d795ccb772ea93c3e699d
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
1bcacfdcab0eaa0cee92bd7f5a1b5e271dd68e52 03-Nov-2017 John Reck <jreck@google.com> Format the world (or just HWUI)

Test: No code changes, just ran through clang-format
Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
6c2a9e2bc1759ae7eefc973941e8a6fc6b3e912c 15-Aug-2017 Derek Sollenberger <djsollen@google.com> Use the faster path when calling drawImageRect.

Bug: 64487466
Test: CtsGraphicsTestCases, CtsUiRenderingTestCases
Change-Id: Ib2312598b50d402b1749d62a10c6ec343eff5b89
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
fa3e340431cc8168d960e719a596bca31dcccb38 04-Aug-2017 Derek Sollenberger <djsollen@google.com> Use colorFilters when rendering to an sRGB bitmap.

Bug: 62347704
Test: CtsUiRenderingTestCases, CtsGraphicsTestCases, hwui_unit_tests
Change-Id: I3e237b64cd92217b02d4995bdd695a28d3f393ee
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
a7f6af2c51e70a3ff84bd3a8274f372bccfef8d0 02-Aug-2017 Derek Sollenberger <djsollen@google.com> Revert "Use colorFilters when rendering to an sRGB bitmap."

This reverts commit b851b197497783f894b72edcaed8f93d035ddea0.

Change-Id: I5bb8fe9bf9f5d411674e289c467b3f569f7bb068
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
b851b197497783f894b72edcaed8f93d035ddea0 01-Aug-2017 Derek Sollenberger <djsollen@google.com> Use colorFilters when rendering to an sRGB bitmap.

Bug: 62347704
Test: CtsUiRenderingTestCases, CtsGraphicsTestCases
Change-Id: I55a574ffd9305588b82345a598da7818952a131d
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
d1cc7910c446913540d9d0838e84630f78b6543e 28-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix SurfaceTexture CTS test case when using the Skia pipeline."
fb0c8fc3d5413a3ec357680d85084a17bb9ef64f 26-Jul-2017 Derek Sollenberger <djsollen@google.com> Enable colorspace conversion while perserving legacy blending.

When requesting an SkImage from a android::Bitmap we will also
return a colorFilter that will perform the sRGB conversion at draw
time.

Bug: 62347704
Test: CtsUiRenderingTestCases, CtsGraphicsTestCases, CtsViewTestCases
Change-Id: Icc4694e2c42605e29fcc834c252bc21263bac658
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
f5a370e097eb5bc29198dc53f956ba07f72842e5 15-Jun-2017 Derek Sollenberger <djsollen@google.com> Fix SurfaceTexture CTS test case when using the Skia pipeline.

Test: UiRendering CTS TextureViewTests#testReuseSurfaceTexture
Change-Id: Iaf665b88b83cacfbbd37c93aaebc64e937053cb7
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
7bc3bc6028d0c7b16fec72c3922fc627c8657951 24-May-2017 Stan Iliev <stani@google.com> Implement HW Bitmap for Skia pipeline

Implement HW Bitmap for Skia pipeline. Use new Skia
SkImage::MakeFromAHardwareBuffer API, which will enable to
record HW Bitmap into a picture. Move logic that uploads
SkBitmap into a GraphicBuffer into pipeline specific classes.

Test: All CTS and other tests pass for HWUI pipleine. For Skia
pipeline graphics CTS tests pass, 2 UIRendering CTS tests which
excise HW bitmaps with color spaces fail, bitmapShaderEglImage
macrobench fails (to be fixed by a CL in Skia), HWUI unit tests
pass, no EGL leaks found.

Change-Id: Id5926d7cccd81af8b55400f44fb524a427543d05
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
0cc4e36e10e5e03e2b7e9a249745c2ec845a2623 18-May-2017 Stan Iliev <stani@google.com> Fix a crash in Canvas.drawBitmap if empty dest rect is passed

Fix a crash in Canvas.drawBitmap if an empty dest or source rect
is passed. This issue is specific to Skia pipeline only.

Test: Ran hwui unit tests and verified nexuslauncher is not
crashing anymore.

Change-Id: I3f9f96d03541e960d463836200d2b01269b5e008
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
59069e00a8965cb67350e95f32d62c31d6bf010e 17-May-2017 John Reck <jreck@google.com> Revert "Fix recent apps in system UI for Skia pipeline"

This reverts commit b33013fb3c570e0a3ced8729dced9f0d294761a6.

Reason for revert: Caused a memory leak, b/38330767
Bug: 38136140
Bug: 38330767
Test: manual, verified memory isn't leaking doing the steps in b/38330767

Change-Id: I98b2dfd750be57a15785808e2d5723616e2ce20a
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
b33013fb3c570e0a3ced8729dced9f0d294761a6 06-May-2017 Stan Iliev <stani@google.com> Fix recent apps in system UI for Skia pipeline

Enable HW Bitmaps for Skia pipeline just enough to make
recent apps list working by adding support for BitmapShader.
Drawing HW bitmaps in a canvas is also supported.

Test: recent apps work, HWUI unit tests pass, CTS tests pass.
bug: 38136140
Change-Id: Ibd06c859c86dc213310d5ce5272497e1882d0cc6
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
f7aa6cdca1d2cdaeb0806b1c004a8ce302d17621 30-Mar-2017 Stan Iliev <stani@google.com> Add comments to clarify how SkDrawable dtor is called

Document the 3 variants of SkDrawable object lifetime in
SkiaRecordingCanvas:
- The only drawable that is using ref couting to delete itself is
"LayerDrawable"
- 2 other drawables (RenderNodeDrawable and GLFunctorDrawable) are
deleted by std::deque
- the rest are deleted by ~LinearAllocator

bug: 36717955
Test: built and ran on device
Change-Id: I16f7f6573f6e4dc8d665f58d051255d40b1b690d
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
23c38a9ed9c28a9fda438e7d30532aad7a3844f7 23-Mar-2017 Stan Iliev <stani@google.com> Update VectorDrawables cache at frame start

Draw VectorDrawables in GPU backed surface. Render VD cache
at the beginning of the frame to avoid context switching.

Test: CTS graphics tests pass.
Change-Id: Ia14e0ec4049c3fa87f03547fbda44043bf8dd793
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
ea1fe9b9d6ff9f0a543489979a0a909acc9ea564 01-Mar-2017 Derek Sollenberger <djsollen@google.com> Update SkiaDisplayList to use the modified SkLiteDL

SkLiteDL is no longer refcounted or a subclass of SkDrawable.

Test: on device testing in SkiaGL mode
Change-Id: I9ad53d764a26ab382d80d54908325962f2075802
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
ee708facf127f2e8bed5970d5c05fa823fcfc1ce 12-Dec-2016 Leon Scroggins III <scroggo@google.com> Remove unnecessary dependency, and fix the chain

Test: No new tests. This should not affect behavior; only dependencies.

Font.h does not need to include SkGlyphCache.h, and doing so requires
a transitive dependency on external/skia/src/utils, which was not
intended. Forward declare it instead, and fix the build errors that
resulted.

Change-Id: Ifd09430bb848d51b139df0f0c06c63e7e48711eb
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
88e0891f6657573a5ad918c2d76d6c02bb8ceba3 23-Nov-2016 Stan Iliev <stani@google.com> Fix draw order for non-RenderNode draw commands

Fix a drawing order issue in Skia pipeline. Add unit test in both
HWUI and Skia to test the fix.

Test: built and ran on angler-eng and HWUI unit tests passed.
Bug: 32506749
Change-Id: I7f13457726a8664f18a46aca2279b876acec2944
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
db45a4bfaff1120a9b23073e46a0cc6d39f56023 08-Nov-2016 Stan Iliev <stani@google.com> Fix Skia render node projection to match HWUI

Fix Skia render node projection to match HWUI. Port
FrameBuilderTests_projectionReorder test for Skia pipeline.
Add new tests in both HWUI and Skia to cover more projection
use cases.

Test: built and run on angler-eng
Change-Id: Ibf27af211452ae95d595aca7723ea63f48b0b282
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
b7d34b64dd32e3d84bd43344c9c3d9ad098129af 04-Nov-2016 Derek Sollenberger <djsollen@google.com> Refactor pin/unpinImages to work across pipelines.

Test: existing CTS tests still pass
Change-Id: Ib2607e9853396bad42f298829b5c5da0d210af32
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
2f06e8ad1a1c4d0866bb66854d2759e275898635 02-Nov-2016 Stan Iliev <stani@google.com> Fix RenderNodeDrawable to draw nonzero Z nodes when needed

Fix RenderNodeDrawable to draw nonzero Z nodes if not in a reordering
section.
Write an unit test modeled after FrameBuilder zReorder, which
verifies the bug fix.

Test: built and run unit tests on angler-eng.
bug: 32541103
Change-Id: Ifbf2d51f4432f5de3af4abe5987c2a72fed14185
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
021693b967a2c5556dddd183eb0247df4079e1ad 17-Oct-2016 Stan Iliev <stani@google.com> Implement SkiaRecordingCanvas, RenderNodeDrawable and other drawables.

Implement SkiaRecordingCanvas, RenderNodeDrawable, GLFunctorDrawable,
LayerDrawable, StartReorderBarrierDrawable, EndReorderBarrierDrawable.
Move AnimatedRoundRect and AnimatedCircle in a separate file.
All Skia pipeline files are moved in hwui/pipeline/skia folder.
Add unit tests for RenderNodeDrawable, StartReorderBarrierDrawable,
EndReorderBarrierDrawable and SkiaRecordingCanvas.

Test: I tested manually on 6P devices and did run the unit tests.
Change-Id: If2a347bd1fc4689953822294ce5bf98c7f3f57c7
/frameworks/base/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp