History log of /frameworks/base/libs/hwui/renderthread/CanvasContext.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
37f05e090ecf9ad4fa7a38ad432eb8da36525f65 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
(cherry picked from commit a67b62e15e20bac6a9664e6e6be923cf82ad4138)
32414eea3e5aa55fb251255ecf84b0e54858624f 31-May-2017 John Reck <jreck@google.com> Fix dequeus outside of frame drawing

Bug: 62213889
Test: Repro steps in bug
Change-Id: I8fc407b280ba82c669fc2bb03750cab139adb965
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
c3f131696111a066d9efd9c7c3e37566a2a9fb89 06-Feb-2017 sergeyv <sergeyv@google.com> Clean up deferredLayers only onGpuContextDestroyed.

Test: manual
Change-Id: I5488b0845ec3922424f5893943e4f42675dfc9fd
3e9999bd866fac71c72e6b484a9836c87c328a08 20-Jan-2017 sergeyv <sergeyv@google.com> Explicitly destroy Layer in DeferredLayerUpdater on destroyHardwareResources()

Change-Id: I0987104eabda9a2a302b9e765213aad48f93aea4
Test: refactoring CL. Existing tests still pass
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
cd55852fcd840f7f4c4d7a0a7253a2995c77afa2 17-Nov-2016 Greg Daniel <egdaniel@google.com> Make buffer age work in Vulkan

Test: manual testing in skiavk mode

Change-Id: I5b9d8af7d9cecf2f022ef104ec33a5b7477e9e0c
500a0c30d4dcd012218c3e44a62926a1c34a259f 26-Oct-2016 Stan Iliev <stani@google.com> Implement Skia pipelines for OpenGL and Vulkan.

Implement Skia pipelines for OpenGL and Vulkan:
base SkiaPipeline, SkiaOpenGLPipeline and SkiaVulkanPipeline.
Write unit tests for SkiaPipeline.

Test: Built and run manually on angler-eng.
Change-Id: Ie02583426cb3547541ad9bf91700602a6163ff58
050bb6a2b02fe19b7872f3eaed655346fc8a050e 26-Oct-2016 Derek Sollenberger <djsollen@google.com> Minor cleanup of unused headers and overly described functions.

Test: local compile
Change-Id: I5b794c9473f6d3a9e1d4f9365c951c7ce9dade50
daf7229047c44947b9b02ee187fe5b13f30ebd4b 25-Oct-2016 Derek Sollenberger <djsollen@google.com> Move OpenGL specific details behind renderPipeline interface.

Test: new and existing unit tests still pass.
Change-Id: I6164f30f45ebe450788ed8d949eca5af9a44e585
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,

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

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
- 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
6a21ca5a4c6b62ae277ae6dcb14bc187460321a0 28-Sep-2016 Derek Sollenberger <djsollen@google.com> Move Layer creation/deletion into the RenderPipeline.

Test: refactoring. existing tests still pass.
Change-Id: I032c33896a0cb74c91e2a913a584373518466b88
dcbc0e9e25bf99600d487f3c6f5e26487545cd9c 14-Sep-2016 sergeyv <sergeyv@google.com> resolve merge conflicts of 0ec2fd7 to master

Change-Id: I113ede26ab42e3f9a36a52a756c38d365731e16d
af102bee518191f1e6ad843f06dcd7a64611462d 10-Sep-2016 sergeyv <sergeyv@google.com> HWUI: track upload & recent usage in font cache

FontCacheHistoryTracker should be turned off before shipping: b/31438876

Change-Id: Ic26b25e790d4ee69e484ca0cb23dc9cc522b2ed3
471a63ee35f0be76cd7c2bc9a38889b9d2062f41 02-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix texture leak"
7cae510f41d5c60da5fe83d9a0417ca6fc880df3 02-Sep-2016 Chris Craik <ccraik@google.com> Wait on frame work fences when frames are dropped am: 06e2e9cf4c am: 7a14f5aeb9
am: b53c60876a

Change-Id: Ib9c5be43f65379770b17260c34be90fccb360277
3053ac7f12a36b9db09ffc7219b798eaa24b891a 02-Sep-2016 John Reck <jreck@google.com> Fix texture leak

Bug: 31251593
Change-Id: Ic86729eb6089239134213588d80459d14227ade6
06e2e9cf4c3fe1eaac3271c9a346d5cc7fe5c3a8 01-Sep-2016 Chris Craik <ccraik@google.com> Wait on frame work fences when frames are dropped


Prevents a race where frame work could interleave between frames,
causing SurfaceView position updates to be delivered out of order.

