• Home
  • History
  • Annotate
  • only in /frameworks/base/libs/hwui/renderthread/
History log of /frameworks/base/libs/hwui/renderthread/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
501ff9acfe9dd656c1fb6d82ec0533c3244fd88b 17-Jun-2016 John Reck <jreck@google.com> Avoid re-calculating vsync mid-frame

Fixes: 29072773

By using computeFrameTime AnimationContext would
potentially end up modifying the latest vsync if
a very-slow frame was received from the UI thread.

This could potentially desync animations that were
RT & UI thread 'synchronized', but more significantly
it would confuse the swap chain which tries to only
draw one frame per vsync causing unneccessary frame
drops.

Change-Id: Ibd2ec3157ce32fee1eec8d56837c45a35e622895
imeLord.cpp
imeLord.h
306f331f91a86da271ce30d4f14d6badf0d25704 11-Jun-2016 John Reck <jreck@google.com> Redraw if dirty during stopped when resumed

Change-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a
Fixes: 28283031
anvasContext.cpp
anvasContext.h
e94cbc76d560a157c0a0d47181b4ed2a0aadbeb1 25-Apr-2016 John Reck <jreck@google.com> API tweaks to PixelCopy and make it public

Bug: 27708453
Change-Id: I81667ce42f9ca1c1a13e1e61299927900845fc84
enderProxy.cpp
enderProxy.h
9110429f0d8acac0d621d805050103fa58953fb9 19-Apr-2016 John Reck <jreck@google.com> Merge "Don't reuse LOST_SURFACE for stopped" into nyc-dev
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
anvasContext.cpp
anvasContext.h
c79c3246c9a3e0d2aa34afd18fddc95a6aff0f30 18-Apr-2016 Chris Craik <ccraik@google.com> Merge "Improve multi-window render clipping logic" into nyc-dev
9a17da8125c36c82ba73e7f4b3ed80b9c633767f 18-Apr-2016 John Reck <jreck@google.com> Don't reuse LOST_SURFACE for stopped

Fixes: 28218991

If a draw() happens while we are stopped, don't report
that the surface is lost because this will prompt
a tear-down of the surface which isn't desired. It can
result in ViewRootImpl ending up in an internally-bad state
in this case.

Change-Id: If3eb8c6bc8702299e5330bc0917952624dce3b7e
rawFrameTask.cpp
rawFrameTask.h
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
anvasContext.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
glManager.cpp
enderProxy.cpp
enderProxy.h
d2eec0efb2e47b23b2a12ab2967e422f0be49094 12-Apr-2016 John Reck <jreck@google.com> Merge "Framework-side of SurfaceView#getBitmap" into nyc-dev
10dd0585c11dcedb5a271d54e645594f1d215d5c 01-Apr-2016 John Reck <jreck@google.com> Framework-side of SurfaceView#getBitmap

Bug: 27708453

Change-Id: Ie6fd7eca522d3e6549d8af587c975fd7e6053649
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
glManager.cpp
enderProxy.cpp
enderProxy.h
c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029 08-Apr-2016 John Reck <jreck@google.com> Merge "Make stopped state a first-class thing" into nyc-dev
4a735441e82207e18036be09d0d02c855930938f 08-Apr-2016 John Reck <jreck@google.com> Merge "Fix a derp" into nyc-dev
a41f2445156fe0bcfde6bd4d813dfc43796a526d 08-Apr-2016 John Reck <jreck@google.com> Fix a derp

Fixes: 28074465

I knew I added that flag for a reason...

Change-Id: I6e28237dcd50191769a828bf2646c3a00c14387c
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
glManager.cpp
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
bbb4c2eb2e871977289a9c48f414962e46b56ddc 31-Mar-2016 John Reck <jreck@google.com> Merge "Add a callback for rendernode parentcount=0" into nyc-dev
660108075e61d7b7e6c138000890011510d5b079 30-Mar-2016 John Reck <jreck@google.com> Expand JankTracker

Bug: 27922347

* Dump the full histogram
* Expand the histogram to have a slow-frame section with
large 50ms buckets to raise the cap to 5s to give more
insight into system-health
* Stop excluding first-frame metrics as we want to include
those in our global tracking. Automated tests already filter
these out by doing resets before running anyway.

Change-Id: Idaba8aad591f59d10a6477b11efc0767ff715083
enderProxy.cpp
44b49f070aafe8ad44efae87341121cce49ff11c 25-Mar-2016 John Reck <jreck@google.com> Add a callback for rendernode parentcount=0

Bug: 27709981
Fixes: 22565656

Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
anvasContext.cpp
6246d27813f25b85f6e4b5cb1121fe8484bcce2d 30-Mar-2016 Chris Craik <ccraik@google.com> Support buildLayer in new pipeline

bug:26561995
bug:27620686

Change-Id: I6c39f9a077e7e6002d3c01b8888238fd17b0f02a
anvasContext.cpp
anvasContext.h
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
anvasContext.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
anvasContext.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
anvasContext.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
anvasContext.cpp
anvasContext.h
a7f6bba1a3565c19715e878dfe7f0e01022944ff 16-Mar-2016 sergeyv <sergeyv@google.com> Move text logic from jni to hwui level

bug:25865834
Change-Id: I2d8c9c9544afcb5ce1784f732aed3e54e0eda372
anvasContext.cpp
1dfa0704964c17e45775b9e01f1fa0b1a10774f7 05-Mar-2016 Chris Craik <ccraik@google.com> Support GPU profiling vis in new pipeline

bug:27353099

Change-Id: I905c1a998d9a9e2097c047dab9de87a70d7a370e
anvasContext.cpp
fc736869aced442057e5a2c16a9591dca1f93295 27-Feb-2016 John Reck <jreck@google.com> Switch to pbuffer surface sooner

Bug: 27286867

If the system/app is slow, it might take too long to
stop drawing. Switch the ordering of destroying stuff so
that we switch to the pbuffer surface first, then do
cleanup

Change-Id: If64a3dbb71bb9fd53567231590436a89b2f1a09e
glManager.cpp
c96955d9bb997b51be5fa929b5a67349d0459c3a 26-Feb-2016 John Reck <jreck@google.com> Always swap buffers if using partial update extension

Bug: 27379093
Change-Id: Ifda18287248e4ae07d4bf2ae9642a9d23039e81f
anvasContext.cpp
glManager.cpp
glManager.h
11f02d7e522ec8742f7ef533c252e04e24b93f6b 13-Feb-2016 Andres Morales <anmorales@google.com> allow for slow FrameMetricsListeners

A slow listener could cause a race in the NotifyHandler
where the single reference to the buffer to send would get
updated when it shouldn't have been.

Switch to a queue of available buffers to prevent this race.

