Commit Graph

360 Commits

Author SHA1 Message Date
John Reck
7269372d5f Merge "Avoid starving RT anims"
am: f77c220aa9

Change-Id: I3d4ba24ae0e6de4683d47163fd8f3bf65b98bd17
2016-11-18 00:14:05 +00:00
John Reck
a5b7b89166 Avoid starving RT anims
Test: Manual, usleep(16000) in DrawFrameTask and tap
on recents

Merged-In: I88bb30a2503bc908ec45650c7d36b6fb3cc750d0

Change-Id: I88bb30a2503bc908ec45650c7d36b6fb3cc750d0
2016-11-17 22:05:22 +00:00
John Reck
85ddb2df2f 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
(cherry picked from commit 7b570deea6)
2016-10-10 13:36:36 -07:00
sergeyv
0ec2fd7bc5 HWUI: track upload & recent usage in font cache am: af102bee51
am: 42c01cf62f

Change-Id: Ieb80108d520aa629c54a40d7c533bf74a71849c4
2016-09-13 02:01:28 +00:00
sergeyv
af102bee51 HWUI: track upload & recent usage in font cache
FontCacheHistoryTracker should be turned off before shipping: b/31438876

bug:30427106
Change-Id: Ic26b25e790d4ee69e484ca0cb23dc9cc522b2ed3
2016-09-12 15:45:26 -07:00
Chris Craik
b53c60876a Wait on frame work fences when frames are dropped am: 06e2e9cf4c
am: 7a14f5aeb9

Change-Id: I9f2159f2f5c8111df0c14e46cc5690cbfab9b7e9
2016-09-02 17:41:57 +00:00
Chris Craik
06e2e9cf4c Wait on frame work fences when frames are dropped
bug:30895941

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

Change-Id: I01e4cc557b69dcf33e877a0e16c0d115ec95e4cc
2016-08-31 17:32:47 -07:00
Chih-Hung Hsieh
56996ff61e resolve merge conflicts of 76ce8e5 to stage-aosp-master am: ed935c32f4
am: ef57a0d629

Change-Id: Ifcc24ad835f2e74a25954bf3fd7090c75abdc084
2016-08-12 00:40:25 +00:00
Chih-Hung Hsieh
ed935c32f4 resolve merge conflicts of 76ce8e5 to stage-aosp-master
Change-Id: I4b4ca9906373a95776d2da8ba2fa39a4a78e2a30
2016-08-11 16:48:46 -07:00
Chih-Hung Hsieh
f35c939cd7 Fix clang-tidy warnings in libs/hwui.
* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
Merged-In: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
2016-08-10 23:26:59 +00:00
John Reck
1d7ee6b5a3 Make updateSurface non-blocking am: cd68212f08
am: 9dd91dec3f

Change-Id: I8a27b5bcff0781e90c9d061da0c1fe03eb6d8176
2016-08-10 17:44:40 +00:00
John Reck
cd68212f08 Make updateSurface non-blocking
Bug: 30442298

We already do this for initialize(), fix
it so that update() is parallel with the
UI thread as well.

Shaves ~7ms off of the 99th percentile on
NotificationShade open & close

Change-Id: I1791df495453fb9e1e12362c68e3d20e837e62be
2016-08-09 12:11:13 -07:00
John Reck
77e5333520 Ensure Dequeue/Queue duration is always set am: 70e89c9c37
am: ed343def3e

Change-Id: I7d8d854254f491f1a65d0efb82fa8545bc6feacf
2016-08-08 15:06:51 +00:00
John Reck
70e89c9c37 Ensure Dequeue/Queue duration is always set
Bug: 30662749
Change-Id: I35a4c26ce78536fc7a506ec2f92a8b9eecb12ec2
2016-08-05 10:50:36 -07:00
Doris Liu
4ec05be535 Put VD animators on paused list when RT stops drawing am: c82e879e56
am: 70b6080cd7

