History log of /frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
306f331f91a86da271ce30d4f14d6badf0d25704 11-Jun-2016 John Reck <jreck@google.com> Redraw if dirty during stopped when resumed

Change-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a
Fixes: 28283031
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
8cddce3f8f503b2aa8b993fef6406645c3e80da6 19-Apr-2016 John Reck <jreck@google.com> Merge "Make getFrameNumber lazy" into nyc-dev
28912a508493e583c48772e2a234e0ed66849490 18-Apr-2016 John Reck <jreck@google.com> Make getFrameNumber lazy

Change-Id: I783de544ad9a3636ea90f1c8c4034738997bfbc8
Fixes: 28246085
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c79c3246c9a3e0d2aa34afd18fddc95a6aff0f30 18-Apr-2016 Chris Craik <ccraik@google.com> Merge "Improve multi-window render clipping logic" into nyc-dev
9cd1bbe5c9e14472e631d8cc10005613925f34af 15-Apr-2016 Chris Craik <ccraik@google.com> Improve multi-window render clipping logic

Fixes: 28125010

Restructures 'scene defer', to implement window backdrop overdraw
avoidance in new render pipeline, and disable clipping to content draw
bounds.

Also restructures FrameBuilder's constructors, to separate out into
multiple defer methods.

Change-Id: I53facb904c1a4a4acc493d8a489921a79a50494e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
8afcc76920499d0a384dba1470c5a377f80ed768 13-Apr-2016 John Reck <jreck@google.com> Revert "Revert "Make stopped state a first-class thing""

This reverts commit eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399.

Fixes first-frame issue, mReportNextDraw needs to override
mStopped

Fixes: 28118961
Fixes: 27286867

Change-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
825fa4d5ae7b2907ee1769d09e6333306de2a92e 11-Apr-2016 John Reck <jreck@google.com> Merge "Revert "Make stopped state a first-class thing"" into nyc-dev
eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399 11-Apr-2016 John Reck <jreck@google.com> Revert "Make stopped state a first-class thing"

This reverts commit 945961f78a78eced823d5ba78505c781b079703d.

Change-Id: Iebc1d49fac33380233f8785fc39bec6c30a5e714
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029 08-Apr-2016 John Reck <jreck@google.com> Merge "Make stopped state a first-class thing" into nyc-dev
945961f78a78eced823d5ba78505c781b079703d 08-Apr-2016 John Reck <jreck@google.com> Make stopped state a first-class thing

Bug: 27286867

WindowManager has committed to stopped state
controlling the lifecycle of the Surface, so
make that a first-class thing in HWUI as well.

This makes it more resistent to things like
a rogue updateSurface() happening while mStopped=true,
leading to bad things down the line. Instead let
the surface be changed/updated as often as desired,
and just block any attempt to draw on that surface.

Also removes some unnecessary makeCurrent()s, as
EglManager ensures that we *always* have a valid
GL context now (using a pbuffer surface if there is
no window surface set)

Change-Id: Iead78ddebc7997e8fdb0c9534836352f5e54b9bd
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
44b49f070aafe8ad44efae87341121cce49ff11c 25-Mar-2016 John Reck <jreck@google.com> Add a callback for rendernode parentcount=0

Bug: 27709981
Fixes: 22565656

Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6246d27813f25b85f6e4b5cb1121fe8484bcce2d 30-Mar-2016 Chris Craik <ccraik@google.com> Support buildLayer in new pipeline

bug:26561995
bug:27620686

Change-Id: I6c39f9a077e7e6002d3c01b8888238fd17b0f02a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
3a5811b50157e7ba50854caf957e806aee794d39 22-Mar-2016 Chris Craik <ccraik@google.com> Precache/early kick off of op work for non-shadow ops.

bug:26562703
bug:27052145

Change-Id: Ic452bfe75da849ffdd47fecdd6eb1472fd0c806e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
dccca44ffda4836b56a21da95a046c9708ffd49c 21-Mar-2016 sergeyv <sergeyv@google.com> Reland: Move text logic from jni to hwui level

Initial CL: https://googleplex-android-review.git.corp.google.com/#/c/886854/

Change-Id: I9dfd85fe1d2a2c44f4360c8a29fd58d80e6f31c8
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6847953955502caa0bd0ba255d879a89aeccbd24 21-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Revert "Move text logic from jni to hwui level"" into nyc-dev
afbd0f1fef46ef0ddf633dfde0de724db3da1405 21-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Revert "Move text logic from jni to hwui level"

This reverts commit a7f6bba1a3565c19715e878dfe7f0e01022944ff.

Change-Id: If4f36f87a85411b6128fd92d391313803ccaf9dd
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
49658d43802dc74c0ad68b7f5ba509832c1dec81 21-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Move text logic from jni to hwui level" into nyc-dev
38f6c034d153bb648d45bce09d80a69ba3e03360 17-Mar-2016 John Reck <jreck@google.com> Move updating window position off RT

Bug: 27385141
Change-Id: I6c75b5f1d9ef55ef64dde050f71d0e28fb8714bf
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
a7f6bba1a3565c19715e878dfe7f0e01022944ff 16-Mar-2016 sergeyv <sergeyv@google.com> Move text logic from jni to hwui level

bug:25865834
Change-Id: I2d8c9c9544afcb5ce1784f732aed3e54e0eda372
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
1dfa0704964c17e45775b9e01f1fa0b1a10774f7 05-Mar-2016 Chris Craik <ccraik@google.com> Support GPU profiling vis in new pipeline

bug:27353099

Change-Id: I905c1a998d9a9e2097c047dab9de87a70d7a370e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c96955d9bb997b51be5fa929b5a67349d0459c3a 26-Feb-2016 John Reck <jreck@google.com> Always swap buffers if using partial update extension

Bug: 27379093
Change-Id: Ifda18287248e4ae07d4bf2ae9642a9d23039e81f
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
910beb8f5d9042163e2ad0dbb744d9f147db9604 03-Feb-2016 Andres Morales <anmorales@google.com> updates to FrameStatsObserver API

- Rename to FrameMetrics to avoid collision with existing
android.view.FrameStats class
- Make FrameMetricsObserver implementation detail,
exposing FrameMetricsListener interface as public API
and wrapping in FrameStatsObserver to maintain state
- Remove dropped frame count call, in favor of passing as
parameter to callback method.
- Move away from raw timestamp access in favor of Metric IDs
which represent higher-level, more stable stages in a frame
lifecycle and match the categories exposed in the onscreen
bars.
- Support many-to-many Window<->FrameMetricsListener relationship