Also, stop setting and clearing the observer reference and instead
incStrong/decStrong to mark temporary strong ownership without
colliding with other owners in flight.

Bug: 27097094
Change-Id: Iee647bfae8b80019b6d8290179eed3973230901f
anvasContext.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
d1ddcf19bbb17cad09ec93b2ad09b1e1e0bfb3ff 06-Feb-2016 John Reck <jreck@google.com> resolve merge conflicts of 9ea5295597 to master.

Change-Id: I68b883e8a1bb17abd4cf151d057dd07e53a80f50
9ea5295597aa82b261863097d3d2f989ada733d5 06-Feb-2016 John Reck <jreck@google.com> Merge "libhwui: handle eglSwapBuffers with EGL_BAD_NATIVE_WINDOW error case"
am: 857b65657d

* commit '857b65657d453801e9b73f998043603456dac813':
libhwui: handle eglSwapBuffers with EGL_BAD_NATIVE_WINDOW error case
9a878a646f6aca6160f22c139a5efd4de94199f8 05-Feb-2016 Christian Poetzsch <christian.potzsch@imgtec.com> hwui: set buffer destroyed swap mode explicitly

Not using EGL_SWAP_BEHAVIOR_PRESERVED_BIT as config attribute for
eglChooseConfig doesn't automatically mean the swap behavior is buffer
destroyed. This is driver implementation specific and on some hw this
can still be buffer preserved. Make sure it is buffer destroyed by
explicitly setting it for every new surface when requested.

Change-Id: Ie2c7c89b0d20e35832b488c6263bb4d9dd844a75
Signed-off-by: Christian Poetzsch <christian.potzsch@imgtec.com>
glManager.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
6e068c0182f6f85bccb855a647510724d1c65a13 16-Jan-2016 Chris Craik <ccraik@google.com> Early kickoff of shadow tasks

bug:26562703

Change-Id: I7cdf18f2c662380bd31c7ffeefd5c3f569e5c1c6
anvasContext.cpp
anvasContext.h
892760008f7c774b3556b1863c6228f3d55d4246 21-Jan-2016 Zhang Dongsheng <dongsheng.zhang@intel.com> libhwui: handle eglSwapBuffers with EGL_BAD_NATIVE_WINDOW error case

If eglSwapBuffers is called but the under surface was destroyed,
the EGL_BAD_NATIVE_WINDOW error may also be generated according
to the EGL spec 1.4.

This really shouldn't happen from the upper, but add the graceful
handling of this case also.

Change-Id: Ic0a599808b72f401d2a01c3dc40f9e6ea0e0a564
Signed-off-by: Zhang Dongsheng <dongsheng.zhang@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
glManager.cpp
c3bd56811268a074ffb9513bde0d940199e7ad16 25-Jan-2016 Chong Zhang <chz@google.com> Restore code to draw backdrop and content nodes

bug: 26626661
Change-Id: I9e4dd41708e8ed93d3cf64242ad81815a653d269
anvasContext.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
anvasContext.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
anvasContext.cpp
06f5bc70a667a02b14e31d3f53f91d3661e30666 16-Dec-2015 Andres Morales <anmorales@google.com> expose hwui frame stats through FrameStatsObserver

Change-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
0c540849d7eb17c7e348821cd782afa99e3b7129 19-Jan-2016 John Reck <jreck@google.com> Merge "Fix ordering of texture->upload arguments"
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
anvasContext.cpp
465eefb9f31928157158a0f30319d1d95a21a567 19-Jan-2016 John Reck <jreck@google.com> Merge "fix race condition between HWUI cache and renderThread" am: 2c2b5e8514
am: 4354ae9883

* commit '4354ae9883ae1282ac457539f46d529bdfa89fec':
fix race condition between HWUI cache and renderThread
4354ae9883ae1282ac457539f46d529bdfa89fec 19-Jan-2016 John Reck <jreck@google.com> Merge "fix race condition between HWUI cache and renderThread"
am: 2c2b5e8514

* commit '2c2b5e8514247d8524778d209f26b7dbde19d142':
fix race condition between HWUI cache and renderThread
c0a0e1a66da20a18045d59451b59ec32685bcf18 18-Jan-2016 Thomas Buhot <thomas.buhot@intel.com> fix race condition between HWUI cache and renderThread

getMaximumBitmapWidth() and getMaximumBitmapHeight() of DisplayListCanvas
need HWUI cache instance. Since the initialization of the cache is
asynchronous it may crash if not yet ready. Add a staticFence() call
to guarantee the cache has been created prior issuing the call.

Change-Id: I5ed9e5cc084444c8d1872a77fef50e294ae14e93
Signed-off-by: Thomas Buhot <thomas.buhot@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
enderProxy.cpp
enderProxy.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
anvasContext.cpp
6fb775521ab604ef875ab91ca2c7186064760508 14-Jan-2016 Chris Craik <ccraik@google.com> Merge "Log render pipeline in gfxinfo dump"
ff3edce12d3081517e9a724cc18a0de58af5187a 14-Jan-2016 Chris Craik <ccraik@google.com> Log render pipeline in gfxinfo dump

Change-Id: Ia50c445b29d918f274ec45632d61d8b8479c72eb
enderProxy.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
anvasContext.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
anvasContext.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
anvasContext.cpp
5ea1724be4d3b6039818f91fc087e1216c1463d5 11-Jan-2016 Chris Craik <ccraik@google.com> Rename OpReorderer to FrameReorderer

Also separate LayerReorderer into its own files.

Change-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24
anvasContext.cpp
f43f627fc97e70d79345192654c65ba87f0a4efb 04-Jan-2016 John Reck <jreck@google.com> Merge "Add some options to macrobench"
682573c84b7c21dc8ce4a2375da3961147442c4a 30-Oct-2015 John Reck <jreck@google.com> Add some options to macrobench

Change-Id: If8d5f5d3ace050577986a554182b2b66fd2257e1
glManager.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
anvasContext.cpp
anvasContext.h
rawFrameTask.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
anvasContext.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>
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
f20528b404bc637582304367877802e98b33c4d0 25-Nov-2015 Chris Craik <ccraik@google.com> Merge "Move BakedOpDispatcher to separate file"
9e7fcfda28fde747ba4e026772007cea77374e16 25-Nov-2015 Chris Craik <ccraik@google.com> Move BakedOpDispatcher to separate file

Change-Id: If7aad6db6b7e54a33eac9b9eddbe8cd844207282
anvasContext.h
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
anvasContext.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
anvasContext.cpp
anvasContext.h
9fded232a9548a304e0145011df8849fba0dcda7 12-Nov-2015 Chris Craik <ccraik@google.com> Recycle OffscreenBuffers

Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
anvasContext.cpp
cba287b9716155183faf21865a6c28ba49ffe486 10-Nov-2015 John Reck <jreck@google.com> Fix threading issues

