• Home
  • History
  • Annotate
  • only in /frameworks/base/libs/hwui/utils/
History log of /frameworks/base/libs/hwui/utils/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
caaaa66e57293e4a6f312649bf472eab84d5c7fe 27-Mar-2017 Romain Guy <romainguy@google.com> Convert bitmaps to sRGB/scRGB when they have a color profile

This change also fixes an issue with RGBA16F bitmaps when modulated
with a color (for instance by setting an alpha on the Paint object).

The color space conversion is currently done entirely in the shader,
by doing these operations in order:

1. Sample the texture
2. Un-premultiply alpha
3. Apply the EOTF
4. Multiply by the 3x3 color space matrix
5. Apply the OETF
6. Premultiply alpha

Optimizations:
- Steps 2 & 6 are skipped for opaque (common) bitmaps
- Step 3 is skipped when the color space's EOTF is close
to sRGB (Display P3 for instance). Instead, we use
a hardware sRGB fetch (when the GPU supports it)
- When step 3 is necessary, we use one of four standard
EOTF implementations, to save cycles when possible:
+ Linear (doesn't do anything)
+ Full parametric (ICC parametric curve type 4 as defined
in ICC.1:2004-10, section 10.15)
+ Limited parametric (ICC parametric curve type 3)
+ Gamma (ICC parametric curve type 0)

Color space conversion could be done using texture samplers
instead, for instance 3D LUTs, with or without transfer
functions baked in, or 1D LUTs for transfer functions. This
would result in dependent texture fetches which may or may
not be an advantage over an ALU based implementation. The
current solution favor the use of ALUs to save precious
bandwidth.

Test: CtsUiRenderingTests, CtsGraphicsTests
Bug: 32984164
Change-Id: I10bc3db515e13973b45220f129c66b23f0f7f8fe
olor.cpp
olor.h
a0a74d5f8ee1dbd04772ffb1775d045ce6b5934b 13-Mar-2017 Mike Reed <reed@google.com> use _deprecated suffix for deprecated clipops

Allows skia to remove legacy flag for older names
- SK_SUPPORT_EXOTIC_CLIPOPS
- SK_SUPPORT_LEGACY_CLIPOP_EXOTIC_NAMES

Test: CtsGraphicsTestCases

Change-Id: I78478d94d059641a9381579cae6d28f9f0685ad1
estWindowContext.cpp
7ef25b78941ded7e1d757dc42897529a02fa10a3 07-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add ColorSpace information on Bitmap"
efb4b06493fe7b1604c762a448b13c7af2845a8d 27-Feb-2017 Romain Guy <romainguy@google.com> Add ColorSpace information on Bitmap

This is the first step toward interpreting color spaces at render time.

Bug: 32984164
Test: BitmapColorSpaceTest in CtsGraphicsTestCases

Change-Id: I0164a18f1ed74a745874fe5229168042afe27a04
olor.h
792fb3252f6460acfd82c4e5d7536ca6b787a0e0 03-Mar-2017 Derek Sollenberger <djsollen@google.com> Use SkPaint.nothingToDraw instead of PaintUtils helper.

The PaintUtils helper is now shared between all pipelines and was
missing a quick reject test for drawLoopers which are used in
view.setShadowLayer and supported in the Skia pipelines.

Bug: 35809097
Test: added hwui unit test and verified in DocumentsUI app
Change-Id: I3c4a988f1c42b7f421f78ac3659af1daee910ea2
aintUtils.h
89ddb1f1644e0b47de060d2c9aaf6d5387c38f2f 10-Feb-2017 Matt Sarett <msarett@google.com> Update framework to use new SkColorSpace API

Test: This compiles with SK_USE_LEGACY_NAMED_COLOR_SPACE
turned off.

Change-Id: Ie573f59e0aa475bab06b38589db3c6158ad82c5a
estWindowContext.cpp
91627f61705a68cd18fdbce1b8190a2ffdec5f10 01-Feb-2017 Romain Guy <romainguy@google.com> Fix incorrect comments

Bug: 33010587
Test: comment only
Change-Id: Icdfa79bac50545bb73f4c40727fe51780ef4a56d
olor.h
2de950d5a8b47c7b4648ada1b1260ce4b7342798 25-Jan-2017 John Reck <jreck@google.com> Overhaul RenderNode's DisplayList management

* Move mValid to native
* Have destroyHardwareResources destroy everything
* Remove flaky mParentCount checks in setStaging
* All tree updates have an internal observer to
ensure onRemovedFromTree() is a reliable signal
* onRemovedFromTree() immediately releases resources
to avoid displaylist "leaks"

Test: Unit tests for validity added & pass, manually
verified that b/34072929 doesn't repro

Bug: 34072929

Change-Id: I856534b4ed1b7f009fc4b7cd13209b97fa42a71c
estWindowContext.cpp
db15537e6e0d35c7ed3b1bef45e421760be70683 11-Jan-2017 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of 082a1721b516 to master

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I17f178f425975c1c0dbd48091d25b101956d505e
52eb4e01a49fe2e94555c000de38bbcbbb13401b 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and log/logger.h with log/log.h

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I578b15b48f0fc2807a92abbc69a377c3d2191496
LUtils.h
66b9d4486abb9e6d1edc624cd9ff522b12acece0 16-Dec-2016 Chris Craik <ccraik@google.com> Revert "try to stop using exotic clipps"

This reverts commit 834653bcf80a3879c4d80004469053f205d45b69.

Change-Id: Ie8cb787490832a0be154ec1263313982157faa81
estWindowContext.cpp
834653bcf80a3879c4d80004469053f205d45b69 14-Dec-2016 Mike Reed <reed@google.com> try to stop using exotic clipps

Change-Id: Id11d7744daa69c19fdc9b7723862b3d71ad21384
estWindowContext.cpp
6c67f1d04591f44bccb476d715a005ad5bbdf840 14-Dec-2016 Mike Reed <reed@google.com> SkClipOp is now an enum class

Change-Id: If423dd013a264162ae0b7674a0eeef34bc2cdaae
estWindowContext.cpp
6e49c9f007c879f05b035c40c0ba543c00f9d0d0 02-Dec-2016 Mike Reed <reed@google.com> switch over clip calls to use SkClipOp instead of SkRegion::Op

Change-Id: I67d23c487b5249bc31d96e3b2393f693c0b2bcff
estWindowContext.cpp
ab12c1fe73734a18ac19a06b97f276528f6d027a 03-Nov-2016 Mike Reed <reed@google.com> update callers to newer Skia APIs

Test: refactoring CL. Existing unit tests still pass.

Change-Id: I47e73e00f14f78dd9d4c48a142ac9853e7e4cad7
estWindowContext.cpp
c2f31df8b3b9a237e9abffc59c61804ad8495073 28-Oct-2016 Mike Reed <reed@google.com> use SkBlendMode

skbug.com/5814

Test: compile only
Change-Id: Ibbaff43df1117b2ca77fd8f917f03d88cc476330
(cherry picked from commit 26edbcba8a2ed4cb300e7f87e679e3b73cec2772)
aintUtils.h
97cc85fd4b5ab6070ce75c2792369d4611625eaf 01-Nov-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Routine to upload hardware bitmaps"
694d499662838123f474f41b31dea84ec5d563f0 27-Oct-2016 sergeyv <sergeyv@google.com> Routine to upload hardware bitmaps

Change-Id: Id8283a0975325e6830d55fd1e33c5f292a1e9be0
Test: refactoring cl.
bug:30999911
LUtils.h
7de73858975fc4dbccfa1c188f6d1a12d39ce2c5 26-Oct-2016 Matt Sarett <msarett@google.com> Implement getTransparentRegion() using SkLatticeIter

This allows us to delete utils/NinePatchImpl.cpp and
utils/NinePatch.h

Test: Passed cts tests - DrawableTest, NinePatchTest,
NinePatchDrawableTest.

Change-Id: I6b5d09fa3479e758d8b931fa0e977c25f4435a7c
inePatch.h
inePatchImpl.cpp
260ab726486317496bc12a57d599ea96dcde3284 07-Oct-2016 Mike Reed <reed@google.com> use SkBlendMode instead of SkXfermode
use sk_sp versions of paint setters/getters

Change-Id: I86591a0a8ec92e6039776cbf00424ea24f585b28
inePatchImpl.cpp
aintUtils.h
8762e332e3797fb41929a1c6069207f4906ca329 12-Oct-2016 Romain Guy <romainguy@google.com> Various fixes for linear blending and gradients

With linear blending turned off some textures were still
created as sRGB textures instead of linear textures.
Multi-stop gradients were not behaving properly on devices
with no support for float textures.
Gradients are now always interpolated in linear space
even if linear blending is off.
New functions to always force sRGB->linear->sRGB conversions.

Test: Manual testing
Bug: 29940137
Change-Id: Ie2f84ee2a65fd85570e88af813e841e0e625df6c
olor.h
253f2c213f6ecda63b6872aee77bd30d5ec07c82 29-Sep-2016 Romain Guy <romainguy@google.com> Linear blending, step 1

NOTE: Linear blending is currently disabled in this CL as the
feature is still a work in progress

Android currently performs all blending (any kind of linear math
on colors really) on gamma-encoded colors. Since Android assumes
that the default color space is sRGB, all bitmaps and colors
are encoded with the sRGB Opto-Electronic Conversion Function
(OECF, which can be approximated with a power function). Since
the power curve is not linear, our linear math is incorrect.
The result is that we generate colors that tend to be too dark;
this affects blending but also anti-aliasing, gradients, blurs,
etc.

The solution is to convert gamma-encoded colors back to linear
space before doing any math on them, using the sRGB Electo-Optical
Conversion Function (EOCF). This is achieved in different
ways in different parts of the pipeline:

- Using hardware conversions when sampling from OpenGL textures
or writing into OpenGL frame buffers
- Using software conversion functions, to translate app-supplied
colors to and from sRGB
- Using Skia's color spaces

Any type of processing on colors must roughly ollow these steps:

[sRGB input]->EOCF->[linear data]->[processing]->OECF->[sRGB output]

For the sRGB color space, the conversion functions are defined as
follows:

OECF(linear) :=
linear <= 0.0031308 ? linear * 12.92 : (pow(linear, 1/2.4) * 1.055) - 0.055

EOCF(srgb) :=
srgb <= 0.04045 ? srgb / 12.92 : pow((srgb + 0.055) / 1.055, 2.4)

The EOCF is simply the reciprocal of the OECF.
While it is highly recommended to use the exact sRGB conversion
functions everywhere possible, it is sometimes useful or beneficial
to rely on approximations:

- pow(x,2.2) and pow(x,1/2.2)
- x^2 and sqrt(x)

The latter is particularly useful in fragment shaders (for instance
to apply dithering in sRGB space), especially if the sqrt() can be
replaced with an inversesqrt().

Here is a fairly exhaustive list of modifications implemented
in this CL:

- Set TARGET_ENABLE_LINEAR_BLENDING := false in BoardConfig.mk
to disable linear blending. This is only for GLES 2.0 GPUs
with no hardware sRGB support. This flag is currently assumed
to be false (see note above)
- sRGB writes are disabled when entering a functor (WebView).
This will need to be fixed at some point
- Skia bitmaps are created with the sRGB color space
- Bitmaps using a 565 config are expanded to 888
- Linear blending is disabled when entering a functor
- External textures are not properly sampled (see below)
- Gradients are interpolated in linear space
- Texture-based dithering was replaced with analytical dithering
- Dithering is done in the quantization color space, which is
why we must do EOCF(OECF(color)+dither)
- Text is now gamma corrected differently depending on the luminance
of the source pixel. The asumption is that a bright pixel will be
blended on a dark background and the other way around. The source
alpha is gamma corrected to thicken dark on bright and thin
bright on dark to match the intended design of fonts. This also
matches the behavior of popular design/drawing applications
- Removed the asset atlas. It did not contain anything useful and
could not be sampled in sRGB without a yet-to-be-defined GL
extension
- The last column of color matrices is converted to linear space
because its value are added to linear colors

Missing features:
- Resource qualifier?
- Regeneration of goldeng images for automated tests
- Handle alpha8/grey8 properly
- Disable sRGB write for layers with external textures

Test: Manual testing while work in progress
Bug: 29940137

Change-Id: I6a07b15ab49b554377cd33a36b6d9971a15e9a0b
olor.h
estWindowContext.cpp
25c9f6cede5705406294a5043363952c316facb2 01-Sep-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in libs/hwui." am: 7207562ff7 am: d7a69e04eb am: 842f1e48e7
am: 1f50f80aab

Change-Id: I713bd07fee150cc684e630045e02872b23062a5a
1f50f80aab31600406c7b93a1630d396228983f0 31-Aug-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in libs/hwui." am: 7207562ff7 am: d7a69e04eb
am: 842f1e48e7

Change-Id: I401bb7ef3a46bb317ba664667fab4a16c129e5aa
a619ec70cf765d9166f0862e74653711b87307b3 29-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in libs/hwui.

* Add explicit keyword to conversion constructors,
or add NOLINT for implicit converters.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: Id8ca42433a4fc3652e4cb13787c4cb169f20d9a9
atVector.h
inearAllocator.h
56996ff61e4961880db1240f6a5d4f57a79512d9 12-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 76ce8e5 to stage-aosp-master am: ed935c32f4
am: ef57a0d629

Change-Id: Ifcc24ad835f2e74a25954bf3fd7090c75abdc084
ed935c32f478229220a90442da0af3c3d3fc6230 12-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 76ce8e5 to stage-aosp-master

Change-Id: I4b4ca9906373a95776d2da8ba2fa39a4a78e2a30
f35c939cd70f2815582d08902ade0b9abbee6bec 10-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in libs/hwui.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
Merged-In: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
iming.h
49796451cb9d1dae580618eb320ef3c5e6d90cd4 10-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in libs/hwui.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
iming.h
c3849aa786db65dbda254b90b7db3b13efd98e65 08-Aug-2016 sergeyv <sergeyv@google.com> HWUI: reimplement rendernode ouput for single stream

bug: 26565102
Change-Id: I90b449b2dce52683c50b48091354104d76a5e44a
tringUtils.h
29c32cd2d57eb2ec2dbc9e1056b8b2e949903c55 03-Aug-2016 Matt Sarett <msarett@google.com> Remove unused include SkNinePatch.h

Change-Id: I4c34d21633fd4f3d4b1403e3bb473dc2cbd245cd
inePatchImpl.cpp
63d8aa930f8859978200b7af8664aefc33fd2a51 31-Jul-2016 Hugo Benichi <hugobenichi@google.com> Merge \\\"Fix missing IpConnectivity metrics\\\" into nyc-mr1-dev am: 66e7752ad1 am: b2db402899
am: fb5c675b7e

Change-Id: Iba1f81a892acd9f541b9dd564203bfebc56c9c73
fb5c675b7e1fee074f19cf1866b5dda0785dbe64 29-Jul-2016 John Reck <jreck@google.com> resolve merge conflicts of 67daab6 to nyc-mr1-dev-plus-aosp

Change-Id: I35f867b8d6408a7eae9cf5643f0908259de90cb1
2d5b8d73929a38b019c6b6276d4a19542b990f0c 29-Jul-2016 John Reck <jreck@google.com> Teach JankTracker about new swap behaviors

Bug: 30440166

If we are using HWC2, there's a change in timing
when in triple buffering with the pipelined offsets.
This changes JankTracker to recognize that and silently
erase that from the total duration

Change-Id: Ib1fd4209070f17dbd2baed707c8cf73fb11c3cf2
imeUtils.h
faecb78a6b11c780db47bc940ca7662899ab5d5e 21-Jul-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in frameworks/base

* Add explicit keyword to conversion constructors.
* Add NOLINT to implicit conversion constructors.

Bug: 28341362
Test: build with clang-tidy
Change-Id: Ie4d37072ab57d1662d18db4de1c8577247f43337
ortedListImpl.h
5e00c7ce063116c11315639f0035aca8ad73e8cc 07-Jul-2016 Chris Craik <ccraik@google.com> Delete old rendering pipeline

fixes: 30002246

Change-Id: I45df0e924708526cee045b14c291bd23aa1a92db
estWindowContext.cpp
ab1080c4d075b008cebdd9a2031ebbd51f9c2729 22-Jun-2016 John Reck <jreck@google.com> Delete unused args

Bug: 21170575
Change-Id: Icc832f70f206342557f44667ad3498405d04db78
estWindowContext.cpp
1ec2fd72cea31d46cca6e8f6686115fabe885664 20-May-2016 The Android Automerger <android-build@android.com> stephenli@ manually merge many commits up to '032dcff'

* commit '032dcff': (22 commits)
Remove outdated google services links.
Fix misc-macro-parentheses warnings in services jni.
Fix misc-macro-parentheses warnings in hwui and graphic jni.
Fix misc-macro-parentheses warnings in aapt and androidfw.
docs: Update to column widths for Complications table
Fix a11y crash when window layer isn't unique.
Never set resized while not drag resizing for pinned stack.
While turning OFF do not honor ON requests.
Fix GATT autoConnect race condition
Fix GATT autoConnect race condition
Fix RTL issue in delete dialog.
Incorporate feedback on new wallpaper-related APIs
Mapping up/down of legacy Gps vs. Gnss Status
Fixed a bug where the chronometer was invisible
Fixed a bug where the chronometer wasn't updating the time
Update BlockedNumberContract javadocs.
[RenderScript] Fix ScriptIntrinsicBlur documentation.
Update documentation about copyTo and copyFrom.
DO NOT MERGE Cherry pick libpng usage fixes
Start the Wear Time System Service with SystemServer
...
0a870594527a3af036b1238983abfe4e6118178b 20-May-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 404e2b2 to nyc-dev-plus-aosp

Change-Id: I3c486e83a3f2b27ee0e6bfe4e3bba3df3af758a5
cef190de850f163dd4b95d667a8d46d46e860363 20-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings in hwui and graphic jni.

Bug: 28705665
Change-Id: I7d1eb38a713fe6cc7f41a3cc3f2f9d0aa0114b2c
inearAllocator.cpp
a7a6be1085c8ed62f20749559ea8510b81a012cb 11-May-2016 Tenghui Zhu <ztenghui@google.com> Merge "Turn off some path drawing logs by default"
3727a7fadade6d52188d30d35236d810a638b67e 11-May-2016 Matt Sarett <msarett@google.com> Remove dead code from NinePatch::Draw

This will give me the flexibility to change this API.

Change-Id: I1ee34986e37fffeb03b8a349f29923541f95b593
inePatchImpl.cpp
d53e3bed1ca4a14b2a86d53eaef6969bd043176e 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
estWindowContext.cpp
85d99528b23b5575d97f614fe25f839d19740abc 25-Apr-2016 Teng-Hui Zhu <ztenghui@google.com> Turn off some path drawing logs by default

Originally the logs are added to track potential performance bug.
Like unexpectedly deep recursion loop.
However so far, we haven't captured anything by these logs.
And they are causing some misunderstanding in some bugs.
So I think it is better to disable it by default.

In the future, we will consider switching to direct Skia arcTo support
and drop this part.

Change-Id: Iff6df7a92e40b4775a644a1497e113de0eedbc8a
ectorDrawableUtils.cpp
849ffa33bc5f1e30e170fb469b802266c0d993fc 12-Apr-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Stop comparing Descriptions with memcmp" into nyc-dev am: e414371
am: 55134c8

* commit '55134c89fe5a524be26558b4ccccdfa6ffa0105f':
Stop comparing Descriptions with memcmp

Change-Id: I43ea9f9bc2f3f7ba607a85d08dbecf95fcb9e585
e41437167b9730d2d3550b1cbb5e2813a101b5f0 12-Apr-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Stop comparing Descriptions with memcmp" into nyc-dev
7224e2b624daea67b5653285c9640f170c096bdb 08-Apr-2016 sergeyv <sergeyv@google.com> Stop comparing Descriptions with memcmp

bug:27894959
Change-Id: I379c11381c08f6f77577a914638b32415768f26e
acros.h
4e2838ead6405acb407c072bdf01bc7b77c67680 08-Apr-2016 John Reck <jreck@google.com> Merge "Fix some edge cases" into nyc-dev am: 4a62eff
am: c01a9b6

* commit 'c01a9b6a9ba2662fafa6f4152ca9986faacd2d66':
Fix some edge cases

Change-Id: I52d65ed7c5da33b33a4f98953800c1dedea2bf09
51f2d606dcbfba3cc5b03dfea37c1304b91c232f 06-Apr-2016 John Reck <jreck@google.com> Fix some edge cases

Bug: 27709981

This desperately needs a refactor, but to keep
the current (really needed & nice) behavior of
dispatching after sync finishes would be difficult
to handle cleanly without lots of ripping so... #yolo

Change-Id: I831a06c6ae7412a062720d68ecbe3085190f0258
estWindowContext.cpp
5a23f2d940e0612c71d66d979645deb89ae6a09b 29-Mar-2016 Chris Craik <ccraik@google.com> Merge "Overdraw avoidance in new pipeline" into nyc-dev am: 80a67f3
am: f42e9b1

* commit 'f42e9b1b1e2eeb0e97bfc8d77d1dd24cb21d9e31':
Overdraw avoidance in new pipeline

Change-Id: I5fa751a4a2a212ef4c805a473d62da41ebaf70ae
80d2ade939153da87b3cd3b0a69a713bf68b64ba 28-Mar-2016 Chris Craik <ccraik@google.com> Overdraw avoidance in new pipeline

bug:27873093

Adds the simple overdraw avoidance optimization to the new
pipeline. This means when LayerBuilder defers draws that are opaque over
the full area of the repaint region, it will discard all drawing content
beneth.

Also moves a lot of complexity out of BakedOpState's header.

Change-Id: Iffca6d8e1b170ef31a5d6c83d25592670e02323d
aintUtils.h
a15762ef760111aa05bd06998e7f2b4b531c6b98 23-Feb-2016 Chris Craik <ccraik@google.com> Support op dumping in new pipeline am: 91eff22b5d
am: d39f57e0a7

* commit 'd39f57e0a7bb669adc4aab2a3b40db771dbd23a2':
Support op dumping in new pipeline
91eff22b5d7f8fe551bae01331948858ce932a96 22-Feb-2016 Chris Craik <ccraik@google.com> Support op dumping in new pipeline

bug:26565102

Change-Id: I266e420a2f18ba9ad62942b8a0de295dfa3a2a88
tringUtils.h
a17b5366d51296935f0c7c4750c102fec4d25923 22-Feb-2016 Chris Craik <ccraik@google.com> Merge "Add create_trivial_array" into nyc-dev am: 339fc0a1d2
am: 064b467718

* commit '064b467718e02e42360fce45c985d88333a35cdf':
Add create_trivial_array
ed87fa2a2d7afe9e04c49c931c862dd3c550424c 19-Feb-2016 Ben Wagner <bungeman@google.com> Use android_memset32 instead of sk_memset32.

Android code should use the Android version. Also, Skia is interested
in making sk_memset32 private.

BUG:27290333

Change-Id: Id5c8bc190cdd21673c8844eaa48e8b6a93e2e9df
estWindowContext.cpp
7a89600bac7ab889a5ba8a994c57d677de0e45d5 20-Feb-2016 Chris Craik <ccraik@google.com> Add create_trivial_array

Change-Id: I5e4236ff59fdaceb95105c5590f4deeda6d0b4c8
inearAllocator.h
7df9ff2a08fd4bbd9b2e734a357cffcf64675df9 11-Feb-2016 John Reck <jreck@google.com> Fix all LA memory leaks forever!

Bug: 27072626

Or at least fix this one and make it harder to leak
going forward. static_asserts are cool, use them liberally

Also makes allocation via LA (slightly) faster by fixing create*
variants to use rvalue references & std::forward, preventing
an accidental pass-by-value

Change-Id: I18fd696a93dd6ea49c8d8c587d4c8bee56dbfdf5
inearAllocator.cpp
inearAllocator.h
e537330ead4111cae74668bbc25a332e186d6c91 11-Feb-2016 John Reck <jreck@google.com> Revert "Fix all LA memory leaks forever!"

This reverts commit 499d83f21e7ffb687788bba1668b05fe38f6ebaf.

Change-Id: Ia893ae16ebbeae68e49cd13a20587104b73d39a0
inearAllocator.cpp
inearAllocator.h
499d83f21e7ffb687788bba1668b05fe38f6ebaf 11-Feb-2016 John Reck <jreck@google.com> Fix all LA memory leaks forever!

Bug: 27072626

Or at least fix this one and make it harder to leak
going forward. static_asserts are cool, use them liberally

Also makes allocation via LA (slightly) faster by fixing create*
variants to use rvalue references & std::forward, preventing
an accidental pass-by-value

Change-Id: I5e0e36e72c6dd93324194ebf9a95f8204f05f261
inearAllocator.cpp
inearAllocator.h
c52ac0b9e2dc9d060f21498ac59404ec7fd1e846 26-Jan-2016 John Reck <jreck@google.com> Merge "Add fine-grained debug layer"
975591a7af883d866d86ab819e164c6004694744 23-Jan-2016 John Reck <jreck@google.com> Add fine-grained debug layer

Full GLES error checking layer via -include
trickery. Change DEBUG_OPENGL to a level system.

HIGH = every GL call is error checked
MODERATE = checkpointing at interesting spots
LOW = only asserts there are no errors at the end of a frame
or when the FBO changes
NONE = AIN'T GOT NO TIME FOR ERRORS GOTTA GO FAST!

Change-Id: Ibe81aae93d942059c4ddf1cbb11c828b7ce4c10b
LUtils.cpp
LUtils.h
a3f16d43770e6740dd27210875964d91985efbd2 25-Jan-2016 Derek Sollenberger <djsollen@google.com> Replace SkALWAYSBREAK with equivalent Android macros.

Change-Id: Icb7786c789915375d7d8754fc8536302c1020858
estWindowContext.cpp
2de7771740ee08fcaff638ec6b2e460bb72fff04 20-Jan-2016 John Reck <jreck@google.com> Normalize GL_UNPACK_ALIGNMENT

Several places were setting GL_UNPACK_ALIGNMENT
unneccessarily, whereas other places were assuming an
unpack alignment of 1. Since we never actually
do explicit row-alignment, set GL_UNPACK_ALIGNMENT
to 1 at context creation time and never change it

Bug: 26584230

Also turns on aggressive glGetError checking to
better catch potential problem zones

Change-Id: I190c8f0f0494a7f046d5ed769405c75d363be59a
LUtils.h
9372ac3621848085e77b867f220c0b5ffce4010d 19-Jan-2016 John Reck <jreck@google.com> Fix ordering of texture->upload arguments

Caught by scatter-shotting GL_CHECKPOINTS which
seem generally useful to have

Bug: 26609444

Change-Id: Ie31d9297d8dae56405126720f338b4256c8bae77
LUtils.h
cbc5bd57f0f528743fce5ec02b0739dc6368311f 14-Jan-2016 John Reck <jreck@google.com> Merge "Track texture memory globally"
38e0c32852e3b9d8ca4a9d3791577f52536419cb 10-Nov-2015 John Reck <jreck@google.com> Track texture memory globally

Also mostly consolidates texture creation

Change-Id: Ifea01303afda531dcec99b8fe2a0f64cf2f24420
tringUtils.h
3d5278b63862b337b8c7ef82ed18f1825e4b5c6b 14-Jan-2016 Derek Sollenberger <djsollen@google.com> Update TestWindowContext to work with new HWUI ops.

This enables HWUI to be testing within Skia's infrastructure and
fixes skia bug 4775.

Change-Id: I242b9e4c5ed0f4523b6075d8825a2624235a01c7
estWindowContext.cpp
f5baedb000e25497ca6875204dbe559970268543 05-Jan-2016 Chris Craik <ccraik@google.com> Merge "Stencil support in new recorder/reorderer"
e4db79de127cfe961195f52907af8451026eaa20 23-Dec-2015 Chris Craik <ccraik@google.com> Stencil support in new recorder/reorderer

bug:22480459
bug:26358504

Adds complex (non-rectangular) clipping support, and overdraw
visualization. Doesn't support stencil clipping in layers.

Change-Id: I8d10c7f1d2769ab5756774ca672344cc09901f87
inearAllocator.h
4bbc2931263b232fba61807fca00e127573eff42 02-Dec-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 3 of MANY

- Refactored VPathRenderer & VectorDrawableState
- Moved all the VD rendering into native
- Set up hooks for VD's property changes in JNI for animated VD

TODO: JNI calls can be further reduced when we convert the animation
in AVD to use RenderNodeAnimator, in which case animation will be
driven from native and therefore most of the JNI hooks for changing
VD's properties during animation will no longer be needed.

Change-Id: I52021f4d7bea057b83ace54085d870dd45acae0f
ectorDrawableUtils.h
58862c9f6f33a9aa3602ca4a7ce49ac2a1fdc7c6 10-Dec-2015 Tom Hudson <tomhudson@google.com> Fix leak of file descriptors in test code

skia_dm rendering through HWUI was hanging after roughly 300 tests.
logcat reports some process was unable to get any file descriptors.

When we migrated TestWindowContext into HWUI and started using PIMPL
I didn't clean up the implementation struct in the destructor. Doing
so solved the hang for me.

My guess was that BufferQueue was being leaked, and that gralloc is
backed by file descriptors, but some research suggests that Android
ought to be able to handle far more than 1k fds (ulimit -Hn returns
4096 on this device).

R=djsollen@google.com

Change-Id: I2cd9f8945cee9b22f838002e1ad687d5fe29cb97
estWindowContext.cpp
estWindowContext.h
a21c1da1561e0f1dc1ce4b3719f925abc25a74de 09-Dec-2015 Andres Morales <anmorales@google.com> make RingBuffer const viable

- mark size() const
- expose const operator[]

Change-Id: Ie94ff798caed6b0d9a039e359610204e93c073ac
ingBuffer.h
8160f20b0aca8c6595d4b385d673f59b6bcd16a4 02-Dec-2015 Chris Craik <ccraik@google.com> Reorganize hwui test directories

Now test-only common files reside in tests/common, and each test
executable type (macrobench, microbench, and unit) has a subdir there.

This change means the shared lib no longer has test code in it, and
sets up a means for scenes to be shared between tests.

Change-Id: I37b081f6977300e03fdd961b8e6439fde730605e
estUtils.cpp
estUtils.h
54fa17f667c285a5c9225e238c8132dfe830ef36 25-Nov-2015 Chris Craik <ccraik@google.com> Add ListView rendering benchmark

Also fixes a bug in DrawRenderNodeOp recording, which was triggered by
the new test.

Change-Id: I328f2ed908495eb95ca8ce87a365d02650e72cd5
olor.h
9b9eca5cc597a4245bd814f81a993f39c1591c84 25-Nov-2015 Chris Craik <ccraik@google.com> Merge "Support projection in OpReorderer"
8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7 25-Nov-2015 Chris Craik <ccraik@google.com> Support projection in OpReorderer

bug:22480459

Change-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132
estUtils.h
42a5407f2c6403ea7aa7a64eaf19948dc4050df5 24-Nov-2015 Chris Craik <ccraik@google.com> Fix RecordingCanvas::refPaint, add tests

Also add text align support to TestUtils::drawTextToCanvas

Change-Id: I105adb0d15e697c03adfd00a56e8ec9265953ff1
estUtils.cpp
estUtils.h
a1717271caac5e8ea3808c331d4141ac01a42134 19-Nov-2015 Chris Craik <ccraik@google.com> Initial text support in new reorderer/renderer

Removes obsolete drawPosText codepath, and unifies text decoration behavior.

Change-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c
estUtils.cpp
estUtils.h
16c9d6a92e1b86d448c00c52a1630f3e71e6df76 18-Nov-2015 John Reck <jreck@google.com> Refactor hwuitest

Yank animations out into their own files

Change-Id: Iea522ee032752019c07ff308c3a3993011054308
estUtils.cpp
estUtils.h
804618d0863a5d8ad1b08a846bd5319be864a1cb 17-Nov-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 2 of MANY

Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.

Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.

Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.

Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
ectorDrawableUtils.cpp
ectorDrawableUtils.h
9fded232a9548a304e0145011df8849fba0dcda7 12-Nov-2015 Chris Craik <ccraik@google.com> Recycle OffscreenBuffers

Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
acros.h
30bcf69df9cfae40b621335958656cb0e4afd7d5 04-Nov-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 1 of MANY

Implement path parsing from string to skia path in native. The parsing
contains two main stages:
1) Parse string into a list of nodes that contains one operation (such
as move) and a vector of floats as params for that operation.
2) Interpret the operations defined in the nodes into SkPath operations,
and create a skia path