Change-Id: I00e741d664d4c868b1b6d0131a23f8316bd8c5c2
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
0a1abd3247d856fe875d5ef45f75bc2c8167ea96 04-Feb-2016 John Reck <jreck@google.com> Merge "Have RT drive window positioning"
f648108f83d4e74811919e9811efb8fcc184b8a3 03-Feb-2016 John Reck <jreck@google.com> Have RT drive window positioning

Bug: 22802885

Change-Id: I6beed5474d3a943b16e9097f7bd61ce3cbd37505
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6e068c0182f6f85bccb855a647510724d1c65a13 16-Jan-2016 Chris Craik <ccraik@google.com> Early kickoff of shadow tasks

bug:26562703

Change-Id: I7cdf18f2c662380bd31c7ffeefd5c3f569e5c1c6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c3bd56811268a074ffb9513bde0d940199e7ad16 25-Jan-2016 Chong Zhang <chz@google.com> Restore code to draw backdrop and content nodes

bug: 26626661
Change-Id: I9e4dd41708e8ed93d3cf64242ad81815a653d269
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
dd93728b461c686ee4c5f329509418fe9342cb8d 26-Jan-2016 Florin Malita <fmalita@google.com> Merge "Add internal Canvas save flags"
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
eecff56fed5dd5206acfbc5007b4912081b36d3b 21-Dec-2015 Florin Malita <fmalita@google.com> Add internal Canvas save flags

Skia's SkCanvas::SaveFlags are being deprecated. This CL introduces
the equivalent android::SaveFlags, converts all internal clients to
the new enum, and switches the saveLayer glue to the
SaveLayerRec-based API.

Change-Id: Icb1785f4e7c0f652b1f04b34a1e3ccb063c408f3
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
06f5bc70a667a02b14e31d3f53f91d3661e30666 16-Dec-2015 Andres Morales <anmorales@google.com> expose hwui frame stats through FrameStatsObserver

Change-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b79151759ac59bcb6f8f76188d9af7b3155ae2ff 13-Jan-2016 Matthew Bouyack <mbouyack@google.com> Merge "In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments." into cw-e-dev am: eebf168e43 am: e0845e8629 am: 6222bb0f6a
am: 099bd9ca8f

* commit '099bd9ca8fea02795424d62c05c723290d68ae14':
In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.
3145247b3e8563f25e9d908579ce03060f3e880b 13-Jan-2016 Chris Craik <ccraik@google.com> Disable buildLayer crash

Change-Id: Ia51e8da01d5c694fb1a084cea8dfce865c56a456
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
099bd9ca8fea02795424d62c05c723290d68ae14 12-Jan-2016 Matthew Bouyack <mbouyack@google.com> Merge "In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments." into cw-e-dev am: eebf168e43 am: e0845e8629
am: 6222bb0f6a

* commit '6222bb0f6a772c8fa1dc402740399b0ad1017520':
In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.
f158b49c888f722194afe5a80539a2b020c130bc 12-Jan-2016 Chris Craik <ccraik@google.com> Rename Reorderers to Builders

Change-Id: I9bb5a2e70055e2f6d14912fbd86ab72ac0d6e20c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
7f667e7a0823d52eed2ed64a31b125f6b8da21cb 12-Jan-2016 Matthew Bouyack <mbouyack@google.com> In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos
and save the result. Then pass that value to
UiFrameInfoBuilder::setVsync as both arguments.

The order of function argument evaluation is undefined in C++. Because
the value returned from TimeLord::latestVsync may be changed by
the preceding call to TimeLord::computeFrameTimeNanos the values of the
arguments passed to UiFrameInfoBuilder::setVsync is also undefined. This
change removes any ambiguity.

Change-Id: Ie71ee453f9ccc725edfe5f7cc9b277f2a809dfdc
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
5ea1724be4d3b6039818f91fc087e1216c1463d5 11-Jan-2016 Chris Craik <ccraik@google.com> Rename OpReorderer to FrameReorderer

Also separate LayerReorderer into its own files.

Change-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
031eaedef8047c8054064ab12d05c3edca07a933 17-Dec-2015 Chris Craik <ccraik@google.com> Merge "Add TextureView support to new renderer/reorderer"
d2dfd8f128b632ed99418ab2b32949c939a9a369 16-Dec-2015 Chris Craik <ccraik@google.com> Add TextureView support to new renderer/reorderer

bug:22480459

Change-Id: I2e4c0bc6b904706132f3f5087ededc9cac9b40fb
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
bf4b31f7b23b0bc7a2ed4fc779aac37c9c486eb2 16-Dec-2015 John Reck <jreck@google.com> resolve merge conflicts of 04ce46db64 to master.

Change-Id: I935bb47718f0e7d5fb48945dd8de6e28dac136e5
adfeec94560c6661c5e6600b10c05f34a40f6454 16-Dec-2015 Chris Craik <ccraik@google.com> Allow RT animation of new renderer

Change-Id: I60136dc080dc4fd853ac8c3d37fefa85da1181df
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
0bcd0cb6b1193168fa2840855195347488daab9e 04-Dec-2015 Thomas Buhot <thomas.buhot@intel.com> libhwui: make setSurface asynchronous

On the critical path of the cold launch of applications
the main thread of the started application tells the RenderThread
to create a surface. This process is synchronous and blocks
the main thread of the application until the creation
of the EGLContext is complete.
As a consequence the launch time of the application is delayed
by time spent allocating the EGL Context in the RenderThread.

With this optimization the launch time of any application
is improved (for example settings by 20 to 40 ms).

Change-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08
Signed-off-by: Thomas Buhot <thomas.buhot@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
52b783f76af58a948dad4d3b4d1b7ad7979347ce 24-Nov-2015 John Reck <jreck@google.com> INT_MAX nanoseconds is not very long

Bug: 25843358

If the time between last swap & current vsync grew larger
than 2 seconds it would overflow when placed into an int, causing
frames to be dropped as negative numbers are definitely
less than 2_ms.

Change-Id: Icd2136989e5bbf5a0e21611b95a4d515b5ff9b14
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
98787e6c9b2c10b1ab7820bdac168686025b924a 13-Nov-2015 Chris Craik <ccraik@google.com> Finish shadow support in new reorderer/renderer

Now passes alphas and light radius, and correctly transforms light
center for layers.

Also fixes begin-frame/layer clears to be damage rect aware.

