1731 Commits

Author SHA1 Message Date
John Reck
d67bb5015f am eb2dcc79: Merge "Don\'t preload textures for AssetAtlas" into lmp-mr1-dev
automerge: e4a6ed9

* commit 'e4a6ed9d6d8721c9fad018b0d43dfe7daf4b24e7':
  Don't preload textures for AssetAtlas
2014-12-11 01:25:54 +00:00
John Reck
eb2dcc791e Merge "Don't preload textures for AssetAtlas" into lmp-mr1-dev 2014-12-11 01:12:31 +00:00
John Reck
ebd52610cf Don't preload textures for AssetAtlas
Bug: 18317479

RenderNode::prepareSubTree calls prefetchAndMarkInUse
on every bitmapResoruce in the DisplayList. However,
this resulted in textures being uploaded for bitmaps
that would be drawn from the AssetAtlas instead.

To fix this we teach TextureCache about the AssetAtlas
so that calls to TextureCache return the Texture from
AssetAtlas if it exists. Thus usage of AssetAtlas
is now purely to allow for further optimizations via
draw merging instead of a requirement to get
any benefit at all.

Change-Id: I65282fa05bac46f4e93822b3467ffa0261ccf200
2014-12-10 17:07:41 -08:00
Chris Craik
5369b76963 resolve merge conflicts of ed211b9 to lmp-mr1-dev-plus-aosp.
Change-Id: Ib9d6d301282bbaae6b23b9ce07b9e6a4e9075991
2014-12-10 15:23:54 -08:00
Chris Craik
4ac36f80be Fix frame-allocated path lifecycles
bug:18667472

Previously, we were allocating per-frame temporary paths within the
PlaybackStateStruct, but these are not safe as layers allocate these
transiently. Instead, move these to the OpenGLRenderer, which has
better define lifecycle.

Additionally, don't store SkPath objects directly in vector, since
they are then subject to relocation.

Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
2014-12-10 12:27:08 -08:00
John Reck
3bae94d78e resolved conflicts for merge of fe11126d to lmp-mr1-dev-plus-aosp
Change-Id: I60bf82ff71d9af0d80e7da8856efb4641c85885b
2014-12-09 15:38:38 -08:00
John Reck
4f1942d999 Merge "Teach AssetAtlas about more drawables" into lmp-mr1-dev 2014-12-09 23:12:42 +00:00
John Reck
dad7d84c04 Teach AssetAtlas about more drawables
Bug: 18317479

Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
2014-12-09 14:18:33 -08:00
Derek Sollenberger
1f78b3364f am 497499b1: am 04c2bf4f: Merge "Remove unnecessary/erroneous reference counting" into lmp-mr1-dev
* commit '497499b1eb76726090ea46dcfc5b8ab0221cd447':
  Remove unnecessary/erroneous reference counting
2014-12-09 22:18:33 +00:00
Derek Sollenberger
ee648e517f Remove unnecessary/erroneous reference counting
The SkBitmap* used by HWUI holds a reference to the PixelRef (which
in turn holds the colorTable) so keeping an additional ref is not
only unnecessary, but also potentially problematic.

If a bitmap changes its pixelRef after it has been added to a displayList,
then we end up with unbalanced ref/unref calls that cause the newly added
PixelRef to be unref'd and prematurely deleted, while the original PixelRef
is leaked.

bug: 18659976
Change-Id: I34a06152e7bb2d733249a207dafd36b9b5dc0712
2014-12-09 18:36:42 +00:00
John Reck
a75b0ad384 resolved conflicts for merge of a51a0901 to lmp-mr1-dev-plus-aosp
Change-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed
2014-12-04 13:41:04 -08:00
John Reck
01a5ea35fb Resume RT-animations after a pauseSurface
Bug: 18203577

The issue occurs as a result of performTraversals() both doing
a window relayout call *and* early-returning because it's not dirty.

To fix this pauseSurface() returns whether or not the RT-side is
"dirty" to force ViewRootImpl to do a draw even if mDirty is
otherwise empty.

Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef
2014-12-03 13:03:59 -08:00
Chris Craik
a22ab0da6f am 9a04480e: am ef124887: Merge "Clip outline to View clip bounds for shadow computation" into lmp-mr1-dev
* commit '9a04480e36c42eb63d1d727221ba3ce6a6d533ef':
  Clip outline to View clip bounds for shadow computation
2014-12-02 01:39:20 +00:00
Chris Craik
ef124887c6 Merge "Clip outline to View clip bounds for shadow computation" into lmp-mr1-dev 2014-12-02 01:27:26 +00:00
Chris Craik
faa79ff9d9 Clip outline to View clip bounds for shadow computation
bug:18509823

This allows animations of View clipBounds (and other callers of
setClipBounds) to affect shadows, instead of leaving them floating.

Change-Id: I249fa4b371a170cb0c54001f5b0e0097e109b8b8
2014-12-01 15:47:10 -08:00
John Reck
76de89820c Merge "Prevent calling GL functions with an invalid surface" into lmp-mr1-dev 2014-12-01 22:39:31 +00:00
John Reck
d7af6eaace am d51205fd: am 6afc5cf3: Merge "Prevent calling GL functions with an invalid surface"
* commit 'd51205fda7351ca32e54ef34b32e72f6c7c79847':
  Prevent calling GL functions with an invalid surface