Bug: 25584167
Change-Id: I413ef9e0c86f7cca1f7d085e0071745ca0192853
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
290b23a1e11d532b39098bb58693ef97ba98a622 05-Nov-2015 Colin Cross <ccross@android.com> Fix build

std::abs requires <cstdlib>

Change-Id: I0722340d17aed88c4c8dabcb723d432b05cebedb
anvasContext.cpp
704bed0da7cc75d0c517d425445de70ceb58060b 05-Nov-2015 John Reck <jreck@google.com> add DeviceInfo

This reverts commit 096895550b9d5430d7a001d491566decf4f9791b.

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

This reverts commit b2442896e3a226c7ebe9d47fa80b257e98a6a34d.

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

Change-Id: I4c122278a7e88b6f47c4dd3c5fc553df7d3c900d
glManager.cpp
b4e228918e9317b6b21fee4f9b9c1c20f59c79b8 03-Nov-2015 John Reck <jreck@google.com> Merge "Remove almost-all android::Singleton users"
6b50780363d3bb8db600c770183fa07677509ae8 03-Nov-2015 John Reck <jreck@google.com> Remove almost-all android::Singleton users

Bug: 25426213
Change-Id: I88e6206e8915cce95c3a8a8a82a4bb8fbf668141
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
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
anvasContext.cpp
anvasContext.h
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
anvasContext.cpp
e2e53a7079733694bd52dbce665e9ceff21e9727 28-Oct-2015 Chris Craik <ccraik@google.com> Simplify TreeInfo

Change-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47
anvasContext.cpp
anvasContext.h
rawFrameTask.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
anvasContext.cpp
anvasContext.h
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
anvasContext.cpp
77c40109cf25d29f85ee6c13aeb96e22e55f33ab 26-Oct-2015 John Reck <jreck@google.com> Cleanups

Change-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a
anvasContext.cpp
anvasContext.h
ac7062e7f1716f137f14299c28e3c638cf4bdb9f 27-Oct-2015 Chris Craik <ccraik@google.com> Merge "Initial version of clipped saveLayer in new pipeline"
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
anvasContext.cpp
c2547fa6f9a0f4247b35edcee69f3c3cc3510b1a 26-Oct-2015 John Reck <jreck@google.com> eglSwapBuffers can also return EGL_BAD_NATIVE_WINDOW

Bug: 25017107
Change-Id: I545a746ba89d577de5769bc3e7dd335a100638c0
glManager.cpp
0cc90c36f345d992c23e39dabda051e30fae7e90 22-Oct-2015 John Reck <jreck@google.com> Merge "Add assert for required EGL extensions"
708b6687da23d2ac5bd394dec3e6d950b34d5b6c 22-Oct-2015 John Reck <jreck@google.com> Add assert for required EGL extensions

Bug: 25149700

Change-Id: I535ead7c1f8ba8766dff85fcf26a9cfe76647fb8
glManager.cpp
914e362d1884a79588e848f6f87772e4e3fc73b2 22-Oct-2015 Chris Craik <ccraik@google.com> Merge "Work to support saveLayer in new pipeline"
a672f6ba4c9f65de0b94bcdc639f1e053d7ee5d9 22-Oct-2015 John Reck <jreck@google.com> Remove obsolete debug option

Bug: 25149700
Change-Id: I9280e2414255fb01e672094cd8d173efadac1681
glManager.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
anvasContext.cpp
0a24b146cd3dacf372ce98424044423a5b2fbf2a 20-Oct-2015 Chris Craik <ccraik@google.com> Add initial OpReorderer benchmarks

Change-Id: I6ca8ea89be2159331b2ad7031769c65f54161918
enderProxy.cpp
enderThread.cpp
enderThread.h
003cc3dec8e2a92e51086fbcd5ee1bb236efa701 16-Oct-2015 Chris Craik <ccraik@google.com> Rename DisplayListData to DisplayList

Change-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b
rawFrameTask.h
enderProxy.h
ddf2215d9807b641dbcb304779ef6b530f876ac7 15-Oct-2015 Chris Craik <ccraik@google.com> Add partial damage support to new draw path

Change-Id: I612578fd181240de71297c9a28bc9a8f350764a7
anvasContext.cpp
anvasContext.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
anvasContext.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
anvasContext.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
fe1f99c2b292c90236d7e907c8a86bab0b90bfe4 22-Sep-2015 Stefan Kuhne <skuhne@google.com> Merge "MultiThreaded rendering of different renderNodes"
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
glManager.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
64e445bf74bee2098781d608cedfd723d8cc88d3 02-Sep-2015 Chris Craik <ccraik@google.com> CanvasState frame init refactor

bug:23760482

Change-Id: Idc0802b4b8a6a3cebd20797350f4eb01bcc3fe77
anvasContext.cpp
e248bd1b2c3fcf8088429507e73b31f45ee2544b 05-Aug-2015 John Reck <jreck@google.com> Serializing display lists

This is a WIP prototype

Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
b9ce116dac378b4cf4490f265dcbd5704a1dd43c 21-Aug-2015 Chris Craik <ccraik@google.com> Switch several enums to enum classes

Change-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e
anvasContext.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
anvasContext.cpp
anvasContext.h
irtyHistory.cpp
irtyHistory.h
glManager.cpp
glManager.h
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
anvasContext.cpp
anvasContext.h
irtyHistory.cpp
irtyHistory.h
glManager.cpp
glManager.h
0d39408976306a3830b9ff96adea76caa05be383 04-Aug-2015 John Reck <jreck@google.com> am 903e117e: am 0429246e: am 0c9ec1f2: am 2e529712: am c03ab87a: Merge "Disable skipping frames on empty damage" into mnc-dev

* commit '903e117e55d5b2ac58acdce3810fc47972d1c6cb':
Disable skipping frames on empty damage
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
anvasContext.cpp
272a685f17cc4828257e521a6f62b7b17870f75e 30-Jul-2015 John Reck <jreck@google.com> Replace most usages of utils/Vector.h

Change-Id: I540d1b3523244d6c71fc52d6fb30555271c25644
anvasContext.h
enderProxy.h
c36df952292b69920d4764a8a37361073fcf4f2c 29-Jul-2015 John Reck <jreck@google.com> Re-enable -Werror on clang

Change-Id: I582bd0665752c7a9deb4f9de094d0dd0a50cda6a
enderProxy.cpp
c052a9a1bb1d0b7918f73166a36e96e0b1a9ed92 22-Jul-2015 John Reck <jreck@google.com> am a2fd3234: am 3bfe4b47: am 1cd5afc1: am 9317d0b9: am 1fddd3ef: Merge "Mark isInUse per-window" into mnc-dev