Change-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
9fded232a9548a304e0145011df8849fba0dcda7 12-Nov-2015 Chris Craik <ccraik@google.com> Recycle OffscreenBuffers

Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
290b23a1e11d532b39098bb58693ef97ba98a622 05-Nov-2015 Colin Cross <ccross@android.com> Fix build

std::abs requires <cstdlib>

Change-Id: I0722340d17aed88c4c8dabcb723d432b05cebedb
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
2359d85e31c8f17b82869fb35ebca50b8dd428bd 02-Nov-2015 Chris Craik <ccraik@google.com> Merge "Initial HW layer support in new reorderer/renderer"
0b7e8245db728d127ada698be63d78b33fc6e4da 29-Oct-2015 Chris Craik <ccraik@google.com> Initial HW layer support in new reorderer/renderer

Shares vast majority of clipped savelayer code, with only minor
differences in lifecycle.

Doesn't yet handle fill region, resize, or window transform.

Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b97ba3c09d5baf7c85ac4ddbdeb99770a7d3cab3 30-Oct-2015 Rob Carr <racarr@google.com> Merge "Add window setDecorView API."
263e19bf46a40e3924ab9a7f374ecc420726fc9d 29-Oct-2015 Chris Craik <ccraik@google.com> Merge "Simplify TreeInfo"
b6c2624c8d9ee71d1c8d0aaf8082f92bb84b1418 22-Oct-2015 Robert Carr <racarr@google.com> Add window setDecorView API.

Add a Window API for setting a view which will be placed in
the decoration area (next to the window control buttons).

Change-Id: Ie106cbea653ff95fdba987a2a43506d394600612
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e2e53a7079733694bd52dbce665e9ceff21e9727 28-Oct-2015 Chris Craik <ccraik@google.com> Simplify TreeInfo

Change-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47
/frameworks/base/libs/hwui/renderthread/CanvasContext.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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
3398abb25b6a8614f80f79efcf428a07185fe50f 28-Oct-2015 John Reck <jreck@google.com> Merge "Cleanups"
5854b34881b1a747ac80b5077869ef270a92b1f4 26-Oct-2015 Chris Craik <ccraik@google.com> Rework receiver/dispatcher design slightly, and replace Layer usage.

Switched from 'renderer/info' to 'dispatcher/renderer' to make their
interaction more natural. The new BakedOpRenderer is more similar in
responsibilities to the OpenGLRenderer, as it manages layer and frame
lifecycles, and performs the actual rendering.

However, it's still simpler because the BakedOpDispatcher handles
mapping Canvas drawing ops to Glops, and the OpReorderer handles almost
all canvas state operations.

Also switch BakedOpRenderer to use the new OffscreenBuffer, which
serves as a lightweight Layer replacement, with a much simpler
lifecycle.

Change-Id: Ie0e2e248503400041d49729d813d485d28c76eb3
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
77c40109cf25d29f85ee6c13aeb96e22e55f33ab 26-Oct-2015 John Reck <jreck@google.com> Cleanups

Change-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
818c9fbf1d76d5df19253ba4eb964efa939ec9ec 23-Oct-2015 Chris Craik <ccraik@google.com> Initial version of clipped saveLayer in new pipeline

Additionally disables usage of FBO cache, so FBO destruction safely
interacts with renderstate caching.

Change-Id: I25c277cb7afec2ca33bf226445d6c8867a15a915
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6fe991e5e76f9af9dab960100d5768d96d5f4daa 20-Oct-2015 Chris Craik <ccraik@google.com> Work to support saveLayer in new pipeline

clipped SaveLayers will now be pulled to the beginning of the frame,
prior to drawing FBO 0. This will remove the need for switching FBOs
mid-frame.

Change-Id: I4d8dc1f845e84e9b49d5acdf4f4703eef4a9cb06
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
ddf2215d9807b641dbcb304779ef6b530f876ac7 15-Oct-2015 Chris Craik <ccraik@google.com> Add partial damage support to new draw path

Change-Id: I612578fd181240de71297c9a28bc9a8f350764a7
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
ac02eb9035a13a3d09c2def9ed63d04225eb2509 05-Oct-2015 Chris Craik <ccraik@google.com> Remove confusing behavior of Rect::intersect() and rename

bug:24670525

Removes silly 'do nothing if rects do not intersect' behavior, and
changes the name to clarify the difference (contrasting against
SkRect::intersect())

bug:24670525

Change-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b816087962aba0019b022303330f03b897b580ed 22-Sep-2015 Skuhne <skuhne@google.com> Rendering the window frame with a second thread

Using a multi threaded render node to render the window frame
asynchronously from the application relayout.

Bug: 22527834
Bug: 24400680
Bug: 24459827
Bug: 24409773
Bug: 24537510
Change-Id: I1010fc6a8b6e38424178140afa3ca124433ab7e4
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
ea7a7fb75acb7305eb774ca7bc7e96103bd49323 28-Aug-2015 Skuhne <skuhne@google.com> MultiThreaded rendering of different renderNodes

This is adding the renderer side infrastructure to allow
rendering multiple render nodes with different threads.
This is a pre-step for decoupling a non client decor
resize reder from a content resize render.

Multiple render nodes can be added to be drawn, and to
prevent overdrawing, a content bounds area can be set

Bug: 22527834

Change-Id: Ie7271e20895bf38957e5a84aeefc883e282039ad
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
64e445bf74bee2098781d608cedfd723d8cc88d3 02-Sep-2015 Chris Craik <ccraik@google.com> CanvasState frame init refactor

bug:23760482

Change-Id: Idc0802b4b8a6a3cebd20797350f4eb01bcc3fe77
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e248bd1b2c3fcf8088429507e73b31f45ee2544b 05-Aug-2015 John Reck <jreck@google.com> Serializing display lists

This is a WIP prototype

Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b9ce116dac378b4cf4490f265dcbd5704a1dd43c 21-Aug-2015 Chris Craik <ccraik@google.com> Switch several enums to enum classes

Change-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
149173d28c0843aba86b0810ce75b34be6a0d08f 10-Aug-2015 John Reck <jreck@google.com> Support new EGL extensions

Bug: 21753739

Includes a revert of 13d1b4ab10fbee5e81a2ba1ac59cfae1e51d3ef0
as that only supported EGL_EXT_buffer_age

Change-Id: Ia86a47d19e3355c067934d7764c330b640c6958d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
13d1b4ab10fbee5e81a2ba1ac59cfae1e51d3ef0 30-Jul-2015 Season Li <seasonl@nvidia.com> renderthread: add EGL_EXT_buffer_age support