Also provided unit test for parsing a string path into a list of nodes,
and then to a skia path.

Change-Id: I0ce13df5e3bb90987dcdc80fe8b039af175ad2e2
atVector.h
704bed0da7cc75d0c517d425445de70ceb58060b 05-Nov-2015 John Reck <jreck@google.com> add DeviceInfo

This reverts commit 096895550b9d5430d7a001d491566decf4f9791b.

Change-Id: Ib2ed1e96d8f7f88302f5e27fe735687194553104
tringUtils.cpp
tringUtils.h
096895550b9d5430d7a001d491566decf4f9791b 05-Nov-2015 John Reck <jreck@google.com> Revert "add DeviceInfo"

This reverts commit b2442896e3a226c7ebe9d47fa80b257e98a6a34d.

Change-Id: I50f6555451f71067505245333c8e558b5e3b2b3b
tringUtils.cpp
tringUtils.h
b2442896e3a226c7ebe9d47fa80b257e98a6a34d 04-Nov-2015 John Reck <jreck@google.com> add DeviceInfo

Change-Id: I4c122278a7e88b6f47c4dd3c5fc553df7d3c900d
tringUtils.cpp
tringUtils.h
8d2cf943d9c7292e54726399faefdec4a01c084b 02-Nov-2015 Chris Craik <ccraik@google.com> Add region-tracking to OffscreenBuffers

