History log of /frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a896306c38c4d11c43b967a21db6d74c251b2520 14-Jun-2017 John Reck <jreck@google.com> Add a workaround for simulate secondary display

To workaround a deadlock caused by bufferqueue locks
we force RenderThread over to use async mode which
we enable via eglSwapInterval(0)

Bug: 38372997
Test: steps in the bug
Change-Id: Ia305f73abbdd64ab0c25d1f7d32792cc6295a0ce
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
98db1264d4e53158f20610a9834af3d5c3498371 02-Jun-2017 Doris Liu <tianliu@google.com> Merge "Fix AVD memory leak" into oc-dev
0bfce2cc9533c7ffcc00dd0005c1c097de403b81 31-May-2017 Doris Liu <tianliu@google.com> Fix AVD memory leak

The memory leak was caused by a lingering internal listener
that held a global ref to the AVD java object when the AVD is
infinite. As a result, the native VectorDrawable Tree can
not be destroyed, and therefore leak bitmaps.

This memory leak is fixed by removing all the internal listeners
for all the unfinished AVDs when the animation context is
destroyed.

BUG: 37518414
Test: follow steps in comment #1 of the bug, and inspect memory heap.

Change-Id: Ibbd1547a083b83d0cebd8e304d9b01abda4950ef
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
a67b62e15e20bac6a9664e6e6be923cf82ad4138 01-Jun-2017 John Reck <jreck@google.com> Fix ANR & Crash on Ryu

Fixes impossible dequeue crash as the wrong
start point of the frame was used. We need
to use the start point for RT, not the start
point for the frame.

Workaround for sysui ANR caused by what appears
to be a driver bug. Drivers with the bug
will have transiently higher memory usage.
Drivers without the bug will be unaffected.

Bug: 62213889
Bug: 62250550
Test: Manual

Change-Id: I9992b224f84bc1c40834bafff7e0013b38270ae0
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
1fedd9168715d7a8e645acdd5c8d06ffa982fd51 23-May-2017 John Reck <jreck@google.com> Creating HW bitmaps from RenderNode

Allows creating a HW Bitmap from the drawing
commands of a RenderNode.

Bug: 38507414
Bug: 37698012
Test: Sample in HwAccelerationTest

Change-Id: I57c60b2c8bf5194f4412ad4b7f1c1f35e2e4c757
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
04d04618b7a8140a3c7ab7d8f8526a813dd62387 09-Mar-2017 Mathias Agopian <mathias@google.com> Remove dependency on EGL private headers

Test: compiled / run
Bug: vndk-stable
Change-Id: I91522f3ee00cff0a45e76278e1f63efd6b1a0022
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
d5c7dd6da810a6b89151b337bea79fd817e6b72a 08-Mar-2017 Robert Carr <racarr@google.com> Modify SurfaceView to use SurfaceFlinger child surfaces.

Here we have SurfaceView bypass the WindowManager and speak
directly to SurfaceFlinger using child surfaces. We also
implement some logic in the WM to handle child surfaces
in various Surface replacement scenarios.

For those following along in the revert Saga, this
also includes the follow up CLs to the original CL.
- Surface inset calculation
- Animation fixes.

The error causing the revert was an incorrect JNI signature
around deferTransactionUntilSurface. I've noted it inline.