* commit 'a2fd32348b06b22963fcc7c33179fddbd2394dbf':
Mark isInUse per-window
00e79c9947b741194ff6c0d08ede9b3befbf9c9d 21-Jul-2015 John Reck <jreck@google.com> Mark isInUse per-window

Bug: 22509159
Change-Id: I0ae0f1fa582ee38dcb9f24ca20f0b4d0c57ccb32
anvasContext.cpp
rawFrameTask.cpp
1d5d34624bedbbe8f5ff60d81490da81301ebe7e 16-Jul-2015 Chris Craik <ccraik@google.com> Merge "Clean up unncessary defines"
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
anvasContext.cpp
glManager.cpp
glManager.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
rawFrameTask.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.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
anvasContext.cpp
rawFrameTask.cpp
2a8bb05a31ddd0d44d8513cba9fbd9b4ef9b97f6 03-Jun-2015 John Reck <jreck@google.com> Fix warning

Bug: 21608208
Change-Id: I1d1cf1fbc8c0a4561bf76e307c56be580fb4baef
anvasContext.cpp
38f4396ebd1d90fbf9700c634d98964e85a29575 03-Jun-2015 Chris Craik <ccraik@google.com> Merge "Handle shader matrix correctly when ignoring canvas transform" into mnc-dev
53e51e4aa933f9603587e1780f446c18816bf9be 01-Jun-2015 Chris Craik <ccraik@google.com> Handle shader matrix correctly when ignoring canvas transform

bug:20063841

Restores old SkShader matrix behavior from before the Glop refactor.

Many drawing operations draw without sending the canvas transform to
the GL shader. In such cases, we need to adapt the matrix sent to the
SkShader logic to invert the canvas transform that's built into
the mesh.

Change-Id: I42b6f59df36ce46436322b95bf9ad2140795ee58
enderProxy.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
anvasContext.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
anvasContext.cpp
4cd44f8110c3b648a7eeb526152b2a50e0a376a1 27-May-2015 John Reck <jreck@google.com> Enable swapBuffersWithDamage by default

Bug: 20761426

Change-Id: I520e60ca4f182dea590bc86eebd522e1db7a018a
glManager.cpp
d7db4d767246b41d44995acb93d03d220b53c748 20-May-2015 John Reck <jreck@google.com> Eliminate requireGlContext

Bug: 20297820

Change-Id: I37c63bab6f6c0d2337c8c6002046d2ef17e74097
anvasContext.cpp
anvasContext.h
glManager.cpp
glManager.h
50210d912925aef14e4ce69be82e4949122a3cd9 15-May-2015 Alan Viverette <alanv@google.com> Adjust light source for window position

Bug: 16523629
Change-Id: I2f3fed1edcac0a3cfd5034aded45e08ececfebaf
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
4c9e59d03c2bca38001225b79d01740b8999adfb 12-May-2015 John Reck <jreck@google.com> Unify DrawProfiler/JankStats

Bug: 20822400

Change-Id: I24345c3120440bfce14e8cbe7e880b39f10b744a
anvasContext.cpp
anvasContext.h
rawFrameTask.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
anvasContext.cpp
d04794a9a3f9edc8b7ca336175d66eb81a8f55fa 08-May-2015 John Reck <jreck@google.com> Add eglSwapBuffersWithDamageKHR support

BUG: 20761426
Disabled temporarily

Change-Id: I0b6b6f0eebab886145e13fa35aefe76826965cf5
anvasContext.cpp
anvasContext.h
glManager.cpp
glManager.h
9eb9dd326ae93cd84eb9bbc740f753fe8d8c7a13 06-May-2015 Chih-Hung Hsieh <chh@google.com> Fix clang warnings on unused variable, mismatched tag, print format.

BUG: 20890093
Change-Id: I91588f481d80b69823bc9d104b8bd09167ee5373
enderProxy.cpp
356b1777092e7da3ac5eae0bc94bd21e1cf9319a 05-May-2015 Chris Craik <ccraik@google.com> Merge "Cleanup properties" into mnc-dev
7f2e5e3cea6af1f1dff35842aa13d46c47315b91 05-May-2015 John Reck <jreck@google.com> Dump profile info after running test

Bug: 20824843

Not really a proper "benchmark mode" but it turns out
we already have reasonably good profile data, so tweak
the test app to spit it out after a run.

Change-Id: Iaee9c0d61b5508daf282fe5f95d0b37ee419a8f1
enderProxy.cpp
enderProxy.h
2507c34d91bb0d722b6012e85cb47387b2aa6873 04-May-2015 Chris Craik <ccraik@google.com> Cleanup properties

bug:19967854

Separate properties from Caches, into static, RenderThread-only class.

Also rewrites the means for java to set properties to correctly handle
threading, and adds an override for profile bars so that SysUi doesn't clutter
the screen with them.

Change-Id: I6e21a96065f52b9ecc49d1a126244804ba106fa9
enderProxy.cpp
enderProxy.h
enderThread.cpp
a15eedd266af3229217bfd45e6fec0001336279a 04-May-2015 John Reck <jreck@google.com> Fix setName use-after-free

Bug: 20764439
Change-Id: I7a0f85bb82629b1302db02015fa493dc09eb31f7
enderProxy.cpp
78760b4ae47f5d59a541cbcbf1fca623bae4508a 01-May-2015 John Reck <jreck@google.com> Merge "A bunch more cleanups" into mnc-dev
3731dc220ed457e0f1e99d7ec2589e0a43872b59 14-Apr-2015 John Reck <jreck@google.com> A bunch more cleanups

Switch a few places to using android::canvas
instead of SkCanvas as well which eliminated
some JNI

Change-Id: I8f98b56442a06362b82b984cd1bd3a92398d8dbc
enderProxy.cpp
enderProxy.h
240ff6246a29602539fd0295274e1c769e743a2e 28-Apr-2015 John Reck <jreck@google.com> Skip frames with no damage

Bug: 20464038
Change-Id: Iae3aa9baf1d03c3aa443a39373e2bbd4a3910fad
anvasContext.cpp
9d4efdf2802f06ccf7031610891f75af70ea5538 17-Apr-2015 John Reck <jreck@google.com> Revert "A bunch more cleanups"

This reverts commit c294d128d03bc9a9982b273a82516c04583438cc.

Change-Id: Id1ebb236950f7c36c6d86e1dd95566d3a200748d
enderProxy.cpp
enderProxy.h
c294d128d03bc9a9982b273a82516c04583438cc 14-Apr-2015 John Reck <jreck@google.com> A bunch more cleanups

Switch a few places to using android::canvas
instead of SkCanvas as well which eliminated
some JNI