Change-Id: I024c7219c080b9a89888517f5a89d49dfe8065ba
atVector.h
41b10518d08dbd42c9026c66dea4ff4f42311a02 29-Oct-2015 Chris Craik <ccraik@google.com> Merge "Add FatVector"
76ace115f7870fed9899a9db7d3852e21b5fb258 29-Oct-2015 Chris Craik <ccraik@google.com> Add FatVector

FatVector uses an inlined allocation to avoid malloc costs for small
vectors, especially those which are constructed/destructed frequently.

Change-Id: I9809dfd1255cfe98b4ce2b1124ca0fd6ca33dfe0
atVector.h
f35b989d26bb98900f6c5fa2e586326b30b6e161 31-Jul-2015 Leon Scroggins III <scroggo@google.com> Merge six commits from master-skia to master

Also corrects some code under development behind the HWUI_NEW_OPS flags
to match the updated Skia API.

Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
previous-Change-Id: I85de3462ad1e4877784df38edc4bcd0acbd24e5e
Change-Id: Ide8e2f669e91a13c32521af3a16efdaa085c81d0
inePatchImpl.cpp
1de39f15632bfbcc1918e558262f93209c758a99 28-Oct-2015 Tom Hudson <tomhudson@google.com> Merge "Revert "Merge six commits from master-skia to master""
d8f904f256b82e48e9a85561eb96e15399b0b2d9 28-Oct-2015 Tom Hudson <tomhudson@google.com> Revert "Merge six commits from master-skia to master"

