summaryrefslogtreecommitdiff
path: root/libs/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix DisplayState sanitization.Patrick Williams2024-11-074-4/+5
| | | | | | | | | | Bug: 347307756 Flag: EXEMPT bugfix Test: CredentialsTest (cherry picked from commit f18544772df15d60baeadbee7f8db8cf93bdc31c) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:cefe5d00dd45a6074506e77479b8088344bdfeb0) Merged-In: Ia86633bac196a90aacd0e0aba04b7335a3bb81df Change-Id: Ia86633bac196a90aacd0e0aba04b7335a3bb81df
* Merge tag 'android-14.0.0_r50' of ↵George Zacharia2024-07-0433-1936/+221
|\ | | | | | | | | | | https://android.googlesource.com/platform/frameworks/native into u14.0 Android 14.0.0 Release 50 (AP2A.240605.024)
| * Merge "Format WindowInfo dump" into mainVishnu Nair2024-02-281-5/+5
| |\
| | * Format WindowInfo dumpVishnu Nair2024-02-231-5/+5
| | | | | | | | | | | | | | | | | | Bug: 26029576 Change-Id: I234e811f367fca2aa6f678cea2a94885575df67e Test: presubmit
| * | Merge "GTE frame rate compatibility needs validation" into mainRachel Lee2024-02-282-0/+3
| |\ \
| | * | GTE frame rate compatibility needs validationRachel Lee2024-02-262-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Validate the GTE frame rate compatibility value, otherwise it does not reach SF. Bug: 327013543 Test: atest FrameRateUtilsTest Test: atest CtsSurfaceControlTestsStaging Change-Id: I3cb7fc7c9cbd32eb8db8e07718a89c3918b72a9f
| * | | Delete the libgui fuzzersAlec Mouri2024-02-239-1823/+0
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Empirically, these didn't catch very much, and on inspection there's too much manual call ordering or dependencies mocked out that they _won't_ catch very much without a significant rewrite. Bug: 325656219 Test: builds Change-Id: Ib0983f7c73e6e78468b81fb2a686753031847906
| * | Add default_teamsJohn Reck2024-02-213-0/+3
| |/ | | | | | | | | Test: n/a Change-Id: I6c2426303194df4b94f6181f4b5c71970bc5f7fd
| * Merge "Add RootTargetPreparer for explicitly specifying the root dependency" ↵Leon Scroggins2024-02-201-0/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | into main am: db9c70b222 am: f0315a82a9 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2963543 Change-Id: Ife82097e391445d574e0750274107e595f8940bd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * Merge "Add RootTargetPreparer for explicitly specifying the root dependency" ↵Leon Scroggins2024-02-201-0/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into main am: db9c70b222 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2963543 Change-Id: I46ce0e2228e248ad6b5d83bff1afca837d9ec392 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | | * Add RootTargetPreparer for explicitly specifying the root dependencyJulien Desprez2024-02-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, the test gets root implicitly via DeviceSetup which wasn't intented. Change-Id: Ia81ba888aca96ca626c2a2464e3f0e9146bae231 Test: presubmit Bug: 325098343
| * | | Merge "Add support for restricting HDR headroom for video" into mainAlec Mouri2024-02-164-2/+23
| |\ \ \
| | * | | Add support for restricting HDR headroom for videoAlec Mouri2024-02-154-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed for allowing apps to vote for HDR headroom restrictions for SurfaceView and SurfaceControl Bug: 323964760 Test: manually poking at test app Test: SurfaceViewTests Test: SurfaceControlTest Test: ASurfaceControlTest Change-Id: Ie886e67879525462d49fdedc535aea659d69321a
| * | | | Merge "[DON'T BLOCK] Test ownership migration rules" into main am: ↵Ronish Kalia2024-02-131-0/+1
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f86d02b37e am: 3d189ae199 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2950507 Change-Id: I33c76a6b49e610097f394b68f90aef71813cd252 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * | | Merge "[DON'T BLOCK] Test ownership migration rules" into main am: f86d02b37eRonish Kalia2024-02-131-0/+1
| | |\ \ \ | | | | |/ | | | |/| | | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2950507 Change-Id: If8016d182099581fcb9bd65e7672d8be8d72f2b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | | * | [DON'T BLOCK] Test ownership migration rulesAditya Choudhary2024-02-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, go/new-android-ownership-model Bug: 304529413 Test: N/A Change-Id: I807c0e2743bb74820f05a2a3639f74c62868216e
| * | | | Merge "Set the container field of aconfig flags" into mainOriol Prieto Gascó2024-02-122-0/+2
| |\ \ \ \
| | * | | | Set the container field of aconfig flagsOriol Prieto Gasco2024-02-072-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Please see go/aconfig-flag-containers for more context Test: m Bug: 312769710 Change-Id: Ibe1f32691a2fb10a267b580766abcde621a596ff
| * | | | | Merge "Fix wrong lock scope" into mainTreehugger Robot2024-02-071-13/+15
| |\ \ \ \ \ | | |/ / / / | |/| | | |
| | * | | | Fix wrong lock scopeJohn Reck2024-02-071-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mLastQueued* need to be atomic with respect to mCore->mLastQueuedSlot, and all of them should be guarded by the mCore->mMutex lock not the mCallbackMutex Fixes: 311854672 Test: atest --rerun-until-failure 1000 android.view.cts.PixelCopyTest Change-Id: Iccd7a5ca36d0ee1d87687e1643074d39ad059e01
| * | | | | Merge "Fix C++ deprecation warning." into main am: 77f3da22f3 am: 47aa9b50e7Elliott Hughes2024-02-021-1/+1
| |\ \ \ \ \ | | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2937739 Change-Id: I3d73855ed3c18730f81d2d6de27a2e4551745527 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * | | | Merge "Fix C++ deprecation warning." into main am: 77f3da22f3Elliott Hughes2024-02-021-1/+1
| | |\ \ \ \ | | | | |/ / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2937739 Change-Id: Idd047bd80e34dbe454d30edf929f35ddb5867f8f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | | * | | Fix C++ deprecation warning.Elliott Hughes2024-01-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit "this" capture now needs to be explicit. Test: treehugger Change-Id: Ie76309d537beafd2e963ae65c75b5c5bb94c2494
| | * | | | Merge Android 24Q1 Release (ab/11220357)Xin Li2024-01-2955-380/+1205
| | |\ \ \ \ | | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | Bug: 319669529 Merged-In: I264e728c49f0500f2f868c3a25b0910d0d527340 Change-Id: I0de5ae0000a29e4b9735e6c4f381f680eb0723cd
| * | | | | Merge "Introduce eCanOccludePresentation layer flag" into mainVishnu Nair2024-02-014-5/+22
| |\ \ \ \ \
| | * | | | | Introduce eCanOccludePresentation layer flagVishnu Nair2024-01-294-5/+22
| | | |_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sets a property on a layer hierarchy indicating that its visible region should be considered when computing TrustedPresentation Thresholds. This property is set on a layer and inherited by all its children. The property is then passed via windowinfos so the TrustedPresentation controller can determine which windows to use when computing the thresholds. Test: presubmit Bug: b/275574214 Change-Id: Ide384c64cb7b5a9b2b3ce293b20e2be64da8ad69
| * / | | | Use aidl-defined InputChannel for parcelingSiarhei Vishniakou2024-01-301-4/+8
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, InputChannel is a manually-written parcelable. In this CL, we introduce an aidl-defined InputChannel, which eventually could also be used in Java as well. Now, whenever an InputChannel needs to be written to parcel, we first create the new android.os.InputChannel and then write that object to parcel. Eventually, we can convert the Java side of InputChannel to use this mechanism, as well. Bug: 161009324 Test: adb shell monkey 1000 Test: atest libgui_test Change-Id: Ib44c5ff02b3c77e0425b59a76195ed100e187317
| * | | | Merge "Add captureLayersSync function" into mainChavi Weingarten2024-01-265-3/+30
| |\ \ \ \ | | |_|_|/ | |/| | |
| | * | | Add captureLayersSync functionChavi Weingarten2024-01-245-3/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This captureLayers function in SurfaceFlinger will wait on the requested binder thread for the screenshot composition to complete before returning the buffer to the client. This is different than the existing captureLayers method since the other request is oneway and invokes the screen capture callback on a different binder thread. This is needed because there are places in system server that request screenshots while holding a lock and then wait synchronously on the results. While waiting on the buffer and holding the lock, additional two way binder calls can be made into system server that are waiting to acquire the same lock. If there are enough requests, we may run out of binder threads and then the screen capture result can't be posted back to system server because it needs a free binder thread. This will result in a deadlock because the lock that the screenshot request is holding can never be unlocked without a free binder thread. Binder threads will never be freed up because they are waiting to acquire the lock. The async screencapture code is still useful for cases where there's no global lock being held while waiting on results or the results is posted to another thread. Test: Screenshots Bug: 321263247 Change-Id: I259173a59f488995e13af8f7dd2ca98c3bbf8639
| * | | | SF: Initialize all displays on boot/restartDominik Laskowski2024-01-241-4/+21
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generalize SF::initializeDisplays (called on boot and restart) to: - Apply the transaction that clears DisplayState to all displays. - Power on all displays. The first change removes a special case for the primary display, setting the stage for multi-display boot animation. Each display is assigned its own LayerStack, and set up with a projection to its active resolution. The second change fixes a bug where DisplayCapability::BRIGHTNESS was not detected for secondary displays present during boot. SF queries capabilities when a display is first powered on, but DM asks SF about brightness when the display is hotplugged, regardless of power mode. The general fix (covering external displays) is for DM to defer its query, but this stopgap covers internal displays. Revert I3a2eae4efc4a5c6113700a9ca9e9b261e364a878, which let the initial power mode be std::nullopt. This effectively forced DM's first request to setPowerMode(<rear display>, OFF), which would otherwise be ignored because OFF had been the default power mode on DisplayDevice creation. However, that special case confusingly took the same branch as the OFF to ON transition, and is no longer needed now that all displays are ON (from SF's perspective, not just HWC's) until the boot animation ends. Fixes: 267633741 Fixes: 150889228 Bug: 269510347 Test: Boot unfolded and folded. Test: Induce system_server crash. Test: InitializeDisplaysTest.initializesDisplays Change-Id: I5277a629f39b3b285452aa84d49ff84e3dc957ca
| * | | Merge "Add InputChannel::waitForMessage and use it in ↵Egor Pasko2024-01-181-29/+20
| |\ \ \ | | | | | | | | | | | | | | | EndToEndNativeInputTest" into main
| | * | | Add InputChannel::waitForMessage and use it in EndToEndNativeInputTestEgor Pasko2024-01-171-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The EndToEndNativeInputTest::waitForEventAvailable(timeoutMs) is similar in implementation to InputChannel::probablyHasInput(), but can stop after a timeout. Add InputChannel::waitForMessage(std::chrono::milliseconds timeout) for use in tests and use it to replace the waitForEventAvailable(). The difference of the new method from probablyHasInput() is that the latter does not get repeated (because it is not necessary to implement the hint). Repeating happens only on EINTR to allow tests to return before timeout expiration when there are problems with the channel setup. In the end the implementations are rather different. Bug: b/314973388 Test: atest frameworks/native/libs/gui/tests/EndToEndNativeInputTest.cpp Test: atest InputPublisherAndConsumerTest Change-Id: I806aad14e4fba223a5cbbe49cea862f9b8279f24
| * | | | Merge "Fix up GPU completion fence for EGL_ANDROID_get_frame_timestamps." ↵Alec Mouri2024-01-161-2/+23
| |\ \ \ \ | | |/ / / | |/| | | | | | | | into main
| | * | | Fix up GPU completion fence for EGL_ANDROID_get_frame_timestamps.Alec Mouri2023-12-151-2/+23
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | Ensure that it always comes after certain other timestamps. Bug: 303385401 Change-Id: I0ea9a6658753d1f1819f32223deb4bbdc8d02e75
| * | | Check for redundant windows inside WindowInfosSiarhei Vishniakou2024-01-092-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently, our team has seen traces where dispatcher is taking a long time to run - sometimes, more than 22 milliseconds. That's way longer than the expected ~ 0.3 milliseconds for the entire inputflinger. After examining the traces, I noticed that there's a lot of time spent in both findTouchedWindowTargets and dispatchInputEvent. It appears that we are trying to dispatch one input event multiple times to the same channel, dreamOverlay. One way this could be possible if we receive multiple, redundant windows. In this CL, we add a crash to identify and get out of this bad state. Bug: 311142655 Test: TEST=inputflinger_tests; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST Change-Id: I2170928d1bb1e591b9c93b42dd86827e86a0c7fb
| * | | Remove HDCP abort in ChoreographerHuihong Luo2023-12-291-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDCP should not be handled here, similar to hotplug events Bug: 280818362 Test: connect to an external display, and make sure it works Change-Id: Ia57881bc7f1303965cdb1bd1411f4e0af4a0d93a
| * | | Merge "Add GLOBAL_STYLUS_BLOCKS_TOUCH flag" into mainTreehugger Robot2023-12-191-0/+2
| |\ \ \
| | * | | Add GLOBAL_STYLUS_BLOCKS_TOUCH flagSiarhei Vishniakou2023-12-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag will allow internal windows, like TaskBar and StatusBar, to ignore touch while stylus is down anywhere on screen. This is needed to reduce the chance of unintentional clicks. Bug: 211379801 Test: TEST=inputflinger_tests; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST Change-Id: I4382b390f69094b4db8928b5caf9e9251723d32e
| * | | | Merge "Update HDCP for external displays" into mainHuihong Luo2023-12-197-2/+26
| |\ \ \ \ | | |/ / / | |/| | |
| | * | | Update HDCP for external displaysHuihong Luo2023-12-157-2/+26
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So the secure flag of Display object in Display Manager (DM) can be set correctly. HWC calls the onSync method as a workaround, to notify SurfaceFlinger (SF) about hdcp changes, SF in turn sends an event to DM, DM will then fetch and update display info. Bug: 280818362 Test: manual Change-Id: I29ce0337865b51c0fc7bf7c2d7fdd4cd6d66ef46
| * | | Merge "Do not check selinux access for PermissionCache" into main am: ↵Treehugger Robot2023-12-182-46/+8
| |\ \ \ | | |/ / | |/| / | | |/ | | | | | | | | | | | | | | | 4bf8807c38 am: dfcc32175d am: b9e13aaaf8 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2861766 Change-Id: Ie0c24fd0d634b52d1e365bc1669864513c0e5249 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * Merge "Do not check selinux access for PermissionCache" into mainTreehugger Robot2023-12-182-46/+8
| | |\
| | | * Do not check selinux access for PermissionCacheKiyoung Kim2023-12-062-46/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change to check selinux for PermissionCache failed because surfaceflinger did not have access to selinuxfs. Based on the discussion, it would be better to check PermissionCache without any further access check, as its failure would mean the same. This change removes additional access check from dump. Bug: 313804706 Test: com.google.android.selinux.pts.SELinuxTest#scanBugreport passed from cheetah Change-Id: I5f6f882e270d71bc1da37360c6512cac66dd04a9
* | | | native: Add vendor version for libguiVinay Verma2024-03-111-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright_omx library need to be extended to vendor which is depenednet on libgui which is a vndk_private lib. Creating vendor version so that libstagefright_omx_ext can link to libgui_vendor. Conflicts: libs/gui/Android.bp CRs-Fixed: 2258968 Change-Id: I777eebffc405c8bb74aab270e9f272c806501458 Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
* | | | Merge tag 'android-14.0.0_r29' of ↵micky3872024-03-1171-529/+1482
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/native into HEAD Android 14.0.0 release 29 Change-Id: I9372a63d404800a44700dec4774c978a4df124e7
| * | | Merge "Refactor game-related frame rate override to LayerHistory" into mainAndy Yu2023-12-115-6/+35
| |\ \ \
| | * | | Refactor game-related frame rate override to LayerHistoryAndy Yu2023-12-075-6/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously game-related frame rate overrides are maintained in Scheduler only, which does not provide votes to the actual display refresh rate. This causes an issue that these overrides will only be viable when they are the divisors of the display refresh rate at the moment. This change moves the game intervention and newly-added game default frame rate overrides to LayerHistory, where overrides will be considered in layer frame rate votes. Scheduler will get this information and select the display frame rate accordingly Bug: 286084594 Test: SurfaceFlinger unit test atest LayerHistoryTest atest FrameRateOverrideMappingsTest atest CtsGraphicsTestCases --test-filter "SetFrameRateTest*" atest CtsFrameRateOverrideTestCases Change-Id: I9957af8e53fbdd44b8d70028572e6db8e779a1fe
| * | | | InputDispatcher: dump window in a separate functionSiarhei Vishniakou2023-12-113-1/+60
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it more convenient to dump windows from other places during debugging. For example, this could also be called from setInputWindows to inspect all of the window flags that might be changing. Bug: 312714754 Test: adb shell dumpsys input Change-Id: I2ace23bec1231f3a318e1b6a19f146b588e077b6
| * | | Merge "Explicitly includes IGraphicBufferProducer.h in gui/view/Surface.h" ↵John Reck2023-12-042-3/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into main am: dec4e24b42 am: 4c383d273d am: fb7105e580 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2846814 Change-Id: Id69346cfe9f91718b07192720d818df312c4e844 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * | Merge "Explicitly includes IGraphicBufferProducer.h in gui/view/Surface.h" ↵John Reck2023-12-042-3/+2
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into main am: dec4e24b42 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2846814 Change-Id: Ic8e3516390d6a7a1a3da42139ab48ec1c75ec055 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>