Age | Commit message (Collapse) | Author |
|
Change-Id: Ie20fa26a11aa973909bfc0b42e7b861df4039b24
|
|
|
|
|
|
Change-Id: I2a0d5b9b527b9a81c5229166e9acd02d7e4846d3
|
|
Fixes an issue where buffers were compared only using the buffer id.
In shared buffer mode, the client will queue up the same buffer id
multiple times so we need to distinguish using the frame number as
well.
Test: https://buganizer.corp.google.com/issues/195447981#comment18
Fixes: 195447981
Change-Id: I2a2d02a0d7e67ee9577857a210cb6157683e5598
|
|
With the current implementation we might mark layers as NoVote
incorrectly when a sibling has a frame rate.
Test: adb shell /data/nativetest64/libsurfaceflinger_unittest/libsurfaceflinger_unittest
Bug: 195205467
Change-Id: I62641f855a027e1192f9a85a4bc50692b1744764
|
|
Calls to ProximitySensor::activate() may repeatedly set enabled=true.
The current logic doesn't account for that. In order to correctly
report the current sensor state, simply use
mSensorDevice.isSensorActive() instead.
Bug: 194878856
Test: 1) Reproduced problem and verified mIsProxActive in "dumpsys
display" contains the correct value and no more 60/90Hz
flicker.
2) Adding local debugs, then mixing making phone calls with
additional "sensor_test sample -s8 -n5" commands to create
several Prox clients, and verifying logged flags and
reference counts.
Change-Id: I2342844ff4e6301a6b9ac8a33dc3e6047fca83ad
|
|
SensorDevice::isSensorActive() currently returns
"numActiveClients() > 0", but it should return ".isActive".
An "active client" is really one that has some requested batching
parameters stored, which it can do even while the sensor is disabled
but, the isActive bool tracks whether the the sensor is currently
enabled at the HAL, which is what we really want.
Bug: b/194878856
Test: Together with ag/15459770:
1) Reproduced problem and verified mIsProxActive in "dumpsys
display" contains the correct value and no more 60/90Hz
flicker.
2) Adding local debugs, then mixing making phone calls with
additional "sensor_test sample -s8 -n5" commands to create
several Prox clients, and verifying logged flags and
reference counts.
Change-Id: Id4a13ebb5cde8de87ee7547d2989c3c0d1a69a09
|
|
Change-Id: I96d52435b31fcd23206a06841ea1901aed81e79d
|
|
changes" into sc-dev
|
|
This CL fixes one of the issues with SurfaceView parent frame and
content syncing.
With BLAST, we have two surface controls each setting a scale. The
parent surface control sets a scale based on the requested surface
size and the SurfaceView layout size. The BlastBufferQueue surface
control scales the buffer to the requested buffer size if the buffer
has the appropriate scale mode.
The destination frame controls the second scaling and it must be
applied with the parent surface scale changes. This cl fixes flickers
where the requested fixed surface size changes without any view size
changes. This cl allows the caller to pass in a transaction to
BLASTBufferQueue#update which is updated with the destination frame
changes. This transaction can then be applied with the parent
surface changes.
This also fixes an issue where destination Frame was being set on
every buffer update and when we updated the BlastBufferQueue size.
Since buffer transactions can be queued up on the server side, a
stale value maybe applied for a few frames causing flickers.
Fixes: 194458377
Test: bug repro steps
Test: atest SurfaceViewSyncTest#testSurfaceViewSetFixedSize
Change-Id: I216586842ff45bfd398659b5cc0c89eaf51394ff
|
|
Change-Id: Ideb0e488d3eed9fadc079c48322de14010be1657
|
|
|
|
into sc-dev
|
|
Change-Id: I3e5b2ca9dd012b5b1c623e30c346ec38fd04b62b
|
|
We should only have to update the HDRLayerInfoListener in a few
scenarios.
1. A new listener appeared
2. A buffer changed colorspace
3. Surface geometry (visibility, parenting, display, etc) changed
We protect the traversal behind these flags to avoid the runtime in the
hot path of continuous buffer updates. A follow up fix could consider
directly recursively traversing and early returning if !Layer->isVisible.
Bug: 186200583
Test: Existing tests pass, simpleperf
Change-Id: I549fdf6ea228344f79f6989b86b8e73a6065158a
|
|
This causes composition engine to trigger a full update when
preparing composition state (StateSubset::GeometryAndContent)
vs StateSubset::Content. In single buffer update scenarios
this costs ~14% of whole process CPU instructions or ~20% of main
thread CPU instructions.
Bug: 186200583
Test: Existing tests pass
Change-Id: I8e3be0e4d828823f665fb05ea275401a178eb861
|
|
|
|
into sc-dev
|
|
Only create mm_event tracing instance if
persist.mm_events.enabled=true. This saves ~5.5MB on low
memory devices that don't enable mm_events. The memory saved is
slab memory that would be allocated for the ftrace instance's
inode/dentry objects.
Set the per-CPU trace buffer sizes to 1KB by default to minimize
trace buffer memory usage if perfetto isn't started.
Also disable tracing by default, traced_probes will enable
as needed.
Bug: 194156702
Test: boot; ls /sys/kernel/tracing/instances -> No mm_events
Test: setprop persist.mm_events.enabled true; boot;
ls /sys/kernel/tracing/instances -> mm_events
Change-Id: I89d7e5e1cd0d32b5612bc419b1a1c4b8c3c8ade6
|
|
Change-Id: I517416a9403d95a6805e88b721be60d5213049a8
|
|
|
|
This test largely duplicates generic VNDK tests, and it requires the
same vendor/system version, so removing from VTS.
Bug: 186785704
Test: N/A
Change-Id: I2235ff8c9453e15e5db3848030617a2478407eb7
(cherry picked from commit 105db55a00dab757391e11ba45e67b124870b490)
Merged-In: I2235ff8c9453e15e5db3848030617a2478407eb7
|
|
The getRawX/Y API contains compatibility logic that should only be used
when the per-window-input-rotation feature is enabled.
The compatibility logic was previously unguarded because it was assumed
that the logic was a no-op when the flag was not enabled. However, this
turned out to be untrue, resulting in the bug.
Bug: 187686656
Test: manual: using repro steps listed in the bug.
Change-Id: I6603694f9872e7df4b6f72c7fb2555b3249687a6
|
|
Change-Id: If142e85f168a2d0ebb86d0317c405d5041438a65
|
|
|
|
Change-Id: I40a2948797ef02d255d2bca53ff028b0786d706f
|
|
When we punch a hole to round the corners on a PIP window we need
to make sure that the cached set is opaque to prevent blending of the
rounded corner edges with random opaque buffers.
Bug: 194307461
Test: PIP window on solid color wallpaper
Change-Id: I5ab80103dc5b43db85c4f12c9efd5ba2a1dfd076
|
|
|
|
Change-Id: I47349ea6023ad710a134286aa26ecae52ccf8671
|
|
sc-dev
|
|
|
|
|
|
Revert "Adding system property tracing"
Revert submission 1403568-sysprop_trace
Reason for revert: makes property get/set non-reentrant
Reverted Changes:
I6f85f3f52:Add systrace tag for system property
Id2b93acb2:Adding system property tracing
Id78992d23:Add systrace tag for system property
I1ba9fc7bd:Add systrace tag for system property
Bug: 193050299
Change-Id: I4d8c9e191e28cc99abc4f80600405bfc1b7e48b6
Merged-In: I4d8c9e191e28cc99abc4f80600405bfc1b7e48b6
Test: build and boot a device
(cherry picked from commit dc5577c75e0c68de6069e3f14c887edea051ba97)
|
|
Change-Id: If9512e82699a4c70323c7c648443851454542e2f
|
|
- Add a layer state to indicate that this layer and its children
in the hierarchy are trusted. This can only be set by callers
holding ACCESS_SURFACE_FLINGER, and will be used for the PIP
task layer to indicate that activities in PIP are trusted (as
they are controlled only by the user and SystemUI)
Bug: 191529039
Test: TBD
Change-Id: Id92ccb087bd0d8dbaeeef3ba50b67fe015e53db8
|
|
Test: None
Bug: 194204196
Change-Id: Ied0068d5069522befd14a7ca60d4fc39b47754d1
|
|
Bug: http://b/194163257
Bug: http://b/193221882
For each map file, do:
$ grep -v -e ZNKSt -e ZKSt -e ZTVNSt -e android2sp $mapfile > $mapfile.new
$ mv $mapfile.new $mapfile
Test: build
Change-Id: I99953556565d4044b9e25666a4372a920d874916
Merged-In: Iba9db702ca6f4a0e590e275bf80e770fb1c7361f
|
|
|
|
Change-Id: I6d6305154bd23f7a3b2ea0af4b7bb3a7629369b8
|
|
|
|
Rendering a cached set needs to respect the secure mode for the display.
Otherwise, compositing a secure layer onto an unsecure display would
incorrectly leak information in a cached set.
Bug: 193103018
Test: Chrome in incognito mode and verify that both screenrecord and
simulating a virtual insecure display does not leak Chrome's content.
Change-Id: I6d43e1c7de41f113477d9928b91ee0b286249751
|
|
|
|
Mirrored Layers should never be placed at the root of the layer
hierarchy. Instead, they should be created offscreen and allow the
caller to place the layer where they want in the hierarchy. This
behavior was changed with the introduction of LayerCreatedState.
Send placeAtRoot flag when creating a layer to allow different create
callpoints to specify whether they want the layer created to be placed
at the root.
Test: Window Magnification no longer flickers.
Test: MirrorLayerTest
Fixes: 192536474
Change-Id: I08f47b1b1f19b7c655c3687cb4c1fa64844e2cc5
|
|
Change-Id: If8ae63398c0dd78127a5c0b21a7eb2ea421127ac
|
|
When changing the work duration for a scheduled callback, we should
apply it on the next frame only if we would skip a callback call.
This change fixes the condition where we apply a different work
duration that doesn't change the wake up time but rather changes
the expected vsync time.
Test: TouchLatency bouncy ball + expand notification shade
Bug: 191969790
Change-Id: I067693fe361200a6f899bd81b74d8a1a155a452d
|
|
sc-dev
|
|
Bug: 191969790
Test: SF unit tests
Change-Id: I0a21600eba986857e0231e02cb4d59fb108e9bd3
Merged-In: I0a21600eba986857e0231e02cb4d59fb108e9bd3
|
|
Change-Id: I2e5cde9be9bd463d097401c6a25aa781ef8e6a3d
|
|
into sc-dev
|