This reverts commit 550780745fa28ae9a87d02331841ca5ce4f9c763.

Change-Id: Ic71eccea454b26261fe6e9a9a7a24eff56396989
inePatchImpl.cpp
97c92659fab67ca61d276f551e6f9d315428a6aa 28-Oct-2015 John Reck <jreck@google.com> Merge "Tune scheduling a bit, avoid a binder ipc"
e486d932ca5a10446a3c98d6d065213913277268 28-Oct-2015 John Reck <jreck@google.com> Tune scheduling a bit, avoid a binder ipc

Don't query running behind if it's not possible to be behind such
as having received a vsync since the last call to swap buffers.

This also avoids an accidental-starvation issue where if surface
flinger was a bit sluggish to dequeue then renderthread would drop
thinking the queue was full.

Also be a bit smarter about tracking if we've already drawn for this
vsync target to avoid producing two frames for the same vsync

Change-Id: Ib266500a693c27000b2e8ea578f111229d75147a
imeUtils.h
550780745fa28ae9a87d02331841ca5ce4f9c763 31-Jul-2015 Leon Scroggins III <scroggo@google.com> Merge six commits from master-skia to master

Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

Change-Id: I519f54f97321a7a365ea81a3b78cb03b9bdca021
previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
inePatchImpl.cpp
64bb63f0eeee73df64b22b9d1edd1962b8b9ba36 23-Oct-2015 Tom Hudson <tomhudson@google.com> Merge "Remove direct dependency of external/skia on frameworks/native"
b2f5bd2d6043132d8c1d0f3e2e7e454c2693f499 15-Oct-2015 Tom Hudson <tomhudson@google.com> Remove direct dependency of external/skia on frameworks/native

