551d08e2d50c7f73c5eb65fd366b92efba4f0ed5 |
|
20-Apr-2018 |
Derek Sollenberger <djsollen@google.com> |
Respect a Layer's (e.g. SurfaceTexture) colorSpace when compositing This CL extracts the android_dataspace from the GLConsumer and converts it to a SkColorSpace. HWUI always expects to composite into an sRGB destination so when we draw the layer we run the draw through a colorFilter that converts the input colorSpace into that of the destination. Test: CtsViewTestCases Bug: 78016220 Merged-In: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b Change-Id: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
92a9eb9713f7bde9897de648604c74e0df25cd6e |
|
12-Apr-2018 |
Derek Sollenberger <djsollen@google.com> |
Unpin bitmaps but don't purge all scratch resources. This is a partial revert of b1f27aae89a9da9fbf3cb15a47f1a401db5a7974. Test: hwui_unit_tests Bug: 77654081 Change-Id: I5a58c156a280edfe3e9973ac3a8a30c97a2cff8b
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
216b1572b46ecb1225c8b1a904d7f98e2e6c4b01 |
|
26-Mar-2018 |
Stan Iliev <stani@google.com> |
Better error reporting for createOrUpdateLayer Pass error handler down to the pipeline object, which allows skia pipelines to print cache memory usage. In case of an error, print arguments that were used to invoke SkSurface::MakeRenderTarget. Test: Ran android build on a device Bug: 76115654 Change-Id: I5baddfa66debd505eddc3117cf94aa6ae69bedaa
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
aadc0320454d9094899c0e9cfdf33a14938707b8 |
|
23-Mar-2018 |
Stan Iliev <stani@google.com> |
Clear the frame buffer for F16 pixel format This is a workaround for Qualcomm bug and should be reverted after a proper fixed is found. Bug: 74976293 Test: Ran Photo app Change-Id: I9e0a4634f02c3553635f058eb588b510a63273ba
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
5b7f426ff04820f81877ccb696bf6245dede89e7 |
|
26-Jan-2018 |
Leon Scroggins III <scroggo@google.com> |
Use a separate thread to decode AnimatedImageDrawable Bug: 63908092 Test: Manual: Ie18811ba29a1db163aca08472b04ae185e9344f0 Depends on https://skia-review.googlesource.com/#/c/skia/+/101544. That change removes the Skia class's time checks, and leaving it up to the client to keep track of the time. In this case, the client wants to keep track of the time because it only wants to update while it is being drawn. If it goes off screen (for example), it will just resume where it left off when it returns on screen. This allows for smooth animations. If an AnimatedImageDrawable is being drawn to a SkiaRecordingCanvas, decode on the new (lazily-created) AnimatedImageThread. When running, always decode one frame ahead on the AnimatedImageThread so that it will be ready when it is time to display. During prepareTree, update the time and check whether there is a new frame ready to draw or the next frame needs to be decoded. In either case, return true. The next frame to be decoded will be triggered by onDraw. Change-Id: If447976e9df417060a950f658dbca9cf7980dd02
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.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/SkiaPipeline.cpp
|
ebf96fbed70176625d0a1102bfce958e47244ec0 |
|
13-Dec-2017 |
Mike Reed <reed@google.com> |
SkPixelSerialize is deprecated (and unneeded in this case) Test: make Change-Id: Icc421586de82a516cb5e32b60949315d1108a9a3
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
03e6cff7a6b20d68babc0b90b15112561360f17f |
|
04-Dec-2017 |
Derek Sollenberger <djsollen@google.com> |
Allocate textures in multiples of LAYER_SIZE. This matches the behavior of the old HWUI renderer and avoids jank when trying to release a series of small textures. Test: UiBenchJankTests #testResizeHwLayer Bug: 69566781 Change-Id: Idc01f8438e85d4810032fd30a141132a6cdd47a1
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.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/SkiaPipeline.cpp
|
30dfc68a9ff17da03431fb4da2ae43366b22e965 |
|
21-Oct-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Convert skpCaptureEnabled compile time flag into a property"
|
e9d0012bbf8077c1b7e09e44ae30e7873eb7ac31 |
|
19-Sep-2017 |
Stan Iliev <stani@google.com> |
Convert skpCaptureEnabled compile time flag into a property Convert SkiaPipeline::skpCaptureEnabled into a system property. Add ability to capture drawing in layers. Add ability to capture animations/sequence of frames. Fix crash when recording a TextureView. Test: Ran capture script. Change-Id: I463eecf6ec90a601a6cc172ad1901bd4bcc86ac8
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
47fed6ba6ab8a68267a9b3ac6cb9decd4ba122ed |
|
18-Oct-2017 |
Stan Iliev <stani@google.com> |
Fix crash in "Tree::updateBitmapCache" Fix crash caused by updating vectordrawable cache for objects from previous frames, which may have been deleted. Bug: 67940327 Test: Ran CtsUiRenderingTestCases test Change-Id: I4466235e78e9b7937a0d4428240574d9e3d0989f
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
232f3628bca9b07a3c6a815f0540c29df29b6f85 |
|
23-Aug-2017 |
Stan Iliev <stani@google.com> |
Unpin images when skia pipeline object is destroyed Unpin images when skia pipeline object is destroyed. This fixes an assert in skia ~SkImage_Raster. Test: Built and ran Android on a device. Bug: 66730647 Change-Id: I73603efd4fc2ca584cdb8f6a4774e48a187f6787
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
8ec9e88cdae4febf9ca9ff9d575b9add0a19409d |
|
24-Aug-2017 |
Derek Sollenberger <djsollen@google.com> |
Enable multi-threading of cpu intensive tasks when using Skia pipelines Test: CtsUiRenderingTestCases Change-Id: Ifa36371f55d3f2d78faf0a23fb283c904ff1af5f
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
f7df184fa19391dea5df7377fb7f5cbc6a51e5c1 |
|
05-Sep-2017 |
Derek Sollenberger <djsollen@google.com> |
Only flush after all layers are drawn instead of after each layer. This approach avoids paying for any extra overhead in flushing commands from Skia to the GPU. Test: LauncherJankTests#testOpenAllAppsContainer Change-Id: Ie4be3592d1b032a06d848c994b8be435638d24c8
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
7fe53c1eafff36118d9d6116496d7649b5a3f89d |
|
31-Aug-2017 |
Derek Sollenberger <djsollen@google.com> |
Render VectorDrawables in software and then upload to the VDAtlas. For frames with multiple VDs the context switching involved was causing worst case frame times of ~40ms to draw all VDs in the frame whereas this new approach has worst case performance of ~5ms when drawing the same frame (w/ approximately 26 VDs). Bug: 64487466 Test: SystemUiJankTests#testGoToFullShade Change-Id: I5cad0b5df86e5eac3722ee8695fc7511b38b8a7c
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
9552c2c98c8d9a5a47ec463a2f29e5aa32f774bb |
|
31-Aug-2017 |
Derek Sollenberger <djsollen@google.com> |
Adding traces and some generic cleanup. Test: CtsUiRenderingTestCases Change-Id: I6863eca20bf6ca2d17e9867c3c3ac12cb35dc809
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
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/SkiaPipeline.cpp
|
08fc19af877ea4e2aed216facd469d2bd13b013e |
|
24-Jul-2017 |
Stan Iliev <stani@google.com> |
Use F16 render target when wide color rendering is enabled Support F16 render targets in Skia pipeline. Enable readback from F16 surface. Test: device boots with Skia pipeline Change-Id: Ib31e618be1a987de3736987a496c799693923594
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
5c936fcfd3b7e330aeb0f3158529fb65f02c13e0 |
|
19-Jul-2017 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Fix incorrect asserts"
|
3310fb1b24c6cdd0781674fab69e359caf9d17e5 |
|
23-Mar-2017 |
Stan Iliev <stani@google.com> |
Cache VectorDrawables in an atlas Optimize VectorDrawables for Skia pipeline: draw small VectorDrawables in a GPU atlas instead of seprate offscreen buffers. This implementation is using CacheManger and allows for the atlas to be released if there is a memory pressure. Test: A new unit test for VectorDrawableAtlas is passing. Systrace shows 0.5ms faster DrawFrame for fling in Settings app main screen. Change-Id: Ide3884eefae777e1547f1dfdb67b807185839fb4
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
18b388d67b041d0a12a75db4c8e2940b9a270f1b |
|
18-Jul-2017 |
Stan Iliev <stani@google.com> |
Fix incorrect asserts Fix a few Skia asserts, which prevent HWUI from compiling and running when SkDebug is defined. Test: Built and ran Android on device. Change-Id: Ie7f16016ba105e1d376c266c5b030e4bc04629d9
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
07ae505d4045e2b1ae501e87560984dae06f9dd8 |
|
14-Jun-2017 |
Romain Guy <romainguy@google.com> |
Use RGBA16F layers when wide color gamut rendering is on Layers created using View.setLayerType() or Canvas.saveLayer() need to be RGBA16F/scRGB-nl when within a window that requested wide color gamut rendering. Bug: 29940137 Test: CtsUiRenderingTestCases, CtsGraphicsTestCases, hwui_unit_tests Change-Id: I42fd6355448c92041491a7109e3ac8a153d38bf9
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
f9e45d1d818ae0956ba77ed598b7040cfecca553 |
|
01-Jun-2017 |
Derek Sollenberger <djsollen@google.com> |
Implement CacheManager for the Skia pipelines. The core of the implementation is complete and provides heuristic cache sizing based on the size of the surface being used. This CL will also be used to add the following features in the future... 1) Support Vulkan pipeline reporting on the size of the surface. 2) Complete the VectorDrawableAtlas stub code 3) Automatic purging of stale resources for low memory devices. Test: hwui_unit_tests (new test added) and CtsUiRendering Bug: 62260637 Change-Id: Ib85159cca28b646fe249f2190b07f1b7e0f50d8f
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.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/SkiaPipeline.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/SkiaPipeline.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/SkiaPipeline.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/SkiaPipeline.cpp
|
3aeda5c5c47ae29197e8b8b665749cb6cb449e19 |
|
17-Mar-2017 |
Ben Wagner <bungeman@google.com> |
Use access directly instead of sk_exists. Skia would like to move SkOSFile and make it private spi. This appears to be the only place SkOSFile is used outside Skia, and using access here directly is more apropriate. Test: Simple inline refactor, built and ran. Changes test code only. Change-Id: Ib76c180bb3bccc54c20dcadc842837e3e8270929
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
fc29f7acd1352efa97269b5f3856eb879d5cfd53 |
|
02-Mar-2017 |
John Reck <jreck@google.com> |
Fix potential use-after-free in LayerUpdateQueue Change-Id: I090af2191576175b165a9db574a80123c16f0778 Fixes: 26548204 Test: Builds & hwui unit tests pass
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
b66b8bb4a089593ee7c20ad7f59980c16dde9cc9 |
|
16-Dec-2016 |
Stan Iliev <stani@google.com> |
Ensure root render node clip cannot expand beyond dirty area Use new Skia API to enfore clip restriction for root render node. This brings Skia pipeline in line with HWUI. Unit test is updated to reflect the new behaviour. Test: Built and ran angler-eng, ran HWUI unit tests. Change-Id: Iffce70fd37b6aff45eb6a23c8b1a64f45b5f1463
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
66b9d4486abb9e6d1edc624cd9ff522b12acece0 |
|
16-Dec-2016 |
Chris Craik <ccraik@google.com> |
Revert "try to stop using exotic clipps" This reverts commit 834653bcf80a3879c4d80004469053f205d45b69. Change-Id: Ie8cb787490832a0be154ec1263313982157faa81
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
834653bcf80a3879c4d80004469053f205d45b69 |
|
14-Dec-2016 |
Mike Reed <reed@google.com> |
try to stop using exotic clipps Change-Id: Id11d7744daa69c19fdc9b7723862b3d71ad21384
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
6c67f1d04591f44bccb476d715a005ad5bbdf840 |
|
14-Dec-2016 |
Mike Reed <reed@google.com> |
SkClipOp is now an enum class Change-Id: If423dd013a264162ae0b7674a0eeef34bc2cdaae
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.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/SkiaPipeline.cpp
|
52771272f4f018f4fc6846224bf047497e784af1 |
|
17-Nov-2016 |
Stan Iliev <stani@google.com> |
Add more Skia pipeline unit tests. Add more Skia pipeline unit tests and fix an issue in backdrop/content bounds clip logic. Test: built and run angler-eng and HWUI unit tests. Change-Id: Ie41f80ff7ce9802a4d76e8b14f1695dbc9771a2b
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
9a648a1c74f39b8aca525ae3787d379cb4c76971 |
|
07-Dec-2016 |
Mike Reed <reed@google.com> |
Merge "switch over clip calls to use SkClipOp instead of SkRegion::Op"
|
6e49c9f007c879f05b035c40c0ba543c00f9d0d0 |
|
02-Dec-2016 |
Mike Reed <reed@google.com> |
switch over clip calls to use SkClipOp instead of SkRegion::Op Change-Id: I67d23c487b5249bc31d96e3b2393f693c0b2bcff
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
10219fb261606fcc71c607167b28295b4578a10d |
|
24-Nov-2016 |
Hal Canary <halcanary@google.com> |
SkImageEncoder->SkEncodeImage Test: none Change-Id: I15630d2852d12840329181f135852e28d287bbcf (cherry picked from commit 8c6bac4c77caeefb667bec90d16b5384fd2b2b31)
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
f58cc92066903b900396f640159ea3ea992fc67d |
|
15-Nov-2016 |
Matt Sarett <msarett@google.com> |
Add overdraw debugging feature to Skia pipelines Test: Compared to OpenGL pipeline and sanity checked with understanding of the drawing pipeline. Also wrote a unit test. BUG:32370375 Change-Id: Iab397d21f0def725fa89551d48c764c67fd2bda8
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
e92d4045ebea6bb0491f8f9de0fcf051598d9563 |
|
17-Nov-2016 |
Derek Sollenberger <djsollen@google.com> |
Merge "Update pinImages to report when GPU resource limits are exceeded."
|
189e87498f666e94dc8c8201e7bac56bb09b9251 |
|
16-Nov-2016 |
Derek Sollenberger <djsollen@google.com> |
Update pinImages to report when GPU resource limits are exceeded. Bug: 32691999 Test: proposed CTS test (ag/1500396) and existing UiRendering tests Change-Id: I190f888ae5499ac048569af8256fdd31d19d1285
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
79756be175dea78ee9d51bb22abba7621bd9b5cc |
|
09-Nov-2016 |
Matt Sarett <msarett@google.com> |
Add layer updates debugging feature to Skia pipelines When this property is turned on, we flash green every time a hardware layer is updated. Test: Matches the behavior in OpenGLPipeline BUG:32370375 Change-Id: I916f94eee644c185d8a3f9fa4cd69e087ed1e92d
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|
e3d281ea18f7ccd477e4db5e74cf4fc1506e9f98 |
|
08-Nov-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Add debug memory tracking to SkiaGLPipeline"
|
4bda6bfaa6b8cb775f18f2453720d05f4cb29152 |
|
07-Nov-2016 |
Matt Sarett <msarett@google.com> |
Add debug memory tracking to SkiaGLPipeline Test: Sample output is below D/OpenGLRenderer: Resource Cache Usage: D/OpenGLRenderer: 32 items out of 8192 maximum items D/OpenGLRenderer: 4635572 bytes (4.42 MB) out of 96.00 MB maximum This is less verbose than OpenGL memory debug output for two reasons: (1) SkiaGL has less caches. (2) SkiaGL does not support printing on cache additions/evictions. This seems like more of an internal debugging tool rather than a user-facing debug feature. I think it's best to leave this unimplemented until we find that it might be useful. BUG:32370375 Change-Id: Ib063f1c2a7f88e9840341b1001d227f556d88f26
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.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/SkiaPipeline.cpp
|
500a0c30d4dcd012218c3e44a62926a1c34a259f |
|
26-Oct-2016 |
Stan Iliev <stani@google.com> |
Implement Skia pipelines for OpenGL and Vulkan. Implement Skia pipelines for OpenGL and Vulkan: base SkiaPipeline, SkiaOpenGLPipeline and SkiaVulkanPipeline. Write unit tests for SkiaPipeline. Test: Built and run manually on angler-eng. Change-Id: Ie02583426cb3547541ad9bf91700602a6163ff58
/frameworks/base/libs/hwui/pipeline/skia/SkiaPipeline.cpp
|