2014-12-01 21:40:32 +00:00
Sangkyu Lee
a12b2405df Prevent calling GL functions with an invalid surface
Bug: 18518580

When destroying CanvasContext, the surface can be invalid
state. So the surface should be updated to null prior to
destroying GL resources to ensure that GL functions
are not called with an invalid surface.
Some GL implementation makes an error if GL functions
are called with an invalid surface. (Adreno 3xx)

Cherry picked from AOSP: f76d36f96bf221672e98e440c9df7cbf0e02e84e

Change-Id: Ie6f6ea081ec931fc9df30b2c3ed066ec1ae9d294
2014-12-01 21:38:34 +00:00
John Reck
6afc5cf3d9 Merge "Prevent calling GL functions with an invalid surface" 2014-12-01 21:28:27 +00:00
Chris Craik
659de832b9 Merge "Enable stencil clipping within clearLayerRegions" into lmp-mr1-dev 2014-12-01 20:08:29 +00:00
Chris Craik
e986817a2d am 6eac26a4: am ca84c8b1: Merge "Revert "Force-use the pbuffer surface for destroy"" into lmp-mr1-dev
* commit '6eac26a49957eda233ad22ad75da43379f220bbc':
  Revert "Force-use the pbuffer surface for destroy"
2014-11-26 21:02:24 +00:00
Chris Craik
ca84c8b1b0 Merge "Revert "Force-use the pbuffer surface for destroy"" into lmp-mr1-dev 2014-11-26 20:50:10 +00:00
Chris Craik
9f81485a76 Revert "Force-use the pbuffer surface for destroy"
bug:18528859

This reverts commit b945f2313aee6e49a082ba5caaf95334d2570d52.

Change-Id: I6915624d356cb8570471eb3a5b8921f59b58db6d
2014-11-26 18:59:58 +00:00
Dohyun Lee
52b2cf9fdf Enable stencil clipping within clearLayerRegions
bug:18538502

Cherry-pick of adc0d9da8648abfea1035fb1108eceea9fd9b5b1 from AOSP

Previously stencil clipping within clearLayerRegions is disabled by commit
62d307c2402777d5e53b4590af5f32f8c55afd81. However, clearing whole layer
regions causes black-colored triangle regions when a TextView has
RotateAnimation because the draw within clearLayerRegions does not
affected by the current stencil clip.

Change-Id: Id32a0b16754b109905f833e063ebfa156bd953f2
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2014-11-26 10:51:32 -08:00
John Reck
0d4ab958c1 am 4e3404d9: am dec3f138: Merge "Force-use the pbuffer surface for destroy" into lmp-mr1-dev
* commit '4e3404d90fe33a0ff790aff4a97b6bb55e4c0e8f':
  Force-use the pbuffer surface for destroy
2014-11-26 12:02:19 +00:00
Chris Craik
1fb141f83b am 9c5b7b09: am ee660651: Merge "Improve DisplayList state output" into lmp-mr1-dev
* commit '9c5b7b094254cad0a8a90ece5ea650c49694087d':
  Improve DisplayList state output
2014-11-26 12:01:46 +00:00
Sangkyu Lee
f76d36f96b Prevent calling GL functions with an invalid surface
When destroying CanvasContext, the surface can be invalid
state. So the surface should be updated to null prior to
destroying GL resources to ensure that GL functions
are not called with an invalid surface.
Some GL implementation makes an error if GL functions
are called with an invalid surface. (Adreno 3xx)

Change-Id: Ie6f6ea081ec931fc9df30b2c3ed066ec1ae9d294
2014-11-26 09:59:39 +09:00
Chris Craik
ab1a53c509 am bf62d307: am af5bd75b: Merge "Enable stencil clipping within clearLayerRegions"
* commit 'bf62d3070c1653b79f4edcc0729b6a1a833d3ca1':
  Enable stencil clipping within clearLayerRegions
2014-11-26 00:08:05 +00:00
John Reck
dec3f138c2 Merge "Force-use the pbuffer surface for destroy" into lmp-mr1-dev 2014-11-25 19:52:53 +00:00
John Reck
5ab86ba05d am 89a63f02: am 0c31d97a: Merge "Switch TextureCache to SkPixelRef::fStableId" into lmp-mr1-dev
* commit '89a63f02f5d0814435e72b515b792bc6737014dc':
  Switch TextureCache to SkPixelRef::fStableId
2014-11-25 18:45:48 +00:00
Chris Craik
ee6606519d Merge "Improve DisplayList state output" into lmp-mr1-dev 2014-11-25 18:45:11 +00:00
John Reck
b945f2313a Force-use the pbuffer surface for destroy
Bug: 18518580

If CanvasContext is being destroyed() the Surface
is probably no longer valid as well, so make sure to
makeCurrent() to the pbuffer surface so that the
subsequent GL operations are not using an invalid
EGLSurface