Moves all code that needs to link with libgui or libui into
frameworks/native/hwui/utils/TestWindowContext. This allows us to
run Skia automated tests against a HWUI backend to watch for
performance or correctness regressions on Android.

BUG=23556017
TEST=After this change, we can remove libui and frameworks/native/include
from external/skia/Android.mk
R=djsollen@google.com

Change-Id: I6f02a5ff98101e448606a1e892686e2c648b6c8a
estWindowContext.cpp
estWindowContext.h
b36af87f8275f4b982906f88193ec27600f2746a 16-Oct-2015 Chris Craik <ccraik@google.com> Use LinearStdAllocator in DisplayList

bug:24300128

This removes most of the remaining calls to malloc when
recording DisplayLists.

Change-Id: If928bd53dac0f145aadc436a62759086b67da0ed
inearAllocator.h
81a1d2a15927b06b84359f839ab03ac8a20970bd 16-Oct-2015 Chris Craik <ccraik@google.com> Add LinearStdAllocator

Also fixes microbench DisplayListData leak.

Change-Id: I1c46f6d0d38650327f3df90e7b278fa7765083dc
inearAllocator.cpp
inearAllocator.h
b565df13a9e5c7b1d7d93bdfa4a793752d66d3cc 05-Oct-2015 Chris Craik <ccraik@google.com> Initial commit of new Canvas operation recording / replay

Done:
- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion
- Recording with new DisplayList format
- batching & reordering
- Stateless op reorder
- Stateless op rendering
- Frame lifecycle (clear, geterror, cleanup)

Not done:
- SaveLayer (clipped and unclipped)
- HW layers
- Complex clipping
- Ripple projection
- Z reordering
- Z shadows
- onDefer prefetching (text + task kickoff)
- round rect clip
- linear allocation for std collections
- AssetAtlas support

Change-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691
aintUtils.h
ea508588e9c4a9d87f36b0e74de4d9420c2af06d 05-Oct-2015 Tom Hudson <tomhudson@google.com> Merge "Include what you use"
ca4f0b5a43ed0e0ec5e52613cd176705e6c06882 05-Oct-2015 Tom Hudson <tomhudson@google.com> Include what you use

utils/PaintUtils.h was relying on a transitive include which was
changed to a forward declaration; this change adds the SkDrawLooper
include where we need it.

R=djsollen@google.com

Change-Id: I6b034c47ddc277224c7deb007c9934004c037b8c
aintUtils.h
f6049a5c55645d31002aad7336119b813034a6f6 02-Oct-2015 Chris Craik <ccraik@google.com> Merge "Move more utils into paintutils"
bf6f0f260886a04a1680c7f9917124a751322ca4 01-Oct-2015 Chris Craik <ccraik@google.com> Move more utils into paintutils

Change-Id: I1eb3fd52386bc61a592da235533e40b509eeec24
aintUtils.h
f236d7ffadd918a2a50f7cbd04349ad2222644b7 01-Oct-2015 Sergio Giro <sgiro@google.com> resolved conflicts for 31e5ded6 to master

Change-Id: Iae4e1abe697f1c00a82b54c17afa7d4edddc006b
6706b71d7cfb9a916fd482189c04a0d59c19c103 01-Oct-2015 Sergio Giro <sgiro@google.com> am 86e67d70: Merge "frameworks/base: delete TinyHashMap"