EGL_EXT_buffer_age is better than EGL_BUFFER_PRESERVED
because it can save memory bandwidth used to blit
back buffer into front buffer.

Change-Id: I2fea0ee08dc7dd66e348b04dd694d075d509d01b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6d4d0db312fa8a9fce629dd92aa133c6f8249cf8 04-Aug-2015 John Reck <jreck@google.com> Disable skipping frames on empty damage

Bug: 22592975

Optimization added in MNC is not quite correct, occasionally
it will fail to repaint when it was supposed to leading
to buffer corruption. Disable the optimization for now.

Change-Id: I34dfdfb357eda298198043ded7335d4588a003fd
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
00e79c9947b741194ff6c0d08ede9b3befbf9c9d 21-Jul-2015 John Reck <jreck@google.com> Mark isInUse per-window

Bug: 22509159
Change-Id: I0ae0f1fa582ee38dcb9f24ca20f0b4d0c57ccb32
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
f2dcc2aecb94e726096256c47b913ed0a57ae7e2 16-Jul-2015 John Reck <jreck@google.com> Don't crash on makeCurrent fail

Bug: 22444755

WindowManager may decide to yank the surface at any point, so
attempt to kinda handle this

Change-Id: Id2f665d2f0f93bccd4ec977fbf52dca4dc1ec891
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
be3fba05e823f740f65b2679929347dc3dd282ad 06-Jul-2015 John Reck <jreck@google.com> Adjust for pipeline stalls

Bug: 20853441

Calculating duration that crosses the UI-RT
sync point will now subtract out the time spent waiting
in queue under the assumption that this time will be
accounted for in the previous frame's metrics

Change-Id: Ia8213f4410638840613f5ae439e98dfb77532a6a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
2a8bb05a31ddd0d44d8513cba9fbd9b4ef9b97f6 03-Jun-2015 John Reck <jreck@google.com> Fix warning

Bug: 21608208
Change-Id: I1d1cf1fbc8c0a4561bf76e307c56be580fb4baef
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6058251939e417ed764d76fbde77eefc964d0ee6 03-Jun-2015 John Reck <jreck@google.com> Merge "More colors, now with material colors" into mnc-dev
bf3c602284f9a344faf185c3a5e94a264ba44c4f 03-Jun-2015 John Reck <jreck@google.com> More colors, now with material colors

Bug: 18052916
Change-Id: I66c2573d796338ee7b7d0ddf240b90cc78a71ce5
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
4db3d17debef68f72d23999d69ae68b75f59dda3 03-Jun-2015 John Reck <jreck@google.com> FrameInfo header fixes

Bug: 21560187

Log column names as part of output in case of other such
issues

Change-Id: I16157ed968307e761d416ca54bd7af5453fe67bf
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
d7db4d767246b41d44995acb93d03d220b53c748 20-May-2015 John Reck <jreck@google.com> Eliminate requireGlContext

Bug: 20297820

Change-Id: I37c63bab6f6c0d2337c8c6002046d2ef17e74097
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
50210d912925aef14e4ce69be82e4949122a3cd9 15-May-2015 Alan Viverette <alanv@google.com> Adjust light source for window position

Bug: 16523629
Change-Id: I2f3fed1edcac0a3cfd5034aded45e08ececfebaf
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
4c9e59d03c2bca38001225b79d01740b8999adfb 12-May-2015 John Reck <jreck@google.com> Unify DrawProfiler/JankStats

Bug: 20822400

Change-Id: I24345c3120440bfce14e8cbe7e880b39f10b744a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
9aa7b45e796fea9e308fb2fc1fe5363390f1e7ba 08-May-2015 John Reck <jreck@google.com> Merge "Fix kSkippedFrame setting" into mnc-dev
aef9dc8d186bd5f78068ab2d5240b5e9c8ab44b6 08-May-2015 John Reck <jreck@google.com> Fix kSkippedFrame setting

It was only set previously if RenderThread dropped the frame,
but not if the UI thread frame was dropped. Unify the
two paths

Change-Id: If2574edde3cb0949deed4e47f3daaddb890a1b28
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
d04794a9a3f9edc8b7ca336175d66eb81a8f55fa 08-May-2015 John Reck <jreck@google.com> Add eglSwapBuffersWithDamageKHR support

BUG: 20761426
Disabled temporarily

Change-Id: I0b6b6f0eebab886145e13fa35aefe76826965cf5
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
240ff6246a29602539fd0295274e1c769e743a2e 28-Apr-2015 John Reck <jreck@google.com> Skip frames with no damage

Bug: 20464038
Change-Id: Iae3aa9baf1d03c3aa443a39373e2bbd4a3910fad
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
edc524c90506d80e0fc5fb67e8de7b8f3ef53439 18-Mar-2015 John Reck <jreck@google.com> Add GraphicsStatsService

More S's for More Speed

Split JankTracker's backing data from the
class to allow for data relocation to/from ashmem regions

Pack the jank tracking data to fit in 256 bytes

Change-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b36016c65f1d1b5846dba0349aab491dbd3a746a 11-Mar-2015 John Reck <jreck@google.com> Cleanups & simplifications

Change-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c87be99c6ead0720a8918ea38ce3b25e5c49e1c6 20-Feb-2015 John Reck <jreck@google.com> C++11 style fixups

Change-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
96a5c4c7bab6718524de7253da8309143ab48bef 28-Jan-2015 Chris Craik <ccraik@google.com> Move more GL state management to RenderState and its directory

Change-Id: Ic68584e1c08dc64be2ad43450cb6caa1de834fdc
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
65fe5eeb19e2e15c8b1ee91e8a2dcf0c25e48ca6 27-Jan-2015 Chris Craik <ccraik@google.com> Move scissor state to RenderState

Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
51d6a3db97bdd5315f1a17a4b447d10a92217b98 23-Dec-2014 Chris Craik <ccraik@google.com> Cleanup various clang warnings, use unique_ptrs in several places

Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
9fb42f07784ac9e1ab29fa7d5bcda6c3081d238f 04-Dec-2014 John Reck <jreck@google.com> resolved conflicts for merge of a75b0ad3 to master

Change-Id: I32a2d129c556407727ada909daa6470309d42499
a75b0ad3842a5cfc406fbd9c7a36bf8a7bdcf069 04-Dec-2014 John Reck <jreck@google.com> resolved conflicts for merge of a51a0901 to lmp-mr1-dev-plus-aosp

