Since vndservicemanager is no longer installed by default, this gets hit
on those devices.
Fixes: 156571068
Test: TH
Change-Id: I31af865326e9a69042e5c53b63637b95d6de9ad1
(cherry picked from commit 39a572183a)
Merged-In: I31af865326e9a69042e5c53b63637b95d6de9ad1
The actual problem is that default implementation is set globally.
setDefaultImpl might not work as expected when it is called twice with
different instances.
Because we don't have a proper solution for the problem, we prevent
calling setDefaultImpl() twice by aborting.
Exempt-From-Owner-Approval: approved
Bug: 140139809
Test: ./runtests.sh (in /system/tools/aidl)
Merged-In: I659d3eaad3a45dcba608fa79a08f083f84bc4d58
Change-Id: I659d3eaad3a45dcba608fa79a08f083f84bc4d58
(cherry picked from commit 81087399e9)
Let linux clean it up, since this may be accessed by some threads after
the main thread is destructed.
Bug: 154507808 # longterm
Bug: 156785633
Test: w/ repro which calls defaultServiceManager off main thread
Change-Id: Ic109f4bdca3893e6b0b192ac27f3ff03ada6f9e2
(cherry picked from commit 1698ffd088)
Merged-In: Ic109f4bdca3893e6b0b192ac27f3ff03ada6f9e2
When compiling BufferQueueCore for host linux, the following
warning/error occurs:
error: ignoring return value of function declared with
'warn_unused_result' attribute [-Werror,-Wunused-result]
Add a simple null check to avoid this error. This is a no-op in terms of
functionality.
Bug: 156675939
Test: m -j libgui
Change-Id: I460731ebaf0272fd5376f244e65b763da44e14f0
Modules contributing mainline modules (APK/APEX) should set
min_sdk_version as well as apex_available.
For now setting min_sdk_version doesn't change build outputs.
But build-time checks will be added soon.
Bug: 152655956
Test: m
Change-Id: Ib7685f5f4f924ac145eb4f10ad83a6c0548b2206
We move our nullptr check to before our dereference of the pointer.
Test: TreeHugger
Bug: 154874011
Change-Id: If1e51b8fb88f72b6b4cbda52543bf093e6c76ca9
Modules contributing mainline modules (APK/APEX) should set
min_sdk_version as well as apex_available.
For now setting min_sdk_version doesn't change build outputs.
But build-time checks will be added soon.
Exempt-From-Owner-Approval: cherry-pick from aosp
Bug: 152655956
Test: m
Merged-In: Ifea5ed988fad2e0d29271e6e9cbf0e12100b37d9
Change-Id: Ifea5ed988fad2e0d29271e6e9cbf0e12100b37d9
(cherry picked from commit a395c8d9aa)
The transform hint is used to prevent allocating a buffer of a
different size when a layer is rotated. The producer can choose to
consume the hint and allocate the buffer with the same size.
Provide the graphic producer a transform hint if the layer and its
children are in an orientation different from the display's
orientation. The caller is responsible for clearing this transform
hint if the layer is no longer in a fixed orientation.
Bug: 152919661
Test: atest VulkanPreTransformTest
Test: confirm with winscope trace, buffers are allocated taking into
account the transform hint in fixed orientation scenarios
Test: go/wm-smoke
Change-Id: Iea9dcf909921802a5be5c44dd61be3274f36bbd8
Some 32-bit kernels use a binder kernel interface with a different API
controlled by the kernel configuration CONFIG_ANDROID_BINDER_IPC_32BIT.
This changes builds versions of these tests built for this bitness
specially so that they can run and work on these devices.
Test: atest --all binderLibTest{,_IPC_32} binderDriverInterfaceTest{,_IPC_32}
Bug: 154755898
Change-Id: I82b47e8064564a037bf8ed453e9ae7b8901b5667
AChoreographer will use DMS as the source of truth for these callbacks
instead of SurfaceFlinger.
Bug: 154874011
Test: ChoreographerNativeTest
Tes: Manually verify that HWUI is processing refresh rate callbacks
Change-Id: I961a7d1ab335800d3e260ba7564ddca9c0595cfc
There is a lot of confusion in input tests about the units used for the
timeouts. In a lot of cases, the timeouts are set too short, which
causes failures when they start getting enforced. To avoid this, use
std::chrono::duration for the timeouts.
Ideally, we should convert InputWindowInfo and InputApplicationInfo to
use std::chrono::nanoseconds, but that would be a larger change reserved
for a future release.
Bug: 143459140
Test: atest inputflinger_tests libinput_tests inputflinger_benchmarks
Change-Id: Ie7536e8a042a71b372f03314501e0d635a6ac1d4
Currently, I'm observing some strange behaviour, where calling
setInputWindows twice results in the touchable region becoming empty.
Add this test to R to see what's going on, and potentially bisect on
this.
Bug: 143459140
Test: atest inputflinger_tests
Change-Id: Ia0acef5d4ee4acc29d20174fe44c9f94172ccd96
Fix the side effect after we split notification_shade window from status
bar.
Bug: 155373298
Test: follow the steps from b/149320322
Change-Id: I3362186b22505d21ec6e0ad779d4a26304ed782c
Merged-In: I3362186b22505d21ec6e0ad779d4a26304ed782c
Revert submission 10829580-isUidForeground
Reason for revert: In CameraService.cpp, before this change, around "am.isUidActive", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at "mAppOpsManager->startOpNoThrow" call, for the same reason as uid is not updated fast enough, "mAppOpsManager->startOpNoThrow" could also fail.
This CL does not really fix the root cause, but it changes the timing and now the code fails at "mAppOpsManager->startOpNoThrow" call.
Also the timing change may also cause recent multiple CTS test failures.
Bug: 154570809, 155032617, 154849083
Reverted Changes:
Iffed63293:Add isUidActiveOrForeground() for camera/audio to ...
I3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...
I51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...
Change-Id: I9fbeb190c5a0ac640ad5be8140fe4aaeb7cfe33d
Clean up cutils/properties.h headers as some files were including it and
not using it.
Also update DebugEGLImageTracker to use android::base properties because
it works on host and is generally more concise.
Bug: 155436554
Test: build, flash and boot
Change-Id: I1dc7060cae9811b69aac9bb36b71b69cd6ecba93
To prevent low-priority refresh rate considerations from overriding the
app frame rate as specified via the new setFrameRate() api, split the
display refresh rate range into "primary" and "app request" ranges. The
primary range includes the low priority considerations, while the app
request range removes two lower priority considerations.
In general, surface flinger will keep the display refresh rate within
the primary range, but layers with frame rate settings via the
setFrameRate() api may cause surface flinger to pick a refresh rate
outside the primary range. Surface flinger will never choose a refresh
rate outside the app request range specified by display manager.
Bug: 148978562
Test: - Added a new unit test to DisplayModeDirectorTest to verify that
display manager strips lower priority considerations when
deciding the app request range.
- Added a new unit test to RefreshRateConfigsTest to verify
RefreshRateConfigs handles the primary vs app request range
correctly.
- Manual test: Confirmed that with the "force 90Hz refresh rate" option
turned on, we don't switch to 60Hz when playing a 60Hz video.
- Manual test: Confirmed that with the "force 90Hz refresh rate" option
turned on, when an app calls setFrameRate(60), we stay at 60Hz.
- Manual test: Modified a Pixel 4 XL to prefer 60Hz in low brightness,
entered low brightness, and confirmed we don't touch boost to 90Hz.
- Manual test: Confirmed that Maps stays at 60Hz on Pixel 4.
- Manual test: Turned on verbose logs in RefreshRateConfigs.cpp,
confirmed they look good.
- Manual test: Inspected dumpsys output, confirmed the primary and
app request refresh rate ranges are printed correctly.
Change-Id: Ib16cc9b6158efa575cdbfbb7a0ad014008a3e5af
Revert submission 10449863-revert-fatvector
Reason for revert: b/149254345
Original change (of introducing FatVector) was reverted as a stop-gap solution to fix the aforementioned bug.
The bug was caused by an ABI lock between Surface's definition (that changed with Region) and lib-imsvt prebuilt.
Enabling this change now as we have re-compiled the prebuilt with the change enabled. Doing that via a revert of the revert.
Reverted Changes:
I8ac66acb8:Revert "hwui: remove FatVector"
Ib60dbf3ef:Revert "libui: rewrite Region with FatVector"
Original changes:
I09dc2fddd:hwui: remove FatVector
I265c6c831:libui: rewrite Region with FatVector
bug: 149254345
Change-Id: I723283a952e0908f595967af0037b0dc1351671b
libnativewindow only uses the android.hardware.graphics.common AIDL
dependency.
Bug: 155235859
Test: m -j
Change-Id: I42b26c58ffcf0f19b78794e06449f60fb12d2ca6
If a Region is empty, orSelf is equivalent to just assigning from the
other Region/Rect, so we don't need to perform a whole rasterization
pass.
Test: libsurfaceflinger_unittest
Test: simpleperf measurement of SF shows workload reduction
Bug: 153112939
Change-Id: Iefa0e0177a0e85ce72e37842885d3c8b68ce6025
The configstore service was deprecated. So change to use sysprop
instead of configstore.
Bug: 124531214
Test: m -j
Change-Id: I5367b5715c797facd37736eee84651addbaa230d
Merged-In: I5367b5715c797facd37736eee84651addbaa230d
(cherry picked from commit 8e852f5231)
The configstore service was deprecated. So change to use sysprop
instead of configstore
Bug: 124531214
Test: atest SurfaceTest#CreateSurfaceReturnsErrorBadClient &&
check reading property values
Change-Id: I1825a304c4fe40e3ef9f54e1e8fef05b1f9a2e8f
Merged-In: I1825a304c4fe40e3ef9f54e1e8fef05b1f9a2e8f
(cherry picked from commit e6e7d44e71)