summaryrefslogtreecommitdiffstats
path: root/libs/hwui/renderthread/RenderProxy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Add GraphicsStatsService"John Reck2015-03-301-0/+13
|\
| * Add GraphicsStatsServiceJohn Reck2015-03-271-0/+13
| | | | | | | | | | | | | | | | | | | | | | 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
* | resolved conflicts for merge of 4142f026 to masterJohn Reck2015-03-241-0/+1
|\ \ | |/ |/| | | Change-Id: Iabe3aa0ac6911a26d2ba7219f18332897276ed6f
| * Don't create unnecessary RenderThread's instance when executing 'dumpsys ↵youngmin0822.lee2015-03-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gfxinfo' To obtain the gfxinfo for each process, the static method of RenderProxy is used, which is named outputLogBuffer(). In there, 1. RenderTask is created for getting DisplayList Commands in RenderNode. 2. staticPostAndWait() is called 3. RenderThread's instance is created by 'RenderThread::getInstance()' in staticPostAndWait() In case of the service, they don't use HW Acceleration, so don't need RenderThread. But, by the process of No.3, RenderThread is created for all process. As we know, RenderThread never be destroyed while the process is alive. This patch checks RenderThread instance before the creation of RenderTask. And, there is no one, just return to prevent the unnecessay creation of it. Change-Id: I4fe29d83c9ced3e8b67177c0874c5d8ee62e1870
* | Cleanups & simplificationsJohn Reck2015-03-111-14/+13
| | | | | | | | Change-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1
* | C++11 style fixupsJohn Reck2015-02-201-2/+3
| | | | | | | | Change-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9
* | Initial attempt at jank-tracking stat collectionJohn Reck2015-02-201-17/+35
| | | | | | | | | | | | Is a bit naive, perhaps overly aggressive, but sorta works Change-Id: I01a774e00dbe681439c02557d9728ae43c45ce50
* | Remove DisplayListLogBufferChris Craik2015-01-211-4/+12
| | | | | | | | Change-Id: I001832fc444b6d532f4a382e0a31cc1d8956dbd8
* | Add overrides and switch to nullptr keyword for all filesChris Craik2015-01-051-25/+25
| | | | | | | | | | | | | | Adds remaining missing overrides and nullptr usages, missed due to an extreme failure in tool usage. Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
* | resolved conflicts for merge of a75b0ad3 to masterJohn Reck2014-12-041-4/+3
|\ \ | |/ | | | | Change-Id: I32a2d129c556407727ada909daa6470309d42499
| * resolved conflicts for merge of a51a0901 to lmp-mr1-dev-plus-aospJohn Reck2014-12-041-4/+3
| |\ | | | | | | | | | Change-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed
| | * Resume RT-animations after a pauseSurfaceJohn Reck2014-12-031-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Revert "resolved conflicts for merge of 220c3f4f to master"Andreas Gampe2014-11-221-5/+3
|/ / | | | | | | | | | | | | | | Reverted as hwui doesn't agree. This reverts commit 8a902d9f24e83c87b054adb5836b4a5b8a257be9. Change-Id: I109e7b02bee2921e2155ded6df36f52e6f574b5a
* | resolved conflicts for merge of 99377df1 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-211-3/+5
|\ \ | | | | | | | | | Change-Id: I3a98f55832ac447b1ed0dd129c7a93d088025943
| * | Frameworks/base: Unused parameters in hwuiAndreas Gampe2014-11-211-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-101-0/+4
|\ \ \ | |/ / | | / | |/ |/| Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
| * Frameworks/base: Wall Werror in libs/hwuiAndreas Gampe2014-11-101-0/+4
| | | | | | | | | | | | Turn on -Wall -Werror in libs/hwui. Fix errors. Change-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd
* | Layer changesJohn Reck2014-10-311-17/+25
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Add some free zoom to lockHardwareCanvasJohn Reck2014-10-231-0/+12
|/ | | | | | | | | Bug: 18099195 Don't use EGL_SWAP_BUFFER_PRESERVED on surfaces that will never benefit. Also clean up some confusing naming Change-Id: I674ca64e0464a3282cff79e5ecd350d08f47c014
* Cleanup DeferredLayerUpdaterJohn Reck2014-10-031-18/+3
| | | | | | | | | | 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
* Have destroy call freePrefetchedLayersJohn Reck2014-09-031-4/+4
| | | | | | | | | | | | | | | | | | | Bug: 17208461 There's a potential race condition between HardwareRenderer.destroy() being called (which calls destroyCanvasAndSurface()) and the renderer being finalized (which is what calls freePrefetchedLayers), during which time it's possible we get a TRIM_MEMORY_COMPLETE and destroy the EGL context. Fix this race condition by moving stopDrawing() and freePrefetchedLayers() into destroyCanvasAndSurface() where they should have been in the first place. Also, if we hit the assertion failure, dump the current state of Caches to try and provide more context for the failure. Change-Id: Ife0ba3562041e8b08e87e3e13640472b3004eed6
* Animator stuffJohn Reck2014-08-271-3/+6
| | | | | | Bug: 17228458 Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
* Implement full View.buildLayerJohn Reck2014-08-201-0/+12
| | | | | | Bug: 17152292 Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
* Define shadow casting behavior within layersChris Craik2014-08-151-2/+0
| | | | | | | | | | | | bug:15860114 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
* Don't start RenderThread to do trimMemoryJohn Reck2014-08-061-5/+8
| | | | | | Bug: 16825138 Change-Id: I35f57898b14bc8526c3d93a3003bca6f5a3d7fbe
* Revert "Dump RenderThread stack on unresponsive"Chris Craik2014-07-251-1/+2
| | | | | | | | | | bug:16563871 bug:16565900 bug:16555847 bug:16551643 This reverts commit ca66e06b9db6e6c921662886e4b7ddd02ac92280. Change-Id: I23e8d4eaf828b1b298126ba5f36e4e8e7451706a
* Connect shadow style attributes to rendererChris Craik2014-07-241-4/+11
| | | | | | | | | bug:15859361 Moves lighting info out of StatefulBaseRenderer, since it's not useful at record time, and only used by OGLR. Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
* Dump RenderThread stack on unresponsiveJohn Reck2014-07-231-2/+1
| | | | | | Bug: 16408405 Change-Id: I4ba4836fd1451fb8ba77c34cdb843d3cb4217bb8
* Fix onTrimMemory for HardwareRendererJohn Reck2014-06-301-5/+28
| | | | | | | | | Also fixes detachFunctor possibly drawing after return Bug: 15189843 Bug: 15990672 Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
* More cleanupsJohn Reck2014-06-271-0/+11
| | | | Change-Id: Id5967944b949a2aec57e4fe9fdcdc04c11b8c35a
* No-fail invokeFunctorJohn Reck2014-06-231-10/+36
| | | | | | | Bug: 15513308 Bug: 15449247 Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
* hwui: 64-bit compile issueMark Salyzyn2014-06-101-1/+1
| | | | Change-Id: Ic3e3dbc6cde4bc58b23a8ab267b0868f370ad149
* Even FASTER damage calculations!John Reck2014-06-041-2/+1
| | | | | | | | | | | * 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
* Re-jigger layersJohn Reck2014-05-301-14/+19
| | | | | | | | | | | | | | | | Bug: 15185239 Bug: 15238382 Make DeferredLayerUpdater ref counted so that HardwareLayer:finalizer() works non-crashily on leaked layers Give DeferredLayerUpdater the ability to have a layer destroyer set so that leaked layers can still be recycled on the RenderThread Order layer updates based off of pushLayerUpdate() calls to fix issue with nested layers Change-Id: I4449cee607f7e5126e02fed7464cf48038e3dfdf
* Enable debug stuffsJohn Reck2014-05-291-4/+21
| | | | | | | | Bug: 14596762 * dumpsys gfxinfo implemented * profile GPU visual_bars implemented Change-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b
* Implement FlushCaches TODOJohn Reck2014-05-231-0/+12
| | | | Change-Id: Id05429e98ffe0858275b32c41fb215c1d8d930b2
* Bag of scheduling tweaksJohn Reck2014-05-231-3/+14
| | | | | | | | | | | | | 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
* Define light position (using new lighting spec) in JavaChris Craik2014-05-211-3/+7
| | | | | | Also updates the relative shadow strengths. Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
* Implement TODO(romainguy)John Reck2014-05-071-0/+12
| | | | | | Bug: 14277445 Change-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b
* Implement loadSystemPropertiesJohn Reck2014-05-051-0/+13
| | | | | | Bug: 14087580 Change-Id: I7153f38c70b554a78c56a0e794da929fc401ee7a
* Make RenderNodeAnimator and WebView play niceJohn Reck2014-05-051-2/+2
| | | | Change-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a
* TIME LORD!John Reck2014-05-051-4/+16
| | | | | | Bug: 14444180 Change-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3
* RenderThread animator supportJohn Reck2014-04-291-5/+5
| | | | Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
* Fence on destructionJohn Reck2014-04-141-5/+8
| | | | | | | | | 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
* Merge "Make attachFunctor blocking"John Reck2014-04-101-24/+1
|\
| * Make attachFunctor blockingJohn Reck2014-04-101-24/+1
| | | | | | | | | | | | Bug: 13930200 Change-Id: I9b0cf92fd16bb30baa09b6f8d7ae22a8b2a7fd80
* | Remove sync flushJohn Reck2014-04-101-7/+0
|/ | | | | | | | | | | 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
* Merge "Switch DisplayListData to a staging model"John Reck2014-04-091-4/+0
|\
| * Switch DisplayListData to a staging modelJohn Reck2014-04-091-4/+0
| | | | | | | | | | | | Bug: 13912977 Change-Id: I5b2f664e797be22a58300964f57ceb4fab60528c
* | Fix ThreadedRenderer.setEnabled()John Reck2014-04-091-5/+17
|/ | | | | | | | | | | Bug: 13914116 Fixes lifecycle issues around setEnabled where ThreadedRenderer was reporting as being enabled before it had a Surface. This is incorrect. Also fix some EGL lifecycle issues Change-Id: I12ebb279707f9b533a570b61d68735d858b560bf