summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-20Merge cherrypicks of [9428684, 9428685, 9428686, 9428687, 9428607, 9428608, ↵android-10.0.0_r12android10-c2f2-s1-releaseandroid-build-team Robot
9428514, 9428272, 9428273, 9428275, 9428276, 9428277, 9428278, 9428689, 9428690, 9428691, 9428478, 9428702, 9428692, 9428479, 9428720, 9428721, 9428722, 9428723, 9428703, 9426151, 9428693, 9428724, 9428725, 9428726, 9428727, 9428728, 9428729, 9428730, 9428731, 9428732, 9428733, 9428734, 9428704, 9428609, 9428610, 9428611, 9428612, 9428613, 9428614, 9428615, 9426152, 9426153, 9426154, 9426155, 9426156, 9426157, 9426158, 9426159, 9428740, 9428409, 9428694, 9428695, 9428735] into sparse-5888870-L93800000368094851 Change-Id: I76ea51b3f5022c6f44d291a3c829a31c09d2532c
2019-09-20Update the minimum interval to resync to HWVsyncLong Ling
Bug: 140823887 Test: Manual test with Calculator apps Change-Id: I705c16534a616bc1a3af4402ba999eeb68871a3f (cherry picked from commit 457bef9139e9e756aa487703d75ee5e0844d9076)
2019-09-20SurfaceFlinger: Query Scheduler when updating allowed display configsDaniel Solomon
Currently two entities in SurfaceFlinger can set a new display refresh rate: (1) SurfaceFlinger core, and (2) Scheduler. It's possible for these two entities to get out of sync in the following way: 1) Scheduler updates the refresh rate to some rate 2) Upper layers call into SurfaceFlinger to update allowed display configs 3) SurfaceFlinger always sets display rate to max If the refresh rate from #1 and #3 don't match, it can leave the system in an inconsistent state, potentially causing visual and power issues. This change fixes this problem by changing step #3: Instead of always choosing the max refresh rate, SurfaceFlinger queries the optimal refresh rate from Scheduler. If that rate isn't available, only then does SurfaceFlinger default to the maximum rate. Bug: 139557239 Test: atest libsurfaceflinger_unittest Test: Manual: 1) Start with SurfaceFlinger idling (Scheduler selected RefreshRateType::DEFAULT) 2) Trigger a change in allowed display configs from DisplayModeDirector 3) Make sure the RefreshRateType SurfaceFlinger sets is DEFAULT instead of PERFORMANCE Change-Id: Ia85a60fde55afaed5106462942e0bb77652ec737 Merged-In: Ia85a60fde55afaed5106462942e0bb77652ec737 (cherry picked from commit d916d941d89ec8fdcbc2bbe0bfdf0b0db1ad08b5)
2019-09-20SurfaceFlinger: send config event changed on allowed modes changeAdrian Salido
Provide a notification whenever allowed display configurations have changed, this allows Display Event Receivers to be aware of a change in allowed configs. Bug: 139487676 Change-Id: Ida73391c350989be595f55ff8e1d9d2cc70c0276 (cherry picked from commit ab6ef6c8871506317dc7ada75707c19963daabe4)
2019-08-19Snap for 5811895 from 575149f8f04136759e34d298966dd5e9a84b1cde to ↵android-10.0.0_r8android-10.0.0_r7android-build-team Robot
qt-c2f2-release Change-Id: Iae1413ea1a3977252bdd9603420a0b08c74fa338
2019-08-17Merge "Remove test image" into qt-r1-devTreeHugger Robot
2019-08-15Remove test imageAlec Mouri
Bug: 139427228 Test: builds Change-Id: I72ff075bbf878c39a17803b2d74181fbe045a3fb
2019-08-15Snap for 5803801 from 0c5f26bab85bbacaa87b33692bcc29a3c1dea021 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I05e28eed45918898dbc2f820eaf44b59c49c8466
2019-08-14Merge "Dump HALs and enable persistent logs for radio bugreports" into qt-r1-devJayachandran Chinnakkannu
2019-08-14Dump HALs and enable persistent logs for radio bugreportsJayachandran C
HALs dumps are needed to debug WFC releated issues Persistent logs capture is needed to capture the history of logs that captures the scenario of telephony going to bad state. Bug: 138261934 Test: Triggered telephony dumpsys using connectivity monitor app and verified Change-Id: I158e327d5c5a13c64e48d5711f82903d4a50b8f0
2019-08-13Snap for 5797917 from 9939d091ec7da4436ce247699c6781075e840af2 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I41b4899b66463ce42a8e1ea307c9107b776b592d
2019-08-12Merge "[SurfaceFlinger] Callback to renderengine when erasing BLAST buffers" ↵TreeHugger Robot
into qt-r1-dev
2019-08-12[SurfaceFlinger] Callback to renderengine when erasing BLAST buffersAlec Mouri
Otherwise we may leak if BufferStateLayer is destroyed first. Bug: 137514000 Test: Over 61 hours, ran: while [ true ]; do am start -n \ com.android.chrome/com.google.android.apps.chrome.Main \ http://m.youtube.com; sleep 10; input tap 740 740 ; sleep 10; input \ keyevent HOME; sleep 0.5; am force-stop com.android.chrome; sleep 0.5; \ done Test: Over >30 minutes: while [ true ]; do am start -n \ com.android.chrome/com.google.android.apps.chrome.Main \ http://m.youtube.com; sleep 10; input tap 740 740; \ sleep 1; content insert --uri content://settings/system --bind \ name:s:user_rotation --bind value:i:1; sleep 4; content insert --uri \ content://settings/system --bind name:s:user_rotation --bind value:i:0; \ sleep 5; input keyevent HOME; sleep 0.5; \ am force-stop com.android.chrome; sleep 0.5; done Test: CtsViewTestCases:ASurfaceControlTest Test: CtsViewTestCases:SurfaceControlTest Test: Transaction_test Change-Id: I743eb8bd9887d17e08b6f1b8e8ec5874359df175
2019-08-09SurfaceFlinger: clamp frame refresh duration to min refresh durationAdy Abraham
Some applications may send doubles frames which are scheduled to be presented very close to each other. In this case to avoid calculating a very high fps for the layer, clamp the refresh duration to the minimal value allowed for the layer. Test: YouTube play "YouTube 60fps Tester" video. Bug: 139209733 Change-Id: I4bcdfad65b57782ec6e346e8d884bfb6e2abac4d
2019-08-07Snap for 5785232 from 2a7a3bfec713dac55a482c60e977333b63cb7de5 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I362efbc1a3c5ba7213b1f77f256cac3332558335
2019-08-06Merge "GpuStats: fix driver loading stats at driver unloading" into qt-r1-devTreeHugger Robot
2019-08-06Merge "[RenderEngine] add an ImageManager thread" into qt-r1-devTreeHugger Robot
2019-08-06Snap for 5781865 from d41a47001603ffd1ed96b42cd408b699e444f8a2 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I4129315e1695059addf0bb8127ec65e11e948518
2019-08-06GpuStats: fix driver loading stats at driver unloadingYiwei Zhang
Bug: 138963614 Test: opt-in to GameDriver or ANGLE and test Change-Id: I1e74cf55dd00f6fd7cb65d278d4dbaf018c5f322 Merged-In: I1e74cf55dd00f6fd7cb65d278d4dbaf018c5f322
2019-08-05[RenderEngine] add an ImageManager threadAlec Mouri
Prior to this change, EGLImage management would be performed by both binder threads and the main rendering thread in a synchronized manner. But because of BufferQueue implementation details, it's possible for an app's Surface to be disconnected (destroying all backing EGLImages per the disconnect api spec), while still latching and presenting the most recently queued image (which requires recreating the EGLImage on the main thread), which can cause jank in some scenarios such as app-launch. To mitigate this, defer EGLImage creation and destruction to a separate thread behind RenderEngine so that creating the EGLImage should never be done on the main thread. So scenarios such as app-launch avoid jank by performing the EGLImage creation asynchronously with the main thread, so that the creation is done by the time RenderEngine needs to start rendering. Bug: 136806342 Bug: 137191934 Test: Launching photos app shows no bindExternalImage* calls during the rendering path Test: librenderengine_test Change-Id: Ib809e36267b5604bbbedd4089d15666b22cabc95
2019-08-05DO NOT MERGE: Fixing overflow bugValerie Hau
Client should not be requesting such large buffers. Limit byte size to max(size_t) Bug: 137801859 Test: build, boot Change-Id: Idef0c1e926c180bfaf640b627046adba5d3043c3
2019-07-28Snap for 5761925 from 4ede27d7bc1e0bbe8d17db3a8d850af6c1c95931 to ↵android-build-team Robot
qt-c2f2-release Change-Id: Ibbe994d96da0879f8cb91c310411469f61327dd5
2019-07-28[RenderEngine] Allow rounded corners shader to use lower precision.Alec Mouri
am: f941c1ea7e Change-Id: I4ab039f9fffad26d9c5dcbbb87210c3e98e93041
2019-07-28[RenderEngine] Allow rounded corners shader to use lower precision.Alec Mouri
Big corner radii would cause problems at lower precision because computing a vector norm would overflow. But since highp tanks performance, instead scale down and back up by a power of 2 during the normalization operation, so that a higher precision is not required. Bug: 137191934 Test: eyeballing systrace when opening Photos, GPU seems to take shorter time and no jank is observed Test: Stepping through frames from a Pixel 3 XL screenrecording shows that the beginning of the app opening animation is rounded instead of square Change-Id: Ie7a39bd0f992f7f42414ef49de9873775cc34409 Exempt-From-Owner-Approval: Approved in qt-r1-dev
2019-07-27Snap for 5761090 from e99a9c03b1cb75561d378ea4196ddd352d28160d to ↵android-build-team Robot
qt-c2f2-release Change-Id: I8625fae3538fb6adddb171a0b101c3e51acb3fea
2019-07-26Merge "[RenderEngine] Allow rounded corners shader to use lower precision." ↵TreeHugger Robot
into qt-r1-dev
2019-07-25Merge "Merge damage region when dropping an app buffer" into qt-r1-devTreeHugger Robot
2019-07-25[RenderEngine] Allow rounded corners shader to use lower precision.Alec Mouri
Big corner radii would cause problems at lower precision because computing a vector norm would overflow. But since highp tanks performance, instead scale down and back up by a power of 2 during the normalization operation, so that a higher precision is not required. Bug: 137191934 Test: eyeballing systrace when opening Photos, GPU seems to take shorter time and no jank is observed Test: Stepping through frames from a Pixel 3 XL screenrecording shows that the beginning of the app opening animation is rounded instead of square Change-Id: Ie7a39bd0f992f7f42414ef49de9873775cc34409
2019-07-24Merge damage region when dropping an app bufferSteven Thomas
When we decide to drop a buffer from a buffer queue, make sure to merge the damage region from the dropped buffer into the current damage region. Otherwise we'll pass the wrong damage region to hardware composer and get broken rendering. Bug: 136158117 Test: Wrote a new test in Transaction_test.cpp to repro the problem and confirm the fix works. Change-Id: Icdc61e1be3297450f2869c496dad1453fb6dca6d
2019-07-24Snap for 5749990 from d717a27ba4dab5eabd0d20ab81bd60c1b4c0f80f to ↵android-build-team Robot
qt-c2f2-release Change-Id: Ic60974db1b4ff8aa95bcbfbf3dd69eb4d44f658d
2019-07-23Merge "Mark screen rotation as early (2/2)" into qt-devJorim Jaggi
am: a604f0a824 Change-Id: I2104b990656d4884baa69334b3fcb9d4a2d29867
2019-07-24Merge "Mark screen rotation as early (2/2)" into qt-devTreeHugger Robot
2019-07-23SurfaceFlinger: add a sysprop for GL backpressureAdy Abraham
am: 4658e11cbe Change-Id: I3162bfbd6070dfeb179deaeb4b9358a027737ce5
2019-07-23Merge "SurfaceFlinger: calculate expected present once" into qt-r1-devTreeHugger Robot
2019-07-23Merge "[SurfaceFlinger] Exclude first vsync duration from period ↵Alec Mouri
calculation" into qt-r1-dev
2019-07-23Merge "libgui: add EGL Image Tracking for debug" into qt-r1-devTreeHugger Robot
2019-07-23SurfaceFlinger: calculate expected present onceAdy Abraham
Calculate the expected present time in the beginning of the frame and use the same value across the frame composition. Bug: 137873466 Test: App transitions Change-Id: I0b41c62796f6150702e8d50ec7d28838d3a5aa87
2019-07-23Mark screen rotation as early (2/2)Jorim Jaggi
To decrease jank while rotating. Test: Rotate screen Bug: 138083790 Change-Id: I2b0d63bbf4143b9273a502ced451867f69e42636 Merged-In: I2b0d63bbf4143b9273a502ced451867f69e42636
2019-07-23Merge "[RenderEngine] Add cache contents to dumpsys" into qt-r1-devTreeHugger Robot
2019-07-23Snap for 5746716 from e35878cea23ab8fe657ba1a62f33f819e2649168 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I6ef9604e7e9938f966308297e82e59b701d7706a
2019-07-23SurfaceFlinger: add a sysprop for GL backpressureAdy Abraham
In some devices where SF misses a frame in GL comp, HWC queue may get stuffed. This causes application to block longer on dequeueBuffer which leads to jank. Test: 1. Open Camera 2. Swipe horizontally to go back to previous app. Bug: 138083790 Change-Id: I4c5963cb7ba7f9b10254c77dc7117ca3acac81cf
2019-07-22Merge "SurfaceFlinger: tune LayerHistory to be less aggressive" into qt-r1-devAdy Abraham
2019-07-22SurfaceFlinger: tune LayerHistory to be less aggressiveAdy Abraham
Increase the thresholds to mark layer as "relevant" to be less agressive when changing refresh rate based on content. Bug: 136558136 Test: 1) put icons in drawer/folder on homescreen 2) tap drawer to expand 3) tap homescreen to contract drawer 4) goto 2), repeating quickly. Test: libsurfaceflinger_unnittest Change-Id: I2a9b696f267d93720408a41dceb4acb7dc80bd69
2019-07-22libgui: add EGL Image Tracking for debugAdy Abraham
Track EGL images allocated by libgui to help debug memory leaks Test: monkey Bug: 137514000 Change-Id: I0b193c0fdb7a4c07d7c2e5d06063e3dc01b5a57b
2019-07-20Snap for 5743241 from 38172ad8cf4a3dc3ee801cb295de891050993438 to ↵android-build-team Robot
qt-c2f2-release Change-Id: I8d6939208f9c99402ca8838277587be27bb395de
2019-07-19[SurfaceFlinger] Exclude first vsync duration from period calculationAlec Mouri
Some displays don't exit from idle state immediately when vsync is enabled through the kernel idle timer, so exclude the first vsync period instead of just the first sample. Bug: 136197211 Test: Scrolling through settings Change-Id: I899fec289c8b08cfaa3264f7f6291a6fac489ab8
2019-07-18SurfaceFlinger: debug layer bounds insetAdy Abraham
This is a debug change to make sure layer bounds will not overflow after an inset operation. Bug: 137560795 Test: manual tests Change-Id: Ifd9a8d84877e7f4c1f62c0419b0f86294ab576af
2019-07-17Snap for 5733735 from ddb5f84005c03cb000d9f2ad042347e8d0e336de to ↵android-build-team Robot
qt-c2f2-release Change-Id: I6fa9c8d7fd0fba5a5078139e7d619555fe75a04f
2019-07-16Merge "[SurfaceFlinger] Don't touch hw vsync in DEFAULT RR with kernel ↵Alec Mouri
timeout" into qt-r1-dev
2019-07-16Merge "SurfaceFlinger: add display power state timer" into qt-r1-devAdy Abraham