* commit '86e67d708d738807c843850a3b6c9170e514ff8f':
frameworks/base: delete TinyHashMap
1673035f051aa5da7e98bf7ad6acc5ae4e27a5df 30-Sep-2015 Sene Gales <sgiro@google.com> frameworks/base: delete TinyHashMap

In DeferredDisplayList use std::unordered_map instead of TinyHashMap

Towards deprecation of BasicHashTable

Change-Id: I91b8d5dc80444c88fecff9c362fa610cca253973
inyHashMap.h
6e6646c03788f198a9878763680c05342d7622f3 15-Sep-2015 Chris Craik <ccraik@google.com> Unify extensions parsing behavior

Removes remnants of EGL extension support, and persistence of
GL extension list.

Change-Id: I35aec12d900bdb33549ea47654bb8146f350ef48
tringUtils.cpp
tringUtils.h
25c8d5b1c2d1405e2a8afa857713af072bedad53 03-Sep-2015 Chris Craik <ccraik@google.com> Fix pointer math in page start calculation

Change-Id: I1582e52f358fece647e35b13e93e56fd96b9a227
inearAllocator.cpp
9db58c031f8ffa102a6d585cb585bed3bdb911a9 20-Aug-2015 Chris Craik <ccraik@google.com> Remove MathUtils::min/max

bug:22202895

Change-Id: Ia115d86871314e3819f684ea7307356aed13a28e
athUtils.h
4c5efe9290543b723b76a8bd48518da1ae1dcb26 10-Jul-2015 Derek Sollenberger <djsollen@google.com> Add ninePatch support to Canvas.h

Change-Id: Ic095291fe55911c6501c1bdefa4b8da973c77319
inePatch.h
inePatchImpl.cpp
773bbe0357b17a16d095ce57c30980992a9c977f 18-Aug-2015 John Reck <jreck@google.com> Revert "Add ninePatch support to Canvas.h"

This reverts commit edca320a2b42011f98c308fdf25fc0494c6a5454.

Change-Id: I30ee93cfc1cac391ce152f03e9e13a1ad24dc91b
inePatch.h
inePatchImpl.cpp
deead00082df4839e71026750e55c1af4d62782f 17-Aug-2015 Derek Sollenberger <djsollen@google.com> Merge "Add ninePatch support to Canvas.h"
a46ca5ec732a884c78d3e98f8b4eb8de03bc23f8 14-Apr-2015 huanhuan.x.wang <huanhuan.x.wang@sonymobile.com> Make the value for shadowRadius less than 1.0 work

bug:22806069

Shadow effect is not visible if the shadowRadius is set
between 0.1 and 1.0.

Cherry-pick of 8d9b5fbd from AOSP

Change-Id: Ifff71f44d66ba604bd751bb1df96a9904ae7998e
lur.cpp
lur.h
edca320a2b42011f98c308fdf25fc0494c6a5454 10-Jul-2015 Derek Sollenberger <djsollen@google.com> Add ninePatch support to Canvas.h

Change-Id: Ib3202fd7c5b9f35853f286abe84b3ed009df1a81
inePatch.h
inePatchImpl.cpp
49286e8540b8afbe6f3d17f6aaf65b16fb1fdcba 30-Jul-2015 John Reck <jreck@google.com> Merge "Tune LA's initial size better"
afb052142a53602ee7b3debb6a3b871de21feac0 30-Jul-2015 John Reck <jreck@google.com> Tune LA's initial size better

Reduces wasted memory from ~80% to ~40% on a
handful of apps.

Change-Id: Idd5fb6477341925156d5f1f0ce2a535ec4e1aa4f
inearAllocator.cpp
bef837dc57b47fd7fcc17c86d741cf77eac4487b 30-Jul-2015 John Reck <jreck@google.com> Remove the rest of utils/Vector.h usage

Change-Id: I90ab2c17ba1903a8241cba7f623b74ed136dd845
ortedList.h
ortedListImpl.cpp
ortedListImpl.h
5a4690bf26932c0d6940e4af8516d920e09ae81a 14-Jul-2015 Chris Craik <ccraik@google.com> Clean up unncessary defines

LOG_TAG and TRACE_TAG are already defined in the makefile

Change-Id: I9e53e3dacbe018441edd74cb7c8c90846defee74
lur.cpp
5686bae28926dae6e4b4d380d75d18e77335c9d3 23-Jun-2015 Chris Craik <ccraik@google.com> Dump GL errors and crash on failure to allocate texture for layer

bug:22029728

Change-Id: Ib6f778975225b36567b12e30967955640ec185b3
LUtils.cpp
LUtils.h
41300274cf8efde2ca95d3c767b214d1edb97f8d 03-Jun-2015 John Reck <jreck@google.com> Iterate step of launch & iterate

Bug: 18052916

Tweaked colors, merged some categories
Reduced significance of fast frames
Increased visual weight of janky frames

Change-Id: I5b4e86164c4d51debad7de0e0f8715dda34c7a60
ingBuffer.h
1b54fb27ac48495ed0b33868fda5776fb49fe0f3 03-Jun-2015 Chris Craik <ccraik@google.com> Delete MAKE_ENUM_FLAGS

bug:21595702

Settle on namespace-enum for consistency. Also removes k prefix.

Change-Id: Ib89f94cb9263de40b6e4636577dca4860867d0d8
acros.h
ff29b5a5b9b991868051f0fa065a4ac668e7fa0b 28-May-2015 Chris Craik <ccraik@google.com> Fix round cap approximation to understand scale

bug:19772120
Change-Id: I7b944faed1d1e8d5f55453802da57679217d9d9a
athUtils.h
2f1e21d9956c73fac2f2da4705d144342137aa96 19-May-2015 Chih-Hung Hsieh <chh@google.com> Add missing const qualifier to compile with clang/llvm.

BUG: 21298442
Change-Id: Iad211237fdb0128d8f4490419687bf1da1cd261c
ingBuffer.h
6b4ace298e3c30ed11fbcb168229f492323e19ba 14-May-2015 Chris Craik <ccraik@google.com> Merge "Add back alpha atrace log" into mnc-dev
1a0808e64c170fa7b620b858fa5875f6f08a2b54 14-May-2015 Chris Craik <ccraik@google.com> Add back alpha atrace log

bug:20922838

Change-Id: I70ccbffdd5f140cd1dd71fbf456fb5b085e74a4a
raceUtils.h
4c9e59d03c2bca38001225b79d01740b8999adfb 12-May-2015 John Reck <jreck@google.com> Unify DrawProfiler/JankStats

Bug: 20822400

Change-Id: I24345c3120440bfce14e8cbe7e880b39f10b744a
ingBuffer.h
b5bc454870c8b7df88a633b18c4c6499361c3a08 24-Apr-2015 John Reck <jreck@google.com> Teach LA how to destroy

Change-Id: I57ab30b6d56370dade6987f442136ea5e5546c9b
inearAllocator.cpp
inearAllocator.h
1ed723723d9e42a064d54799cc24bdc24891e44d 24-Apr-2015 John Reck <jreck@google.com> Move LinearAlloc to libhuwi

Change-Id: I1d8c99bdeef22ca569e1743cff6108f478737bc8
inearAllocator.cpp
inearAllocator.h
8d9b5fbdf0a005941b7f0019102cc7b94a41a2d6 14-Apr-2015 huanhuan.x.wang <huanhuan.x.wang@sonymobile.com> Make the value for shadowRadius less than 1.0 work

Shadow effect is not visible if the shadowRadius is set
between 0.1 and 1.0.

Change-Id: Ifff71f44d66ba604bd751bb1df96a9904ae7998e
lur.cpp
lur.h
e2bb380bc26749782c873e5488cfdf4e42b27346 13-Mar-2015 Chris Craik <ccraik@google.com> Use glops for text rendering

Change-Id: I5e155c8baf3149f0ff231ec3c89dbff6bb8eae92
acros.h
2a1ce8a4e5258b6599cb8e86864eb816d24d69b4 16-Mar-2015 Mike Reed <reed@google.com> use SkFilterQuality instead of SkPaint::FilterLevel

Change-Id: I5d26869de746107b8a35a7a662236f993a824b0d
aintUtils.h
a6b52198b9e73a4b7f80103116feeace74433246 28-Feb-2015 Chris Craik <ccraik@google.com> Glop drawBitmaps, drawPatches