Bug: 28858420
Bug: 31518219
Bug: 34888808
Bug: 35588318
Bug: 35396882
Test: Existing tests still pass (except for the ones that don't and will be deleted).
Change-Id: Ie56b6f7ab16f32d7fc459b8eba26594337ad55de
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
5aec7b90310ba05f9816fd89030ba41ce48c568e 08-Mar-2017 Wonsik Kim <wonsik@google.com> Revert "Modify SurfaceView to use SurfaceFlinger child surfaces."

This reverts commit cd4aeef88052571365d4e193a2c41e2e6d145491.

Bug: 36027342
Bug: 36015884
Change-Id: Ifd5b69caf64d65a8cd6570b7fe1fb6abe90e30b8
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
cd4aeef88052571365d4e193a2c41e2e6d145491 03-Mar-2017 Robert Carr <racarr@google.com> Modify SurfaceView to use SurfaceFlinger child surfaces.

Here we have SurfaceView bypass the WindowManager and speak
directly to SurfaceFlinger using child surfaces. We also
implement some logic in the WM to handle child surfaces
in various Surface replacement scenarios.

For those following along in the revert Saga, this
also includes the follow up CLs to the original CL.
- Surface inset calculation
- Animation fixes.

The error causing revert was a deferTransactionUntil(-1)...-1
cast to uint, defer transaction until MAX_UINT.

Bug: 28858420
Bug: 31518219
Bug: 34888808
Bug: 35588318
Bug: 35396882
Test: Existing tests still pass (except for the ones that don't and will be deleted).
Change-Id: Ib37236950a1dd3c4f9f4b58fd41ef9003c0557ef
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
8009012644c56eff42408731ea60467565bfef80 03-Mar-2017 Rob Carr <racarr@google.com> Revert "SurfaceView: Include surfaceInsets in position calculation"

This reverts commit 8c31e1db2a2cea4278503d6b9b27bca87946ef36.

Change-Id: Id25f493ca272878c2105f9cd302db1e05284998d
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
8c31e1db2a2cea4278503d6b9b27bca87946ef36 01-Mar-2017 Robert Carr <racarr@google.com> SurfaceView: Include surfaceInsets in position calculation

Previously the WM was taking care of this.

Fixes: 35588318
Fixes: 34888808
Test: Manual
Change-Id: I8b48d89f830bbef43b0132d191b29552e9c35702
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
df1742ed47da1e9b61afeae16fa448d5302a8aa0 20-Jan-2017 John Reck <jreck@google.com> Overhaul GraphicsStatsService

* LRU cache of recently-used is dead, replaced
disk storage
* ASHMEM size is read from native by the system service,
no longer requires keeping a sizeof() in sync with a
constant in Java
* Supports dumping in proto format by passing --proto
* Rotates logs on a daily basis
* Keeps a history of the most recent 3 days

Bug: 33705836
Test: Manual. Verified log rotating works by setting it up to
rotate every minute instead of day. Confirmed /data/system/graphicsstats
only has the most recent 3 entries after several minutes

Change-Id: Ib84bafb26c58701cc86f123236de4fff01aaa4aa
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
2de950d5a8b47c7b4648ada1b1260ce4b7342798 25-Jan-2017 John Reck <jreck@google.com> Overhaul RenderNode's DisplayList management

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

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

Bug: 34072929

Change-Id: I856534b4ed1b7f009fc4b7cd13209b97fa42a71c
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
0a0f23163a7a62900d46c7f81d109320d73d6c6b 04-Jan-2017 sergeyv <sergeyv@google.com> Move GraphicBuffer to graphics package

Test: locally tested Bitmap.createHardwareBitmap method
bug: 30999911
Change-Id: Iad432577f26f2362ede9e77cd8a5425c010692e5
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
253f2c213f6ecda63b6872aee77bd30d5ec07c82 29-Sep-2016 Romain Guy <romainguy@google.com> Linear blending, step 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Test: Manual testing while work in progress
Bug: 29940137

Change-Id: I6a07b15ab49b554377cd33a36b6d9971a15e9a0b
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
6ccb38bb130b5637e7bdbce7d3b2b646b9401bcd 04-Oct-2016 John Reck <jreck@google.com> Drop fastjni from nSupportsOpenGL

This is run once per process at static-init time
it doesn't need to be fast-jni
Test: make & boot

Change-Id: Id5948fd447b352f5047af3ed94d41e9743030f48
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
9580146f5076aaa7c498f86bd3d724c00599f6f4 01-Sep-2016 John Reck <jreck@google.com> Add API to copy a window

Change-Id: I9bb5209010db6665be4b6f8db81a6fc1b7debc45
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
2e729ebf5f1a9a17851e34dbbe176dcf2c5a65ab 02-Aug-2016 Doris Liu <tianliu@google.com> Put VD animators on paused list when RT stops drawing am: c82e879e56 am: 70b6080cd7
am: 4ec05be535

Change-Id: I22e66e33aa51064230351f1fd24e5fb200511213
4ec05be5352620daba384252c569248c96a6ca05 02-Aug-2016 Doris Liu <tianliu@google.com> Put VD animators on paused list when RT stops drawing am: c82e879e56
am: 70b6080cd7

Change-Id: I2ad721d1e9a20e5a1946a779ac0e84118b017505
c82e879e563ad692cabf19f61a08559c6220171e 30-Jul-2016 Doris Liu <tianliu@google.com> Put VD animators on paused list when RT stops drawing

When we stop scheduling for new frames on RenderThread, we should
put the running animations on pause, rather than purge the list
of the running animations, such that in the next full
sync, the animations that were paused will continue to run.

BUG: 30226711
Change-Id: I36ff6f5d26ffa7999f60ca0ff676a35157577dc2
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
2c02aa1e02b636b5c8da9735194638331e32dd7c 29-Jul-2016 Doris Liu <tianliu@google.com> Run animation *after* property sync am: 7c7052dd9b am: 0053b066e5
am: c82ef8a51f

Change-Id: I06962e8d068b3d005b4cd4ce38a4028abab3333b
c82ef8a51fcfbd6260c6ccea786805bf7d604c89 28-Jul-2016 Doris Liu <tianliu@google.com> Run animation *after* property sync am: 7c7052dd9b
am: 0053b066e5

Change-Id: Id9764477eec3ee13044b60c1b02b8b0b459b7761
7c7052dd9bbfb2d98112975f7cbd2655212bf85b 26-Jul-2016 Doris Liu <tianliu@google.com> Run animation *after* property sync

VectorDrawable contains properties that can be mofidied from both
UI thread and RenderThread. The two sets of properties are synced
during prepareTree. Previously VD animations ran before prepareTree,
as a result, during prepareTree the property sync overwrote some
of the animatable properties. In other words, the first frame of
the animation wasn't correct. An example is in battery saver mode
when the animation only has one frame to animate (0-duration), the
end result looked wrong.

This CL moves the VD animation to after prepareTree to solve the
problem mentioned above. Meanwhile, in order to signal which
VD will be animated so as to have them properly damaged, all VDs
with running animators are marked dirty.

Bug: 30226711
Change-Id: I831dae9abb2908876c935b9be4c11dfd09452d5c
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
fc4560e5750997fe8e7d3643ac2707d06169f122 21-Jul-2016 Doris Liu <tianliu@google.com> Merge \\"Fix VD animator not being properly resumed\\" into nyc-mr1-dev am: ffa880b83f
am: ea01b159b7

Change-Id: I72661874e79e48b121030a6abce849a2a319cc36
ea01b159b7bf0c9c45cc531712cb2d5b5ffc99ba 21-Jul-2016 Doris Liu <tianliu@google.com> Merge \"Fix VD animator not being properly resumed\" into nyc-mr1-dev
am: ffa880b83f

Change-Id: Ie10f5c12f528fb3d07765d724ee2a59138863906
3bb5dddc6fe4348be0d84b45456d7b3124be24c0 20-Jul-2016 Doris Liu <tianliu@google.com> Fix VD animator not being properly resumed

VectorDrawable animators remove themselves from RenderThread's
animator list when they detect their target not being in the
DisplayList. When the target got added back into DisplayList
without an invalidation(), the animators were not added to
the running animator list, therefore didn't continue to run.
This CL detects for the case where a VD is back in the DisplayList
and reactivate its animator.

BUG: 30101451
Change-Id: Ib5eb54af954a58a2fa617643bfcf5af40ce708a5
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
aa1735370b24428647508d2ff0f29a617cb955e9 07-Jul-2016 Tim Murray <timmurray@google.com> Merge changes from topic \\'fifo\\' into nyc-mr1-dev am: a96d445aef
am: 03b34e402c

Change-Id: If3104889f659aef9a6d7035e18ab839544c9ecb3
03b34e402c58d7425fd0318a6e69f03a59ae715e 07-Jul-2016 Tim Murray <timmurray@google.com> Merge changes from topic \'fifo\' into nyc-mr1-dev
am: a96d445aef

Change-Id: If4a5c3f65cb611aecf82ad49ad6d992f098cbfb1
33eb07f5759b85a5617f8057d8a335019c7d24dd 10-Jun-2016 Tim Murray <timmurray@google.com> Add new mode for SCHED_FIFO on UI and RenderThreads.

Add a new mode, controlled by sys.use_fifo_ui property, that enables the
top app's UI and RenderThread to be SCHED_FIFO. This eliminates almost
all jank due to scheduling competition with non-UI critical
threads. This mode may not be suitable for all devices.

bug 24503801

Change-Id: I7b8a31830ad80f7efa00236928d5476998ed4e00
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
f64c34e73f00bf61b5f98fa0f37f60b5798cc709 28-Jun-2016 Derek Sollenberger <djsollen@google.com> Remove isAvailable() from DisplayListCanvas.

The method has been moved to ThreadedRenderer and the native
implementation has been renamed to better reflect its intent.

Change-Id: I7ee6d578ad0c2ee20111edd424c7560a449f0b39
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
d2be84ff7c0f98adbec25e6d02429d428998c882 22-Jun-2016 John Reck <jreck@google.com> Merge "Delete unused args"
08e972258ccb61515aac1b01b04b3b0fa3b71dd2 22-Jun-2016 Doris Liu <tianliu@google.com> Merge \\"Make sure VD animation push staging happens only in MODE_FULL\\" into nyc-mr1-dev am: 41fb30282e
am: 42ba9da43b

Change-Id: Ia83aeafe76349f083ed3c030ed69799e82e10fb9
42ba9da43bbb28c91e217b4af141714f64cc8d27 22-Jun-2016 Doris Liu <tianliu@google.com> Merge \"Make sure VD animation push staging happens only in MODE_FULL\" into nyc-mr1-dev
am: 41fb30282e

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

Bug: 21170575
Change-Id: Icc832f70f206342557f44667ad3498405d04db78
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
7f2bf467f5787bdd307d1ad1d753f7bd7c9b3779 22-Jun-2016 Doris Liu <tianliu@google.com> Make sure VD animation push staging happens only in MODE_FULL

BUG: 29438210
Change-Id: I6f49fda9447b1ee8827f280aebc8c69925431efc
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
09087eaac9c0bf0ee61dcb4c78b2d32587635e14 09-Jun-2016 Doris Liu <tianliu@google.com> Merge \"Handle hidden RT VectorDrawable animators\" into nyc-mr1-dev
am: 3f6a95283a

Change-Id: I909f3c33690fcb932f1b751def1837d82adb28f4
718cd3eb70703c43f29ca37907bbf0e153d8cca0 18-May-2016 Doris Liu <tianliu@google.com> Handle hidden RT VectorDrawable animators

This CL changes the target of VD specific animators to VectorDrawable,
instead of RenderNode. The benefit of doing so is that animators can
now detect whether the animation is meaningful by checking whether
their VD target is in the display list. If not, that means the VD is
not drawing for the current frame, in which case we can be smarter
and more power efficient by removing the animator from the list and
posting a delayed onFinished listener callback.

By setting VD as the animation target, when an ImageView decides to
update its drawable from one AVD to something else, we'll be able
to detect that the previous AVD is no longer in the display list,
and stop providing animation pulse to the stale AVD, which is
something we couldn't do previously. This change also
handles the case where one AVD instance could be drawn in two
different views.

Bug: 27441375
Change-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
67ce99b66ebc816ae8bbc222db8f3695fb15495b 18-May-2016 Doris Liu <tianliu@google.com> Handle hidden RT VectorDrawable animators

This CL changes the target of VD specific animators to VectorDrawable,
instead of RenderNode. The benefit of doing so is that animators can
now detect whether the animation is meaningful by checking whether
their VD target is in the display list. If not, that means the VD is
not drawing for the current frame, in which case we can be smarter
and more power efficient by removing the animator from the list and
posting a delayed onFinished listener callback.

By setting VD as the animation target, when an ImageView decides to
update its drawable from one AVD to something else, we'll be able
to detect that the previous AVD is no longer in the display list,
and stop providing animation pulse to the stale AVD, which is
something we couldn't do previously. This change also
handles the case where one AVD instance could be drawn in two
different views.

Bug: 27441375
Change-Id: Id4b3b37f28274c917cb9beb9dcd3d1e6991b5c5d
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
e543776d59a17ebde8dd7f8a3ef1f257e6947368 12-May-2016 Dimitry Ivanov <dimitry@google.com> Merge "Move Vulkan layer path setup to ApplicationLoaders" into nyc-dev am: 7f0708390b am: 76766d29b3
am: 61820a6a63

* commit '61820a6a63e4a10fdab7f9bf7a9e33b0744be253':
Move Vulkan layer path setup to ApplicationLoaders

Change-Id: Iee0980f34860e51e64aa6d0f9d12abf730d4343f
76766d29b33ebb059d36bc20dd2a1c364ebe2eca 12-May-2016 Dimitry Ivanov <dimitry@google.com> Merge "Move Vulkan layer path setup to ApplicationLoaders" into nyc-dev
am: 7f0708390b

* commit '7f0708390b3006965fe640c72c4254eb74daca3a':
Move Vulkan layer path setup to ApplicationLoaders

Change-Id: I406dad31babb52d601e1212c4672f1ce7cd9aa57
0997908c95151ce24609c10731990e648156b95d 19-Apr-2016 Dimitry Ivanov <dimitry@google.com> Move Vulkan layer path setup to ApplicationLoaders

ThreadedRenderer was never the right place for this anyway, and
ApplicationLoaders can provide both the full library search path (not
just the extracted native library dir) as well as the application loader
namespace.

Bug: 28213888
Change-Id: Ibcc0a9178da4dba6f3f3105932fdac1a1d0261af
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
d53e3bed1ca4a14b2a86d53eaef6969bd043176e 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
85e0c89ba55188ecc484538efbfdb570606fc1a2 28-Apr-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 1599b981 to nyc-dev-plus-aosp

Change-Id: I90807581e10b6a0024515ff634ac8b29eaa5fc9f
c6baf563ba6aa207a48317c177b29f1d2b70cf3d 27-Apr-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: Ibdd6a210bb7ff228e3624cc319169f77aca3b51e
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
f97dca612e178414fecf94efdec59b608a104b6f 27-Apr-2016 John Reck <jreck@google.com> Merge "API tweaks to PixelCopy and make it public" into nyc-dev
am: 7f209d3

* commit '7f209d37f17d4df09475137c38b84a3338c84023':
API tweaks to PixelCopy and make it public

Change-Id: I1aac8afacfd054fe10fc26a73552608c51dfa9f5
e94cbc76d560a157c0a0d47181b4ed2a0aadbeb1 25-Apr-2016 John Reck <jreck@google.com> API tweaks to PixelCopy and make it public

Bug: 27708453
Change-Id: I81667ce42f9ca1c1a13e1e61299927900845fc84
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
fe16c4b105c34f451b4b100c970e1711e793dfe1 14-Apr-2016 John Reck <jreck@google.com> Merge "Revert "Revert "Make stopped state a first-class thing""" into nyc-dev
am: d6a25c2

* commit 'd6a25c2b3e7fd5a98741e2f770cf54d539b29258':
Revert "Revert "Make stopped state a first-class thing""

Change-Id: Iff85c259e93a54c3e3a9db3f3d2b2f826526de0a
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/core/jni/android_view_ThreadedRenderer.cpp
f3c2dee3e117433c76e04513047b39cad2d2b5e6 12-Apr-2016 John Reck <jreck@google.com> Merge "Framework-side of SurfaceView#getBitmap" into nyc-dev
am: d2eec0e

* commit 'd2eec0efb2e47b23b2a12ab2967e422f0be49094':
Framework-side of SurfaceView#getBitmap

Change-Id: I4da75d89a536c11dbaa9ee1feba8e5838fbb5a41
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
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
26d6685d1eb59da2799d6c4d45b9ff67a537e99b 11-Apr-2016 John Reck <jreck@google.com> Merge "Revert "Make stopped state a first-class thing"" into nyc-dev
am: 825fa4d

* commit '825fa4d5ae7b2907ee1769d09e6333306de2a92e':
Revert "Make stopped state a first-class thing"

Change-Id: I2f2a6281d0e0ba9587b00cdb6f1cb32ac632ee41
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/core/jni/android_view_ThreadedRenderer.cpp
620a86e464d585c796e51a16dad419d46d3837e4 08-Apr-2016 John Reck <jreck@google.com> Merge "Make stopped state a first-class thing" into nyc-dev
am: c724dcf

* commit 'c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029':
Make stopped state a first-class thing

Change-Id: Idfa3cc5d8fa5b07c742c2700b38441ff7d692f42
c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029 08-Apr-2016 John Reck <jreck@google.com> Merge "Make stopped state a first-class thing" into nyc-dev
c01a9b6a9ba2662fafa6f4152ca9986faacd2d66 08-Apr-2016 John Reck <jreck@google.com> Merge "Fix some edge cases" into nyc-dev
am: 4a62eff

* commit '4a62effbfe8ad9a0eb7049c2f52a57d39bb64e29':
Fix some edge cases

Change-Id: I35a99c3164bf3bf91f609ce8bec01d15ca8b7c0d
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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
3c77e5aa9d219193ba8a8e5f33ad23e63f55d4f5 31-Mar-2016 John Reck <jreck@google.com> Merge "Add a callback for rendernode parentcount=0" into nyc-dev
am: bbb4c2e

* commit 'bbb4c2eb2e871977289a9c48f414962e46b56ddc':
Add a callback for rendernode parentcount=0

Change-Id: I8168b028ce61413da8ecea76e6531c5dde9ddb46
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/core/jni/android_view_ThreadedRenderer.cpp
85ea32b02a2b281ee5092ef8c31c44a0ba3452a4 16-Mar-2016 Ben Wagner <bungeman@google.com> Switch frameworks/base/core/jni from gcc to clang.

Switch from gcc to clang and fix errors detected.

The immediate motivation is that gcc with libc++ stl does not use
'explicit' in the stl, causing issues for use of unique_ptr.
The longer term motivation is to fully move to clang.

BUG=22414716

Change-Id: If77436c1e7601f20289603862be33b85880ab4bd
(cherry picked from commit 60b1c8ef860b8cd5a1fa453a8951d6e8d7c44734)
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
350e65206cfbd86484fcfda77bb988e270606dda 19-Feb-2016 Doris Liu <tianliu@google.com> End staging animators when destroy RootRenderNode

When animation happens in a dialog, it is possible for the dialog to
be dismissed and RootRenderNode to be destroyed before we create
animation handle for the staged animators. In that case, we need
to remove the staged animators so they will not run without a
animation handle.

Bug: 26975079
Change-Id: I0c2c6c1b530beaec3984c0b1c410df4fd8f25c95
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
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
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
e3f0818b1a127a4ad35665c8781065d0fae2c5d6 10-Feb-2016 Andres Morales <anmorales@google.com> check for null members in NotifyHandler

An unexpected message posted to the queue should not
crash the application.

Bug: 27097094
Change-Id: Ide6a07014660ff14e0f287660c534cfa1e0acad9
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
03d8f76836c5950374bc9030a78706d25ac233e9 31-Jan-2016 Michael Lentine <mlentine@google.com> Adding plumbing for passing the lib directory.

Added call in handleBindApplication which will pass the library path into
HardwareRender which then passes it to libvulkan through ThreadedRenderer's
jni interface.

Change-Id: I7dc1fec9c7a1566716a4501a0d5697ea94e57b53
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
06f5bc70a667a02b14e31d3f53f91d3661e30666 16-Dec-2015 Andres Morales <anmorales@google.com> expose hwui frame stats through FrameStatsObserver

Change-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
bf4b31f7b23b0bc7a2ed4fc779aac37c9c486eb2 16-Dec-2015 John Reck <jreck@google.com> resolve merge conflicts of 04ce46db64 to master.

Change-Id: I935bb47718f0e7d5fb48945dd8de6e28dac136e5
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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
434a481b2191562582c79be29f24c2e0b5ca60d0 24-Sep-2015 Elliott Hughes <enh@google.com> am ea1831d2: am b57dd722: resolved conflicts for a884d81e to stage-aosp-master

* commit 'ea1831d211ea0e6b2d161c714bb0786369ef2df5':
constify JNINativeMethod function pointer tables
b57dd722f1dc0663417da37d3a82f8283ad3c982 24-Sep-2015 Elliott Hughes <enh@google.com> resolved conflicts for a884d81e to stage-aosp-master

Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
76f6a86de25e1bf74717e047e55fd44b089673f3 19-Sep-2015 Daniel Micay <danielmicay@gmail.com> constify JNINativeMethod function pointer tables

Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
e248bd1b2c3fcf8088429507e73b31f45ee2544b 05-Aug-2015 John Reck <jreck@google.com> Serializing display lists

This is a WIP prototype

Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
50210d912925aef14e4ce69be82e4949122a3cd9 15-May-2015 Alan Viverette <alanv@google.com> Adjust light source for window position

Bug: 16523629
Change-Id: I2f3fed1edcac0a3cfd5034aded45e08ececfebaf
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
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
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
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
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
9d4efdf2802f06ccf7031610891f75af70ea5538 17-Apr-2015 John Reck <jreck@google.com> Revert "A bunch more cleanups"

This reverts commit c294d128d03bc9a9982b273a82516c04583438cc.

Change-Id: Id1ebb236950f7c36c6d86e1dd95566d3a200748d
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
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
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
b36016c65f1d1b5846dba0349aab491dbd3a746a 11-Mar-2015 John Reck <jreck@google.com> Cleanups & simplifications

Change-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
a2732a2bf98f7dbd063f4e5679f5b8bfcbec2698 18-Dec-2014 John Reck <jreck@google.com> Stop pretending USE_OPENGL_RENDERER is a thing

Change-Id: I732b490431fe90eafa00a00f3b5429f0d3a067e6
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
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/core/jni/android_view_ThreadedRenderer.cpp
ed6b9dff563c5e22f040ff37e12c0d771e0478ae 21-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Consistency in core/jni

Make consistent use of core_jni_helpers for registration.

Translate some #ifdefs into const bools.

Change-Id: I37639aa053dd50f003a552cbd8550dddecc811c5
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
3e8249568cc428296ac76c7ddce3f0382d40fe5b 20-Aug-2014 John Reck <jreck@google.com> Implement full View.buildLayer

Bug: 17152292

Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
73e8205f75908521fb3dd7ffd29f51484b5e90a7 24-Jul-2014 John Reck <jreck@google.com> fix build

Change-Id: I597255b2b311b7daec7ffe537f62ee78eace50be
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
0a97330b98dd633b58dcfff405d94476c89e867d 16-Jul-2014 John Reck <jreck@google.com> Fix root RenderNode damage calculation

Bug: 15888445

Change-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
918ad523b2780e0c893f3d2a32d4ec13f2a7e921 27-Jun-2014 John Reck <jreck@google.com> More cleanups

Change-Id: Id5967944b949a2aec57e4fe9fdcdc04c11b8c35a
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
c25e506f7fc08790c0532f927f31310a2ca778b7 18-Jun-2014 John Reck <jreck@google.com> Throw ISE on too-big-views-with-layers

Bug: 12971954

Change-Id: I3ef995e91f236014b0a72a90846ef19ce6dc42b1
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
84a4c887a07c1c2939443f4e0587d7f1ac109e4b 30-May-2014 John Reck <jreck@google.com> Remove GLRenderer

Change-Id: I180286417c1a354fc7eb1eadb1884ac6add0795c
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
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/core/jni/android_view_ThreadedRenderer.cpp
e1628b7c6fc3822fa83cf02028ce8ad67abb0afe 24-May-2014 John Reck <jreck@google.com> Implement FlushCaches TODO

Change-Id: Id05429e98ffe0858275b32c41fb215c1d8d930b2
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
ff941dcd815021bb20d6504eb486acb1e50592c3 15-May-2014 John Reck <jreck@google.com> Animator start value...

Change-Id: Ifd35ed95a28c625086d7fa97764fe63ab4a997f1
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
66f0be65a1046f54ddce0498b242c1fa0776b1ea 13-May-2014 John Reck <jreck@google.com> Wire up texture atlas

Bug: 14590563

Change-Id: I2dffbc089dc801f5fb2d1c8fd38e1c71d160e110
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
63a06673253914510bbeebd500655008682dade1 07-May-2014 John Reck <jreck@google.com> Implement TODO(romainguy)

Bug: 14277445

Change-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
e4280baaa709c74d86cf6a389a4674ca665f5af6 06-May-2014 John Reck <jreck@google.com> Implement loadSystemProperties

Bug: 14087580

Change-Id: I7153f38c70b554a78c56a0e794da929fc401ee7a
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
f9be77940e365036fecd8cc0e491e8545c34e79b 03-May-2014 John Reck <jreck@google.com> Make RenderNodeAnimator and WebView play nice

Change-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
18f16e6fba74eda173e1e7c869e6e2e2acc073ff 03-May-2014 John Reck <jreck@google.com> TIME LORD!

Bug: 14444180

Change-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
52244fff29042926e21fa897ef5ab11148e35299 02-May-2014 John Reck <jreck@google.com> Add CanvasProperty for drawCircle

Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
e45b1fd03b524d2b57cc6c222d89076a31a08bea 15-Apr-2014 John Reck <jreck@google.com> RenderThread animator support

Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
d3d8dafc2f61fb118c060720b52684c59303f3db 11-Apr-2014 John Reck <jreck@google.com> Make attachFunctor blocking

Bug: 13930200

Change-Id: I9b0cf92fd16bb30baa09b6f8d7ae22a8b2a7fd80
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
28ad7b52e038ef0cdd89f753d9839444a434b299 08-Apr-2014 John Reck <jreck@google.com> Fence on draws that are reported

Change-Id: Ib2ec16cbda40f40df1710bdc868869ea8301f17e
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
0d1f634f4b5e1bb37aa51777efb6a68619488d01 29-Mar-2014 John Reck <jreck@google.com> Add invokeFunctor

Change-Id: I09e675d3e02e3e528642175ada00b2b17fab7652
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
e18264b079481a244b30e3f71012c53bbd861f92 12-Mar-2014 John Reck <jreck@google.com> Rename DisplayList->RenderNode

Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
44fd8d24f761f82d21e9b00932648a1b6bf91449 26-Feb-2014 John Reck <jreck@google.com> DisplayList overhaul

Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
fc53ef27793a39e9effd829e9cae02a9ca14147e 11-Feb-2014 John Reck <jreck@google.com> Implement missing safelyRun() on ThreadedRenderer

Change-Id: I14b75f37a13fabaa759a51369190dbdc84087c4b
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
/frameworks/base/core/jni/android_view_ThreadedRenderer.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/core/jni/android_view_ThreadedRenderer.cpp
cec24ae16e9a0a7c3075f1a8d9149bb7fb3813fc 05-Nov-2013 John Reck <jreck@google.com> RenderThread work

Hacky prototype needs a private API to enable

Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
/frameworks/base/core/jni/android_view_ThreadedRenderer.cpp