Age | Commit message (Collapse) | Author |
|
am: 86e700ebc9
Change-Id: I97412741a5f41fa0c5bec56795cf7f7b8875f738
|
|
Bug: 30560152
Change-Id: Ic4bae380e27de5bea80cec484e83d205e078ec43
|
|
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
|
|
66e7752ad1 am: b2db402899
am: fb5c675b7e
Change-Id: Iba1f81a892acd9f541b9dd564203bfebc56c9c73
|
|
am: 2d5b8d7392
Change-Id: I28afc748f8a43944863bd752c3bd2cb983d19c23
|
|
|
|
am: fd6bf88724
Change-Id: I4a6bd075a1989b942c2531048d5d5335a24874f4
|
|
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
|
|
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
|
|
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
|
|
433a19e8bf
am: 3c37412900
Change-Id: Id7e0d1d1dfb5448dd927c29361fb98aabf0cfe10
|
|
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
|
|
am: 619682b960
Change-Id: I98afd5bead70cf25ca43e49c1215ccef1e472a83
|
|
bug 30173296
Change-Id: I7845542d4e5c19ccb7c3ee6498cc2d70278b5397
|
|
|
|
Move OpenGL specific code from CanvasContext into a new class
OpenGLPipeline.
Change-Id: I4363053f890701a4235927b59ec588861488ea8f
|
|
Move CanvasContext::isSkiaEnabled to Properties:isSkiaEnabled.
Change-Id: I0a62f43825cf59ba338a24a056e8c2a56d1c5315
|
|
fixes: 30002246
Change-Id: I45df0e924708526cee045b14c291bd23aa1a92db
|
|
|
|
|
|
Add a system property debug.hwui.default_renderer, which allows
to set rendering mode to OpenGL (default), Skia OpenGL or Vulkan.
Change-Id: I8bca5bacc5108f77437e340ac61f2d8db8cc4c39
|
|
Removes last usage of old rendering pipeline.
Change-Id: Ia920dec9cd726ca221e11e888562c7df39a9761e
|
|
am: 3a465e7a12
am: 6354336493
Change-Id: Idbe85f08c27cc6f9433badd886a1fe7d9ba73c4f
|
|
Bug: 29413700
Change-Id: I4b27b077af569e3c60c57b0e11501e9f3af70579
|
|
Adds googlebench output format support
Adds offscreen rendering for >60fps benchmarking
Adds 'all' alias to run all registered TestScenes
Change-Id: I2579e40f2f4c941bfbd90c75efbee384c08a116b
|
|
Change-Id: I324bbfa40a2155d0212fa20c6bd39df5bb21d27a
|
|
8701bff9ba
am: 892f8e7d4f
Change-Id: I1e66186dce36e52cafe6c0d027aeae7c9345703c
|
|
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
|
|
Bug: 21170575
Change-Id: Icc832f70f206342557f44667ad3498405d04db78
|
|
5b4ff21a74 am: fc4c59a10c
am: 6c3281a7c7
Change-Id: I67192e2450293a6520a30ed78c8381b89558841b
|
|
am: 5b4ff21a74
Change-Id: If4eedb4a4c1ff6d4e96f8b0db4ddd846a2967a9f
|
|
Change-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a
Fixes: 28283031
|
|
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
|
|
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
|
|
Bug: 28341362
Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
|
|
|
|
Change-Id: I783de544ad9a3636ea90f1c8c4034738997bfbc8
Fixes: 28246085
|
|
|
|
Fixes: 28125010
Restructures 'scene defer', to implement window backdrop overdraw
avoidance in new render pipeline, and disable clipping to content draw
bounds.
Also restructures FrameBuilder's constructors, to separate out into
multiple defer methods.
Change-Id: I53facb904c1a4a4acc493d8a489921a79a50494e
|
|
This reverts commit eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399.
Fixes first-frame issue, mReportNextDraw needs to override
mStopped
Fixes: 28118961
Fixes: 27286867
Change-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2
|
|
|
|
This reverts commit 945961f78a78eced823d5ba78505c781b079703d.
Change-Id: Iebc1d49fac33380233f8785fc39bec6c30a5e714
|
|
|
|
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
|
|
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
|
|
Bug: 27709981
Fixes: 22565656
Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
|
|
bug:26561995
bug:27620686
Change-Id: I6c39f9a077e7e6002d3c01b8888238fd17b0f02a
|
|
bug:26562703
bug:27052145
Change-Id: Ic452bfe75da849ffdd47fecdd6eb1472fd0c806e
|
|
Initial CL: https://googleplex-android-review.git.corp.google.com/#/c/886854/
Change-Id: I9dfd85fe1d2a2c44f4360c8a29fd58d80e6f31c8
|
|
|