Change-Id: I01e4cc557b69dcf33e877a0e16c0d115ec95e4cc
0ddfbc46c434e8ce26919ee74526cda0d8d199af 08-Aug-2016 John Reck <jreck@google.com> Ensure Dequeue/Queue duration is always set am: 70e89c9c37 am: ed343def3e
am: 77e5333520

Change-Id: I0c51b04c0dd7bafecf03c42417c4247fd281c325
70e89c9c376bf5bb20498c5c952cf665b2cd7375 05-Aug-2016 John Reck <jreck@google.com> Ensure Dequeue/Queue duration is always set

Bug: 30662749
Change-Id: I35a4c26ce78536fc7a506ec2f92a8b9eecb12ec2
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
70b6080cd7eabe7a30bf2d4e2eca2325dc1ff4f0 02-Aug-2016 Doris Liu <tianliu@google.com> Put VD animators on paused list when RT stops drawing
am: c82e879e56

Change-Id: I9f0202c8e69e681014253842b2a2de75d372616b
0cf4d47a4094a43984a5215ab1a283b0fdcf87a8 02-Aug-2016 Doris Liu <tianliu@google.com> Merge "Put VD animators on paused list when RT stops drawing" into nyc-mr1-dev
56f9ccfa152af98021ed9537d9ee823c35b9e473 02-Aug-2016 John Reck <jreck@google.com> Fix null deref crash am: 882d515cd5 am: ed93e111c5
am: 86e700ebc9

Change-Id: I97412741a5f41fa0c5bec56795cf7f7b8875f738
882d515cd54627f320269aa2d744f1c9f1a75c71 01-Aug-2016 John Reck <jreck@google.com> Fix null deref crash

Bug: 30560152
Change-Id: Ic4bae380e27de5bea80cec484e83d205e078ec43
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
63d8aa930f8859978200b7af8664aefc33fd2a51 31-Jul-2016 Hugo Benichi <hugobenichi@google.com> Merge \\\"Fix missing IpConnectivity metrics\\\" into nyc-mr1-dev am: 66e7752ad1 am: b2db402899
am: fb5c675b7e

Change-Id: Iba1f81a892acd9f541b9dd564203bfebc56c9c73
67daab6a1e0897cd0528a19071eeb9f4a2b00b49 29-Jul-2016 John Reck <jreck@google.com> Teach JankTracker about new swap behaviors
am: 2d5b8d7392

Change-Id: I28afc748f8a43944863bd752c3bd2cb983d19c23
34921ac1104e155682c6e807856e3e06f756c8f3 29-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Teach JankTracker about new swap behaviors" into nyc-mr1-dev
b5405b171c4abe4fa4f7f9c13d8bcb83fc7c9639 29-Jul-2016 John Reck <jreck@google.com> Drop less aggressively am: a3d795a34a am: 62ec371a9e
am: fd6bf88724

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

Bug: 30440166

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

Change-Id: Ib1fd4209070f17dbd2baed707c8cf73fb11c3cf2
a3d795a34a786bbe8b5027f70df36b81328109c2 28-Jul-2016 John Reck <jreck@google.com> Drop less aggressively

Bug: 30342762

Frame dropping was too frequent and would trigger
during normal triple buffering steady state. Bump
the threshold to drop from 3ms stall to 6ms stall.

Change-Id: I5c1faeaabf0d02323a28e697a4af4105fbcf1c53
56ad6ec42f814e9e61030ff819cac4e5d31def8b 22-Jul-2016 Derek Sollenberger <djsollen@google.com> Remove LayerRenderer.

There is only one caller each for the static functions here so this
CL moves the logic to the caller. Also by moving some of the code
into the pipeline it makes it easier for future changes to configure
how a pipeline handles a layer.

Change-Id: Ib735b5154325cbb658fd151f7a19dbf434ab44b7
cf3e1a7fa847e6895c3bc8d9549d2ed9ce736608 21-Jul-2016 Chris Craik <ccraik@google.com> Merge \\"Change swap chain stuffed detection logic\\" into nyc-mr1-dev am: 433a19e8bf
am: 3c37412900

Change-Id: Id7e0d1d1dfb5448dd927c29361fb98aabf0cfe10
3163568806f2f1c360f93772453f4b0b3a9b2e47 20-Jul-2016 Chris Craik <ccraik@google.com> Change swap chain stuffed detection logic


Changes frame interval gap detection to look for wider gaps, as they
were incorrectly firing all the time.

Also adds a 500ms minimum gap between frames dropped because of stuffed
swap chain, to prevent dropping too often.