Change-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed
01a5ea35fbba4c5bb1d7790ae1677a2fa752e042 03-Dec-2014 John Reck <jreck@google.com> 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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c5cf471758169f7ffdf7669568a7780902159790 01-Dec-2014 John Reck <jreck@google.com> am d7af6eaa: am d51205fd: am 6afc5cf3: Merge "Prevent calling GL functions with an invalid surface"

* commit 'd7af6eaace4ffdd3635a1cdeff65e9dc1af39f67':
Prevent calling GL functions with an invalid surface
d7af6eaace4ffdd3635a1cdeff65e9dc1af39f67 01-Dec-2014 John Reck <jreck@google.com> am d51205fd: am 6afc5cf3: Merge "Prevent calling GL functions with an invalid surface"

* commit 'd51205fda7351ca32e54ef34b32e72f6c7c79847':
Prevent calling GL functions with an invalid surface
a12b2405df5c12363e24cebc684f5f3a5c9a5b7b 21-Nov-2014 Sangkyu Lee <sk82.lee@lge.com> 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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
62bdf2c86342db66d86ceff3a8c0b609e4570bfc 26-Nov-2014 Chris Craik <ccraik@google.com> am e986817a: am 6eac26a4: am ca84c8b1: Merge "Revert "Force-use the pbuffer surface for destroy"" into lmp-mr1-dev

* commit 'e986817a2dc8a412c12e456319965a67ac60f236':
Revert "Force-use the pbuffer surface for destroy"
e986817a2dc8a412c12e456319965a67ac60f236 26-Nov-2014 Chris Craik <ccraik@google.com> 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"
9f81485a76dd02a07fd460a29db6adddd2ca2efe 26-Nov-2014 Chris Craik <ccraik@google.com> Revert "Force-use the pbuffer surface for destroy"

bug:18528859

This reverts commit b945f2313aee6e49a082ba5caaf95334d2570d52.

Change-Id: I6915624d356cb8570471eb3a5b8921f59b58db6d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e39f788950c60f6468a038f88e6dc7ac5ee65f8f 26-Nov-2014 John Reck <jreck@google.com> am 0d4ab958: am 4e3404d9: am dec3f138: Merge "Force-use the pbuffer surface for destroy" into lmp-mr1-dev

* commit '0d4ab958c11801f5453e999f930416c87c63d100':
Force-use the pbuffer surface for destroy
0d4ab958c11801f5453e999f930416c87c63d100 26-Nov-2014 John Reck <jreck@google.com> 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
f76d36f96bf221672e98e440c9df7cbf0e02e84e 21-Nov-2014 Sangkyu Lee <sk82.lee@lge.com> 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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b945f2313aee6e49a082ba5caaf95334d2570d52 25-Nov-2014 John Reck <jreck@google.com> 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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
64bb413a664001c95c8439cf097dc3033f4ed733 22-Nov-2014 Andreas Gampe <agampe@google.com> Revert "resolved conflicts for merge of 220c3f4f to master"

Reverted as hwui doesn't agree.

This reverts commit 8a902d9f24e83c87b054adb5836b4a5b8a257be9.

Change-Id: I109e7b02bee2921e2155ded6df36f52e6f574b5a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
8a902d9f24e83c87b054adb5836b4a5b8a257be9 22-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 220c3f4f to master

Change-Id: I37ecce8fddecdff82b0eace16f1ee75152f7171e
2ab8298dc37851aab4623ba3f98d71055d653a73 21-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 99377df1 to lmp-mr1-dev-plus-aosp

Change-Id: I3a98f55832ac447b1ed0dd129c7a93d088025943
42ddc18d108f789705ad4eb697ce9599ad322507 21-Nov-2014 Andreas Gampe <agampe@google.com> 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
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
27eaec23881f9564f98b484765d000822de5fdc3 18-Nov-2014 John Reck <jreck@google.com> am 842697a3: am decc26df: am f0f68117: Merge "Trace some interesting events" into lmp-mr1-dev

* commit '842697a3602204036e991cfea8b74da3df6e7f14':
Trace some interesting events
fbc8df03e498baf47ff1a5e05e182f1bcd60c770 15-Nov-2014 John Reck <jreck@google.com> Trace some interesting events

Bug: 18337099
Change-Id: Ie2e60da2b9f06e0368061c944d8123ab6903355c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e19093cad8e67cf1db98157d0246d0141b19f808 08-Nov-2014 John Reck <jreck@google.com> am f1923c36: am 8dda03a0: am ca93f69c: Merge "Have an actual fallback if the surface is lost" into lmp-mr1-dev

* commit 'f1923c368c5c08a477b9f94dea6a499798d91d4f':
Have an actual fallback if the surface is lost
aa95a88327d9a3ac8a4a00b065b78ac0f28b3a19 07-Nov-2014 John Reck <jreck@google.com> Have an actual fallback if the surface is lost

Bug: 17516789

This will force a relayout/reinitialize pass if the Surface
is lost mid-render instead of crashing on the next frame

Change-Id: If08bfa16f740728fa7c05904fa11e26f07b81e2e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
107843de4507b3511006cb9c77b8d0364374385a 08-Sep-2014 Tom Hudson <tomhudson@google.com> Remove status return from all uirenderer::Renderer functions

This moves the interface closer to android::Canvas. The only use of
return values was in the OpenGLRenderer subclass; that is replaced
with an internal dirty flag: returned from finish(), checked by
CanvasContext.

This is part of a series of CLs to refactor the Graphics JNI bindings.

BUG:15672762
R=djsollen@google.com,ccraik@google.com

Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2 31-Oct-2014 John Reck <jreck@google.com> Layer changes

Bug: 17208461

* Switch Layer to be VirtualLightRefBase instead of
Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure

Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
1125d1fa92ab9f3b8315bbfb72e038b62dfd454b 23-Oct-2014 John Reck <jreck@google.com> Add some free zoom to lockHardwareCanvas

Bug: 18099195

Don't use EGL_SWAP_BUFFER_PRESERVED on surfaces that will
never benefit. Also clean up some confusing naming

Change-Id: I674ca64e0464a3282cff79e5ecd350d08f47c014
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
786afcb3eec18315ec54987a08814ff28f13d09f 25-Sep-2014 Jorim Jaggi <jjaggi@google.com> Trim graphics memory when closing the shade

Graphics memory usually gets trimmed in applications when the
activity goes into the background. We use quite a lot of graphics
memory when the shade/lockscreen is open, and some of them never gets
freed unless the recents activity is closed, because we don't have
these activity-trimming-heuristics for the shade. This change
proactively trims the graphics memory when the shade gets closed or
when the lockscreen is hidden, to emulate the same heuristics as for
activities.