Change-Id: I8f98b56442a06362b82b984cd1bd3a92398d8dbc
enderProxy.cpp
enderProxy.h
c74e289a6537227ab80fa59da9d5d6f88dc9fe33 30-Mar-2015 John Reck <jreck@google.com> Merge "Add GraphicsStatsService"
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
111928fa324db73f94389bdfab4b108cbd30d8f4 24-Mar-2015 John Reck <jreck@google.com> resolved conflicts for merge of 4142f026 to master

Change-Id: Iabe3aa0ac6911a26d2ba7219f18332897276ed6f
c80c9ad188ac6c421e70c906104d4394504878fb 20-Mar-2015 youngmin0822.lee <youngmin0822.lee@lge.com> Don't create unnecessary RenderThread's instance when executing 'dumpsys gfxinfo'

To obtain the gfxinfo for each process, the static method of RenderProxy is used, which is named outputLogBuffer().
In there,
1. RenderTask is created for getting DisplayList Commands in RenderNode.
2. staticPostAndWait() is called
3. RenderThread's instance is created by 'RenderThread::getInstance()' in staticPostAndWait()

In case of the service, they don't use HW Acceleration, so don't need RenderThread.
But, by the process of No.3, RenderThread is created for all process.
As we know, RenderThread never be destroyed while the process is alive.
This patch checks RenderThread instance before the creation of RenderTask.
And, there is no one, just return to prevent the unnecessay creation of it.

Change-Id: I4fe29d83c9ced3e8b67177c0874c5d8ee62e1870
enderProxy.cpp
b36016c65f1d1b5846dba0349aab491dbd3a746a 11-Mar-2015 John Reck <jreck@google.com> Cleanups & simplifications

Change-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
c87be99c6ead0720a8918ea38ce3b25e5c49e1c6 20-Feb-2015 John Reck <jreck@google.com> C++11 style fixups

Change-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9
anvasContext.cpp
rawFrameTask.cpp
enderProxy.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
imeLord.cpp
imeLord.h
8a6b56651b42df2a073d68bbaf23e681acd7eeb5 31-Jan-2015 John Reck <jreck@google.com> Merge "Add a WAIT_FOR_GPU_COMPLETION option"
5515637540bedd8fc9a1a6e46a4b512dd45520a5 21-Jan-2015 John Reck <jreck@google.com> Add a WAIT_FOR_GPU_COMPLETION option

Change-Id: I18d526120651676109200bfd5da87cafcd7e3d13
glManager.cpp
glManager.h
44eb2c00861098dd3e2950d923646814b4cc57c2 29-Jan-2015 Chris Craik <ccraik@google.com> Refactor blending and texture gl state

Change-Id: Ia6b3c8b2afd3dfcee7f3ce401d846b789612054a
glManager.cpp
96a5c4c7bab6718524de7253da8309143ab48bef 28-Jan-2015 Chris Craik <ccraik@google.com> Move more GL state management to RenderState and its directory

Change-Id: Ic68584e1c08dc64be2ad43450cb6caa1de834fdc
anvasContext.cpp
65fe5eeb19e2e15c8b1ee91e8a2dcf0c25e48ca6 27-Jan-2015 Chris Craik <ccraik@google.com> Move scissor state to RenderState

Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
anvasContext.cpp
glManager.cpp
enderThread.cpp
026111bc56498d6ac463b335d91e2ee5e06901be 28-Jan-2015 Yabin Cui <yabinc@google.com> am f7049289: am 3812e68e: Merge "kill HAVE_PTHREADS."
automerge: 3a10a67

* commit '3a10a672f05735be46256617b8a61cdb1e589008':
kill HAVE_PTHREADS.
3a10a672f05735be46256617b8a61cdb1e589008 27-Jan-2015 Yabin Cui <yabinc@google.com> am f7049289: am 3812e68e: Merge "kill HAVE_PTHREADS."

* commit 'f70492898b3efa3c5f480f195062fa6f293bc764':
kill HAVE_PTHREADS.
1610486d371b867c0a842ede38e64774c18ba5d9 27-Jan-2015 Yabin Cui <yabinc@google.com> kill HAVE_PTHREADS.

Bug: 19083585
Change-Id: Ib466949bb6cd6d1bbc4680e989f0f9fae62ca564
enderThread.cpp
2ae07339824efc50468f971ff8920ff0b894cad4 21-Jan-2015 Chris Craik <ccraik@google.com> Remove DisplayListLogBuffer

Change-Id: I001832fc444b6d532f4a382e0a31cc1d8956dbd8
enderProxy.cpp
enderProxy.h
f78ff7d49a4da604ba4fbcf2b662f5e4bd8bfa16 15-Jan-2015 John Reck <jreck@google.com> am cefeb34e: am 2c9f86aa: am 53af1cd3: Merge "Vsyncs are hard" into lmp-mr1-dev

* commit 'cefeb34e4866209e2ccf4c520919fe31a3f1aeb5':
Vsyncs are hard
cefeb34e4866209e2ccf4c520919fe31a3f1aeb5 15-Jan-2015 John Reck <jreck@google.com> am 2c9f86aa: am 53af1cd3: Merge "Vsyncs are hard" into lmp-mr1-dev

* commit '2c9f86aa21b8d7ea6a77eaca9a49ccdb31245129':
Vsyncs are hard
a22c9b2cd171a656fa684d57a915dbe636da5f6a 14-Jan-2015 John Reck <jreck@google.com> Vsyncs are hard

Bug: 18866485
Change-Id: I7d304df0f20a3296956cb6887a72adba9243f117
enderThread.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
glManager.cpp
enderProxy.cpp
enderTask.h
enderThread.cpp
enderThread.h
51d6a3db97bdd5315f1a17a4b447d10a92217b98 23-Dec-2014 Chris Craik <ccraik@google.com> Cleanup various clang warnings, use unique_ptrs in several places

Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
anvasContext.cpp
anvasContext.h
07adacf4996c8ca494332ec938786fa15832c722 19-Dec-2014 Chris Craik <ccraik@google.com> Cleanup

Change-Id: I91ffb9c66697741116fdeaa31abdf6cfd79155df
enderTask.cpp
a285e9ed82071077d55c41471dd5437ec2f41ba4 20-Dec-2014 John Reck <jreck@google.com> am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-dev
automerge: ed3c296

* commit 'ed3c2962be1e2966c3b46f20e81d2902a8302d8b':
Tweak RT-animator scheduling
ed3c2962be1e2966c3b46f20e81d2902a8302d8b 20-Dec-2014 John Reck <jreck@google.com> am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-dev

* commit '165fb8f5aa0709a8dc35f99a9b81f6906452a648':
Tweak RT-animator scheduling
a733f89c05567c97359169832f41389b939baaad 19-Dec-2014 John Reck <jreck@google.com> Tweak RT-animator scheduling