Change-Id: If16ed637d54bf37015704be102c5c2e3731a0824
44b7f75587fbd8e382b3a58e5f272a9776f1efc2 19-Jul-2016 Tim Murray <timmurray@google.com> Merge changes I15da2563,I7845542d into nyc-mr1-dev am: 7b8b1aab93
am: 619682b960

Change-Id: I98afd5bead70cf25ca43e49c1215ccef1e472a83
ffde6274f7acb988ce181454b4d5abe3cef483b5 18-Jul-2016 Tim Murray <timmurray@google.com> add tracepoint for when the display chain is stuffed

bug 30173296

Change-Id: I7845542d4e5c19ccb7c3ee6498cc2d70278b5397
b4c51cf024f705f104ef4a3f8cede2302806d72c 14-Jul-2016 Stan Iliev <stani@google.com> Merge "Move isSkiaEnabled to the Properties class"
768e39335b668e8ef25fef30ab42b2d6d29a4735 09-Jul-2016 Stan Iliev <stani@google.com> Refactor CanvasContext: move OpenGL specific code

Move OpenGL specific code from CanvasContext into a new class

Change-Id: I4363053f890701a4235927b59ec588861488ea8f
8a33e4019991c58b06adf2e3a9ac1eeeccd8fa94 08-Jul-2016 Stan Iliev <stani@google.com> Move isSkiaEnabled to the Properties class

Move CanvasContext::isSkiaEnabled to Properties:isSkiaEnabled.

Change-Id: I0a62f43825cf59ba338a24a056e8c2a56d1c5315
5e00c7ce063116c11315639f0035aca8ad73e8cc 07-Jul-2016 Chris Craik <ccraik@google.com> Delete old rendering pipeline

fixes: 30002246

Change-Id: I45df0e924708526cee045b14c291bd23aa1a92db
a1a529eec0f1183c2dbb09d9c6fd12211154bebd 07-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Implement runtime switch to select default renderer mode"
6f98aa2ff83de7b3f650529c3995b4276c3d3bd5 07-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Unify readback Surface/TextureView copy mechanism"
03de074d05108fa9fb07c6b847c7163ada5776da 07-Jul-2016 Stan Iliev <stani@google.com> Implement runtime switch to select default renderer mode

Add a system property debug.hwui.default_renderer, which allows
to set rendering mode to OpenGL (default), Skia OpenGL or Vulkan.

Change-Id: I8bca5bacc5108f77437e340ac61f2d8db8cc4c39
764045da2ce980f1eee78171de5b4f09dfb601a7 07-Jul-2016 Chris Craik <ccraik@google.com> Unify readback Surface/TextureView copy mechanism

Removes last usage of old rendering pipeline.

Change-Id: Ia920dec9cd726ca221e11e888562c7df39a9761e
e7f27fbf93ad0c26dfc6142ff1fde4a70b94aa23 07-Jul-2016 John Reck <jreck@google.com> Merge \\"Consider queue & dequeue times for should draw\\" into nyc-mr1-dev am: 3a465e7a12
am: 6354336493

Change-Id: Idbe85f08c27cc6f9433badd886a1fe7d9ba73c4f
0def73aac5956d82a065fd75e90eac4c58418e03 02-Jul-2016 John Reck <jreck@google.com> Consider queue & dequeue times for should draw

Bug: 29413700

Change-Id: I4b27b077af569e3c60c57b0e11501e9f3af70579
f1480761c1a83aecd09cdd473ec797a41d1a2f3f 04-Jul-2016 John Reck <jreck@google.com> Benchmark-mode for macrobench

Adds googlebench output format support
Adds offscreen rendering for >60fps benchmarking
Adds 'all' alias to run all registered TestScenes

Change-Id: I2579e40f2f4c941bfbd90c75efbee384c08a116b
05357641d398ef77d880da387a230820ab3203fe 29-Jun-2016 Derek Sollenberger <djsollen@google.com> Remove unused method from RenderProxy and CanvasContext.

Change-Id: I324bbfa40a2155d0212fa20c6bd39df5bb21d27a
a1a0bbddba8d01830e9c7e2c90f34306c2802add 28-Jun-2016 John Reck <jreck@google.com> Merge \\"Fix SurfaceViewPositionListener race bugs\\" into nyc-mr1-dev am: 8701bff9ba
am: 892f8e7d4f

Change-Id: I1e66186dce36e52cafe6c0d027aeae7c9345703c
7b570deea65bc7ac417a26ce3e4103bcef30e957 27-Jun-2016 John Reck <jreck@google.com> Fix SurfaceViewPositionListener race bugs

