- Sep 22, 2024
-
-
Some vendors purposely disable brightness capability even though the HWC completely supports it, in order to leverage their custom brightness implementations. One such example of this is in stock HWC of some xiaomi devices. Since light HAL offers lesser granual control than HWC (since its in gamma space and not float), and since it would be rather difficult to patch the blob to return the right capabilities, allow forcing the usage of HWC brightness functions via a prop: ro.sf.force_hwc_brightness=1 (default 0). Change-Id: I7d2fef03afbbb936572c717f769f30c9e49213e0 Signed-off-by:
Adithya R <gh0strider.2k18.reborn@gmail.com> Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Layer dataspace is initialized as unknown by default, unless overriden by the buffer source. We don't require expensive rendering for color conversion when the dataspace is unknown. Change-Id: I079c520f63a65c77ba3162664656e607eafff991 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
- Sep 19, 2024
-
-
[mikeioannina]: Adjust for 5.0 changes [LuK1337]: Adjust for 8.1 changes [mikeioannina]: Adjust for 10.0 changes [LuK1337]: Adjust for 11.0 changes [LuK1337]: Adjust for 14.0 changes Change-Id: I5ed4ae2b7e69e2ada067ed1d3524b3d3fad30e2e Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
The FOD layers should be always composed by the device to set the custom zpos bits to the kernel. By default all layers are set to device composition and the proprietary libsdmextension.so moves some to client composition. Unfortunately that also affects the Udfps touched layer. After this commit the layer below the Udfps touched layer is forced to be client composition. For unknown reasons libsdmextension will not change the Udfps touched layer to client composition anymore. tests: - Run 'adb shell dumpsys SurfaceFlinger' and ensure that the Udfps touched layer is composed by the device - Ensure that the Udfps touched layer correctly sets the zpos bits on the kernel while / after using WFD Signed-off-by:
daniml3 <danimoral1001@gmail.com> Signed-off-by:
Arian <arian.kulmer@web.de> Change-Id: I8aeb98d18557ad4e971eaba74700ceb3058273ab Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
* Supports changed z Udfps order * Supports changed Udfps usage bits TheScarastic: Adapt to extension lib and support 12 BiometricPrompt ArianK16a: Adapt layer name to UdfpsControllerOverlay for Android 13 and only compare the prefix. Drop the BufferQueueLayer change because it seems unnecessary. Co-authored-by:
TheScarastic <warabhishek@gmail.com> Change-Id: Id95aa73e06b4223a6b4f05c69fa2fc494f9a97b1 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Author: Bruno Martins <bgcngm@gmail.com> Date: Wed Oct 14 23:45:14 2020 +0100 Edit: Adapt to new lineage soong config Change-Id: Ic0f314f4053628667a921951f610839f36a5079c Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Change-Id: Iecd2be3eb8775855d82763f069a38bb70fe53d4e CRs-Fixed: 3229968 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Currently, the properties are used as follows: 1. debug.sf.enable_hwc_vds - allows IDs to be generated for VDs 2. vendor.display.vds_allow_hwc - allows WFD to use HWC path With this change, HWC path is enabled for WFD with only the vendor property set. All other virtual displays require both of the properties enabled. Change-Id: Iab2c8d15d2c1cf24be0d371af8892c346634507f CRs-Fixed: 3204941 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
* These changes are part of CAF AOSP merge commits Change-Id: I390f874347d259fca4429c19711be6c85b104090 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Allow HWC based virtual display only for wifi display CRs-Fixed: 2984439 Change-Id: Ifbb094a2a0101171b475bd5a60660a3599dce5ff Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
Bug: 169788930 Change-Id: Ic50f5675d0cd48f84fb9ff14221355741dc52129 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
1. SurfaceFlinger: Fix virtual display related issues. 1) Validate output buffer usage bit appropriately Validate output buffer usage bit only against GRALLOC_USAGE_HW_COMPOSER to differentiate GLES only conposition and HWC/MIXED composition. 2) Exclude video encoder usage for scratch buffer Sink and Scratch buffers in VDS are using same usage flags. This causes video encoder flag to be set for scratch buffers Also. Exclude video encoder flag from scratch buffer usage flags as scratch buffers are used only as write back input and not video encoder input. 2. sf: Allow VDS to use HWC -- Preserve VDS layer pixel format based on GRALLOC flags. -- skip color layer for vds 3. sf: Add secure content support for VDS 4. sf: Enable GPU comp. for non-primary displays Ensure that "Return status" of dequeueBuffer() complies with API requirements. Client relies on this status to call requestBuffer() upon reallocation. 5. sf: Enable UBWC on virtual display scratch buffer Set GRALLOC_USAGE_HW_FB usage flag on virtual display Scratch buffer to enable UBWC. Change-Id: Ia49a175372ca187a295531e18f8e84dc22a19486 CRs-Fixed: 2656027 Signed-off-by:
Simão Gomes Viana <devel@superboring.dev>
-
- Jul 31, 2024
-
-
Ady Abraham authored
Remove the flag for the fix in commit 4a719e88 so it will be enabled on 24Q3 release. Bug: 328352850 Bug: 355684882 Test: see b/355684882 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0e55f685fedaf3c215b646c92d567d722d95c02e) Merged-In: I02deca58bfd9a2cf169c2e58995cc42eeb854c8d Change-Id: I02deca58bfd9a2cf169c2e58995cc42eeb854c8d
-
- Jul 23, 2024
-
-
Dominik Laskowski authored
In order to fix a deadlock during display hotplug, the modesetting mutex was changed from mStateLock to a granular DisplayModeController lock, in the following CLs: I30ec756f134d2d67a70ac8797008dc792eac035e Iaae02d95e175e55f52f65da1481b64f1f533a04c (reverted) This exposed a data race leading to a crash, which, unlike the deadlock, affects all devices with refresh rate switching. The race will be fixed by: If6141d2928643e82b3251b321e18c300cd8c201c (WIP) As a stopgap until then, restore mStateLock (on top of the DMC lock) on the main thread to fix the race, but reintroduce the deadlock. The lock was already restored on the idle timer thread by the reverted CL above. Fixes: 348827779 Flag: com.android.graphics.surfaceflinger.flags.connected_display Test: Manual (foldable, connected display) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b2fc4235635f5160ed5ae35c1fbd1fcc3e45c59f) Merged-In: Ie15de10d16eefeb65289574b120d2ef4cc09d6c0 Change-Id: Ie15de10d16eefeb65289574b120d2ef4cc09d6c0
-
- Jul 20, 2024
-
-
Dominik Laskowski authored
As a short-term measure to avoid a deadlock during display hotplug, skip stopping and starting the pacesetter's idle timer on demotion/promotion. This assumes that hotplug results in demoting/promoting the same display as pacesetter, currently always the active internal display. Fixes: 329450361 Flag: com.android.graphics.surfaceflinger.flags.connected_display Test: Manual (foldable, connected display) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b972419619256ea07ebdb35b737946faf5c21bdc) Merged-In: Ieeb026666c8abdd14e0d4690a624fb60306b1bc1 Change-Id: Ieeb026666c8abdd14e0d4690a624fb60306b1bc1
-
Dominik Laskowski authored
Since Id5cb29c3cbaa8ed455a15d8be3a32e79a470cce5, the pacesetter display is always specified to Scheduler::promotePacesetterDisplayLocked, so the fallback to pick the first display as the pacesetter (and std::optional plumbing) is dead code. Bug: 329450361 Flag: EXEMPT refactor Test: presubmit (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:16d1b3ce1588cc2d12ff72957f5807ead487e8e2) Merged-In: I831de5eef94eaefe0682f9c87ffe76acd50171b0 Change-Id: I831de5eef94eaefe0682f9c87ffe76acd50171b0
-
Ady Abraham authored
When idle timer times out on VRR, change the refresh rate indicator to show "- -". The render rate doesn't cange as a result of idleness. Bug: 333443503 Test: manual Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:eba039c2d28646c5064a9a952faaba0cff6350cb) Merged-In: Ie4f51a2a9da1a5e229b3504881117b12f1fd1b6a Change-Id: Ie4f51a2a9da1a5e229b3504881117b12f1fd1b6a
-
- Jul 10, 2024
-
-
Vishnu Nair authored
Fixes a deadlock where screenshot requests are blocked on the main thread which inturn is blocked by the screenshot request finishing. Flag: EXEMPT bug fix Bug: 349776684 Test: presubmit (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5aadd249f326b21e5ef6cadfebc15b6a0a016816) Merged-In: Ibf038ad6db3e87c84508d3e101ca1eb144836d7c Change-Id: Ibf038ad6db3e87c84508d3e101ca1eb144836d7c
-
- Jun 28, 2024
-
-
Vishnu Nair authored
We were swapping a couple of boolean params when requesting screenshots for region sampling, breaking region sampling for secure layers in the process. Fix this by passing flags instead of booleans in a long list of arguments and add a test to verify the code path. FLAG: EXEMPT bugfix Fixes: 348944802 Test: presubmit (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:871886eebe469fc21568ff363993bde9a6593837) Merged-In: I58f12e5cf81cb59115c1b9c500ac1e18a8ec72e5 Change-Id: I58f12e5cf81cb59115c1b9c500ac1e18a8ec72e5
-
- Jun 27, 2024
-
-
Leon Scroggins III authored
Follow on to I7baa3e76af86329fb266395e63e92a0ba38967f4, which made a lambda use a variable it did not capture correctly. Fix that capture. Bug: 330806421 Bug: 347659752 Test: manual Flag: EXEMPT bug fix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:1972557dca9614dfd1c32fe34dd901d9edbf7fa9) Merged-In: I3a8dd1670113111e01de3471b8061ff24dd0a115 Change-Id: I3a8dd1670113111e01de3471b8061ff24dd0a115
-
- Jun 21, 2024
-
-
Dominik Laskowski authored
The pacesetter display is demoted/promoted in response to a hotplug. On foldables, the promoted display was hard-coded to the inner display, so a hotplug while folded would incorrectly use that powered-off display as the pacesetter, causing system-wide jank until the next fold/unfold. Fixes: 347248313 Flag: EXEMPT bugfix Test: Connect and disconnect external display while folded. Test: Fold and unfold while external display is connected. Test: Pacesetter is still correct on folded/unfolded boot. (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3ff44c7e852f5614514a15dcec78ba7857e5d010) Merged-In: Id5cb29c3cbaa8ed455a15d8be3a32e79a470cce5 Change-Id: Id5cb29c3cbaa8ed455a15d8be3a32e79a470cce5
-
- Jun 14, 2024
-
-
Prabir Pradhan authored
Use the event processing time as the packet timestamp for input events, and use the delivery time as the packet timestamp for dispatch events. Bug: 332714237 Bug: 210460522 Test: atest inputflinger_tests Test: manual with perfetto Change-Id: I30f4c21dfee68603d0dad01d205f8a5581e6db31
-
Prabir Pradhan authored
There was a bug in the logic for calculating the pointer coords and properties for canceling a subset of pointers. It was introduced when we refactored storing the coords in a vector rather than using a fixed-length array with a pointerCount variable in the following change: I91b4a88ec5df3f017ade8a6e55be3d3c1281de75 Bug: 346342507 Test: atest inputflinger_tests Flag: NONE bug fix Change-Id: Ie9a5fbd5ba1fd75c53b7289a93573ec2d0d1947b
-
Ady Abraham authored
Add a trace point for both SF and apps when the render rate is overridden. Bug: 347314033 Test: manual Change-Id: I87dc9b17a4c1f97fa43b025cfa684f43c20c5a25
-
Vishnu Nair authored
Input and TrustedPresentationListener logic relies on layer alpha. This change ensures that SurfaceFlinger sends the updated window info when only the alpha changes. Fixes: 325254898 Test: presubmit Flag: EXEMPT bugfix Change-Id: I6b9a5b2874add278245cb682c5362c18403c70b0
-
- Jun 13, 2024
-
-
Vishnu Nair authored
Layerhistory walks through all snapshots and checks the change flags before updating its state. When a layer moves offscreen, we update its snapshot but did not update the change flag. This cl fixes this. Bug: 345021645 Test: presubmit Flag: EXEMPT bugfix Change-Id: Icee06279f0fa8b0f4c0539e99dde8960ba3fab31
-
- Jun 12, 2024
-
-
Dominik Laskowski authored
Move the per-display state machine for modesetting from DisplayDevice to DMC. In lieu of mStateLock, protect display lookup from multiple threads using a mutex internal to DMC, which fixes the following deadlock: OneShotTimer::loop SF::requestDisplayModes mStateLock SF::commit mStateLock SF::processDisplayChangesLocked (hotplug or resolution change) Scheduler::demotePacesetterDisplay OneShotTimer::stop A notable change is that {initiate,finalize}DisplayModeChange(s) are no longer called under mStateLock, thanks to DMC's granular, internal lock. finalizeDisplayModeChange still locks mStateLock for resolution changes. Add an ActiveModeListener to DMC and register a callback in SF to update the refresh rate overlay, which still lives in DisplayDevice for now. Fixes: 329450361 Bug: 241285876 Test: DisplayModeControllerTest Test: libsurfaceflinger_unittest Change-Id: I30ec756f134d2d67a70ac8797008dc792eac035e
-
Arpit Singh authored
Fixes the borken UX to dismiss the mouse pointer while user is typing on the physical keyboard. Bug: b/338652288 Test: atest inputflinger_tests Change-Id: Ifc4bfd20a44650634d007fbcfc75bf497d5f4623
-
Elliott Hughes authored
Change-Id: I113a2677857a397cd84d9ba48b030bc455a1d388
-
- Jun 10, 2024
-
-
Prabir Pradhan authored
Re-land "AndroidInputEvent: Migrate from TracePacket to WinscopeE..." Reason for revert: Second attempt. Topic was split in the first attempt, causing build failures. Reverted changes: /q/submissionid:27769399-revert-27683745-migrate-input-trace-winscope-OTCESQVQHW Bug: 332714237 Change-Id: Ia5b8ec30023462806bcc67421c8257e436c8e8c4
-
Prabir Pradhan authored
Remove PointerCoords::transform(), which is a duplicate of MotionEvent::calculateTranformedCoords(). Bug: 342349872 Test: atest inputflinger_tests libinput_tests Change-Id: I7610a0475a16e9964817f63efa67b291cb7aaf0a
-
Prabir Pradhan authored
We have three cases for handling AXIS_ORIENTATION: 1. Orientation is not supported by the input device, so the value for AXIS_ORIENTATION should always be 0, regardless of display rotation. 2. Orientation is supported, but a "direction" is not specified, like for touchscreens and touchpads. The orientation must be in the range [-pi/2, pi/2] for all display rotations. 3. Orientation is fully supported, and the value is in the range [-pi, pi] for all display rotations. It is insufficient to rely on whether or not the PointerCoords has the bit for AXIS_ORIENTATION set to determine whether the event has a valid orientation. This is because we always skip setting values of 0 for any axis in PointerCoords to save space during serialization. To support these three cases, we introduce two new MotionEvent private flags. These are flags that are not exposed to Java and to the public APIs. Bug: 263310669 Test: atest TouchScreenTest libinput_tests inputflinger_tests Change-Id: Iaa38afe35b00de74fbc5eefce25191bea52c2ea6
-
Priyanka Advani authored
Revert submission 27683745-migrate-input-trace-winscope Reason for revert: Droidmonitor created revert due to b/346371417. Reverted changes: /q/submissionid:27683745-migrate-input-trace-winscope Change-Id: Ice87da2681a76b47d582c7ce957c598bb8c7fdb9
-
Prabir Pradhan authored
Bug: 332714237 Test: atest inputflinger_tests Change-Id: I00dc546f6628ad8a33d0f6a6c1bbda10a24ed46e Merged-In: I00dc546f6628ad8a33d0f6a6c1bbda10a24ed46e
-
Prabir Pradhan authored
There is an existing requirement that a window must both have focus and be on the focused display to be able to gain Pointer Capture. This means that focus changes on non-focused displays should not affect Pointer Capture, and that a window must lose capture if its display loses focus. Verify these requirements with a test. Bug: 342229227 Test: atest inputflinger_tests Change-Id: I7b1c73b7759d8f20436ee401ba657a5dc8ead7a5
-
Prabir Pradhan authored
Bug: 332714237 Test: atest inputflinger_tests Change-Id: I00dc546f6628ad8a33d0f6a6c1bbda10a24ed46e
-
Vaibhav Devmurari authored
Test: none Bug: 245989146 Change-Id: If2c46c9fb228ebb35bc7c66a4d58bf27ec000f4b
-
- Jun 07, 2024
-
-
Dennis Shen authored
server_configurable_flags, this new read api lib will be needed for new codegened aconfig flag lib. Bug: 321077378 Test m and avd Change-Id: Ia345d4a798c1d7f1861512a3e9aa0ab5e72d407f
-
Melody Hsu authored
The SF main thread is accessed twice during screenshots, which leads to possible inconsistent states between jumps onto the main thread. Removing the double hop preserves correctness and reduces the amount of computation taking place on the main thread. The only time the main thread should be accessed should be when getting layer snapshots. All other work related to screenshots can take place in a binder thread. Bug: b/294936197, b/285553970 Test: atest SurfaceFlinger_test Flag: com.android.graphics.surfaceflinger.flags.single_hop_screenshot Change-Id: If9fd36f82c2d550bc0821b52fef3ea88b8099116
-