Bug: 18226391

The issue occurs as a result of a dispatchFrame itself
taking longer than 12ms, the alloted budget. The result
is that a vsync request (which occured at the end) would
miss the vsync that occured 1ms prior to the end of the frame.
As a result it would end up waiting for the following vsync,
essentially dropping to 30fps even though 60 could have been
sustained.

Fix this with a few tweaks.
First, adjust the UI thread's delay bias from (now + 4ms) to
(vsync + 4ms), this prevents RT animators from slowly drifting
if the vsync occurs mid-task.
Second, request a vsync preemptively prior to running callbacks.
This way if any callbacks needs the next vsync and it takes
"too long", we will catch that vsync.
Finally, fix an issue where the display event queue was always
drained & rejected at the end of a task loop. Instead, drain
and reject all stale vsyncs. This still prevents the issue of
both UI thread & RT thread trying to drive 2 frames in a single
pulse, but also allows RT to notice that it missed a vsync
pulse it needed and that it should speed-up a bit in response

Change-Id: I9d6be037737e9283297898cac2e3563453e797cd
enderThread.cpp
enderThread.h
imeLord.cpp
imeLord.h
f088c349dfea985e561d7e838ecd41be5168cd4a 12-Dec-2014 John Reck <jreck@google.com> Fix style

Change-Id: I7227b0eac126bf470ed50249a7809b845872983b
anvasContext.cpp
enderThread.cpp
59cf734f9ee8fa0154d199f0f36779a6ffe0dfb5 11-Dec-2014 Yohann Roussel <yroussel@google.com> resolved conflicts for merge of d67bb501 to master

Change-Id: I40698ce1e382cb41eec7af5ea49ac0e2f997d555
d67bb5015f716c094beff02b2c5e77c9bb7d11a0 11-Dec-2014 John Reck <jreck@google.com> am eb2dcc79: Merge "Don\'t preload textures for AssetAtlas" into lmp-mr1-dev
automerge: e4a6ed9

* commit 'e4a6ed9d6d8721c9fad018b0d43dfe7daf4b24e7':
Don't preload textures for AssetAtlas
ebd52610cfeff6e557fde284a7e1efc5e6438285 11-Dec-2014 John Reck <jreck@google.com> 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
glManager.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
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
anvasContext.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
anvasContext.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
anvasContext.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
anvasContext.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
anvasContext.cpp
enderProxy.cpp
enderThread.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
anvasContext.cpp
enderProxy.cpp
enderThread.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
842697a3602204036e991cfea8b74da3df6e7f14 18-Nov-2014 John Reck <jreck@google.com> am decc26df: am f0f68117: Merge "Trace some interesting events" into lmp-mr1-dev

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

Bug: 18337099
Change-Id: Ie2e60da2b9f06e0368061c944d8123ab6903355c
anvasContext.cpp
glManager.cpp
edaecc1db0584fa017822dfc2da0c968b53967e6 11-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp

(cherry picked from commit 1272887050a269d6d506b42099c2857847ad100b)

Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
enderProxy.cpp
enderTask.cpp
1272887050a269d6d506b42099c2857847ad100b 11-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp

Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
1e19674107e1aa2224c2b8c7d12bfa057efe80ea 11-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Wall Werror in libs/hwui

Turn on -Wall -Werror in libs/hwui. Fix errors.

Change-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd
enderProxy.cpp
enderTask.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
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
anvasContext.cpp
9481684560b2815d2706512086bb36467ef6acc0 01-Nov-2014 John Reck <jreck@google.com> am e05575e9: am a8d83d63: Merge "Layer changes" into lmp-mr1-dev automerge: a51fba0

* commit 'e05575e9c36850d8cfe49396ac9a1372511b12bf':
Layer changes
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
anvasContext.cpp
glManager.cpp
glManager.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
eaab65f49d320f0689ee52a55bb768907e5e6928 30-Oct-2014 John Reck <jreck@google.com> am 97054254: am 141823ec: Merge "Be more conservative about current buffer" into lmp-mr1-dev automerge: a27e1a3

* commit '97054254d4c8eef66538814e1d5def776ceba97a':
Be more conservative about current buffer
950ff1b88cc1330f8e80d62ed3aa15bee6be0556 27-Oct-2014 John Reck <jreck@google.com> Be more conservative about current buffer

Bug: 18065565
Change-Id: I0b9c85ecf384ebe525e3a38803ab77d7ee37f33a
glManager.cpp
675a518d5aca3092bfdd438f3f40bfdc3640cb80 24-Oct-2014 John Reck <jreck@google.com> am b64e4372: am 82572cc4: am badac04d: Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev

* commit 'b64e4372bb60bdce75e2af7d0b94efe92d94ac6a':
Add some free zoom to lockHardwareCanvas
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
anvasContext.cpp
anvasContext.h
glManager.cpp
glManager.h
enderProxy.cpp
enderProxy.h
7ab73f1e983cf2be077d147d0542974a8f768431 22-Oct-2014 John Reck <jreck@google.com> am e73a54f3: am bf463af2: Merge "Surface:lockHardwareCanvas" into lmp-mr1-dev
automerge: 76f24bd

* commit '76f24bde7816dd97ed2375ec41c9817be0330d9f':
Surface:lockHardwareCanvas
bb2d0cc7e1d487f7021b1f9ec0c6740e41b535f2 21-Oct-2014 John Reck <jreck@google.com> Surface:lockHardwareCanvas

Bug: 17440886

Change-Id: I1f2d98c63ec1a2814c2258cf7e0096139263770a
imeLord.cpp
2dc236b2bae13b9a0ed9b3f7320502aecd7983b3 15-Oct-2014 Tom Hudson <tomhudson@google.com> Clean up physical coupling

Narrow the use of #include directives in hwui, replacing with forward
declarations where straightforward. Speeds compiles; doesn't do any
restructuring of code.

Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
glManager.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
anvasContext.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
2cdbc7d2283aae3d77b12c8fdbba8ca4bd3db5ea 18-Sep-2014 John Reck <jreck@google.com> Special case EGL_BAD_SURFACE

Bug: 17516789

Change-Id: I3dcb10360c2aef6326f7dbbff6815866d4c143b6
anvasContext.cpp
glManager.cpp
glManager.h
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
anvasContext.cpp
443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44 05-Sep-2014 John Reck <jreck@google.com> Yet more layer tracking logging

Bug: 17208461

Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
anvasContext.cpp
anvasContext.h
enderThread.h
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
anvasContext.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
1661715d4066a557ab0877271d62762579a38fa9 03-Sep-2014 John Reck <jreck@google.com> Implement TODO