Change-Id: I3f1cd3f47f97d2e0c9b9d153732e26ee0b1c58c2
acros.h
ef2507439c08f4e9c4c9bba1c6243ca9df2ee827 26-Feb-2015 Chris Craik <ccraik@google.com> Glop mesh reorg, support for drawBitmapMesh

Change-Id: Iaf5550bdd93da93e59a5b838234ab5612e067387
acros.h
c87be99c6ead0720a8918ea38ce3b25e5c49e1c6 20-Feb-2015 John Reck <jreck@google.com> C++11 style fixups

Change-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9
acros.h
ba6adf66d3c44c0aa2fd8a224862ff1901d64300 19-Feb-2015 John Reck <jreck@google.com> Initial attempt at jank-tracking stat collection

Is a bit naive, perhaps overly aggressive, but sorta works

Change-Id: I01a774e00dbe681439c02557d9728ae43c45ce50
acros.h
ingBuffer.h
922d3a7f6f8c1c05a996ee3e91e8cbadfff560c9 14-Feb-2015 Chris Craik <ccraik@google.com> Glop SkiaShader support

Change-Id: I894a0b62701bd02367ab970813e4c332147351a2
acros.h
0519c810a56bded1284fcb2ae40f438878c6585f 11-Feb-2015 Chris Craik <ccraik@google.com> Glop Bitmap and RoundRect clipping support

Change-Id: I4577546a5d2e5f084cc03f39a89db9231b8111ee
acros.h
aintUtils.h
117bdbcfa3e8306dad21e7e01fa71b00cdfa7265 05-Feb-2015 Chris Craik <ccraik@google.com> Glop ColorFilter & VertexBuffer support, initial enable

Enables Glop rendering for supported Rects and VertexBuffers
Also removes unused Query object

Change-Id: Ibe227bc362685a153159f75077664f0947764e06
aintUtils.h
031888744e24b5c7243ac99ec98b78aff5db1c78 03-Feb-2015 Chris Craik <ccraik@google.com> GlopBuilder, and test app refactor

Change-Id: I2cd299ccf178007fd5f83bab6c3448f03aec7843
aintUtils.h
65fe5eeb19e2e15c8b1ee91e8a2dcf0c25e48ca6 27-Jan-2015 Chris Craik <ccraik@google.com> Move scissor state to RenderState

Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
acros.h
487a92caef2eb90a62e8f8d7a6fe6315f1c1d8d8 06-Jan-2015 Rob Tsuk <robtsuk@google.com> Clipping performance improvements

Create a ClipArea class to handle tracking clip regions. This class can
select the most efficient implementation depending on the types of
clipping presented.

ClipArea re-used the rectangle and region-based clipping
implementations as well as adding a "list of rotated rectangles"
approach that is more efficient for rotated views with children.

Change-Id: I2133761a2462ebc0852b394220e265974b3086f0
air.h
d41c4d8c732095ae99c955b6b82f7306633004b1 06-Jan-2015 Chris Craik <ccraik@google.com> Add overrides and switch to nullptr keyword for all files

Adds remaining missing overrides and nullptr usages, missed due to
an extreme failure in tool usage.

Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
aintUtils.h
iming.h
8dfaa4904205772cdceee63ef3989bcdedf1a914 09-Dec-2014 Tom Hudson <tomhudson@google.com> Make DisplayListRenderer inherit from Canvas, merge JNI

Incrementally unify the upper layers for Skia and HWUI.
Remove redundant code from GLES20Canvas.java; instead
use inherited mNativeCanvasWrapper and superclass method
definitions.

Moves some unrelated SkPaint utility functions from Renderer
to new utils/PaintUtils.

bug: 15672762
Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
aintUtils.h
e84a208317e0ed388fcdad1e6743c7849acb51b0 22-Dec-2014 Chris Craik <ccraik@google.com> Add overrides and switch to nullptr keyword

Changes generated with clang-modernize.

Additionally, fixed some struct-vs-class usage to make clang happy.

Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
ortedList.h
ortedListImpl.h
70850ea258cbf91477efa57a1f1a23cc0044cc93 18-Nov-2014 Chris Craik <ccraik@google.com> Improve logging around performance critical events

bug:17702227

Add details useful to developers (such as layer size/View name), and
switch away from logging implementation names/details, since they
are generally not relevant to developers.

Change-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5
raceUtils.h
3bd3fa1f1d437e22aee35381a559dcee15a437dd 25-Aug-2014 ztenghui <ztenghui@google.com> Correctly detect the wrong Z value for the light

b/17221975

Change-Id: I2b46da95ad12ca5260d7fe9514a75558b6b6393b
athUtils.h
c50a03d78aaedd0003377e98710e7038bda330e9 21-Aug-2014 ztenghui <ztenghui@google.com> Improve the spot shadow computation.

Get rid of compuation of the intersection for penumbra and convex hull for umbra.
Use simple circle / normal to compute the penumbra and simple intersection for umbra.

The new way could be 2x to 4x faster from rectangle to round shape.
And this part is roughly half of the shadow computation, or 2/3 of spot shadow
computation.

This improve the spot shadow spikeness too.

b/16712006
b/14976551

Change-Id: I02911784868731369efa73f76fc915bc08248600
athUtils.h
74cf7e6a25c6d7b331c231b7bc2512044f9d2950 07-Aug-2014 Chris Craik <ccraik@google.com> Cap scales used for tessellation with minimum and maximum

bug:15615144
Change-Id: I3e833864af3a7b34e444bd13db34b6c90496a8b6
athUtils.h
3b52c03f5035b833d365215420739aa840ac5080 06-Aug-2014 John Reck <jreck@google.com> clamp & round alpha

Bug: 16842521

Change-Id: Ifd93f40b5751746835c9d56bb3c2b5ba700bdccc
athUtils.h
1aa5d2d7068147ff781cfe911a93f01593a68c79 24-Jul-2014 John Reck <jreck@google.com> Fix ALL compile warnings

All warnings/errors fixed for GCC & Clang

Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
athUtils.h
1e5cf9aced40e6e14262e542d0ed0e24cda877a0 10-Jun-2014 Chris Craik <ccraik@google.com> am b1c76a1a: Merge "Tessellate on worker threads" into lmp-preview-dev

* commit 'b1c76a1abcfb2f33e12fef37ec71d20724863b5e':
Tessellate on worker threads
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 03-Jun-2014 Chris Craik <ccraik@google.com> Tessellate on worker threads

Tessellate and cache (where possible) shadow and round rect
tessellation tasks.

Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
acros.h
athUtils.h
e392c81f6b8f9ace0c0a48c9d4df117fda31fd13 21-May-2014 Derek Sollenberger <djsollen@google.com> Pass the radius as a float deeper into HWUI allowing RS to generate more accurate blurs.

Also, when converting radius to an integer value snap to the appropriate integer boundaries.

bug: 10650594
Change-Id: Icca4bc17d88162bbcbc6035d4f81bd1d98a4de2d
lur.cpp
lur.h
deeda3d337aed1eee218b89a7aba5992ced371f0 06-May-2014 Chris Craik <ccraik@google.com> Round rect outline clipping

Change-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b
athUtils.h
315c329544d7c593d1072b071cbb92d9afe74021 10-May-2014 John Reck <jreck@google.com> Add TimeInterpolator support to RNA

Bug: 14678626

Change-Id: I6554e7fcd42c49fac3618ca792083bb68e358f55
athUtils.h
9fa4071c4768c63902c6a74a4b480b51a8b95d43 10-May-2014 John Reck <jreck@google.com> Refactor VirtualLightRefBase & JNI

Change-Id: I8e244e7109e59d5be96871b23bb9b1201c7f9eaa
irtualLightRefBase.h
e4aa95e3627226bcb0d8cc3e42dca6e4df8f421c 08-May-2014 Chris Craik <ccraik@google.com> Add logging utility methods

Change-Id: I0f316830dcc0bbf438292a6d0fbe9f8154368500
LUtils.cpp
LUtils.h
athUtils.h
5b554f010358d8f47e31d92a42aa3edc4a71ec47 08-May-2014 Derek Sollenberger <djsollen@google.com> Merge "Avoid caching shadow properties in Java & HWUI."
c29a0a4664a4b9871fadd668b632469a0db240b9 31-Mar-2014 Derek Sollenberger <djsollen@google.com> Avoid caching shadow properties in Java & HWUI.