This change also adds trimMemory on RenderThread to systrace to
verify that no jank is introduced with this change.

This change immediately saves around 10-30 MB on an xxhdpi device
after the shade is closed.

Bug: 17581375
Change-Id: I4fb622efb51815fe08187be97ba15d012d4de5d4
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
749906b468912dab7bf69a86e852deac3e80b0cc 04-Oct-2014 John Reck <jreck@google.com> Cleanup DeferredLayerUpdater

Bug: 17765082

DeferredLayerUpdater had fallen behind RT updates. Re-snap to
latest expectations, ensuring to call requireGlContext() prior
to detachSurfaceTexture to avoid leaking SurfaceTextures

Change-Id: Ic65fb9831e5284f658866da8da9ad5af1d227699
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
651486d0186755f30f08d17126a61bf7127cba96 19-Sep-2014 Chris Craik <ccraik@google.com> Merge "Fix garbage showing up beneath dialogs" into lmp-dev
284b24358410cb0200e525a5ba36994090c83f20 19-Sep-2014 Chris Craik <ccraik@google.com> Fix garbage showing up beneath dialogs

bug:17463894

Fixes the setViewport method to immediately affect the return values
of getViewportWidth/Height methods.

Also works around tiling extension issues observed on first frame
after window resize by disabling tiling for that frame.

Change-Id: Ie172d572d20d74a1be9cc58ad389af2cffa0e4b6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
2cdbc7d2283aae3d77b12c8fdbba8ca4bd3db5ea 18-Sep-2014 John Reck <jreck@google.com> Special case EGL_BAD_SURFACE

Bug: 17516789

Change-Id: I3dcb10360c2aef6326f7dbbff6815866d4c143b6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
ec845a215e343cdb3b2e4c7b6aff7b24beb0236b 06-Sep-2014 John Reck <jreck@google.com> Fix race condition

Bug: 17372309

AnimationContext::startFrame() happens both with and without
the UI thread lock. Pass the TraversalMode into it so
that ThreadedRenderer's subclass can correctly decide
when it is safe to push over mPendingAnimatingRenderNodes, as doing
so outside of the lock is Very Bad.

Change-Id: Ife5dd3a2b46b0a207cd9234c159a674afdbf5efd
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44 05-Sep-2014 John Reck <jreck@google.com> Yet more layer tracking logging

Bug: 17208461

Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e2478d45ccbe5b6abb360ac9d44771b5f4a50bde 04-Sep-2014 John Reck <jreck@google.com> Fix some wrong-thread issues around animator management

Bug: 17372309

Fixes a case where UI thread and RT thread both used the same method
which wasn't safe for either of them.

Adds additional assertions & logging in unusual circumstances to
try and track down where the issue is occuring from.

Change-Id: I93d31a6fd0c5927259b67bdf96a475944226eee6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
17035b0211a3c9d45ea46a99217a6acbe76e8fbe 03-Sep-2014 John Reck <jreck@google.com> Have destroy call freePrefetchedLayers

Bug: 17208461

There's a potential race condition between HardwareRenderer.destroy()
being called (which calls destroyCanvasAndSurface()) and the renderer
being finalized (which is what calls freePrefetchedLayers), during which
time it's possible we get a TRIM_MEMORY_COMPLETE and destroy the EGL
context.

Fix this race condition by moving stopDrawing() and freePrefetchedLayers()
into destroyCanvasAndSurface() where they should have been in the first
place.

Also, if we hit the assertion failure, dump the current state of
Caches to try and provide more context for the failure.

Change-Id: Ife0ba3562041e8b08e87e3e13640472b3004eed6
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
1661715d4066a557ab0877271d62762579a38fa9 03-Sep-2014 John Reck <jreck@google.com> Implement TODO

Change-Id: I551ad0dab6356baa4c7787718b54d5b7337a3f26
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
dff9957cc22a1174a4cf91de6609c50934d29434 29-Aug-2014 John Reck <jreck@google.com> Free prefetched layers on TRIM_MEMORY

Bug: 17208461

Change-Id: I831c10d29d5920274b90e11a67d6cd106972a058
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
998a6d81896df8b662cc10ddeb35087b78b38d72 29-Aug-2014 John Reck <jreck@google.com> Track buildLayer calls, destroy if unused

Bug: 17208461

Change-Id: Ibdb104a493285d77a6891c5e74e38a52c7014da9
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
9eb9f6f8cbbbd87d45da8071aa54cb066a797723 21-Aug-2014 John Reck <jreck@google.com> Don't run animators in buildLayer

Bug: 17172689

Change-Id: Ib47d589c002543327fa336718440f9f8c95524e0
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
3e8249568cc428296ac76c7ddce3f0382d40fe5b 20-Aug-2014 John Reck <jreck@google.com> Implement full View.buildLayer

Bug: 17152292

Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
69e5adffb19135d51bde8e458f4907d7265f3e23 14-Aug-2014 Chris Craik <ccraik@google.com> Define shadow casting behavior within layers

bug:15860114

Savelayers and HW layers both now support shadow casting.

For save layers, the light source should always be correct, for HW
layers, the light source position is set when the layer is created,
and updated when it is resized.

Change-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
058fc640017c90120c599d378a4cbc55668b05b7 24-Jul-2014 Chris Craik <ccraik@google.com> Connect shadow style attributes to renderer

bug:15859361

Moves lighting info out of StatefulBaseRenderer, since it's not useful
at record time, and only used by OGLR.

Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
5cdb8f998c58a2226112b36e4c391866346e5e17 17-Jul-2014 John Reck <jreck@google.com> Fix logging

Bug: 16357287

Change-Id: Ic14e32c941e42ab1f1ed51ff8ed7185979e57a55
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
0a97330b98dd633b58dcfff405d94476c89e867d 16-Jul-2014 John Reck <jreck@google.com> Fix root RenderNode damage calculation

Bug: 15888445

Change-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
dcba6725e8b9d3eba9ad7a01258d6aa974feafba 08-Jul-2014 John Reck <jreck@google.com> Fix layers lifecycle issues

Bug: 16118540

Fix an issue where we could have a reference to a Layer after
the GL context was destroyed

Change-Id: I7bfd909d735ca6b942ebe188fc10099422eb6d95
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
3c2b7fa8c584c5ed56f1bd6ad53f2e87f0a6eb44 07-Jul-2014 John Reck <jreck@google.com> Add missing requireGlContext