Bug: 29628138

1: Make windowPositionLost synchronous as that's
what the Java side was expecting

2: Make the listener ref counted as otherwise
there's a race condition with the GC, which could
end up with use-after-frees

3: Ensure that all position updates are invoked
prior to frame completion

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

Bug: 21170575
Change-Id: Icc832f70f206342557f44667ad3498405d04db78
21a7b6e8e36dc9d4a163d809f9cdccb867e9b19c 14-Jun-2016 John Reck <jreck@google.com> Merge \\\"Redraw if dirty during stopped when resumed\\\" into nyc-dev am: 5b4ff21a74 am: fc4c59a10c
am: 6c3281a7c7

Change-Id: I67192e2450293a6520a30ed78c8381b89558841b
fc4c59a10cfd3cdbecf83657b74fbcedc70d3ada 14-Jun-2016 John Reck <jreck@google.com> Merge \"Redraw if dirty during stopped when resumed\" into nyc-dev
am: 5b4ff21a74

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

Change-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a
Fixes: 28283031
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
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
d53e3bed1ca4a14b2a86d53eaef6969bd043176e 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
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
c79c3246c9a3e0d2aa34afd18fddc95a6aff0f30 18-Apr-2016 Chris Craik <ccraik@google.com> Merge "Improve multi-window render clipping logic" into nyc-dev
9cd1bbe5c9e14472e631d8cc10005613925f34af 15-Apr-2016 Chris Craik <ccraik@google.com> Improve multi-window render clipping logic

Fixes: 28125010

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

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

Change-Id: I53facb904c1a4a4acc493d8a489921a79a50494e
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

Fixes: 28118961
Fixes: 27286867

Change-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2
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
c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029 08-Apr-2016 John Reck <jreck@google.com> Merge "Make stopped state a first-class thing" into nyc-dev
945961f78a78eced823d5ba78505c781b079703d 08-Apr-2016 John Reck <jreck@google.com> Make stopped state a first-class thing

Bug: 27286867

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

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

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

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

Bug: 27709981
Fixes: 22565656

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


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


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

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


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

Bug: 27379093
Change-Id: Ifda18287248e4ae07d4bf2ae9642a9d23039e81f
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
- Support many-to-many Window<->FrameMetricsListener relationship

Change-Id: I00e741d664d4c868b1b6d0131a23f8316bd8c5c2
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
6e068c0182f6f85bccb855a647510724d1c65a13 16-Jan-2016 Chris Craik <ccraik@google.com> Early kickoff of shadow tasks


Change-Id: I7cdf18f2c662380bd31c7ffeefd5c3f569e5c1c6
c3bd56811268a074ffb9513bde0d940199e7ad16 25-Jan-2016 Chong Zhang <chz@google.com> Restore code to draw backdrop and content nodes

bug: 26626661
Change-Id: I9e4dd41708e8ed93d3cf64242ad81815a653d269
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

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

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

Also separate LayerReorderer into its own files.

Change-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24
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


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

Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
290b23a1e11d532b39098bb58693ef97ba98a622 05-Nov-2015 Colin Cross <ccross@android.com> Fix build

std::abs requires <cstdlib>

Change-Id: I0722340d17aed88c4c8dabcb723d432b05cebedb
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
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
e2e53a7079733694bd52dbce665e9ceff21e9727 28-Oct-2015 Chris Craik <ccraik@google.com> Simplify TreeInfo

Change-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47
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
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

Change-Id: Ie0e2e248503400041d49729d813d485d28c76eb3
77c40109cf25d29f85ee6c13aeb96e22e55f33ab 26-Oct-2015 John Reck <jreck@google.com> Cleanups

Change-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a
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
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

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

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

- 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
ac02eb9035a13a3d09c2def9ed63d04225eb2509 05-Oct-2015 Chris Craik <ccraik@google.com> Remove confusing behavior of Rect::intersect() and rename


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


Change-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53
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
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
64e445bf74bee2098781d608cedfd723d8cc88d3 02-Sep-2015 Chris Craik <ccraik@google.com> CanvasState frame init refactor


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

This is a WIP prototype

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

Change-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e
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
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
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
00e79c9947b741194ff6c0d08ede9b3befbf9c9d 21-Jul-2015 John Reck <jreck@google.com> Mark isInUse per-window

Bug: 22509159
Change-Id: I0ae0f1fa582ee38dcb9f24ca20f0b4d0c57ccb32
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
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
1b54fb27ac48495ed0b33868fda5776fb49fe0f3 03-Jun-2015 Chris Craik <ccraik@google.com> Delete MAKE_ENUM_FLAGS


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

