OSDN Git Service
Jorim Jaggi [Wed, 9 Aug 2017 16:16:14 +0000 (16:16 +0000)]
Merge "Fix out-of-order transactions (2/2)" into oc-dr1-dev
am:
0436b01d1b
Change-Id: I021a2635b40e74f29e1d94ad4a738f3b043ed5db
Jorim Jaggi [Wed, 9 Aug 2017 16:10:29 +0000 (16:10 +0000)]
Merge "Fix out-of-order transactions (2/2)" into oc-dr1-dev
TreeHugger Robot [Tue, 8 Aug 2017 23:45:33 +0000 (23:45 +0000)]
Merge "Change UniquePtr to std::unique_ptr" into oc-mr1-dev
Steven Thomas [Tue, 8 Aug 2017 19:29:10 +0000 (19:29 +0000)]
Merge "Use a separate hwcomposer hidl instance for vr flinger" into oc-mr1-dev
Chia-I Wu [Tue, 8 Aug 2017 19:22:06 +0000 (19:22 +0000)]
libsurfaceflinger: fix screenshot permission check
am:
fc0b911090
Change-Id: I9a2c42ea76572e5200f99d65f56ee4b10da4ca15
TreeHugger Robot [Tue, 8 Aug 2017 16:53:13 +0000 (16:53 +0000)]
Merge "Mark libGLESv2.so and libEGL.so as VNDK libs." into oc-mr1-dev
TreeHugger Robot [Tue, 8 Aug 2017 16:53:13 +0000 (16:53 +0000)]
Merge "Mark libui and libgui as VNDK in Android.bp" into oc-mr1-dev
TreeHugger Robot [Tue, 8 Aug 2017 15:58:42 +0000 (15:58 +0000)]
Merge "Add native bindings for getNamesForUids" into oc-mr1-dev
Jorim Jaggi [Tue, 8 Aug 2017 13:22:08 +0000 (15:22 +0200)]
Fix out-of-order transactions (2/2)
The following sequence of order may happen which cause wrong
surface positions:
- WA.animate updates surfaces properties to S
- WA.animate closes the surface transaction
- Since the previous animation transaction wasn't commited yet,
closeSurfaceTransaction blocks and updating the surface properties
on SF side is deferred.
- In the meantime, since we are not holding WM lock, we have
another thread updating surfaces properties to S'
- Closing the transaction in this thread completes immediately
because it's not a synchronous transaction or animation
transaction.
- After a frame has been processed S gets applied on SF side as
the other transaction is done waiting for the frame to complete.
The issue here is that properties are now set to S instead of S'.
Sad!
We originally started calling closeTransaction without the WM
lock being held because it lead to thread starvation (b/
38192114).
However, that fix has this big flaw as described above.
To fix this, we create an empty animation transaction before
updating the animation properties to simulate the back-pressuring
behavior of animation transactions without the WM lock being held.
If that transaction arrives out of order, it doesn't matter at all
because it is empty.
After that, we perform the animation udpate in a transaction that
is not marked as an animation transaction, and thus will not
block, which avoids the starvation issue.
Part of this change is also a change in SF to allow executing
empty animation transactions.
Test: go/wm-smoke
Test: Open VideoPlayer from VRCore, close it, observe no wrong
positiioning of surfaces.
Test: Inspect traces while animating. Ensure back pressuring still
works.
Change-Id: Ie545463e71e0d1bc73439d14381077a290d2f959
Fixes:
63905190
Bug:
38192114
Steven Thomas [Thu, 27 Jul 2017 01:48:28 +0000 (18:48 -0700)]
Use a separate hwcomposer hidl instance for vr flinger
Improve robustness of vr flinger <--> surface flinger switching by
having vr flinger use a separate hardware composer hidl instance instead
of sharing the instance with surface flinger. Sharing the hardware
composer instance has proven to be error prone, with situations where
both the vr flinger thread and surface flinger main thread would write
to the composer at the same time, causing hard to diagnose
crashes (b/
62925812).
Instead of sharing the hardware composer instance, when switching to vr
flinger we now delete the existing instance, create a new instance
directed to the vr hardware composer shim, and vr flinger creates its
own composer instance connected to the real hardware composer. By
creating a separate composer instance for vr flinger, crashes like the
ones found in b/
62925812 are no longer impossible.
Most of the changes in this commit are related to enabling surface
flinger to delete HWComposer instances cleanly. In particular:
- Previously the hardware composer callbacks (which come in on a
hwbinder thread) would land in HWC2::Device and bubble up to the
SurfaceFlinger object. But with the new behavior the HWC2::Device
might be dead or in the process of being destroyed, so instead we have
SurfaceFlinger receive the composer callbacks directly, and forward
them to HWComposer and HWC2::Device. We include a composer id field in
the callbacks so surface flinger can ignore stale callbacks from dead
composer instances.
- Object ownership for HWC2::Display and HWC2::Layer was shared by
passing around shared_ptrs to these objects. This was problematic
because they referenced and used the HWC2::Device, which can now be
destroyed when switching to vr flinger. Simplify the ownership model
by having HWC2::Device own (via unique_ptr<>) instances of
HWC2::Display, which owns (again via unique_ptr<>) instances of
HWC2::Layer. In cases where we previously passed std::shared_ptr<> to
HWC2::Display or HWC2::Layer, instead pass non-owning HWC2::Display*
and HWC2::Layer* pointers. This ensures clean composer instance
teardown with no stale references to the deleted HWC2::Device.
- When the hardware composer instance is destroyed and the HWC2::Layers
are removed, notify the android::Layer via a callback, so it can
remove the HWC2::Layer from its internal table of hardware composer
layers. This removes the burden to explicitly clear out all hardware
composer layers when switching to vr flinger, which has been a source
of bugs.
- We were missing an mStateLock lock in
SurfaceFlinger::setVsyncEnabled(), which was necessary to ensure we
were setting vsync on the correct hardware composer instance. Once
that lock was added, surface flinger would sometimes deadlock when
transitioning to vr flinger, because the surface flinger main thread
would acquire mStateLock and then EventControlThread::mMutex, whereas
the event control thread would acquire the locks in the opposite
order. The changes in EventControlThread.cpp are to ensure it doesn't
hold a lock on EventControlThread::mMutex while calling
setVsyncEnabled(), to avoid the deadlock.
I found that without a composer callback registered in vr flinger the
vsync_event file wasn't getting vsync timestamps written, so vr flinger
would get stuck in an infinite loop trying to parse a vsync
timestamp. Since we need to have a callback anyway I changed the code in
hardware_composer.cpp to get the vsync timestamp from the callback, as
surface flinger does. I confirmed the timestamps are the same with
either method, and this lets us remove some extra code for extracting
the vsync timestamp that (probably) wasn't compatible with all devices
we want to run on anyway. I also added a timeout to the vysnc wait so
we'll see an error message in the log if we fail to wait for vsync,
instead of looping forever.
Bug:
62925812
Test: - Confirmed surface flinger <--> vr flinger switching is robust by
switching devices on and off hundreds of times and observing no
hardware composer related issues, surface flinger crashes, or
hardware composer service crashes.
- Confirmed 2d in vr works as before by going through the OOBE flow on a
standalone. This also exercises virtual display creation and usage
through surface flinger.
- Added logs to confirm perfect layer/display cleanup when destroying
hardware composer instances.
- Tested normal 2d phone usage to confirm basic layer create/destroy
functionality works as before.
- Monitored surface flinger file descriptor usage across dozens of
surface flinger <--> vr flinger transitions and observed no file
descriptor leaks.
- Confirmed the HWC1 code path still compiles.
- Ran the surface flinger tests and confirmed there are no new test
failures.
- Ran the hardware composer hidl in passthrough mode on a Marlin and
confirmed it works.
- Ran CTS tests for virtual displays and confirmed they all pass.
- Tested Android Auto and confirmed basic graphics functionality still
works.
Change-Id: I17dc0e060bfb5cb447ffbaa573b279fc6d2d8bd1
Merged-In: I17dc0e060bfb5cb447ffbaa573b279fc6d2d8bd1
TreeHugger Robot [Tue, 8 Aug 2017 01:15:42 +0000 (01:15 +0000)]
Merge changes from topic 'thermal-notify-mr1' into oc-mr1-dev
* changes:
thermalservice: add HIDL ThermalCallback implementation
thermalservice: add ThermalService interfaces and thermalserviced
Calin Juravle [Tue, 8 Aug 2017 00:17:45 +0000 (00:17 +0000)]
Merge "Change the location of current profiles for secondary dex files" into oc-mr1-dev
Todd Poynor [Fri, 23 Jun 2017 01:13:56 +0000 (18:13 -0700)]
thermalservice: add HIDL ThermalCallback implementation
The IThermalCallback implementation in thermalserviced enables vendor
thermal management code to send thermal events to ThermalService.
Test: manual: marlin with modified thermal-engine.conf
Bug:
30982366
Change-Id: Ic566bc51aebcd03163f8909f846ee4f7025ed472
Todd Poynor [Thu, 25 May 2017 00:19:18 +0000 (17:19 -0700)]
thermalservice: add ThermalService interfaces and thermalserviced
Binder interfaces IThermalService and IThermalEventListener are used
by frameworks native and Java code to publish and subscribe to
thermal events, and to detect thermal throttling status.
A following change adds HwBinder interfaces for vendor thermal
management code to send thermal events to this service.
Test: marlin
Bug:
30982366
Change-Id: I246ddd9b386e2388701b73fa0ecf9aff78ce0adb
Chia-I Wu [Mon, 7 Aug 2017 22:27:49 +0000 (15:27 -0700)]
libsurfaceflinger: fix screenshot permission check
Fix the logic for layers we check isSecure or isVisible for. It was
regressed by my previous change to support
WINDOW_TYPE_DONT_SCREENSHOT.
Bug:
63311708
Bug:
62656774
Test: CTS
Change-Id: I7768cb590014cc610ec564847958bbd98742c277
Calin Juravle [Thu, 27 Jul 2017 23:31:55 +0000 (16:31 -0700)]
Change the location of current profiles for secondary dex files
Update the installd code to handle the new location for secondary dex
profiles.
Tighten up the validation code and add tests.
Counter part for frameworks commit
a07ca21f9727325d76d2ddbfa119513f47f0b45f.
Bug:
62336157
Test: adb shell cmd package compile -r bg-dexopt --secondary-dex
com.google.android.googlequicksearchbox
adb shell cmd package reconcile-secondary-dex-files
com.google.android.googlequicksearchbox
Change-Id: Ib7af091a35fe53e7f6bb5f30a09911188caff88f
Jiyong Park [Mon, 7 Aug 2017 11:48:32 +0000 (20:48 +0900)]
Change UniquePtr to std::unique_ptr
UniquePtr.h in libnativehelper/include is deprecated and will be removed
soon. Switching to the standard std::unique_ptr.
Bug:
63686260
Test: builds, cmd works in the device.
Change-Id: Ib008acd1dd7dba2305b0797c9dc7bab1aa747e7d
TreeHugger Robot [Sat, 5 Aug 2017 03:58:41 +0000 (03:58 +0000)]
Merge "Fix build error from diamond merge" into oc-mr1-dev
Corey Tabaka [Sat, 5 Aug 2017 03:37:28 +0000 (03:37 +0000)]
Merge "Fix race condition clearing VSYNC enable on VrFlinger startup." into oc-dr1-dev
am:
8f09b6abec
Change-Id: I671c34252d7e0cfedeb2b22d77e6e635aa3d907b
TreeHugger Robot [Sat, 5 Aug 2017 03:28:04 +0000 (03:28 +0000)]
Merge "Fix race condition clearing VSYNC enable on VrFlinger startup." into oc-dr1-dev
Courtney Goeltzenleuchter [Wed, 2 Aug 2017 21:55:06 +0000 (15:55 -0600)]
Fix build error from diamond merge
Somehow between various merges on master and oc-dr1-dev
master ended up in bad state.
CL's involved are:
cd939aa6622430 Fix build for non-HWC2 targets (master)
281e8113d0ce Communicate composition buffer dataspace to HWC (oc-dr1-dev)
79d272442ce13 Communicate composition buffer dataspace to HWC (master)
I think 281e got merged into master and re-introduced the change that
was fixed by cd93.
Test: make
Change-Id: I087244348392098f516905eb1cebebf0362fcc20
(cherry picked from commit
6461806da8d8f0677ce337700153e5a972c36593)
Todd Kennedy [Wed, 2 Aug 2017 14:49:20 +0000 (07:49 -0700)]
Add native bindings for getNamesForUids
A new API [getNamesForUids] was recently added to the PackageManager
and this API needs to be accessible to native code. However, there
were two constraints:
1) Instead of hand-rolling the binder, we wanted to auto generate
the bindings directly from the AIDL compiler.
2) We didn't want to expose/annotate all 180+ PackageManager APIs
when only a single API is needed.
So, we chose to create a parallel API that can be used explicitly
for native bindings without exposing the entirety of the
PackageManager.
Bug:
62805090
Test: Manual
Test: Create a native application that calls into the new service
Test: See the call works and data and returned
Change-Id: Icdcb5c825fdc08d029b0eaed5c5be49cce40c9d8
TreeHugger Robot [Fri, 4 Aug 2017 00:52:07 +0000 (00:52 +0000)]
Merge "Mark libbinder and libdumpstateutil as VNDK in Android.bp" into oc-mr1-dev
Corey Tabaka [Fri, 4 Aug 2017 00:14:08 +0000 (17:14 -0700)]
Fix race condition clearing VSYNC enable on VrFlinger startup.
Fix VrFlinger to avoid touching the VSYNC enable setting in HWC
during startup by avoiding calling the cleanup code when entering
idle state for the first time.
Bug:
63626797
Test: Manual testing.
Change-Id: I5320bd5c1febb51367e759a8619d35f155789628
Yifan Hong [Thu, 3 Aug 2017 22:53:08 +0000 (22:53 +0000)]
Merge "Use cutils/android_filesystem_config.h" into oc-mr1-dev
TreeHugger Robot [Thu, 3 Aug 2017 20:54:34 +0000 (20:54 +0000)]
Merge "Add metadata in direct display surface to support ANativeWindow use cases." into oc-mr1-dev
Corey Tabaka [Thu, 3 Aug 2017 19:40:14 +0000 (19:40 +0000)]
Merge "Fix missing check on buffer import." into oc-dr1-dev
am:
e018119bb3
Change-Id: I6916696a90822809768cdaf8795a85203abc4315
TreeHugger Robot [Thu, 3 Aug 2017 19:33:53 +0000 (19:33 +0000)]
Merge "Fix missing check on buffer import." into oc-dr1-dev
rongliu [Fri, 28 Jul 2017 22:22:17 +0000 (15:22 -0700)]
Add metadata in direct display surface to support ANativeWindow use cases.
When direct display surface is used with metadata, ComsumerQueue dequeue
reports error because metadata size is hardcoded as 0. It breaks
ANativeWindow case because it has a metadata on the fly.
Create a metadata structure, which could be read and used in the future.
Bug:
64155181
Test: Manual
Change-Id: Ieb35a69d26213769497c6afc7151dd135150c795
Chia-I Wu [Thu, 3 Aug 2017 12:53:49 +0000 (12:53 +0000)]
Merge "libsurfaceflinger: handle WINDOW_TYPE_DONT_SCREENSHOT" into oc-dr1-dev
am:
1e9bf7c91b
Change-Id: Ie0d80934d0bf1d92ecfb2ab491cdf2b374132c17
TreeHugger Robot [Thu, 3 Aug 2017 12:45:02 +0000 (12:45 +0000)]
Merge "libsurfaceflinger: handle WINDOW_TYPE_DONT_SCREENSHOT" into oc-dr1-dev
Kevin Schoedel [Wed, 2 Aug 2017 23:16:45 +0000 (23:16 +0000)]
Merge "Remove constraint on touch location." into oc-dr1-dev
am:
d8fb01fe77
Change-Id: Iebda7471bcff007c88f2cb67472c914988337e33
Tarandeep Singh [Wed, 2 Aug 2017 23:00:21 +0000 (23:00 +0000)]
Merge changes from topic '
62033391' into oc-dr1-dev
am:
97d1c4f234
Change-Id: I33111bae2e009087d979b5f83b0d76a6ba9328c1
Tarandeep Singh [Wed, 2 Aug 2017 23:00:06 +0000 (23:00 +0000)]
Enable InputMonitors for non-default display.
am:
48aeb512e9
Change-Id: I8d7faebe9c57bc17ddeeb7d4df3a69afa908171c
TreeHugger Robot [Wed, 2 Aug 2017 21:40:32 +0000 (21:40 +0000)]
Merge "Remove constraint on touch location." into oc-dr1-dev
Chia-I Wu [Tue, 1 Aug 2017 18:29:00 +0000 (11:29 -0700)]
libsurfaceflinger: handle WINDOW_TYPE_DONT_SCREENSHOT
When a layer has type WINDOW_TYPE_DONT_SCREENSHOT, hide it from
everywhere but the primary display. This should be reverted when we
switch to use layer hierarchy properly.
Bug:
63311708
Test: screencap, screenrecord, android.view.cts.SurfaceViewSyncTest
Change-Id: I6a8d6b93399b0dc42832588f9a6c5e8879a8b754
Tarandeep Singh [Wed, 2 Aug 2017 20:32:58 +0000 (20:32 +0000)]
Merge changes from topic '
62033391' into oc-dr1-dev
* changes:
Add displayId in InputDispatcher, InputTransport
Enable InputMonitors for non-default display.
Courtney Goeltzenleuchter [Wed, 2 Aug 2017 19:46:22 +0000 (19:46 +0000)]
Merge changes If4271719,I9c9b5de9,I46a26a67 into oc-dr1-dev
am:
ddd9c71272
Change-Id: Ie3868b140dfc675f450ac5f436f3533c1d2bdc93
Courtney Goeltzenleuchter [Wed, 2 Aug 2017 19:33:33 +0000 (19:33 +0000)]
Merge "EGL: Add EGL_GL_scrgb extension" into oc-dr1-dev
am:
d5e8f47eff -s ours
Change-Id: Ifa3a705354ca92a5cc091d872bd5fff5b2512e7c
TreeHugger Robot [Wed, 2 Aug 2017 18:35:41 +0000 (18:35 +0000)]
Merge changes If4271719,I9c9b5de9,I46a26a67 into oc-dr1-dev
* changes:
Communicate composition buffer dataspace to HWC
Add VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT.
Check wide-color support before adding extensions
TreeHugger Robot [Wed, 2 Aug 2017 18:35:05 +0000 (18:35 +0000)]
Merge "EGL: Add EGL_GL_scrgb extension" into oc-dr1-dev
Jeff Sharkey [Wed, 2 Aug 2017 15:55:15 +0000 (15:55 +0000)]
Merge "Installd: Fix math overflow on quota calculation" into oc-mr1-dev
Justin Yun [Mon, 24 Jul 2017 06:19:45 +0000 (15:19 +0900)]
Mark libui and libgui as VNDK in Android.bp
As a VNDK module, Android.bp must have 'vndk' tag as well as
'vendor_available: true'.
The 'vndk' tag for VNDK module is formated as below:
vndk: {
enabled: true,
},
VNDK modules will be installed both in system/lib(64) as normal and
in system/lib(64)/vndk as a vendor variant.
Bug:
63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: Idf46c030e42a70c3b97a6d6a12a1087707fe7615
Justin Yun [Wed, 2 Aug 2017 08:02:05 +0000 (17:02 +0900)]
Mark libbinder and libdumpstateutil as VNDK in Android.bp
As a VNDK module, Android.bp must have 'vndk' tag as well as
'vendor_available: true'.
The 'vndk' tag for VNDK module is formated as below:
vndk: {
enabled: true,
},
VNDK modules will be installed both in system/lib(64) as normal and
in system/lib(64)/vndk as a vendor variant.
Bug:
63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: Ib1d9469ad0aead4cbec7c2548438d44608f36819
Yifan Hong [Wed, 2 Aug 2017 00:09:07 +0000 (17:09 -0700)]
Use cutils/android_filesystem_config.h
private/android_filesystem_config.h is not available for
vndservicemanager.
Test: m -j
Test: BOARD_VNDK_VERSION m -j
Bug:
63135587
Change-Id: Iaf9911a519ebbb798184e93b2911d0e813e6026c
Felipe Leme [Tue, 1 Aug 2017 23:35:56 +0000 (16:35 -0700)]
Renamed 2nd device file back to dumpstate_board.bin.
Fixes:
62872793
Test: manual verification
Test: mmm -j32 frameworks/native/cmds/dumpstate/ && adb push $OUT/system/lib/libdumpstateutil.so /system/lib/ && adb push ${ANDROID_PRODUCT_OUT}/data/nativetest/dumpstate_test* /data/nativetest && adb shell /data/nativetest/dumpstate_test/dumpstate_test
Change-Id: I3574124be9d430b92a08531cff412e88f4469fa6
Tarandeep Singh [Mon, 31 Jul 2017 17:51:54 +0000 (10:51 -0700)]
Add displayId in InputDispatcher, InputTransport
Bug:
62033391
Test: make StructLayout_test
make libinput_tests_InputEvent_test
make libinput_tests_InputPublisherAndConsumer_test
Run tests under /data/nativetest64/libinput_tests/
Change-Id: Id02cab83924d399eae0c1c233dc545fbb64945c2
TreeHugger Robot [Tue, 1 Aug 2017 20:31:09 +0000 (20:31 +0000)]
Merge "Add new Dolby Vision Profile types" into oc-mr1-dev
TreeHugger Robot [Tue, 1 Aug 2017 17:31:35 +0000 (17:31 +0000)]
Merge "Have the Surface class track the buffer age." into oc-mr1-dev
Courtney Goeltzenleuchter [Thu, 13 Jul 2017 23:54:01 +0000 (17:54 -0600)]
Communicate composition buffer dataspace to HWC
Test: adb shell dumpsys SurfaceFlinger
look for dataspace info in DisplayDevice section
Bug:
63146977
Change-Id: If427171994fbc91faacf5bad9cc736ddfbd35ec3
(cherry picked from commit
79d272442ce13418c3ea81c95d7fea0159b4b481)
Courtney Goeltzenleuchter [Sun, 9 Jul 2017 18:50:57 +0000 (12:50 -0600)]
Add VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT.
Bug:
63077212
Test: CTS basicExtensionTest
Change-Id: I9c9b5de99249a6fdd49df1995971c14915f6a7c8
(cherry picked from commit
edc88e78a30ca412a0a085a21f1fc1be7be5081f)
Courtney Goeltzenleuchter [Fri, 7 Jul 2017 20:55:40 +0000 (14:55 -0600)]
Check wide-color support before adding extensions
Don't want applications seeing the wide-color EGL extensions
if the device or display cannot support wide-color.
Bug:
63170158
Test: adb shell /data/nativetest/test-opengl-gl2_basic/test-opengl-gl2_basic
Verify that EGL_EXT_gl_colorspace_scrgb, EGL_EXT_gl_colorspace_scrgb_linear,
EGL_EXT_gl_colorspace_display_p3_linear and EGL_EXT_gl_colorspace_display_p3
are not present on devices that do not support wide-color, e.g. Nexus 6P
Change-Id: I46a26a67f2d6da9c5aad50d884ef02a62ccb6945
(cherry picked from commit
e5d6f994158d554c692afae0f547d89c75abde71)
Courtney Goeltzenleuchter [Fri, 23 Jun 2017 15:06:52 +0000 (09:06 -0600)]
EGL: Add EGL_GL_scrgb extension
Test: Android CTS
adb -d shell am start \
-n com.drawelements.deqp/android.app.NativeActivity \
-e cmdLine '"deqp --deqp-case=dEQP-EGL.functional.wide_color.* \
--deqp-log-filename=/sdcard/dEQP-Log.qpa"'
Bug:
62424735
Change-Id: I12a0bd64c01bcf314b4a73d8eb3151b09bf9f8ae
(cherry picked from commit
33e2b781a05f1caf274e95c143005a862223e9bf)
Saurabh Shah [Tue, 1 Aug 2017 16:22:00 +0000 (16:22 +0000)]
Merge "sf: Defer DispSync initialization" into oc-dr1-dev
am:
37d8c19a19
Change-Id: If075910e28f94462c1b24b650afa1b0fcad8d144
TreeHugger Robot [Tue, 1 Aug 2017 16:18:06 +0000 (16:18 +0000)]
Merge "sf: Defer DispSync initialization" into oc-dr1-dev
TreeHugger Robot [Tue, 1 Aug 2017 00:27:54 +0000 (00:27 +0000)]
Merge "Add TestStableBufferIdAndHardwareBuffer" into oc-mr1-dev
Tarandeep Singh [Mon, 17 Jul 2017 18:22:52 +0000 (11:22 -0700)]
Enable InputMonitors for non-default display.
InputFlinger today doesn't deliver InputMonitors for non-deafult
display. In order to support focussing windows on virtual-displays
(like the Vr2dDisplay), we need to be able to send motion events
to them for keyboard to gain focus.
Bug:
62033391
Test: Manual by launching
com.google.vr.vrcore/.daydream.MetaworldActivity & then
com.google.android.apps.nexuslauncher/.NexusLauncherActivity.
Exact steps are mentioned in the bug.
Change-Id: I5954e54cef8c0a29f05bc964debc95ea81f16758
Jerry Wong [Fri, 28 Jul 2017 22:54:58 +0000 (15:54 -0700)]
Installd: Fix math overflow on quota calculation
On 32-bit devices, the hard quota size calculation could overflow that
would cause the hard quota limit size to be much lower than intended.
b/
64160395
Change-Id: If7b0f2a40f77bb5e5957c663999544f4ab2e69be
Jiwen 'Steve' Cai [Sat, 29 Jul 2017 18:39:57 +0000 (11:39 -0700)]
Add TestStableBufferIdAndHardwareBuffer
Verifies a Dvr{Read,Write}BufferQueue contains the same set of
Dvr{Read,Write}Buffer(s) during their lifecycles. And for the same
buffer_id, the corresponding AHardwareBuffer handle stays the
same. User of DVR API need to make sure buffers from a queue can be
cached by buffer_id.
Bug:
64208560
Test: DvrApi-test
Change-Id: I1f89c49061b8727bb6a321201b1556b5ceffc9a9
Chris Forbes [Mon, 31 Jul 2017 18:17:54 +0000 (18:17 +0000)]
vulkan: Translate usage flags before passing to driver
am:
8e0c3f5f1c
Change-Id: Ia6f0c0a8c43b1e9cbe94f05e342f2c0cd92cdad1
Chris Forbes [Fri, 19 May 2017 21:47:29 +0000 (14:47 -0700)]
vulkan: Translate usage flags before passing to driver
Previously we just cast the 32bit flags and jammed them in the two
gralloc1 slots. Use the helper which does the correct translation.
(Yes, all these gralloc1isms are going away in favor of a single 64bit
flags field, but Vulkan HALs expect us to implement our side of
ANDROID_native_buffer correctly.)
(Cherry-picked from
4744291270cc6 in oc-dev)
Test: boot sailfish, run vulkan demo
Bug:
37686587
Change-Id: I806011986e8140d7f608d281798605bd9ca9a86b
Ian Elliott [Tue, 18 Jul 2017 17:05:49 +0000 (11:05 -0600)]
Have the Surface class track the buffer age.
Have the Surface class track the buffer age, so that Surface::query()
can return the buffer age without having to use a binder call to
BufferQueueProducer::query(). The idea is for
BufferQueueProducer::dequeueBuffer() to return the value, which the
Surface class will cache for later use by Surface::query().
Bug: b/
27903668
Test: Use systrace to no ensure query binder call after dequeueBuffer.
Change-Id: I106a7bd27461d381f0bd84df70d804de56a128ab
(cherry picked from commit
d11b044864be525a1646f93106ab496195bb8239)
Corey Tabaka [Sat, 29 Jul 2017 02:46:30 +0000 (19:46 -0700)]
Fix missing check on buffer import.
Fix a missing check on the success of importing buffers into the
ConsumerQueue. There is a race condition where the producer can
invalidate its buffers, for example by resizing, before the consumer
has a chance to import the previous buffers. The missing check
causes a crash in SurfaceFlinger and VrCore, which are both
consumers of application VR surface buffers.
Also fix a missing lock around the consumer queues in VR surfaces
found during the analysis of this bug.
Bug:
64042620
Test: Ran test.apk before and after the fix. Observe stable operation
after applying the fix.
Change-Id: I416df3ca47978404dcdb53599ddeec9b4bd6fb1a
Saurabh Shah [Thu, 13 Jul 2017 17:45:07 +0000 (10:45 -0700)]
sf: Defer DispSync initialization
Some DispSync members are initialized based on uninitialized static
members of sf, that are in turn initialized in sf constructor. Fix
the sequence by deferring DispSync initialization.
Current sequence:
sf constructor|-> DispSync constructor -> Access static sf members
|-> Initialize sf static members
New sequence:
sf constructor|-> DispSync constructor
|-> Initialize sf static members
|-> DispSync init -> Access static sf members
Bug:
63671437
Test: "present fences are ignored" not present in SF dumpsys
Change-Id: I618d2bbbbd4e39fc382e67f85dd8d637dd82cf38
(cherry picked from commit
f41745301d5ecfa680dcef3a1948a8a321f80509)
Narayan Kamath [Thu, 27 Jul 2017 10:21:07 +0000 (11:21 +0100)]
dumpstate: Add historical ANRs as separate entries in the zip file.
ANRs now show up as separate entries in the bugreport zip file, like so:
-rw---- 0.0 fat 516946 bl 48779 defN 17-Jul-27 10:47 FS/data/anr/anr_2017-07-27-10-47-45-798
-rw---- 0.0 fat 520627 bl 48995 defN 17-Jul-27 10:47 FS/data/anr/anr_2017-07-27-10-47-30-328
Bug:
32470528
Test: adb bugreport ./bugreport.zip; zipinfo -l ./bugreport.zip | grep anr
Change-Id: Ibcde7bd35cab1d81e26c72e9247d63cf7bce1504
TreeHugger Robot [Thu, 27 Jul 2017 04:13:33 +0000 (04:13 +0000)]
Merge "Add media/openmax as an include directory" into oc-mr1-dev
Michael Wright [Thu, 27 Jul 2017 01:13:04 +0000 (01:13 +0000)]
Prevent media keys from waking the device, even if they're external.
am:
58ba988476
Change-Id: Ieef908ac1b0a2cfbcad57d17356dddd1d787f09c
TreeHugger Robot [Thu, 27 Jul 2017 00:11:45 +0000 (00:11 +0000)]
Merge changes from topic 'libcutils_private_headers' into oc-mr1-dev
* changes:
Use getpwnam()/getgrnam() instead of AID_* macros (dumpstate)
Use getpwnam()/getgrnam() instead of AID_* macros (libgui)
Yifan Hong [Wed, 26 Jul 2017 17:47:53 +0000 (10:47 -0700)]
Use getpwnam()/getgrnam() instead of AID_* macros (dumpstate)
AID_* values are defined in libcutils private headers and hence
is not exported. Use getpwnam() instead to get these values.
Test: device boots
Test: bugreport
Test: dumpstate_test
Bug:
63135587
Change-Id: Ib35fe4fc4524eb1885616a9a1403ceb09f713777
Yifan Hong [Wed, 26 Jul 2017 17:47:14 +0000 (10:47 -0700)]
Use getpwnam()/getgrnam() instead of AID_* macros (libgui)
AID_* values are defined in libcutils private headers and hence
is not exported. Use getpwnam() instead to get these values.
Test: device boots
Bug:
63135587
Change-Id: I417d0472df2170ab190c1c1622117df58292125c
Michael Wright [Wed, 26 Jul 2017 15:19:11 +0000 (16:19 +0100)]
Prevent media keys from waking the device, even if they're external.
Bug:
38258736
Test: manual
Change-Id: I56deb9d99df17172ea063544334c1814a6f31509
Kevin Schoedel [Wed, 26 Jul 2017 14:40:19 +0000 (10:40 -0400)]
Remove constraint on touch location.
InputFlinger does accept and handle 'off-screen' touch input,
and it is sometimes useful, for instance for drag scrolling.
Bug:
64063111
Test: manual on device
Change-Id: I62baf4e01c583c10853518de4b87769aad29dab7
Justin Yun [Wed, 26 Jul 2017 03:16:52 +0000 (12:16 +0900)]
Mark libGLESv2.so and libEGL.so as VNDK libs.
libGLESv2.so and libEGL.so are categorized as SP-NDK and
vendor_available. However, they are marked as VNDK because they
are needed by some VNDK libs.
Bug:
63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: I6552f34a1d972919f2bf1f4e4dfc81aace431b8d
Peng Xu [Tue, 25 Jul 2017 23:50:29 +0000 (23:50 +0000)]
Initialize native Sensor object correctly
am:
27cc5f9634
Change-Id: I744d375ea103c77ae4bf9d65c368d157cb6aca5b
Peng Xu [Tue, 25 Jul 2017 00:50:53 +0000 (17:50 -0700)]
Initialize native Sensor object correctly
This CL gives default values for all fields in Sensor native
object.
Bug:
37640915
Test: added local logging to verify all native sensor objects are
initialized correctly.
Change-Id: I4076756249788f56960c74629cb800f1b2bae79f
Jiwen 'Steve' Cai [Sat, 22 Jul 2017 01:27:33 +0000 (01:27 +0000)]
Merge "Add dvrReadBufferQueueGetEventFd" into oc-dr1-dev
am:
42d6d5c805
Change-Id: I608dac89a7a3076a9df7201e2defd948e700a3b9
TreeHugger Robot [Sat, 22 Jul 2017 01:22:30 +0000 (01:22 +0000)]
Merge "Add dvrReadBufferQueueGetEventFd" into oc-dr1-dev
Romain Guy [Fri, 21 Jul 2017 22:57:24 +0000 (22:57 +0000)]
Postpone color mode change until after boot animation
am:
c53d3558d5
Change-Id: I96c0f0fb297be1ff9c1b5df2b33ffeacc39888b9
Jiwen 'Steve' Cai [Fri, 21 Jul 2017 20:33:55 +0000 (13:33 -0700)]
Add dvrReadBufferQueueGetEventFd
We need to expose the read queue's event fd, so that a caller can epoll
on a set of queues' fd for efficient buffer acquisition.
Bug:
62359843
Test: dvrapi-test
Change-Id: I1b9271afed9ee6c6675551402cd3f5a66e98ebe2
Romain Guy [Fri, 21 Jul 2017 01:49:46 +0000 (18:49 -0700)]
Postpone color mode change until after boot animation
sRGB is only set by SurfaceFlinger when the default display is
wide color capable. Since we compute the best color mode on
every frame anyway for wide color capable displays, we can
simply move the sRGB set to the end of the boot animation.
Bug:
63823274
Test: Manual
Change-Id: I11bb6095acb63e66bcf7dff9e3f7b36588e371c1
Previr Rangroo [Thu, 29 Jun 2017 07:26:42 +0000 (17:26 +1000)]
Add new Dolby Vision Profile types
Test: build
Change-Id: Ie18b3ea536fc0b95ddb3c6c89b4f2643c94979fa
Signed-off-by: Previr Rangroo <prang@dolby.com>
Chia-I Wu [Fri, 21 Jul 2017 15:32:21 +0000 (15:32 +0000)]
Merge "surfaceflinger: fix initial crop computation" into oc-dr1-dev
am:
349abaf55f
Change-Id: Ied5b49f6089e2cd78ef53c9918d4e57c5231d504
Chia-I Wu [Fri, 21 Jul 2017 15:28:01 +0000 (15:28 +0000)]
Merge "surfaceflinger: fix initial crop computation" into oc-dr1-dev
Romain Guy [Fri, 21 Jul 2017 06:47:52 +0000 (06:47 +0000)]
Merge "Properly applies the selected saturation boost (vivid mode)" into oc-dr1-dev
am:
3eba4064ef
Change-Id: I9ee74bf11f728524501b7003dbcd5fcf6707be2d
TreeHugger Robot [Fri, 21 Jul 2017 06:42:49 +0000 (06:42 +0000)]
Merge "Properly applies the selected saturation boost (vivid mode)" into oc-dr1-dev
Wei Wang [Fri, 21 Jul 2017 06:10:49 +0000 (06:10 +0000)]
SurfaceFlinger: Set property in StartPropertySetThread during init
am:
f9b05eeb5f
Change-Id: I3433d57d6e929f57202c4d9a68a6a09845474166
Romain Guy [Thu, 20 Jul 2017 19:47:14 +0000 (12:47 -0700)]
Properly applies the selected saturation boost (vivid mode)
The saturation boost setting is read by SurfaceFlinger as a
persistent system property. Unfortunately, persistent props
are only available after Vold is up and /data is decrypted,
which may happen before or after SF attempts to read the
property.
This CL moves the propery lookup to the end of the boot
animation. This solves two issues:
- The saturation boost will not be applied to the boot animation
- The vivid colors user setting is now reliably applied
Bug:
63823274
Test: Manual
Change-Id: Icb8e30c799c30cf674f0fc0bab0369f4c99367ed
Wei Wang [Thu, 20 Jul 2017 03:59:39 +0000 (20:59 -0700)]
SurfaceFlinger: Set property in StartPropertySetThread during init
This is similar to ag/
1849505/ (see b/
34499826), which by setting
property in a separate thread, that CL aims to avoid slow initialization
in SurfaceFlinger::init where SurfaceFlinger is waiting on
property_service.
There is new property_set() call added, and this CL is to move it to the
StartPropertySetThread.
Bug:
63844978
Test: on taimen with simulated delay ag/
2562492/
Change-Id: I31547cb5e75f44eac635386b3cf345a44931c78f
Chia-I Wu [Thu, 20 Jul 2017 21:24:37 +0000 (14:24 -0700)]
surfaceflinger: fix initial crop computation
This function computes the crop of the layer, that is, the region of
the layer to be drawn. We must consider the size of the layer when
applying s.active.crop.
Bug:
63786936
Test: manual
Change-Id: I8000413beba54a054db8d7ad28e868d23b0167ab
Pawin Vongmasa [Thu, 20 Jul 2017 00:09:52 +0000 (17:09 -0700)]
Add media/openmax as an include directory
This will obviate changing Khronos's header files.
Note that all header files in media/openmax have OMX_ prefix, so the
chance of collision is already low.
Test: Compiles
Bug:
63821829
Change-Id: I40cc92409de5091a1e2ed7c89c0012000b20f68f
Ashutosh Joshi [Thu, 20 Jul 2017 01:25:58 +0000 (01:25 +0000)]
Use appendFormat instead of append when passing arguments am:
53e5aa93fa
am:
fab65a0d34
Change-Id: Ic78a7fff83919089330cbdebeffd5a9aebb0243b
Ashutosh Joshi [Thu, 20 Jul 2017 01:20:27 +0000 (01:20 +0000)]
Use appendFormat instead of append when passing arguments
am:
53e5aa93fa
Change-Id: Ia3ad9c8ddbef9937542feca396d05f8dca136125
Calin Juravle [Fri, 14 Jul 2017 05:50:21 +0000 (22:50 -0700)]
Replace dexopt shared libraries with class loader context
Pass the class loader context to dex2oat with --class-loader-context
instead of using the runtime -cp argument.
Test: adb shell cmd package compile a_split_test_apk
Bug:
38138251
Change-Id: I2e483969af8adf97291aa94f42e6da9ee5f1716b
TreeHugger Robot [Wed, 19 Jul 2017 21:54:51 +0000 (21:54 +0000)]
Merge "sf: Defer DispSync initialization"
Saurabh Shah [Thu, 13 Jul 2017 17:45:07 +0000 (10:45 -0700)]
sf: Defer DispSync initialization
Some DispSync members are initialized based on uninitialized static
members of sf, that are in turn initialized in sf constructor. Fix
the sequence by deferring DispSync initialization.
Current sequence:
sf constructor|-> DispSync constructor -> Access static sf members
|-> Initialize sf static members
New sequence:
sf constructor|-> DispSync constructor
|-> Initialize sf static members
|-> DispSync init -> Access static sf members
Bug:
63671437
Test: "present fences are ignored" not present in SF dumpsys
Change-Id: I618d2bbbbd4e39fc382e67f85dd8d637dd82cf38
Ashutosh Joshi [Wed, 19 Jul 2017 16:52:57 +0000 (09:52 -0700)]
Use appendFormat instead of append when passing arguments
Using append crashes the system.
Bug:
63804323
Test: On a contrived build with no sensors, dumpsys does not crash the
sensorservice.
Change-Id: I4ee942d58af8347388f4f5f71c48da339c1cf7e7
Dan Albert [Wed, 19 Jul 2017 05:53:01 +0000 (05:53 +0000)]
Merge "_FILE_OFFSET_BITS=64 support for asset_manager.h." am:
47c479d9b9 am:
0f169dac29 am:
1cb4f68592
am:
6468e8c874
Change-Id: I297ddaf5f21a84c00104c16b70e727b3f4b1f9fa
Dan Albert [Wed, 19 Jul 2017 05:50:01 +0000 (05:50 +0000)]
Merge "_FILE_OFFSET_BITS=64 support for asset_manager.h." am:
47c479d9b9 am:
0f169dac29
am:
1cb4f68592
Change-Id: I70e186b1f6e3b4dee6901435587c991b0307a48c
Dan Albert [Wed, 19 Jul 2017 05:47:29 +0000 (05:47 +0000)]
Merge "_FILE_OFFSET_BITS=64 support for asset_manager.h." am:
47c479d9b9
am:
0f169dac29
Change-Id: I52a2b05119df7ebda3084074aa4f6584fe53e9d1
Dan Albert [Wed, 19 Jul 2017 05:44:19 +0000 (05:44 +0000)]
Merge "_FILE_OFFSET_BITS=64 support for asset_manager.h."
am:
47c479d9b9
Change-Id: I8fcdb3ff9680b1fb7cc41a7bb5e91b71fd16abc5