Change-Id: I7100e5e9986f502f66a23ecea07a6057522c43ac
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
f47a594f5250b1914c36423ee6b371f0b8db09d0 01-Jul-2014 John Reck <jreck@google.com> Fix onTrimMemory for HardwareRenderer

Also fixes detachFunctor possibly drawing after return

Bug: 15189843
Bug: 15990672

Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
68bfe0a37a0dcef52abd81688d8520c5d16e1a85 25-Jun-2014 John Reck <jreck@google.com> Animator refactoring & fixes

Tweaks animators to have less unnecessary refcounting

Pull animator management out into seperate class

More control to tweak animator lifecycle, such as doing
Java-side handling of start delay by attaching but not
starting the animator

Change-Id: I4ff8207580ca11fb38f45ef0007b406e0097281c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
cd028f336e36b22dbe8cf623eb5bd2361314495c 24-Jun-2014 John Reck <jreck@google.com> Fix contants; RT-enable WebView pt2

Bug: 15838537

* Fix kSync_UIRedrawRequired constant value (woops)
* Tell CanvasContext that WebView is now rt-safe

Change-Id: Idf15cf21115c2ca24b8ccd00025e8502864cd87c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
a7090e0cfd7c719a6d4c03aae34f5db98754cbdd 21-Jun-2014 Chris Craik <ccraik@google.com> Update 'DisplayList' vs 'RenderNode' naming in several places

Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
734df4b4271e90e320f3ff37b4b0d49e92cb1e3c 16-Jun-2014 Chris Craik <ccraik@google.com> Interrupt canvas before invoke

Change-Id: I5b818958f6255c594339bd10d9efa99e9e2c00d4
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
25fbb3fa1138675379102a44405852555cefccbd 12-Jun-2014 John Reck <jreck@google.com> Move LayerType to RenderNode

Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e4267ea4f20740c37c01bfb6aefcf61fddc4566a 04-Jun-2014 John Reck <jreck@google.com> Even FASTER damage calculations!

* Now with more native!
* Less matrix math thanks to bulk-property-update support!
* Zero JNI on the View.damageInParent() path!
* Fully aware of RT-driven animators!
* Likely full of new and exciting bugs!
* But it also fixes at least 1 existing invalidate bug!

Change-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
d72e0a339b54af0c4e731513bbad120dff694723 30-May-2014 John Reck <jreck@google.com> Re-jigger layers

Bug: 15185239
Bug: 15238382

Make DeferredLayerUpdater ref counted so that
HardwareLayer:finalizer() works non-crashily on
leaked layers
Give DeferredLayerUpdater the ability to have a layer destroyer
set so that leaked layers can still be recycled on the
RenderThread
Order layer updates based off of pushLayerUpdate() calls to fix
issue with nested layers

Change-Id: I4449cee607f7e5126e02fed7464cf48038e3dfdf
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
aee470c0232afdac4256d13020fa0cf04f30395c 30-May-2014 John Reck <jreck@google.com> Merge "Enable debug stuffs" into lmp-preview-dev
fe5e7b7346a54537b980796ceeca66bfdbd05561 24-May-2014 John Reck <jreck@google.com> Enable debug stuffs

Bug: 14596762
* dumpsys gfxinfo implemented
* profile GPU visual_bars implemented

Change-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
c8affe0e1b1f3f63b12477f832a1a66019ac0df8 29-May-2014 John Reck <jreck@google.com> Re-enable atlas

Bug: 14590563

Change-Id: I04ed5bf1b2654dab4a65c1e43faaeba32459870f
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e1628b7c6fc3822fa83cf02028ce8ad67abb0afe 24-May-2014 John Reck <jreck@google.com> Implement FlushCaches TODO

Change-Id: Id05429e98ffe0858275b32c41fb215c1d8d930b2
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
a5dda645da738da7b4ae15e28fa7d93d3b04b94f 23-May-2014 John Reck <jreck@google.com> Bag of scheduling tweaks

Bug: 15118640

* Prevent over-stuffing the queue by dropping frames
* Prevent double-drawing in one pulse by RT by deferring
vsync registration until post-draw so that it catches
the next vsync pulse instead of the current one
* Bias vsync race condition towards the UI thread
* Fix queueDelay to actually work

Change-Id: Ibf584258bd93ebcbba058bd976dc8b307f1c6155
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
797b95b26bbb7557678af78b9a2a61830158920f 21-May-2014 Chris Craik <ccraik@google.com> Define light position (using new lighting spec) in Java

Also updates the relative shadow strengths.

Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
cdfeef6624613ca06fe8a7edfb92608afb0499ee 15-May-2014 John Reck <jreck@google.com> Disable texture atlas

Bug: 14952384

Change-Id: If38b3e4c08c2c3dd9c00ae9e6e8c10e208e737d1
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
66f0be65a1046f54ddce0498b242c1fa0776b1ea 13-May-2014 John Reck <jreck@google.com> Wire up texture atlas

Bug: 14590563

Change-Id: I2dffbc089dc801f5fb2d1c8fd38e1c71d160e110
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
ef27453cf71e331e4076df5e5c665b06d5c3e050 07-May-2014 John Reck <jreck@google.com> Merge "Cleanup attachFunctor"
832b151465ed81c43e59891d5eebe62128b21fbb 07-May-2014 John Reck <jreck@google.com> Cleanup attachFunctor

Bug: 13961296

Change-Id: Id48d11bfcc234afd1fd7e4fdd409a50e7208c81d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5 07-May-2014 John Reck <jreck@google.com> Merge "Implement TODO(romainguy)"
63a06673253914510bbeebd500655008682dade1 07-May-2014 John Reck <jreck@google.com> Implement TODO(romainguy)

Bug: 14277445

Change-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
368cdd85268999997fb495cf90c4417221797de0 07-May-2014 John Reck <jreck@google.com> Don't try to draw if there's no canvas or surface

Bug: 14616376

doFrame() can happen after the canvas or surface is destroyed,
handle it gracefully

Change-Id: Ibbbbdbfa77fa2134bd2abc215ca1a0886d706969
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
f9be77940e365036fecd8cc0e491e8545c34e79b 03-May-2014 John Reck <jreck@google.com> Make RenderNodeAnimator and WebView play nice

Change-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
18f16e6fba74eda173e1e7c869e6e2e2acc073ff 03-May-2014 John Reck <jreck@google.com> TIME LORD!

Bug: 14444180