Change-Id: I2ad721d1e9a20e5a1946a779ac0e84118b017505
2016-08-02 18:24:42 +00:00
Doris Liu
70b6080cd7 Put VD animators on paused list when RT stops drawing
am: c82e879e56

Change-Id: I9f0202c8e69e681014253842b2a2de75d372616b
2016-08-02 18:15:44 +00:00
Doris Liu
0cf4d47a40 Merge "Put VD animators on paused list when RT stops drawing" into nyc-mr1-dev 2016-08-02 18:08:05 +00:00
John Reck
897b9effb7 Eliminate recents upload jank am: 4387190d8e
am: 021a952150

Change-Id: I9715db27b6ea265c180f56297815b7240368231f
2016-08-02 01:27:40 +00:00
John Reck
021a952150 Eliminate recents upload jank
am: 4387190d8e

Change-Id: I40fd49a61dde974c4215c4ccf9676f84cb3f43a7
2016-08-02 01:20:51 +00:00
TreeHugger Robot
e733f862f0 Merge "Eliminate recents upload jank" into nyc-mr1-dev 2016-08-02 01:07:19 +00:00
John Reck
4387190d8e Eliminate recents upload jank
Bug: 30342017

Upload recents thumbnails in the
dead gaps between frames instead of
at the start of a frame. This eliminates
jank caused by the large texture
upload.

Change-Id: I507cd286d199109c7a9a1511d68ba5ab5d28069f
2016-08-01 16:36:14 -07:00
John Reck
86e700ebc9 Fix null deref crash am: 882d515cd5
am: ed93e111c5

Change-Id: Ie1ce80145beb803f18118a64ac3be98ad77e3228
2016-08-01 22:16:32 +00:00
John Reck
882d515cd5 Fix null deref crash
Bug: 30560152
Change-Id: Ic4bae380e27de5bea80cec484e83d205e078ec43
2016-08-01 14:52:25 -07:00
Doris Liu
c82e879e56 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
2016-08-01 21:42:15 +00:00
John Reck
fb5c675b7e resolve merge conflicts of 67daab6 to nyc-mr1-dev-plus-aosp
Change-Id: I35f867b8d6408a7eae9cf5643f0908259de90cb1
2016-07-29 10:08:16 -07:00
John Reck
67daab6a1e Teach JankTracker about new swap behaviors
am: 2d5b8d7392

Change-Id: I28afc748f8a43944863bd752c3bd2cb983d19c23
2016-07-29 16:31:38 +00:00
TreeHugger Robot
34921ac110 Merge "Teach JankTracker about new swap behaviors" into nyc-mr1-dev 2016-07-29 16:25:51 +00:00
John Reck
2d5b8d7392 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
2016-07-29 07:56:02 -07:00
John Reck
fd6bf88724 Drop less aggressively am: a3d795a34a
am: 62ec371a9e

Change-Id: Ifd9329e071f9391c5a5ced79301aee5410eff6d4
2016-07-28 20:20:52 +00:00
John Reck
a3d795a34a 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
2016-07-27 19:28:05 -07:00
Chih-Hung Hsieh
f53bfc911f resolve merge conflicts of 3fb651b to nyc-mr1-dev-plus-aosp
Change-Id: I52d56e84620c85638798d949f8eb819387a01902
2016-07-21 19:14:36 -07:00
Chih-Hung Hsieh
05160d70d1 resolve merge conflicts of 5152fd9 to stage-aosp-master
Change-Id: I2066125eb4076dbc9e8996bb1fa87735aa6040d3
2016-07-21 18:13:31 -07:00
Chih-Hung Hsieh
faecb78a6b Fix google-explicit-constructor warnings in frameworks/base
* Add explicit keyword to conversion constructors.
* Add NOLINT to implicit conversion constructors.

Bug: 28341362
Test: build with clang-tidy
Change-Id: Ie4d37072ab57d1662d18db4de1c8577247f43337
2016-07-21 16:24:06 -07:00
Chris Craik
3c37412900 Merge \"Change swap chain stuffed detection logic\" into nyc-mr1-dev
am: 433a19e8bf

