summaryrefslogtreecommitdiff
path: root/services/surfaceflinger
AgeCommit message (Collapse)Author
5 daysMerge changes I359350a2,I4c0f5adb,Ie673d1f1 into mainRyan Prichard
* changes: libcompositionengine: avoid vector<const T> librenderengine: avoid vector<const T> libdumputils: avoid set<const T>
8 daysMerge "Delete code for legacy VR services." into mainKrzysztof Kosiński
9 daysMerge "Remove the WCG check from switch Color Modes" into mainAlec Mouri
10 daysDelete code for legacy VR services.Krzysztof Kosiński
These services were last present on the Pixel 3. Bug: 234559097 Test: presubmit Flag: EXEMPT dead code removal Change-Id: I7bac2eeeb77bea8c048fcbe5f9ed872a039edc9c
11 daysSF TimeStats: remove timeRecord of dropped buffersDominic Lemire
Prevent TimeStats from getting stuck waiting on a stale time record after multiple setBuffer/setPostTime occurred for the same layer within the same commit. For example: V TimeStats: [109]-[1]-[SurfaceView[...](BLAST)#109]-PostTime[...] V TimeStats: [109]-[2]-[SurfaceView[...](BLAST)#109]-PostTime[...] ... 62 frames later ... V TimeStats: [109]-[64]-PresentFenceTime[...] V TimeStats: [109]-flushAvailableRecordsToStatsLocked V TimeStats: [109]-[1]-presentFence is still not received Bug: 351133405 Test: run TvtsJankHostTestCases and compare the presentToPresent histograms between the UI and video layers (missing lots of video frames), or watch for logcat -s TimeStats | grep "timeRecords is at its maximum size" Change-Id: I3de44250d5eb919f58d60976d7c33bd8394c0f0c
2024-06-28libcompositionengine: avoid vector<const T>Ryan Prichard
A container of const T uses std::allocator<const T>, which was an undocumented libc++ extension that has been removed. See https://github.com/llvm/llvm-project/pull/96319. Bug: 349681543 Test: m libcompositionengine Change-Id: I359350a298fc9a59c0ca925a36f753ac3fb3b64e
2024-06-27SurfaceFlinger: define LOG_NDEBUG for debug.fengqian
Bug: 349735052 Add LOG_NDEBUG define in LayerLifecycleManager for debug. Test: make & boot Change-Id: I160fcaa6527aa120b2ba300d6a3d3eb6be649a8c Signed-off-by: fengqian <fengqian@xiaomi.corp-partner.google.com>
2024-06-13Merge "SF: Update capabilities for HWC virtual display" into main am: 4986afab41Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3073925 Change-Id: Id03328934cfc5424960812ba0c5f2d1d40b84216 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-06-13Merge "SF: Update capabilities for HWC virtual display" into mainTreehugger Robot
2024-05-24Merge "Merge Android 24Q2 Release (ab/11526283) to aosp-main-future" into ↵Xin Li
aosp-main-future
2024-05-24Merge Android 24Q2 Release (ab/11526283) to aosp-main-futureXin Li
Bug: 337098550 Merged-In: I8d975b81afd2cde1d543e8bc7e730a6e42393bec Change-Id: I714982d2b0df34afc9f9729deb2636de5d0c7b64
2024-05-24Differentiate between empty and unrecognizable display identificationBrian Lindahl
data Test: system boots with no display identification error logs Bug: 220045335 Change-Id: I6efa1daf523b17ea56f4a4b9e842d663804e1c15
2024-05-23SF: Update capabilities for HWC virtual displayHyunKyoung
setPowerMode() is not called in HWC virtual display so capabilities was not updated. This change updates capabilities when HWC virtual display is created. Bug: 329533475 Test: manual Change-Id: Ib12a5e76cd9b1efb0dd14a6ad31983e41a0eeaba Signed-off-by: HyunKyoung <hk310.kim@samsung.com>
2024-05-03RESTRICT AUTOMERGEOriol Prieto Gasco
Set the container field of aconfig flags Test: printflags --format='{package}:{container}:' | grep "::" Bug: 312769710 Flag: NONE Change-Id: Ic5c3c7839cb4c34c8a97d841ccaeaeda0771cbcd
2024-04-30Update dependencies for new aconfig flag storageTed Bauer
Bug: 328444881 Test: m Change-Id: I13a8ff9a0c049a71ad8945d592fa53ad34e8139a
2024-04-25Fix SF unittest OWNERS for reviewingRachel Lee
Restore some SF owners to certain test files to make reviewability easier. Bug: none Test: presubmit (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bb008aaccf30ef62773214cdfcfabb43aa33b8b2) Merged-In: Ibe820409564b8bc330eedc4bf60ea17a84d012a4 Change-Id: Ibe820409564b8bc330eedc4bf60ea17a84d012a4
2024-04-23Merge "DO NOT MERGE: Fix sync issue with handling display state changes" ↵Treehugger Robot
into main
2024-04-16Fix flaky notifyPowerBoostNotifiesTouchEvent testMatt Buckley
This patch fixes the flaky notifyPowerBoostNotifiesTouchEvent test by forcing all operations to happen in a deterministic order, avoiding races. Bug: 332875603 Test: atest libsurfaceflinger_unittest:DisplayTransactionTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0fd347a02ea101c3557083ccb935342e42bc977c) Merged-In: I882c8cce57f071ec0c4c4e59f1b00dcca090c650 Change-Id: I882c8cce57f071ec0c4c4e59f1b00dcca090c650
2024-04-15DO NOT MERGE: Fix sync issue with handling display state changesVishnu Nair
We may miss some state changes if a display state change comes between processDisplayChangesLocked and commitTransactions. Fix this by grabbing the state lock for the duration of display updates in commit. Test: steps in bug Bug: 330105711, 330103914, 328539539 Change-Id: I4798961551f78d75c45ead6dea5ebca895e5ef7d
2024-04-15Add separate OWNERS file for SF tests.Ying Wei
Currently a lot of the SurfaceFlinger tests owned by WM automatically go to the first person listed in the parent OWNERS file from CoGS. Extracting tests with clear ownerships in this OWNERS file to reduce triage overhead. Bug: 334170221 Test: N/A Change-Id: I9728f07d4411bd9a55984992e0b520624c6be90c
2024-04-06Adjust SF ownersAlec Mouri
* Remove chavi :'( * Add sally Change-Id: I12a329bd200391e25b0f0e7047b9c74a0cc4cf1b
2024-04-05Merge "Don't duplicate `struct sched_attr`." into mainElliott Hughes
2024-04-05Don't duplicate `struct sched_attr`.Elliott Hughes
Bug: http://b/289090109 Test: treehugger Change-Id: I88711743d62687dfa480fa76fbb96763fdf03347
2024-03-18Merge "Add missing header." into mainTreehugger Robot
2024-03-15Add missing header.Krzysztof Kosiński
Protobuf 22.x no longer pulls in <set>, it needs to be included explicitly. Bug: 329747255 Test: presubmit Change-Id: I8c0b219322b10a655d5687c506d1047ddb8aa99e
2024-03-15Remove dead __STDC_LIMIT_MACROS.Elliott Hughes
None of our libcs need this any more. Change-Id: I83de62b66c11ed36db0faee746cc2a68708c6fc6
2024-03-04Merge "Revert "Refactor of screenshot code on main thread."" into mainMelody Hsu
2024-03-03Revert "Refactor of screenshot code on main thread."Melody Hsu
This reverts commit b43b58378679bf4ac8d0837047187d4509bc45d8. Reason for revert: Appstartup regression found in b/327488235 Change-Id: I8d975b81afd2cde1d543e8bc7e730a6e42393bec
2024-03-01Merge "Reorganize surfaceflinger_flags aconfig" into mainTreehugger Robot
2024-03-01Merge "HighHint touch boost fix re. frame rate override" into mainRachel Lee
2024-02-29Reorganize surfaceflinger_flags aconfigAdy Abraham
- Freeze the old flag file - Create a new file, alphabetize and annotate brackets to reduce merge conflicts Test: presubmit Change-Id: I6b6a1c81dea39f22eca5dc671e0cfedc7d139b25
2024-02-28HighHint touch boost fix re. frame rate overrideRachel Lee
Fix HighHint touch boost regarding frame rate override. The touch boost logic in getFrameRateOverrides should mirror frame rate selection in getRankedFrameRates. We decided earlier that HighHint is only ignored when there are ExplicitDefault compatibility votes. Bug: 326666127 Test: atest libsurfaceflinger_unittest Test: jank test cases + manual Change-Id: I54ac61f2a174b9a4dea7d67d8b196217b4f60921
2024-02-28Add missing libc++ includesTomasz Wasilczyk
Bug: 175635923 Test: m checkbuild (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:94a21e9ae2ea8162128fe392f743d523238b7f3e) Merged-In: I9cef8d1b0306fab363e2fe4eda39782e21f24d8f Change-Id: I9cef8d1b0306fab363e2fe4eda39782e21f24d8f
2024-02-28Merge "[SF] Add trace and dump for Game frame rate overrides" into mainAndy Yu
2024-02-28Merge "SF: Introduce VsyncTimeline to VsyncPredictor" into mainTreehugger Robot
2024-02-28Merge "Fix dont_skip_on_early_ro to be read only again" into mainTreehugger Robot
2024-02-27SF: Introduce VsyncTimeline to VsyncPredictorAdy Abraham
Add the concept of timeline freezing when switching render rate. This allow us to change render rates in sync with the app and remain jank free across render rate changes. Bug: 326599221 Test: Run TouchLatency, change render rate and examine Perfetto trace Change-Id: Ibc8026434c0c1d50138299da3cb110b317604e92
2024-02-28Merge "GTE frame rate compatibility needs validation" into mainRachel Lee
2024-02-27Fix dont_skip_on_early_ro to be read only againAdy Abraham
commit 4509966315ca9334d4637f8f364a34a12985ab13 accidently removed the read only attribute from this flag. Bug: 307674749 Bug: 273702768 Change-Id: I27ff11077226d5bc13731f4fd86dff0dc183ea47
2024-02-27[SF] Add trace and dump for Game frame rate overridesAndy Yu
To discern the source of the frame rate vote, this change adds trace in LayerHistory when determining the layer vote. Also, dumping information of game mode and game default frame rate overrides in SurfaceFlinger dump for debuggin purposes. Bug: 324125833 Test: atest LayerHistoryTest Change-Id: Ice628b7f421f6402fbb1e33413966c503bf5eaec
2024-02-27Fix "Abnormal while playing netflix in PIP mode"Eason Chiu
protected buffer usage of output buffer of framebuffer is determined by if any input layer contains protected buffer. If all the protected layers are handled by HWC,then GPU will process normal layers only. It means, GPU got normal buffer as input but need output to protected buffer.It would be memory violation for ARM as it required at least one normal buffer as input for such case Cherry-picked from AOSP. Conflicts in the test file are uninteresting; both branches simply added new tests. - services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp Update OutputComposeSurfacesTest_HandlesProtectedContent to pass. Bug: 307674749 Test: atest libcompositionengine_test:OutputUpdateProtectedContentStateTest Change-Id: I11d7c73c8eee4a46383516e8eb672827b26314e6 Merged-In: I11d7c73c8eee4a46383516e8eb672827b26314e6
2024-02-27Merge "Refactor of screenshot code on main thread." into mainMelody Hsu
2024-02-26GTE frame rate compatibility needs validationRachel Lee
Validate the GTE frame rate compatibility value, otherwise it does not reach SF. Bug: 327013543 Test: atest FrameRateUtilsTest Test: atest CtsSurfaceControlTestsStaging Change-Id: I3cb7fc7c9cbd32eb8db8e07718a89c3918b72a9f
2024-02-26Merge "Fix "Abnormal while playing netflix in PIP mode"" into mainTreehugger Robot
2024-02-26Refactor of screenshot code on main thread.Melody Hsu
Create helper functions to improve readability of what is scheduled on the SurfaceFlinger main thread. This will allow for cleaner changes in reducing the calls on the main thread for screenshots. Changes include some renaming for better clarity. Bug: b/294936197 Test: presubmit Test: atest SurfaceFlinger_test Change-Id: I729b62b3fc1919b5b048b7992b4aead336e87d7f
2024-02-26Merge "SF: Move hotplug dispatch to Scheduler" into mainTreehugger Robot
2024-02-23Merge changes I5b0dd111,I40135534,Ief7fff69 into mainRam Indani
* changes: [SF] Change VSyncDispatchTimerQueue::Schedule to return ScheduleResult [SF] Enable vrr_timeout_hint_enabled [SF] Send NotifyExpectedPresentHint at the transaction time
2024-02-23SF: Move hotplug dispatch to SchedulerDominik Laskowski
Hide the Render/LastComposite details in Scheduler. Also, dispatch hotplug errors to both EventThreads for consistency. Bug: 241285191 Bug: 241285945 Test: Hotplug still works. Change-Id: I425d997274c0272a2bfa352c138750d65d008da5
2024-02-23Merge "SF: Remove ConnectionHandle concept in Scheduler" into mainDominik Laskowski
2024-02-23SF: Remove ConnectionHandle concept in SchedulerDominik Laskowski
This abstraction never made sense, and only incurs pointless locking and hash map lookups. This is a step toward replacing the two EventThreads with a single EventDispatcher. Start the Scheduler's timers after initialization. This solves the same bug as Ib2617b914145bc4180cc7ca27203c59dbd625c94, which avoided crashes without fixing the root cause of the race. In a few cases, initScheduler indirectly calls Scheduler functions that attempt EventThread dispatch before EventThread creation, so skip those EventThread accesses using hasEventThreads for now. Further refactoring will untangle circular dependencies and remove hasEventThreads. Bug: 241285191 Bug: 241285945 Test: presubmit Change-Id: I89b93b47540ab24bb5675edc79370f38bc48114f