diff options
| author | 2020-01-16 14:21:42 -0800 | |
|---|---|---|
| committer | 2020-01-30 18:31:23 +0000 | |
| commit | 844fa677e7138c4585e562cbaac0734856c301eb (patch) | |
| tree | 415fe6aad406a8db3196645dfca5a3c3479f3846 /libs/gui/BufferQueueThreadState.cpp | |
| parent | abd1a135f2a8c988209c30731d4da3d99788ff00 (diff) | |
Use new traversal function when order doesn't matter
The new traversal function just handles traversing children and ignores relative layers. It also doesn't care about the z order. We continue to use the traverseInZOrder functions
for cases when z order matters.
This optimization reduces total CPU time spent in SurfaceFlinger.
Total ~2% savings
The savings where measured sampling over a 20 second period while TouchLatency
bouncy ball app was running.
Baseline
https://pprof.corp.google.com/?id=2ec0b6ac8e24e1571a3173c763ecd7e1&focus=LayerVector%3A%3AtraverseInZOrder
Optimized
https://pprof.corp.google.com/?id=23596aeb3e9db163956dc621dd19d7a4&focus=LayerVector%3A%3Atraverse
Test: manual. checked that normal use on the phone did not have graphical corruptions.
Test: atest SurfaceFlinger_test libcompositionengine_test libsurfaceflinger_unittest
Test: go/wm-smoke
Port from ag/10112179
Change-Id: I60cc6b58efc0e95c5ccc204830a3d76d2e7633c7
Diffstat (limited to 'libs/gui/BufferQueueThreadState.cpp')
0 files changed, 0 insertions, 0 deletions