When calculating layer's refresh rate heuristically, also store
a history of the last refresh rate calculated. We use this list to
determine how consistent is the refresh rate. If the refresh rate is
not consistent, then we keep reporting the last consistent refresh rate
and wait for the refresh rate to stabilize again.
Test: Play at 60fps video in XPlayer
Bug: 157540021
Change-Id: If3b525820d298cc5835dddf73f327501c8a18964
Adds a -L commandline option to indicate a much smaller set of
dumpstate output safe for feedback reports.
Implements output of system logcat, event logs, networking, and dropbox
system server crash/system app crashes only.
Bug: 142684959
Bug: 136273873
Test: atest dumpstate_test
Change-Id: I1d564b949d0a44ff9cc014302d79703294a13d78
Requantizing by resolution / 4 causing the calibration error / min on
calibrated sensors to be too high. Changing to 8 reduces that error
enough to keep sensor accuracy below our thresholds.
Bug: 158451802
Test: Verify that calibration error / min is low
Change-Id: I350980734cc0a46f4f06878371e0d9bd7ce07de0
This avoids a race where we decrement the early offset count in
postComposition() before the transaction applying early offsets has
actually been applied, so we're in early offsets for too few frames.
Bug: 158127834
Test: photos launch
Test: systrace
Change-Id: If7a7d12fa466ee4d163210263b7f02f7a74b3280
This refines the logic added in
I79c66faeaed262acd9c5925fe2202a9fb3f10b7b, which started ignoring
Composer-provided refresh rates on vsync callbacks when the kernel idle
timer is enabled.
This behavior is still correct when SF doesn't think that that refresh
rate has changed, but when we initiate a change, such as when the only
active layer is infrequently updating, then it's okay to rely on the
Composer-provided rate.
Bug: 158141901
Test: atest libsurfaceflinger_unittest, systrace
Change-Id: I16c87005f5cd1ca1810014211d73b4662e7c8c86
Fix bugreportz to report the usage error rather than ignore extra
arguments. Also fix the synopsis in the usage text to include -p.
Update the bugreport warnings to have the correct way to use bugreportz,
since we now know it doesn't actually take a filename and instead
chooses its own.
Bug: http://b/156667896
Bug: http://b/29448020
Test: adb shell bugreport
Test: adb shell bugreport --help
Test: adb shell bugreportz
Test: adb shell bugreportz file.zip
Change-Id: I10875067cf49a1d9869a4cb7a4051c309eed6b17
Keep a list of known frame rates that would be used when we calculated
heuristically the frame rate of a layer. This keeps the signal to the
algorithm that chooses the refresh rate steady and avoid strange
frame rates like 57.2 due to inconsistent presentation timestamps.
Bug: 157540021
Test: adb shell /data/nativetest64/libsurfaceflinger_unittest/libsurfaceflinger_unittest
Change-Id: I97a24b74605256646e9b8444bd9f3818fe0a4a2a
Collected a field trace where pushing the atom cost ~500 microseconds,
which is too long.
Bug: 158601958
Test: builds
Change-Id: Id2c67f6fd6a12bb62d4e7b5da382cec78f3ac1c6
BufferInfo is updated in latchBuffer after updateTexImage. It would be
difficult to move gatherBufferInfo before updateTexImage since
BufferQueueLayer calls consumer->updateTexImage and relies on
the consumer getting pdated to get the correct buffer information.
BufferStateLayer gets the information directly from mDrawingState.
Instead just use the fenceTime from drawingState in updateTexImage in
BufferStateLayer.
Test: No easy way to see the issue
Fixes: 158457345
Change-Id: If42af7c2f8d550ce73181443a69b0f3073805e1c
The command the warning wants you to use instead is "bugreportz", not
"bugreport". You're already running bugreport!
...unless you're on the host and you're running `adb bugreport` which
silently uses bugreportz behind the scenes. No wonder humans are
confused!
Also error out if given any arguments, since no arguments are supported.
Bug: http://b/156667896
Bug: http://b/29448020
Test: adb shell bugreport
Test: adb shell bugreport --help
Change-Id: Ia141e89eb5019d52247f57c5095288e96f57dccd
There was already code in place to ensure that z order was maintained in
the offscreen tree. However, this didn't work if a layer was moved to become
a child of an offscreen layer. The z order was only maintained beneath
the new offscreen layer, not the entire subtree.
This change uses the root of the offscreen subtree to ensure the z order
is maintained even when new offscreen layers are added to the subtree.
Fixes: 157188227
Test: IME gets correct relative z
Test: RelativeZTest.LayerWithRelativeReparentedToOffscreen
Change-Id: I62553ce245dacd2a8684d8bb02de67f60ddc6774
When we call getActiveConfig() after HWC updates its modes
and before notifying us, we'll get an unknown configuration.
This change fixes a null pointer dereference in this scenario.
Bug: 158481338
Test: m surfaceflinger && flash
Change-Id: Ifa812628d238e4eb7873a163c834abc9f380bb0a
This CL removes 'disable' option from the automotive display service's
rc file to start the service automatically.
Bug: 156293203
Test: Confirmed the service from lshal result
Change-Id: Ie6601ce3a5b956bf6c55be0dc35bbcb23029eda9
Since we are not focussing on BLAST for frame lifecycle, having to
support BLAST's frame lifecycle without proper understanding of the use
cases is going to be hard. This change removes the frame lifecycle code
from BLAST.
Bug: 158493222
Test: atest FrameTracerTest
Change-Id: Icb909fc836d5be214dade4991f582c76e5b2398d