Change-Id: I6942a7cef5c831a1be3ee0252c2f475594f3db39
2016-07-21 00:39:44 +00:00
Chris Craik
3163568806 Change swap chain stuffed detection logic
bug:29771461
bug:29413700
bug:30181577

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
2016-07-20 16:47:03 -07:00
Tim Murray
619682b960 Merge changes I15da2563,I7845542d into nyc-mr1-dev
am: 7b8b1aab93

Change-Id: I66d92cd3c08a67598cefdc6256825b1c6c1736f5
2016-07-19 00:25:52 +00:00
Tim Murray
ffde6274f7 add tracepoint for when the display chain is stuffed
bug 30173296

Change-Id: I7845542d4e5c19ccb7c3ee6498cc2d70278b5397
2016-07-18 15:35:36 -07:00
Tim Murray
03b34e402c Merge changes from topic \'fifo\' into nyc-mr1-dev
am: a96d445aef

Change-Id: If4a5c3f65cb611aecf82ad49ad6d992f098cbfb1
2016-07-07 20:48:27 +00:00
Tim Murray
a96d445aef Merge changes from topic 'fifo' into nyc-mr1-dev
* changes:
  Add new mode for SCHED_FIFO on UI and RenderThreads.
  Add isThreadInProcess.
2016-07-07 20:29:24 +00:00
Tim Murray
33eb07f575 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
2016-07-07 12:55:31 -07:00
John Reck
6354336493 Merge \"Consider queue & dequeue times for should draw\" into nyc-mr1-dev
am: 3a465e7a12

Change-Id: I2ea38a087056e2f75aeb27c5bce03fe52690cd6e
2016-07-07 16:18:06 +00:00
John Reck
0def73aac5 Consider queue & dequeue times for should draw
Bug: 29413700

Change-Id: I4b27b077af569e3c60c57b0e11501e9f3af70579
2016-07-06 17:00:43 -07:00
John Reck
892f8e7d4f Merge \"Fix SurfaceViewPositionListener race bugs\" into nyc-mr1-dev
am: 8701bff9ba

Change-Id: I17b1cf4e81321edb04ae9ac99449160a705ba824
2016-06-28 01:31:02 +00:00
John Reck
7b570deea6 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
2016-06-27 13:35:13 -07:00
John Reck
2d30d67249 Merge \"Avoid re-calculating vsync mid-frame\" into nyc-dev
am: fc275d244e

Change-Id: I295b6e60a7b2fdcdce3692e74fe54755845132e0
2016-06-18 02:22:54 +00:00
John Reck
a32df88d7d Merge \\"Avoid re-calculating vsync mid-frame\\" into nyc-dev am: fc275d244e
am: cb0649f72b

Change-Id: I7cc9443c1ab3e876daa3aeecbcb9a41085f359af
2016-06-18 02:08:56 +00:00
John Reck
cb0649f72b Merge \"Avoid re-calculating vsync mid-frame\" into nyc-dev
am: fc275d244e

Change-Id: Ic46d2d9627c4dcbd345b49f01af0bf3b8247259c
2016-06-18 02:05:17 +00:00
John Reck
501ff9acfe Avoid re-calculating vsync mid-frame
Fixes: 29072773

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

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

Change-Id: Ibd2ec3157ce32fee1eec8d56837c45a35e622895
2016-06-17 20:44:43 +00:00
John Reck
6c3281a7c7 Merge \\"Redraw if dirty during stopped when resumed\\" into nyc-dev am: 5b4ff21a74
am: fc4c59a10c

Change-Id: Id572ab8137655b8f64e563d78897d2461442dd39
2016-06-14 14:58:56 +00:00
John Reck
f22f6cf0f3 Merge \"Redraw if dirty during stopped when resumed\" into nyc-dev
am: 5b4ff21a74

Change-Id: I75235a18c29939b4f221c8af664d5f7218660aed
2016-06-14 14:54:21 +00:00