Change-Id: Ib89f94cb9263de40b6e4636577dca4860867d0d8
2a8bb05a31ddd0d44d8513cba9fbd9b4ef9b97f6 03-Jun-2015 John Reck <jreck@google.com> Fix warning

Bug: 21608208
Change-Id: I1d1cf1fbc8c0a4561bf76e307c56be580fb4baef
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
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

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

Bug: 20297820

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

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

Bug: 20822400

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

BUG: 20761426
Disabled temporarily

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

Bug: 20464038
Change-Id: Iae3aa9baf1d03c3aa443a39373e2bbd4a3910fad
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
b36016c65f1d1b5846dba0349aab491dbd3a746a 11-Mar-2015 John Reck <jreck@google.com> Cleanups & simplifications

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

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

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

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

Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
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
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
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"


This reverts commit b945f2313aee6e49a082ba5caaf95334d2570d52.

Change-Id: I6915624d356cb8570471eb3a5b8921f59b58db6d
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
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

Change-Id: Ica5d6a065841772c47e00ad65aa7894c7e27e043
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
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
27eaec23881f9564f98b484765d000822de5fdc3 18-Nov-2014 John Reck <jreck@google.com> am 842697a3: am decc26df: am f0f68117: Merge "Trace some interesting events" into lmp-mr1-dev

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

Bug: 18337099
Change-Id: Ie2e60da2b9f06e0368061c944d8123ab6903355c
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
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

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


Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
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
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
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

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
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
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


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
2cdbc7d2283aae3d77b12c8fdbba8ca4bd3db5ea 18-Sep-2014 John Reck <jreck@google.com> Special case EGL_BAD_SURFACE

Bug: 17516789

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

Bug: 17208461

Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
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
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

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

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
1661715d4066a557ab0877271d62762579a38fa9 03-Sep-2014 John Reck <jreck@google.com> Implement TODO

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

Bug: 17208461

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

Bug: 17208461

Change-Id: Ibdb104a493285d77a6891c5e74e38a52c7014da9
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

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

Bug: 17172689

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

Bug: 17152292

Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
69e5adffb19135d51bde8e458f4907d7265f3e23 14-Aug-2014 Chris Craik <ccraik@google.com> Define shadow casting behavior within layers


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
058fc640017c90120c599d378a4cbc55668b05b7 24-Jul-2014 Chris Craik <ccraik@google.com> Connect shadow style attributes to renderer


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

Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
5cdb8f998c58a2226112b36e4c391866346e5e17 17-Jul-2014 John Reck <jreck@google.com> Fix logging

Bug: 16357287

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

Bug: 15888445

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

Change-Id: I7100e5e9986f502f66a23ecea07a6057522c43ac
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
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
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
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

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

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

Change-Id: I5b818958f6255c594339bd10d9efa99e9e2c00d4
25fbb3fa1138675379102a44405852555cefccbd 12-Jun-2014 John Reck <jreck@google.com> Move LayerType to RenderNode

Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
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
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
Order layer updates based off of pushLayerUpdate() calls to fix
issue with nested layers

Change-Id: I4449cee607f7e5126e02fed7464cf48038e3dfdf
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
c8affe0e1b1f3f63b12477f832a1a66019ac0df8 29-May-2014 John Reck <jreck@google.com> Re-enable atlas

Bug: 14590563

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

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

Bug: 14952384

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

Bug: 14590563

Change-Id: I2dffbc089dc801f5fb2d1c8fd38e1c71d160e110
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
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
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
f9be77940e365036fecd8cc0e491e8545c34e79b 03-May-2014 John Reck <jreck@google.com> Make RenderNodeAnimator and WebView play nice

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

Bug: 14444180

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

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

Bug: 13913604

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

Bug: 14087850

Change-Id: Ic555ca6027e617c7ed6e7e66b5cf713c36ed1c6c
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
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
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
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
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
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
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

Also fix some EGL lifecycle issues

Change-Id: I12ebb279707f9b533a570b61d68735d858b560bf
1949e7928eeec22cd3f74b5f763a4eb433238453 09-Apr-2014 John Reck <jreck@google.com> Ensure there's a GL context before creating a Layer

Bug: 13745587

Change-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3
0d1f634f4b5e1bb37aa51777efb6a68619488d01 29-Mar-2014 John Reck <jreck@google.com> Add invokeFunctor

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

They are unused

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

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

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

Bug: 12179257

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

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

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

Also has a few HardwareLayer lifecycle fixes

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

Change-Id: I14b75f37a13fabaa759a51369190dbdc84087c4b
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
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