bug: 10650594
Change-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8
lur.cpp
lur.h
52244fff29042926e21fa897ef5ab11148e35299 02-May-2014 John Reck <jreck@google.com> Add CanvasProperty for drawCircle

Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
acros.h
cc39e16cb98855f35079941b5e7e6eac2b7bc388 26-Apr-2014 Chris Craik <ccraik@google.com> Add elevation, Z properties to View

Change-Id: I3dd3b683a66e248a0fdf2ca69d1e962615b0daf9
athUtils.h
e0bb87d4bdbd3b08ab6a8569c8e564ed59b8a5a7 23-Apr-2014 Chris Craik <ccraik@google.com> Fix translationZ matrix computation

bug:14259972

Ensure that translationZ is applied for true3dTransform property
transformations, even if the node doesn't have any other
transformation properties set.

Additionally, use fuzzy compare for translationZ, similar to
rotationX/Y, since they're expenive to leave set in rounding error
cases.

Change-Id: Idafa4423cc7751a8f433237b1f576aa7abb74f6e
athUtils.h
087bc0c14bdccf7c258dce0cdef46a69a839b427 05-Apr-2014 John Reck <jreck@google.com> Refcount RenderNode

Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
irtualLightRefBase.h
e9bea2a18201d079831750865ab1d013528d862a 07-Feb-2014 Ashok Bhat <ashok.bhat@arm.com> Fix TinyHashMap to use generic hash_type instead of hash_t

TinyHashMap used hash_t(key) to generate hashcode. This
would not work for 64-bit pointers as hash_t is declared as
an uint32_t.

Replaced the hash_t(key) call to more generic android::hash_type(key).
This function is a template function declared in TypeHelpers.h and
has a version available for all data types including pointers.

Change-Id: I612cf18b49ca7c30b63f9d6938df68fed7d80d08
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
inyHashMap.h
527a3aace1dd72432c2e0472a570e030ad04bf16 04-Mar-2013 Chris Craik <ccraik@google.com> Draw Operation merging

Merge simple bitmap draw operations and text operations to avoid
issuing individual gl draws for each operation. Merging other ops to
be done eventually.

The methods are different - the bitmap merging generates a single
mesh for reused, unclipped images (esp. repeated images in a listview)

The text approach queries just defers the normal font rendering until
the last drawText in the sequence that can share the same shader.

Patches are sorted and merged, but don't yet have a multiDraw
implementation. For now, the pretending-to-merge gives better sorting
behavior by keeping similar patches together.

Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
inyHashMap.h
c5cbee7d78513527e89450e6369a30a04b2d5e7a 21-Mar-2013 Romain Guy <romainguy@google.com> Stop worker threads on memory trim & fix bad pointer access

Change-Id: I6fe7e31aeb6dd41fa65ab952caed97bc2da510d7
air.h
6e2004089305cf2cd958b52b234459a49a4e5c83 08-Mar-2013 Romain Guy <romainguy@google.com> Move blur code from FontRenderer to utils/Blur.cpp

Change-Id: I2cebbfbcb722ed4b37e54ffbf8b53bb92ad0c964
lur.cpp
lur.h
13ba0054846ce630ca31e8f26169fd9388faee02 15-Feb-2013 Romain Guy <romainguy@google.com> Remove obsolete header file

We now use the same mechanism to compare keys everywhere in libhwui.

Change-Id: I8b3cb25b13f4f38eb6f12aed0356f796a773617c
ompare.h
f2d8ccc15d7272b3416f73605c1f31d1d346bd40 14-Feb-2013 Chris Craik <ccraik@google.com> Revert "Revert "Use RenderScript for large text blurs""

This reverts commit bf5703e52e3304246cbf0e73f6976f7d7312d238.

Change-Id: Ic6f991277dec9e80a6fed93db91499726b30ab2a
iming.h
bf5703e52e3304246cbf0e73f6976f7d7312d238 13-Feb-2013 Chris Craik <ccraik@google.com> Revert "Use RenderScript for large text blurs"

This reverts commit 3f76e65d251ead65fe8ff98e3bd4c7623fbaac07

Change-Id: Ia81cd485e5ca696bb284c419dc8a1d2f3247100e
iming.h
3f76e65d251ead65fe8ff98e3bd4c7623fbaac07 15-Nov-2012 Chris Craik <ccraik@google.com> Use RenderScript for large text blurs

Still fall back to simple path for small tasks

Change-Id: I492f1b3f7d6fec1738f3e45cbfb15864bd23a392
iming.h
f26c8be01bb218619e073a209c9d57fe9d26c517 18-May-2012 Romain Guy <romainguy@google.com> Sanitize display list properties

The comparisons used in the various properties setters could fail badly
in some specific conditions. The scale properties in particular did not
use the same comparisons.

This change also clamps alpha to the 0..1 range which avoids overflow
issues with lowp registers in GLSL computations.

Change-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d
ompare.h
13ede62fd77acdf158f7210043fe48644cb4a589 16-Sep-2011 Jeff Brown <jeffbrown@google.com> Make LTE_FLOAT a strict weak order.
Bug: 5327776

Currently LTE_FLOAT isn't even a valid partial order, let alone
a strict weak order as needed by binary search. Consequently,
KeyedVectors with keys whose types have operator< using LTE_FLOAT
sometimes find the wrong values!

This problem affects several graphics caches including the
TextLayoutCache.

(This is still not a total order because NaNs are not comparable
but hopefully we don't ever search for NaNs this way!)

Change-Id: Ic447a34c7d87f681ee81538f22a0937a039072dd
ompare.h
d313c665e618af3194f504064bcd284fe5368682 25-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Add TextLayout Cache

- use GenerationCache for caching
- move GenerationCache.h from libs/hwui/utils to include/utils
- add #define for cache activation / deactivation

Change-Id: Ifaf519f0b5e33b087a453e4aa6430162d8438f20
enerationCache.h
fe48f65922d4a3cc4aefe058cee5acec51504a20 12-Nov-2010 Romain Guy <romainguy@google.com> Free resources only from the GL context thread.
Bug #3179882

Resources were freed following garbage collections on a worker thread.
This worker thread had no EGL context, which would cause the renderer
to incorrectly assume that the memory was liberated.

Change-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c
enerationCache.h
5b3b35296e8b2c8d3f07d32bb645d5414db41a1d 28-Oct-2010 Romain Guy <romainguy@google.com> Optimize FBO drawing with regions.
This optimization is currently disabled until Launcher is
modified to take advantage of it. The optimization can be
enabled by turning on RENDER_LAYERS_AS_REGIONS in the
OpenGLRenderer.h file.

Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
ompare.h
enerationCache.h
ortedList.h
ortedListImpl.h
2665b85b2bd08faabf7c520a622a0e4d3465245f 19-Oct-2010 Romain Guy <romainguy@google.com> Small cleanup.

Change-Id: I0e5b9154a2d93af793d62f462d68cb7c6c3f6d75
ompare.h
03750a067e818ca7fbd0f590e2ff6a8fded21e6c 18-Oct-2010 Romain Guy <romainguy@google.com> Use VBOs to render most geometries.

Change-Id: I4360dc4fe5693ab425450c107282b2c22db4dca7
ompare.h
4bb942083a0d4db746adf95349108dd8ef842e32 13-Oct-2010 Romain Guy <romainguy@google.com> Optimize 9patch rendering.

This change detects empty quads in 9patches and removes them from
the mesh to avoid unnecessary blending.

Change-Id: I4500566fb4cb6845d64dcb59b522c0be7a0ec704
ompare.h
21b028a44f3e0bd9b0f0432b8b92c45f661d22a4 09-Oct-2010 Romain Guy <romainguy@google.com> Move GenerationCache to the utils directory.

Change-Id: I210ffa8f1d76a102bb7d971c649c20a74d03fbe6
enerationCache.h
8550c4c7b5952b7a4e1e0ede95c9492d03099a13 09-Oct-2010 Romain Guy <romainguy@google.com> Better cache for layers, reduce memory usage and increase framerate.

Change-Id: I5ff864a361db4791bd5ff6be716f7ce692ef572d
ortedList.h
ortedListImpl.cpp
ortedListImpl.h