Change-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e45b1fd03b524d2b57cc6c222d89076a31a08bea 15-Apr-2014 John Reck <jreck@google.com> RenderThread animator support

Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
dbc9a86d05e5e835051de22f6cb30ec1921e9705 18-Apr-2014 John Reck <jreck@google.com> Force a full redraw on surface change

Bug: 13913604

Change-Id: Ie90c7ee74cf83358e19d8b4f0bae078540a93a8d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
6f07a0dc875a9eac67312085a8e0133b9e2f4771 17-Apr-2014 John Reck <jreck@google.com> Add missing resume() call

Bug: 14087850

Change-Id: Ic555ca6027e617c7ed6e7e66b5cf713c36ed1c6c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e8a866d4a41daa43e394505e12503b32c2d929e4 14-Apr-2014 John Reck <jreck@google.com> Merge "Fix issue with bitmap uploading"
860d155f866cc15a725e7ce03763280987f24901 12-Apr-2014 John Reck <jreck@google.com> Fix issue with bitmap uploading

Bug: 13912749

Change-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
fae904d63947fe1687d1d44be29234cc3d538f24 14-Apr-2014 John Reck <jreck@google.com> Fence on destruction

Bug: 14052927
destroyCanvasAndSurface() needs a fence as when it returns the
underlying BufferQueue is going to be released from under
the render thread.

Change-Id: I0147a1d5ec5adf0239c761ef22f65cd8c8a137df
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
822bbb382fa6b6c8d1b45770e27c2c2732a7afb7 11-Apr-2014 John Reck <jreck@google.com> Merge "Make attachFunctor blocking"
d3d8dafc2f61fb118c060720b52684c59303f3db 11-Apr-2014 John Reck <jreck@google.com> Make attachFunctor blocking

Bug: 13930200

Change-Id: I9b0cf92fd16bb30baa09b6f8d7ae22a8b2a7fd80
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
8ca3eecc2b7fe507d3482745efc4cd2567ad15a1 10-Apr-2014 John Reck <jreck@google.com> Remove sync flush

Bug: 13952590
It was attempting to flush state changes after the canvas was
destroyed, which caused layer updates to crash.

Due to the removal of SetDisplayListData, the sync mode isn't able
to do anything ever, so remove it.

Change-Id: I1e18ce288d81fd47cc6e612afda9476f75ecef2e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
f4198b713e43c0c0f9adac74203cf24c2a49b802 10-Apr-2014 John Reck <jreck@google.com> Merge hasFunctors & pushStaging into prepareTree

Bug: 13902607
Fixes synchronous mode for WebView in HardwareLayers

Change-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
8e1f918738abf70a4dc86dbb12b386a9deea37f8 10-Apr-2014 John Reck <jreck@google.com> Merge "Switch DisplayListData to a staging model"
8de65a8e05285df52a1e6f0c1d5616dd233298a7 10-Apr-2014 John Reck <jreck@google.com> Switch DisplayListData to a staging model

Bug: 13912977

Change-Id: I5b2f664e797be22a58300964f57ceb4fab60528c
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
f7d9c1dc84671d4e99657ef071d275700d85bb11 09-Apr-2014 John Reck <jreck@google.com> Fix ThreadedRenderer.setEnabled()

Bug: 13914116
Fixes lifecycle issues around setEnabled where ThreadedRenderer
was reporting as being enabled before it had a Surface. This is
incorrect.

Also fix some EGL lifecycle issues

Change-Id: I12ebb279707f9b533a570b61d68735d858b560bf
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
1949e7928eeec22cd3f74b5f763a4eb433238453 09-Apr-2014 John Reck <jreck@google.com> Ensure there's a GL context before creating a Layer

Bug: 13745587

Change-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
0d1f634f4b5e1bb37aa51777efb6a68619488d01 29-Mar-2014 John Reck <jreck@google.com> Add invokeFunctor

Change-Id: I09e675d3e02e3e528642175ada00b2b17fab7652
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
750ca6dbdb259aea0ca5b77380a9303e586ef3ea 29-Mar-2014 John Reck <jreck@google.com> Remove kStatusInvoke & kStatusDraw

They are unused

Change-Id: I44ecf1164dc6bc1b09438e733976d5a97a25f00e
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
668f0e38ef0277d55d3118af37e17b8c435df85c 26-Mar-2014 John Reck <jreck@google.com> Async drawing!

Change-Id: I7e728356f58af88174328a8c0b90d27b128bfe01
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
bfb07a03777af424e99bca1dac4c903aaf44e99d 25-Mar-2014 John Reck <jreck@google.com> Move where updateProperties is called

Change-Id: I27da448996019094c44487ce28c5689d098d6535
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
16efa9a330fcf10a09cc9564e9d319c6f4be2ae1 18-Mar-2014 John Reck <jreck@google.com> Fix functor removal

Bug: 12179257

Change-Id: Ib63a351b1b289b08452f17086cb6c8b688e2ba4d
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
e18264b079481a244b30e3f71012c53bbd861f92 12-Mar-2014 John Reck <jreck@google.com> Rename DisplayList->RenderNode

Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
be34f2f3b340196426bdf558b28951359a4d84fa 10-Mar-2014 John Reck <jreck@google.com> DisplayList lifecycle changes

Bug: 13360343
Change DisplayList to be more forgiving with weaker lifecycle
requirements. Is more self-managed with a strong reference
to the renderer it needs

Also fix naming mismatch

Change-Id: I5c89453a72a52954f6f959f0846199705dbb6476
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
44fd8d24f761f82d21e9b00932648a1b6bf91449 26-Feb-2014 John Reck <jreck@google.com> DisplayList overhaul

Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
19b6bcfd83eb7fb92ebd06d2fec89e308311f1d0 15-Feb-2014 John Reck <jreck@google.com> Support HardwareLayers in RenderThread

Also has a few HardwareLayer lifecycle fixes

Change-Id: I6308cb05f8f199eed72189ace768013a46815941
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
fc53ef27793a39e9effd829e9cae02a9ca14147e 11-Feb-2014 John Reck <jreck@google.com> Implement missing safelyRun() on ThreadedRenderer

Change-Id: I14b75f37a13fabaa759a51369190dbdc84087c4b
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
23b797ab5151eb2474f3bdd679f2f07bfd723042 04-Jan-2014 John Reck <jreck@google.com> EGL migration to native

Move EGL state management to native side for RemoteGLRenderer

Change-Id: I12b0fed70246564d4caebf87374e8bbca655c572
/frameworks/base/libs/hwui/renderthread/CanvasContext.cpp