Change-Id: Ica5d6a065841772c47e00ad65aa7894c7e27e043
2014-11-25 09:54:13 -08:00
John Reck
71d08a0718 Switch TextureCache to SkPixelRef::fStableId
Bug: 18245805
Change-Id: I08e6792dbeed86b13e569c7f2137de0e50dc2763
2014-11-24 15:24:02 -08:00
Dohyun Lee
adc0d9da86 Enable stencil clipping within clearLayerRegions
Previously stencil clipping within clearLayerRegions is disabled by commit
62d307c2402777d5e53b4590af5f32f8c55afd81. However, clearing whole layer
regions causes black-colored triangle regions when a TextView has
RotateAnimation because the draw within clearLayerRegions does not
affected by the current stencil clip.

Change-Id: Id32a0b16754b109905f833e063ebfa156bd953f2
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2014-11-24 21:08:15 +09:00
Chris Craik
b5a5435a77 Improve DisplayList state output
bug:17991451

Log hardware layers and shadow casting

Change-Id: I2ae40f270d18f5b2a5af985513e0f5e8841216c2
2014-11-21 16:23:00 -08:00
John Reck
8b59a528b5 Revert "Frameworks/base: Unused parameters in hwui"
This reverts commit 42ddc18d108f789705ad4eb697ce9599ad322507.

Change-Id: I3574a936a39a96314db6437d0a1eb58d260d893d
2014-11-22 00:10:02 +00:00
Chris Craik
90102e1009 am 1ae8a98e: am 29dc496a: Merge "Revert "Add a way to override Xfermode DO NOT MERGE"" into lmp-mr1-dev
* commit '1ae8a98e8a6ba82396955c0b6ab0e02568a3494b':
  Revert "Add a way to override Xfermode DO NOT MERGE"
2014-11-21 22:21:02 +00:00
Andreas Gampe
2ab8298dc3 resolved conflicts for merge of 99377df1 to lmp-mr1-dev-plus-aosp
Change-Id: I3a98f55832ac447b1ed0dd129c7a93d088025943
2014-11-21 14:19:06 -08:00
Chris Craik
29dc496a42 Merge "Revert "Add a way to override Xfermode DO NOT MERGE"" into lmp-mr1-dev 2014-11-21 22:11:13 +00:00
Chris Craik
69e65019b0 Revert "Add a way to override Xfermode DO NOT MERGE"
Feature no longer needed.

bug:18448377

This reverts commit 4678dcc5524258908eadc5fe1e5e1874768967eb.

Change-Id: Ib0a19946e966a54857165555827b5fa7b34b6bea
2014-11-21 22:05:33 +00:00
Andreas Gampe
42ddc18d10 Frameworks/base: Unused parameters in hwui
Remove Clang cutout for unused parameters. Fix warnings.

Remove Clang cutout for deprecated Skia function usage. Has been
fixed in the L push.

Change-Id: I7ea073ff67127cc1e14e798b655e2c50615fe8e7
2014-11-21 10:39:21 -08:00
Chris Craik
f2235b6a48 resolve merge conflicts of 57b641a to lmp-mr1-dev-plus-aosp.
Change-Id: I1be708f5a0cd4d64021a57f1063d54330f1d2d7e
2014-11-20 16:38:06 -08:00
Dan Albert
582bdf9a59 am d8c169fe: am 0c437fd3: Merge "Add appropriate casts for char16_t."
* commit 'd8c169fedf883491e46b354484909694fd52cfaf':
  Add appropriate casts for char16_t.
2014-11-20 23:00:56 +00:00
Dan Albert
6698749dd4 Add appropriate casts for char16_t.
C++11 defines a real char16_t, which is not implicitly convertible to
uint16_t (and by extension jchar). Add casts as needed.

Bug: 18300613
Change-Id: I00752002ef2e938bdb57f70947e8fd53ec103293
2014-11-20 11:47:40 -08:00
Chris Craik
3b2ba44be3 Merge "Improve logging around performance critical events" into lmp-mr1-dev 2014-11-20 17:36:26 +00:00
Chris Craik
70850ea258 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
2014-11-19 17:24:30 -08:00
John Reck
842697a360 am decc26df: am f0f68117: Merge "Trace some interesting events" into lmp-mr1-dev
* commit 'decc26df39b734ca1cbaccda1cbe3b355eba6898':
  Trace some interesting events
2014-11-18 21:33:19 +00:00
Chih-hung Hsieh
cb82b7f182 am a58336f6: Merge "Use fabsf() rather than abs()"
* commit 'a58336f6c8aa44373485e5a6d7ec32677387a935':
  Use fabsf() rather than abs()
2014-11-17 22:59:11 +00:00
Bernhard Rosenkränzer
c44958c786 Use fabsf() rather than abs()
abs() operates on integers -- to check floats accurately, fabsf
should be used.

Change-Id: I1a4e85f8f5e0d08ff38d307c5c31e2b6783ab7af
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-17 23:12:18 +01:00
John Reck
fbc8df03e4 Trace some interesting events
Bug: 18337099
Change-Id: Ie2e60da2b9f06e0368061c944d8123ab6903355c
2014-11-17 10:18:31 -08:00