Change-Id: I551ad0dab6356baa4c7787718b54d5b7337a3f26
anvasContext.cpp
dff9957cc22a1174a4cf91de6609c50934d29434 29-Aug-2014 John Reck <jreck@google.com> Free prefetched layers on TRIM_MEMORY

Bug: 17208461

Change-Id: I831c10d29d5920274b90e11a67d6cd106972a058
anvasContext.cpp
998a6d81896df8b662cc10ddeb35087b78b38d72 29-Aug-2014 John Reck <jreck@google.com> Track buildLayer calls, destroy if unused

Bug: 17208461

Change-Id: Ibdb104a493285d77a6891c5e74e38a52c7014da9
anvasContext.cpp
anvasContext.h
glManager.cpp
4c5a27b5f667ebc7cb2b188655820ad3fddedb52 28-Aug-2014 John Reck <jreck@google.com> Merge "Animator stuff" into lmp-dev
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
imeLord.cpp
imeLord.h
1d4774233304c484673e2af2c1de2ab41021c979 27-Aug-2014 Chris Craik <ccraik@google.com> Crash instead of leaking layers/textures between GL contexts

bug:17208461
Change-Id: I4d58f301cf0f5e8145e808a5d6ade4de7801970b
glManager.cpp
9eb9f6f8cbbbd87d45da8071aa54cb066a797723 21-Aug-2014 John Reck <jreck@google.com> Don't run animators in buildLayer

Bug: 17172689

Change-Id: Ib47d589c002543327fa336718440f9f8c95524e0
anvasContext.cpp
3e8249568cc428296ac76c7ddce3f0382d40fe5b 20-Aug-2014 John Reck <jreck@google.com> Implement full View.buildLayer

Bug: 17152292

Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
enderProxy.cpp
enderThread.cpp
21be43e142a6fcb3283d7b2da14eb39b690cf643 14-Aug-2014 John Reck <jreck@google.com> Fix hwuitask & RT priorities

Bug: 15993695

Change-Id: Ib6f07237cb834e8d10f3074f8fb206d27f91859a
enderThread.cpp
cd3a22cfec09c065d0667dd044c0788912e82465 06-Aug-2014 John Reck <jreck@google.com> Don't start RenderThread to do trimMemory

Bug: 16825138

Change-Id: I35f57898b14bc8526c3d93a3003bca6f5a3d7fbe
enderProxy.cpp
738ec3aace180018560998d1c2cdeb9ddde5fbfa 25-Jul-2014 Chris Craik <ccraik@google.com> Revert "Dump RenderThread stack on unresponsive"

bug:16563871
bug:16565900
bug:16555847
bug:16551643

This reverts commit ca66e06b9db6e6c921662886e4b7ddd02ac92280.

Change-Id: I23e8d4eaf828b1b298126ba5f36e4e8e7451706a
rawFrameTask.cpp
enderProxy.cpp
enderThread.cpp
enderThread.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
73b7a4db4116774156fda3a510cc3afa14be9ffd 23-Jul-2014 John Reck <jreck@google.com> Dump RenderThread stack on unresponsive

Bug: 16408405

Change-Id: I4ba4836fd1451fb8ba77c34cdb843d3cb4217bb8
rawFrameTask.cpp
enderProxy.cpp
enderThread.cpp
enderThread.h
5cdb8f998c58a2226112b36e4c391866346e5e17 17-Jul-2014 John Reck <jreck@google.com> Fix logging

Bug: 16357287

Change-Id: Ic14e32c941e42ab1f1ed51ff8ed7185979e57a55
anvasContext.cpp
0a97330b98dd633b58dcfff405d94476c89e867d 16-Jul-2014 John Reck <jreck@google.com> Fix root RenderNode damage calculation

Bug: 15888445

Change-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de
anvasContext.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
anvasContext.cpp
3c2b7fa8c584c5ed56f1bd6ad53f2e87f0a6eb44 07-Jul-2014 John Reck <jreck@google.com> Add missing requireGlContext

Change-Id: I7100e5e9986f502f66a23ecea07a6057522c43ac
anvasContext.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
918ad523b2780e0c893f3d2a32d4ec13f2a7e921 27-Jun-2014 John Reck <jreck@google.com> More cleanups

Change-Id: Id5967944b949a2aec57e4fe9fdcdc04c11b8c35a
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.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
anvasContext.cpp
rawFrameTask.h
6b39324d7756f1a36faf275941aabb19ee6bbb53 24-Jun-2014 John Reck <jreck@google.com> Merge "No-fail invokeFunctor"
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
glManager.cpp
glManager.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
61606cec5ceb705910dec94222b22e66a0365094 23-Jun-2014 Bo Liu <boliu@google.com> Merge "Enable asynchronous RenderThread for WebView"
826b56448691221e4cfe2f19a09c3d8790f78d2c 14-May-2014 Bo Liu <boliu@google.com> Enable asynchronous RenderThread for WebView

BUG: 12179257

Change-Id: Ib7358dc84a0a58020d178d10b324b9631848c06d
rawFrameTask.cpp
a7090e0cfd7c719a6d4c03aae34f5db98754cbdd 21-Jun-2014 Chris Craik <ccraik@google.com> Update 'DisplayList' vs 'RenderNode' naming in several places

Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
anvasContext.cpp
734df4b4271e90e320f3ff37b4b0d49e92cb1e3c 16-Jun-2014 Chris Craik <ccraik@google.com> Interrupt canvas before invoke

Change-Id: I5b818958f6255c594339bd10d9efa99e9e2c00d4
anvasContext.cpp
816f71b7e0dc263362e9fc8d251c8d1944bff17c 13-Jun-2014 John Reck <jreck@google.com> Merge "Move LayerType to RenderNode"
25fbb3fa1138675379102a44405852555cefccbd 12-Jun-2014 John Reck <jreck@google.com> Move LayerType to RenderNode

Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
anvasContext.cpp
rawFrameTask.cpp
546f353e7f562fdbcf59980bcb7dc11567658aa3 10-Jun-2014 Mark Salyzyn <salyzyn@google.com> hwui: 64-bit compile issue

Change-Id: Ic3e3dbc6cde4bc58b23a8ab267b0868f370ad149
enderProxy.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
c8affe0e1b1f3f63b12477f832a1a66019ac0df8 29-May-2014 John Reck <jreck@google.com> Re-enable atlas

Bug: 14590563

Change-Id: I04ed5bf1b2654dab4a65c1e43faaeba32459870f
anvasContext.cpp
e1628b7c6fc3822fa83cf02028ce8ad67abb0afe 24-May-2014 John Reck <jreck@google.com> Implement FlushCaches TODO

