summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/CanvasContext.cpp
AgeCommit message (Collapse)Author
2016-08-02Fix null deref crash am: 882d515cd5 am: ed93e111c5John Reck
am: 86e700ebc9 Change-Id: I97412741a5f41fa0c5bec56795cf7f7b8875f738
2016-08-01Fix null deref crashJohn Reck
Bug: 30560152 Change-Id: Ic4bae380e27de5bea80cec484e83d205e078ec43
2016-08-01Put VD animators on paused list when RT stops drawingDoris Liu
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-07-31Merge \\\"Fix missing IpConnectivity metrics\\\" into nyc-mr1-dev am: ↵Hugo Benichi
66e7752ad1 am: b2db402899 am: fb5c675b7e Change-Id: Iba1f81a892acd9f541b9dd564203bfebc56c9c73
2016-07-29Teach JankTracker about new swap behaviorsJohn Reck
am: 2d5b8d7392 Change-Id: I28afc748f8a43944863bd752c3bd2cb983d19c23
2016-07-29Merge "Teach JankTracker about new swap behaviors" into nyc-mr1-devTreeHugger Robot
2016-07-29Drop less aggressively am: a3d795a34a am: 62ec371a9eJohn Reck
am: fd6bf88724 Change-Id: I4a6bd075a1989b942c2531048d5d5335a24874f4
2016-07-29Teach JankTracker about new swap behaviorsJohn Reck
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-27Drop less aggressivelyJohn Reck
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-26Remove LayerRenderer.Derek Sollenberger
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
2016-07-21Merge \\"Change swap chain stuffed detection logic\\" into nyc-mr1-dev am: ↵Chris Craik
433a19e8bf am: 3c37412900 Change-Id: Id7e0d1d1dfb5448dd927c29361fb98aabf0cfe10
2016-07-20Change swap chain stuffed detection logicChris Craik
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-19Merge changes I15da2563,I7845542d into nyc-mr1-dev am: 7b8b1aab93Tim Murray
am: 619682b960 Change-Id: I98afd5bead70cf25ca43e49c1215ccef1e472a83
2016-07-18add tracepoint for when the display chain is stuffedTim Murray
bug 30173296 Change-Id: I7845542d4e5c19ccb7c3ee6498cc2d70278b5397
2016-07-14Merge "Move isSkiaEnabled to the Properties class"Stan Iliev
2016-07-13Refactor CanvasContext: move OpenGL specific codeStan Iliev
Move OpenGL specific code from CanvasContext into a new class OpenGLPipeline. Change-Id: I4363053f890701a4235927b59ec588861488ea8f
2016-07-11Move isSkiaEnabled to the Properties classStan Iliev
Move CanvasContext::isSkiaEnabled to Properties:isSkiaEnabled. Change-Id: I0a62f43825cf59ba338a24a056e8c2a56d1c5315
2016-07-07Delete old rendering pipelineChris Craik
fixes: 30002246 Change-Id: I45df0e924708526cee045b14c291bd23aa1a92db
2016-07-07Merge "Implement runtime switch to select default renderer mode"TreeHugger Robot
2016-07-07Merge "Unify readback Surface/TextureView copy mechanism"TreeHugger Robot
2016-07-07Implement runtime switch to select default renderer modeStan Iliev
Add a system property debug.hwui.default_renderer, which allows to set rendering mode to OpenGL (default), Skia OpenGL or Vulkan. Change-Id: I8bca5bacc5108f77437e340ac61f2d8db8cc4c39
2016-07-07Unify readback Surface/TextureView copy mechanismChris Craik
Removes last usage of old rendering pipeline. Change-Id: Ia920dec9cd726ca221e11e888562c7df39a9761e
2016-07-07Merge \\"Consider queue & dequeue times for should draw\\" into nyc-mr1-dev ↵John Reck
am: 3a465e7a12 am: 6354336493 Change-Id: Idbe85f08c27cc6f9433badd886a1fe7d9ba73c4f
2016-07-06Consider queue & dequeue times for should drawJohn Reck
Bug: 29413700 Change-Id: I4b27b077af569e3c60c57b0e11501e9f3af70579
2016-07-06Benchmark-mode for macrobenchJohn Reck
Adds googlebench output format support Adds offscreen rendering for >60fps benchmarking Adds 'all' alias to run all registered TestScenes Change-Id: I2579e40f2f4c941bfbd90c75efbee384c08a116b
2016-06-29Remove unused method from RenderProxy and CanvasContext.Derek Sollenberger
Change-Id: I324bbfa40a2155d0212fa20c6bd39df5bb21d27a
2016-06-28Merge \\"Fix SurfaceViewPositionListener race bugs\\" into nyc-mr1-dev am: ↵John Reck
8701bff9ba am: 892f8e7d4f Change-Id: I1e66186dce36e52cafe6c0d027aeae7c9345703c
2016-06-27Fix SurfaceViewPositionListener race bugsJohn Reck
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-21Delete unused argsJohn Reck
Bug: 21170575 Change-Id: Icc832f70f206342557f44667ad3498405d04db78
2016-06-14Merge \\\"Redraw if dirty during stopped when resumed\\\" into nyc-dev am: ↵John Reck
5b4ff21a74 am: fc4c59a10c am: 6c3281a7c7 Change-Id: I67192e2450293a6520a30ed78c8381b89558841b
2016-06-14Merge \"Redraw if dirty during stopped when resumed\" into nyc-devJohn Reck
am: 5b4ff21a74 Change-Id: If4eedb4a4c1ff6d4e96f8b0db4ddd846a2967a9f
2016-06-10Redraw if dirty during stopped when resumedJohn Reck
Change-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a Fixes: 28283031
2016-06-09Handle hidden RT VectorDrawable animatorsDoris Liu
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
2016-05-26Handle hidden RT VectorDrawable animatorsDoris Liu
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
2016-05-03Fix google-explicit-constructor warnings.Chih-Hung Hsieh
Bug: 28341362 Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
2016-04-18Merge "Make getFrameNumber lazy" into nyc-devJohn Reck
2016-04-18Make getFrameNumber lazyJohn Reck
Change-Id: I783de544ad9a3636ea90f1c8c4034738997bfbc8 Fixes: 28246085
2016-04-18Merge "Improve multi-window render clipping logic" into nyc-devChris Craik
2016-04-18Improve multi-window render clipping logicChris Craik
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
2016-04-14Revert "Revert "Make stopped state a first-class thing""John Reck
This reverts commit eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399. Fixes first-frame issue, mReportNextDraw needs to override mStopped Fixes: 28118961 Fixes: 27286867 Change-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2
2016-04-11Merge "Revert "Make stopped state a first-class thing"" into nyc-devJohn Reck
2016-04-11Revert "Make stopped state a first-class thing"John Reck
This reverts commit 945961f78a78eced823d5ba78505c781b079703d. Change-Id: Iebc1d49fac33380233f8785fc39bec6c30a5e714
2016-04-08Merge "Make stopped state a first-class thing" into nyc-devJohn Reck
2016-04-07Make stopped state a first-class thingJohn Reck
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
2016-04-07Fix some edge casesJohn Reck
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
2016-03-31Add a callback for rendernode parentcount=0John Reck
Bug: 27709981 Fixes: 22565656 Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
2016-03-29Support buildLayer in new pipelineChris Craik
bug:26561995 bug:27620686 Change-Id: I6c39f9a077e7e6002d3c01b8888238fd17b0f02a
2016-03-23Precache/early kick off of op work for non-shadow ops.Chris Craik
bug:26562703 bug:27052145 Change-Id: Ic452bfe75da849ffdd47fecdd6eb1472fd0c806e
2016-03-21Reland: Move text logic from jni to hwui levelsergeyv
Initial CL: https://googleplex-android-review.git.corp.google.com/#/c/886854/ Change-Id: I9dfd85fe1d2a2c44f4360c8a29fd58d80e6f31c8
2016-03-21Merge "Revert "Move text logic from jni to hwui level"" into nyc-devSergei Vasilinetc