Change-Id: Id05429e98ffe0858275b32c41fb215c1d8d930b2
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
cdfeef6624613ca06fe8a7edfb92608afb0499ee 15-May-2014 John Reck <jreck@google.com> Disable texture atlas

Bug: 14952384

Change-Id: If38b3e4c08c2c3dd9c00ae9e6e8c10e208e737d1
anvasContext.cpp
66f0be65a1046f54ddce0498b242c1fa0776b1ea 13-May-2014 John Reck <jreck@google.com> Wire up texture atlas

Bug: 14590563

Change-Id: I2dffbc089dc801f5fb2d1c8fd38e1c71d160e110
anvasContext.cpp
anvasContext.h
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
anvasContext.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
e4280baaa709c74d86cf6a389a4674ca665f5af6 06-May-2014 John Reck <jreck@google.com> Implement loadSystemProperties

Bug: 14087580

Change-Id: I7153f38c70b554a78c56a0e794da929fc401ee7a
enderProxy.cpp
enderProxy.h
f9be77940e365036fecd8cc0e491e8545c34e79b 03-May-2014 John Reck <jreck@google.com> Make RenderNodeAnimator and WebView play nice

Change-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
18f16e6fba74eda173e1e7c869e6e2e2acc073ff 03-May-2014 John Reck <jreck@google.com> TIME LORD!

Bug: 14444180

Change-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
imeLord.cpp
imeLord.h
52244fff29042926e21fa897ef5ab11148e35299 02-May-2014 John Reck <jreck@google.com> Add CanvasProperty for drawCircle

Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
rawFrameTask.cpp
e45b1fd03b524d2b57cc6c222d89076a31a08bea 15-Apr-2014 John Reck <jreck@google.com> RenderThread animator support

Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
enderThread.cpp
enderThread.h
dbc9a86d05e5e835051de22f6cb30ec1921e9705 18-Apr-2014 John Reck <jreck@google.com> Force a full redraw on surface change

Bug: 13913604

Change-Id: Ie90c7ee74cf83358e19d8b4f0bae078540a93a8d
anvasContext.cpp
6f07a0dc875a9eac67312085a8e0133b9e2f4771 17-Apr-2014 John Reck <jreck@google.com> Add missing resume() call

Bug: 14087850

Change-Id: Ic555ca6027e617c7ed6e7e66b5cf713c36ed1c6c
anvasContext.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
anvasContext.cpp
anvasContext.h
rawFrameTask.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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
rawFrameTask.cpp
rawFrameTask.h
enderProxy.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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
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
anvasContext.cpp
anvasContext.h
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
1949e7928eeec22cd3f74b5f763a4eb433238453 09-Apr-2014 John Reck <jreck@google.com> Ensure there's a GL context before creating a Layer

Bug: 13745587

Change-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3
anvasContext.cpp
anvasContext.h
enderProxy.cpp
e2c455264351964bf1ae78da2256c17258f0d3ea 08-Apr-2014 John Reck <jreck@google.com> Veto pool TODO

Change-Id: I50067dba630b75aa539e4406cfc15f66949684b3
enderProxy.cpp
enderProxy.h
85189c5dafb08f051c7024f42ceedcbcf5dbbc7c 08-Apr-2014 John Reck <jreck@google.com> Merge "Fence on draws that are reported"
28ad7b52e038ef0cdd89f753d9839444a434b299 08-Apr-2014 John Reck <jreck@google.com> Fence on draws that are reported

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

Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
0d1f634f4b5e1bb37aa51777efb6a68619488d01 29-Mar-2014 John Reck <jreck@google.com> Add invokeFunctor

Change-Id: I09e675d3e02e3e528642175ada00b2b17fab7652
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
750ca6dbdb259aea0ca5b77380a9303e586ef3ea 29-Mar-2014 John Reck <jreck@google.com> Remove kStatusInvoke & kStatusDraw

They are unused

Change-Id: I44ecf1164dc6bc1b09438e733976d5a97a25f00e
anvasContext.cpp
anvasContext.h
668f0e38ef0277d55d3118af37e17b8c435df85c 26-Mar-2014 John Reck <jreck@google.com> Async drawing!

Change-Id: I7e728356f58af88174328a8c0b90d27b128bfe01
anvasContext.cpp
rawFrameTask.cpp
rawFrameTask.h
enderProxy.cpp
enderProxy.h
bfb07a03777af424e99bca1dac4c903aaf44e99d 25-Mar-2014 John Reck <jreck@google.com> Move where updateProperties is called

Change-Id: I27da448996019094c44487ce28c5689d098d6535
anvasContext.cpp
16efa9a330fcf10a09cc9564e9d319c6f4be2ae1 18-Mar-2014 John Reck <jreck@google.com> Fix functor removal

Bug: 12179257

Change-Id: Ib63a351b1b289b08452f17086cb6c8b688e2ba4d
anvasContext.cpp
e18264b079481a244b30e3f71012c53bbd861f92 12-Mar-2014 John Reck <jreck@google.com> Rename DisplayList->RenderNode

Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
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
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
44fd8d24f761f82d21e9b00932648a1b6bf91449 26-Feb-2014 John Reck <jreck@google.com> DisplayList overhaul

Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
19b6bcfd83eb7fb92ebd06d2fec89e308311f1d0 15-Feb-2014 John Reck <jreck@google.com> Support HardwareLayers in RenderThread

Also has a few HardwareLayer lifecycle fixes

Change-Id: I6308cb05f8f199eed72189ace768013a46815941
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
fc53ef27793a39e9effd829e9cae02a9ca14147e 11-Feb-2014 John Reck <jreck@google.com> Implement missing safelyRun() on ThreadedRenderer

Change-Id: I14b75f37a13fabaa759a51369190dbdc84087c4b
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
a6260b83da52b80438074a9fd207327d9e6e6d03 30-Jan-2014 John Reck <jreck@google.com> Fix nano vs. millis

Change-Id: I54f752bb7faab5fa66c36252c9f7cf8f5c9939c9
enderTask.h
enderThread.cpp
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
anvasContext.cpp
anvasContext.h
enderProxy.cpp
enderProxy.h
enderTask.cpp
enderTask.h
enderThread.cpp
enderThread.h
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
anvasContext.cpp
anvasContext.h
69d251383f3656a580c3878045de235d70a12000 19-Dec-2013 Brian Carlstrom <bdc@google.com> Track Looper decoupling from ALooper

Change-Id: I83d1f5f6600019268c53706b7bf6d94b84931e18
enderThread.cpp
cec24ae16e9a0a7c3075f1a8d9149bb7fb3813fc 05-Nov-2013 John Reck <jreck@google.com> RenderThread work

Hacky prototype needs a private API to enable

Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
enderTask.cpp
enderTask.h
enderThread.cpp
enderThread.h