OSDN Git Service

android-x86/frameworks-native.git
7 years agosurfaceflinger: fix a nullptr dereference
Chia-I Wu [Tue, 18 Jul 2017 18:30:05 +0000 (11:30 -0700)]
surfaceflinger: fix a nullptr dereference

When the child layer latched a buffer but the fixed-size parent
layer never did (for reasons such as no buffer queued or buffer got
rejected), we could end up with p->mActiveBuffer being nullptr.

Bug: 62996512
Test: manual (I could never repro anyway)
Change-Id: Id7e4c7037633b8a37039baa6e8a306e55170b894

7 years agoMerge "Fix concurrent writes to the hardware composer" into oc-dr1-dev
Steven Thomas [Tue, 18 Jul 2017 00:19:04 +0000 (00:19 +0000)]
Merge "Fix concurrent writes to the hardware composer" into oc-dr1-dev

7 years agoFix concurrent writes to the hardware composer
Steven Thomas [Mon, 17 Jul 2017 20:59:23 +0000 (13:59 -0700)]
Fix concurrent writes to the hardware composer

Stale hardware composer layers were causing concurrent writes to the
Composer object from the surface flinger and vr flinger threads, a big
no-no. The concurrent writes would sometimes stomp on each other,
causing the hardware composer service to fail to read the command buffer
containing surface flinger's composer commands, leading to all sorts of
issues.

Bug: 62925812

Test: Locally added logs to surface flinger to catch the concurrent
writes, and confirmed the logs are no longer present with this patch
applied. Went through a bunch of sleep/wake cycles and confirmed the
device continues to function normally.

Change-Id: I70929c4a3c71142f5e9083cac294c122d127aa27

7 years agoMerge "Fix memory leak." into oc-dr1-dev
TreeHugger Robot [Mon, 17 Jul 2017 21:35:38 +0000 (21:35 +0000)]
Merge "Fix memory leak." into oc-dr1-dev

7 years agoMerge changes I23e6f088,I800208e8,I55123a7a into oc-dr1-dev
Dan Stoza [Fri, 14 Jul 2017 20:38:46 +0000 (20:38 +0000)]
Merge changes I23e6f088,I800208e8,I55123a7a into oc-dr1-dev

* changes:
  SF: Move screenshot Surface ops off main thread
  SF: Add ImageHolder for screenshot code
  SF: Add WindowDisconnector for screenshot code

7 years agoMerge "Add GraphicBufferMapper::preloadHal" into oc-dr1-dev
TreeHugger Robot [Fri, 14 Jul 2017 19:33:18 +0000 (19:33 +0000)]
Merge "Add GraphicBufferMapper::preloadHal" into oc-dr1-dev

7 years agoFix memory leak.
Corey Tabaka [Fri, 14 Jul 2017 18:43:49 +0000 (11:43 -0700)]
Fix memory leak.

A missing destructor caused a memory leak in the UDS backend for PDX.
Add the destructor and use std namespace for realloc/malloc/free.

Bug: 63026993
Test: Ran pdx_benchmarks for 400M iterations before and after fix.
      Confirmed that heap grows before fix and is stable after fix.
      Confirmed that VR service reported in the bug now have stable
      memory use.

Change-Id: If870a5db50dfaf5f212285824a1803f34acdabc7

7 years agoSF: Move screenshot Surface ops off main thread
Dan Stoza [Thu, 1 Jun 2017 23:40:30 +0000 (16:40 -0700)]
SF: Move screenshot Surface ops off main thread

This change rearranges the various operations that correspond to
capturing a screenshot such that all of the Surface-related ones
(connect, dequeue, queue, disconnect) are performed on the incoming
Binder thread rather than on SurfaceFlinger's main thread. This has two
major benefits:

  1) It reduces the amount of time that the SurfaceFlinger main thread
     is blocked while performing a screenshot, often by a considerable
     amount. This should reduce the risk of jank when screenshots are
     taken, such as for task snapshots during window transitions.
  2) It means that the SurfaceFlinger main thread is not susceptible to
     being blocked by a badly-performing BufferQueue consumer. This
     also enables us to remove the GraphicProducerWrapper class, which
     was previously performing a similar role.

Finally, this change also adds a mechanism that detects if the
screenshot would have been performed between the two phases of normal
SurfaceFlinger operation (invalidate and refresh), and defers it if
this condition is detected. This should further reduce the risk of jank
as a screenshot will only occur between frames rather than in the
middle of a frame.

Bug: 62257775
Test: SurfaceFlinger_test and manual verification that screenshots
      still work
Change-Id: I23e6f088b4d6e477472dfc2a6c36ef3dd930c047

7 years agoMerge "Fix ALOGE_IF log in bufferhubqueue" into oc-dr1-dev
TreeHugger Robot [Fri, 14 Jul 2017 01:53:23 +0000 (01:53 +0000)]
Merge "Fix ALOGE_IF log in bufferhubqueue" into oc-dr1-dev

7 years agoMerge "Add sensor HAL process into dump list" into oc-dr1-dev
TreeHugger Robot [Thu, 13 Jul 2017 23:01:06 +0000 (23:01 +0000)]
Merge "Add sensor HAL process into dump list" into oc-dr1-dev

7 years agoFix ALOGE_IF log in bufferhubqueue
Jiwen 'Steve' Cai [Wed, 12 Jul 2017 22:08:59 +0000 (15:08 -0700)]
Fix ALOGE_IF log in bufferhubqueue

Bug: 63636350
Test: system builds when with TRACE=1 override
Change-Id: Icc1245191b90aafbb553a1d2b0bce3bae4d0a05a

7 years agoSF: Add ImageHolder for screenshot code
Dan Stoza [Thu, 1 Jun 2017 21:37:39 +0000 (14:37 -0700)]
SF: Add ImageHolder for screenshot code

Adds a simple ImageHolder class, which holds an EGLImage and destroys
it either when an explicit destroy() method is called or when the class
is destructed (whichever occurs first). This allows us to reduce the
nesting of, and otherwise simplify, the captureScreenImplLocked method
of SurfaceFlinger.

Bug: 62257775
Test: SurfaceFlinger_test and manually verified that screenshots still
      work
Change-Id: I800208e8f6bedd2ce66827268ecc64968dbe616d

7 years agoSF: Add WindowDisconnector for screenshot code
Dan Stoza [Thu, 1 Jun 2017 21:16:23 +0000 (14:16 -0700)]
SF: Add WindowDisconnector for screenshot code

Adds a simple WindowDisconnector class that holds an ANativeWindow* and
disconnects from it when it goes out of scope. This allows us to
drastically reduce the nesting of the captureScreenImplLocked method
of SurfaceFlinger.

Bug: 62257775
Test: SurfaceFlinger_test and manually verified that screenshots still
      work
Change-Id: I55123a7a6b2036158d0959328b0e6f8b206cce5d

7 years agoAdd sensor HAL process into dump list
Peng Xu [Wed, 12 Jul 2017 04:14:42 +0000 (21:14 -0700)]
Add sensor HAL process into dump list

Test: adb bugreport contains native stack trace for
      /vendor/bin/hw/android.hardware.sensors@1.0-service

Bug: 63096400
Change-Id: I2c24d4fd2fab7ed52dbd12b5324ae03aeaec3cda

7 years agoAdd GraphicBufferMapper::preloadHal
Jesse Hall [Thu, 6 Jul 2017 21:02:29 +0000 (14:02 -0700)]
Add GraphicBufferMapper::preloadHal

Plumbing to allow Zygote to explicitly preload the a.h.graphics.mapper
HAL. An earlier attempt did this implicitly with a static initializer in
libui.so, but the library is also used by non-Zygote processes that
don't have access to HALs. This way, the HIDL libraries and HAL are only
loaded in Zygote and its children, not random other processes.

Bug: 62353585
Test: check that a.h.graphics.mapper is in /proc/`pid zygote64`/maps
Change-Id: I4989c8089e3a4cfd627f8940f5552950c1c617fc
(cherry picked from commit 5dac7819ac9461c14f0b7c208597579c5c3fb814)

7 years agoMerge "Synchronous resource recover mechanism for ISensorEventConnection" into oc...
Peng Xu [Tue, 11 Jul 2017 21:49:59 +0000 (21:49 +0000)]
Merge "Synchronous resource recover  mechanism for ISensorEventConnection" into oc-dr1-dev

7 years agoMerge changes from topic 'svcmgr_shutdown_critical' into oc-dr1-dev
Wei Wang [Tue, 11 Jul 2017 19:49:01 +0000 (19:49 +0000)]
Merge changes from topic 'svcmgr_shutdown_critical' into oc-dr1-dev

* changes:
  servicemanager: Mark servicemanager as shutdown critical
  servicemanager: Mark vndservicemanager as shutdown critical

7 years agoservicemanager: Mark servicemanager as shutdown critical
Wei Wang [Tue, 11 Jul 2017 17:01:09 +0000 (10:01 -0700)]
servicemanager: Mark servicemanager as shutdown critical

Bug: 629519296351436362845700
Test: Build
Change-Id: Ib1b7aec4b6d3c590eb469daeed40b954d37efa18

7 years agoservicemanager: Mark vndservicemanager as shutdown critical
Roopesh Rajashekharaiah Nataraja [Mon, 10 Jul 2017 23:22:27 +0000 (16:22 -0700)]
servicemanager: Mark vndservicemanager as shutdown critical

vndservicemanager needs to be alive during shutdown to allow vndk
components which may run during shutdown to communicate. The system
ndk servicemanager keeps running throughout shutdown, so this brings
the vndservicemanager on par with that behavior.

Bug: 629519296351436362845700
Test: Build
Change-Id: Iba154820ef69c6491a5cb05747b6b905763a825d

7 years agoMerge "Fix BufferHub state machine to return errors on invalid transitions." into...
TreeHugger Robot [Tue, 11 Jul 2017 16:50:17 +0000 (16:50 +0000)]
Merge "Fix BufferHub state machine to return errors on invalid transitions." into oc-dr1-dev

7 years agoSynchronous resource recover mechanism for ISensorEventConnection
Peng Xu [Mon, 10 Jul 2017 23:41:08 +0000 (16:41 -0700)]
Synchronous resource recover  mechanism for ISensorEventConnection

Add synchronous destroy() function to recover resource used by
remote ISensorEventConnection object.

Bug: 63542033
Test: SensorDirectReportTest pass
Change-Id: If98782ee12c7b1a733eb15a2fd8d7c5dacde243b

7 years agoMerge "Make default permission checks in performance service more restrictive." into...
TreeHugger Robot [Mon, 10 Jul 2017 20:39:01 +0000 (20:39 +0000)]
Merge "Make default permission checks in performance service more restrictive." into oc-dr1-dev

7 years agoMerge "Fix concurrent access bug in VrFlinger." into oc-dr1-dev
TreeHugger Robot [Mon, 10 Jul 2017 20:33:44 +0000 (20:33 +0000)]
Merge "Fix concurrent access bug in VrFlinger." into oc-dr1-dev

7 years agoMerge "Clear callbacks when destroying DvrHwcClient" into oc-dr1-dev
TreeHugger Robot [Mon, 10 Jul 2017 19:24:27 +0000 (19:24 +0000)]
Merge "Clear callbacks when destroying DvrHwcClient" into oc-dr1-dev

7 years agoMerge "Validate the size of all dex paths eagerly" into oc-dr1-dev
Calin Juravle [Mon, 10 Jul 2017 19:07:15 +0000 (19:07 +0000)]
Merge "Validate the size of all dex paths eagerly" into oc-dr1-dev

7 years agoMerge "dvrReadBufferQueueDequeue: allow empty metadata" into oc-dr1-dev
TreeHugger Robot [Mon, 10 Jul 2017 19:04:32 +0000 (19:04 +0000)]
Merge "dvrReadBufferQueueDequeue: allow empty metadata" into oc-dr1-dev

7 years agoMerge "Include tracking state bits to DvrPose." into oc-dr1-dev
TreeHugger Robot [Mon, 10 Jul 2017 18:56:20 +0000 (18:56 +0000)]
Merge "Include tracking state bits to DvrPose." into oc-dr1-dev

7 years agoValidate the size of all dex paths eagerly
Calin Juravle [Thu, 6 Jul 2017 23:29:11 +0000 (16:29 -0700)]
Validate the size of all dex paths eagerly

Also, increase the PKG_PATH_MAX which is used as the max path length to
1024. This should accommodate reasonably long dex path (to cover for
longer secondary dex files paths).

If a dex path  exceeds 1024 characters the dex file will not be compiled.

Bug: 63285397
Test: manual
1) create an artifical long paths under gmscore:
2) update /data/system/package-dex-usage.list to simulate the use of those
dex file
3) run `adb shell cmd package compile -r bg-dexopt --secondary-dex
com.google.android.gms`
4) observe that a 256+ characters dex path is ok while a 1024+ long one
fails.
5) run `adb shell cmd package reconcile-secondary-dex-files
com.google.android.gms` and check no errors are present.

Change-Id: I23b34013e32c5c64ca9c1381cc4d8d67e7121cc8

7 years agoFix BufferHub state machine to return errors on invalid transitions.
Corey Tabaka [Fri, 7 Jul 2017 01:04:27 +0000 (18:04 -0700)]
Fix BufferHub state machine to return errors on invalid transitions.

The consumer side of the BufferHub flow did not have an adequate
state machine to track transitions and return errors when Acquire
or Release are requested from the wrong state. This bug allowed
other buggy usage to go unnoticed.

- Fix the consumer state machine to correctly validate all requests.
- Add tests to verify correctness of the fix.

Tested BufferHub with the new test before and after the fix and
verified that the test catches the problem and that the fix solves
the problem.

Bug: 62886596
Bug: 63149525
Test: bufferhub_tests passes.
Change-Id: I802679ed74c7f505b9243ba4048824350d4e37be

7 years agoRestore PDX support to atrace.
Corey Tabaka [Wed, 31 May 2017 23:37:40 +0000 (16:37 -0700)]
Restore PDX support to atrace.

Restore PDX service tracing in atrace. This time only enable poking PDX services
when the "pdx" trace category is included.

Bug: 62882199
Test: Run systrace with/without pdx category and observe correct poke behavior.

Change-Id: I478332a661c3b8bc6061fda43f64b75d8113b305

7 years agoFix concurrent access bug in VrFlinger.
Corey Tabaka [Thu, 6 Jul 2017 22:39:49 +0000 (15:39 -0700)]
Fix concurrent access bug in VrFlinger.

VR surface queues have erroneous concurrent access from two threads
because of misplaced lock guards. Move the locking to cover the
queue accesses.

Bug: 62886596
Bug: 63149525
Test: Extensive logging shows that buffers are accessed in the
 correct order and that the consistency of the queues is now
 maintained.

Change-Id: I649e3d75a2230cf3aff50886df9958917d3aa4bf

7 years agoClear callbacks when destroying DvrHwcClient
Pat Plunkett [Thu, 29 Jun 2017 22:40:41 +0000 (15:40 -0700)]
Clear callbacks when destroying DvrHwcClient

When a DvrHwcClient is destroyed, the VrComposer retains a reference to its
observer. Because registerObserver returns a non-OK status if an observer
is already registered, this was causing subsequent DvrHwcClients to not be
created.

This was an issue with the CompatibilityUiOverlay app on standalone
headsets. CompatibilityUiOverlay was destroying its DvrHwcClient when turning
the screen off, but upon turning the screen back on, CompatibilityUiOverlay
was unable to create another DvrHwcClient.

Bug: 63139142
Test: Turn the screen off/on for a standalone headset, observe
CompatibilityUiOverlay running.

Change-Id: Ie45e961d2bf977ab9a661e23c558354d3a96ae20

7 years agodvrReadBufferQueueDequeue: allow empty metadata
Jiwen 'Steve' Cai [Sat, 1 Jul 2017 00:04:28 +0000 (17:04 -0700)]
dvrReadBufferQueueDequeue: allow empty metadata

Currently, when there is no metadata on the read buffer queue, we have
to pass in dummy out_metadata; otherwise the API always return
-EINVAL. This CL allows (nullptr, 0) as legit input and add test to
cover that.

Bug: 62958474
Test: Ran the updated DvrBufferQueueTest
Change-Id: I0ad666006a5d93b67a48b9c34f27e325dfa9a419

7 years agosurfaceflinger: refresh after latching any buffer
Chia-I Wu [Fri, 30 Jun 2017 19:51:05 +0000 (12:51 -0700)]
surfaceflinger: refresh after latching any buffer

We should not skip refresh when a latched buffer happens to have an
empty dirty region.  Also, we should signal a layer update when we
skip refresh.

Bug: 62752640
Test: manual
Change-Id: Ia603e7eeb37491c6ece7ea08d5d1e3b7ba93e6fa

7 years agoMake default permission checks in performance service more restrictive.
Corey Tabaka [Fri, 30 Jun 2017 18:27:57 +0000 (11:27 -0700)]
Make default permission checks in performance service more restrictive.

- Check sending process in unrestricted policies.
- Allow IsTrustedUid() to cache results for better runtime efficiency.
- Update tests to verify unrestricted policy behavior.

Bug: 62468109
Test: performance_service_tests passes.
Change-Id: I0614879c8bde35ffeda2f673a3da68092433dc1a

7 years agoMerge "Fix potential access to invalid memory during shutdown" into oc-dr1-dev
TreeHugger Robot [Fri, 30 Jun 2017 15:36:48 +0000 (15:36 +0000)]
Merge "Fix potential access to invalid memory during shutdown" into oc-dr1-dev

7 years agoMerge "Add dvr api entries for sensor enable/disable" into oc-dr1-dev
Luke Song [Fri, 30 Jun 2017 02:14:54 +0000 (02:14 +0000)]
Merge "Add dvr api entries for sensor enable/disable" into oc-dr1-dev

7 years agoMerge "Trust navbar panel and accessibility overlays" into oc-dr1-dev
Phil Weaver [Fri, 30 Jun 2017 01:57:31 +0000 (01:57 +0000)]
Merge "Trust navbar panel and accessibility overlays" into oc-dr1-dev

7 years agoInclude tracking state bits to DvrPose.
Okan Arikan [Mon, 26 Jun 2017 17:57:24 +0000 (10:57 -0700)]
Include tracking state bits to DvrPose.

These will be used internally for debugging so VrCore
has an idea about what's going on with Tango.

Bug: 62917278
Test: No functional change.
Change-Id: I7f5f7a2ccad4f0259ee5219726bf0e6890f34187

7 years agoAdd dvr api entries for sensor enable/disable
Luke Song [Tue, 27 Jun 2017 21:03:45 +0000 (14:03 -0700)]
Add dvr api entries for sensor enable/disable

Follow-up to ag/2263549 because we want to use it in VrCore now.

Bug: 63070540
Test: Api call in VrCore
Change-Id: Ic3b2c68ade31008ada8078a74ebe2945748143ae

7 years agoFix potential access to invalid memory during shutdown
Daniel Nicoara [Fri, 23 Jun 2017 16:48:01 +0000 (12:48 -0400)]
Fix potential access to invalid memory during shutdown

Since binder threads have a reference to the callback, need to make sure
it is properly reset before deleting the DvrHwcClient object.

Bug: 63139142
Test: Ran on device to ensure VrCore restart don't result in crashes in
DvrHwcClient
Change-Id: I559844a70d4483fee3148526f704d234994a96d4

7 years agoMerge changes Id4647e54,I66b6edbd into oc-dr1-dev
TreeHugger Robot [Thu, 29 Jun 2017 18:44:52 +0000 (18:44 +0000)]
Merge changes Id4647e54,I66b6edbd into oc-dr1-dev

* changes:
  Fix VR surface attributes.
  DVR API: Implement support for deleting surface attributes.

7 years agoMerge changes I9047b298,Id9554d6b into oc-dr1-dev
TreeHugger Robot [Thu, 29 Jun 2017 18:44:35 +0000 (18:44 +0000)]
Merge changes I9047b298,Id9554d6b into oc-dr1-dev

* changes:
  libdvr: Add performance API to platform library.
  libpdx_uds: Fix uninitialized variable bug.

7 years agoMerge "Add VrFlinger dumpsys to SurfaceFlinger" into oc-dr1-dev
TreeHugger Robot [Thu, 29 Jun 2017 04:21:05 +0000 (04:21 +0000)]
Merge "Add VrFlinger dumpsys to SurfaceFlinger" into oc-dr1-dev

7 years agoFix VR surface attributes.
Corey Tabaka [Fri, 23 Jun 2017 03:39:42 +0000 (20:39 -0700)]
Fix VR surface attributes.

VR surface attributes had two issues that prevented the full extent
of their use:
1. The older clang version missed that templated copy constructor
   and assignment operators do not override the default ones in
   the Variant class. This caused issues with certain types when
   copy constructing / assigning from another Variant of the same
   type. This was noticed by running tests with a newer version of
   clang which provided warnings.
2. C++ rules about implicit conversion to bool from types that
   decay to pointers causes subtle issues with Variants that have
   bool elements.

   For example this assignment compiles but produces the wrong
   result:

   const int array[3] = { 1, 2, 3};
   Variant<int, bool, std::array<int, 3>> variant = array;
   EXPECT_FALSE(variant.is<bool>()); // Actually true.

   Here the programmer might accidentally think that the std::array
   element of the variant can be assigned from the regular array.
   This doesn't work, but instead the compiler decays the array to
   a pointer and assigns the bool element to true.

The first issue is addressed by defining copy/move constructors /
assignment operators on Variant and deleting the default ones from
the internal Union type for extra safety.

The second issue is addressed by making a more restrictive version
of the std::is_constructible trait that rejects bool construction
from types that decay to pointers. Once this was put in place the
erroneous use cases no longer compiled and is fixed as part of
this CL.

Tests are updated to verify the fixes to these issues.

Bug: 62557221
Test: pdx_tests and dvr_api-test passes.
Change-Id: Id4647e54e0a7b1753217fe7fe351462fe5bcfd83

7 years agolibdvr: Add performance API to platform library.
Corey Tabaka [Fri, 23 Jun 2017 23:20:07 +0000 (16:20 -0700)]
libdvr: Add performance API to platform library.

- Add dvrPerformanceSetSchedulerPolicy API. Only this API is exposed
  through the DVR platform library, the older API will be deprecated.
- Add permission checks to all performanced APIs.
- Allow services with android.permission.RESTRICTED_VR_ACCESS to change
  scheduler policy for VR apps.
- Minor updates to use the updated PDX service API. The older API will
  be deprecated soon.
- Add tests for permission checks and policy API.

Most of the tests are automatic however, there is one manual step for
testing the android.permission.RESTRICTED_VR_ACCESS (e.g. trusted uid)
check. Because there is no reliable way to determine the UID of VrCore
from the gtest, instead the gtest looks for an env var named
GTEST_TRUSTED_UID; if this is set the value is used as a uid and the
trusted uid tests are enabled.

Bug: 62468109
Test: 'GTEST_TRUSTED_UID=<VrCore UID> performance_service_tests' passes.
Change-Id: I9047b298a015a69535b655a299ca26c179e2d57d

7 years agoDVR API: Implement support for deleting surface attributes.
Corey Tabaka [Thu, 8 Jun 2017 21:29:58 +0000 (14:29 -0700)]
DVR API: Implement support for deleting surface attributes.

- Implement support for deleting surface attributes using the "NONE"
  attribute type.
- Add tests for attribute events and attribute deletion.

Bug: 62456002
Test: dvr_api-test passes.
Change-Id: I66b6edbd35077596d89e85829bcbe7c52829ef5b

7 years agoAdd VrFlinger dumpsys to SurfaceFlinger
Karthik Ravi Shankar [Wed, 28 Jun 2017 22:40:24 +0000 (15:40 -0700)]
Add VrFlinger dumpsys to SurfaceFlinger

When we do dumpsys SurfaceFlinger, we get no information about the
layers/what is composed when the device is in VR mode.

Bug: 63113212
Test:
VrFlinger state:
Application Surfaces:
Surface 0: surface_id=11 process_id=5550 user_id=10104 visible=1
z_order=0 queue_ids=29,37
Surface 1: surface_id=13 process_id=5035 user_id=10130 visible=1
z_order=0 queue_ids=53,65

Direct Surfaces:
Surface 0: surface_id=8 process_id=5563 user_id=10104 visible=1
z_order=0 queue_ids=17

Display metrics:     1440x2880 537.882x537.882 dpi @ 60 Hz
Post thread resumed: 1
Active layers:       1

Layer 0: type=Device surface_id=8 buffer_id=19

Hardware Composer Debug Info:
-------------------------------
HWC2 display_id: 0
layer:   30 z: 0 compositon: Device/Device alpha: 255 format:
RGBA_8888_UBWC dataspace:0x00000000 transform: 0/0/0 buffer_id:
0x70b4877500
color modes supported: 0 7 9 current mode: 7
current transform:
  1.08  -0.02  -0.02   0.00
  -0.07   1.03  -0.07   0.00
  -0.01  -0.01   1.09   0.00
  0.00   0.00   0.00   1.00
-------------------------------

This section doesn't appear when the device is not in VR mode.

Change-Id: I2961a05fc3ea303e070be08de355fb6e56c3d0db
Signed-off-by: Karthik Ravi Shankar <karthikrs@google.com>
7 years agoMerge "Add telephony related dumpsys in the telephony monitor bugreports" into oc...
TreeHugger Robot [Wed, 28 Jun 2017 19:01:17 +0000 (19:01 +0000)]
Merge "Add telephony related dumpsys in the telephony monitor bugreports" into oc-dr1-dev

7 years agolibpdx_uds: Fix uninitialized variable bug.
Corey Tabaka [Mon, 26 Jun 2017 23:51:43 +0000 (16:51 -0700)]
libpdx_uds: Fix uninitialized variable bug.

In this code path epoll_wait() returns 0 when the operation times
out, but there is no condition to catch this and return the
approptiate status. This allows the event value to be used
uninitialized, which returns a junk pending event mask.

This bug results in BufferHub queues sometimes thinking that the
producer side of the buffer hung up, when the junk value happens
to have the EPOLLHUP bit set.

Bug: 62886596
Test: Observe VR app switching stability.
Change-Id: Id9554d6bf224fd27815ff042ac145f59041d0aae

7 years agoAdd telephony related dumpsys in the telephony monitor bugreports
Jayachandran C [Sat, 10 Jun 2017 22:08:12 +0000 (15:08 -0700)]
Add telephony related dumpsys in the telephony monitor bugreports

Collect dumpsys for the following in telephony monitor auto
generated bugreports for better debugging

1) TelephonyDebugService
2) CarrierConfig
3) Connectivity

Test: Verified telephony monintor auto generated bugreport

Bug: 62504502
Change-Id: Ia2a9e1ff5b289dec7a4d0bb4e8ef85fb413df87a

7 years agoMerge "SurfaceFlinger: Last minute log removal." into oc-dev
Robert Carr [Wed, 28 Jun 2017 00:06:38 +0000 (00:06 +0000)]
Merge "SurfaceFlinger: Last minute log removal." into oc-dev
am: 56cca289cc

Change-Id: Ib4448b62b985fac82c24fb81aef550ba7d0280a9

7 years agoMerge "SurfaceFlinger: Last minute log removal." into oc-dev
TreeHugger Robot [Tue, 27 Jun 2017 23:59:16 +0000 (23:59 +0000)]
Merge "SurfaceFlinger: Last minute log removal." into oc-dev

7 years agoMerge "libgui: New mutex for ConsumerBase frame callbacks" into oc-dev
Dan Stoza [Tue, 27 Jun 2017 23:01:03 +0000 (23:01 +0000)]
Merge "libgui: New mutex for ConsumerBase frame callbacks" into oc-dev
am: fb672ba37b

Change-Id: I90f2ebe102c40c70620ca12bda5000b455109d26

7 years agoMerge "libgui: New mutex for ConsumerBase frame callbacks" into oc-dev
TreeHugger Robot [Tue, 27 Jun 2017 22:54:05 +0000 (22:54 +0000)]
Merge "libgui: New mutex for ConsumerBase frame callbacks" into oc-dev

7 years agoSurfaceFlinger: Last minute log removal.
Robert Carr [Tue, 27 Jun 2017 20:51:07 +0000 (13:51 -0700)]
SurfaceFlinger: Last minute log removal.

Whoops.

Test: Log removed!
Change-Id: I4593352cf565603a4507c6ef13504b167d882eec

7 years agoMerge "Fix hidl_ssvc_poll thread issues" into oc-dr1-dev
TreeHugger Robot [Tue, 27 Jun 2017 04:43:20 +0000 (04:43 +0000)]
Merge "Fix hidl_ssvc_poll thread issues" into oc-dr1-dev

7 years agoTrust navbar panel and accessibility overlays
Phil Weaver [Mon, 26 Jun 2017 23:22:26 +0000 (16:22 -0700)]
Trust navbar panel and accessibility overlays

Fixes: 62048165
Fixes: 62341768
Test: Enable maximum screen display and font size, enable TalkBack.
Enable Select to Speak with FAB, enable TalkBack.

Change-Id: Ia96373200adf9c5d306e9c61da9c65ba412c9430

7 years agoFix hidl_ssvc_poll thread issues
Peng Xu [Sun, 25 Jun 2017 23:43:02 +0000 (16:43 -0700)]
Fix hidl_ssvc_poll thread issues

1) Patch poll wake up handling logic so that thread no longer quits
   on spurious wake up.
2) Patch(simplify) thread initialization, so that it will not hang
   on waiting for conditional variable.

Test: 1) send signal 3 to system_server, does not observe thread quit.
Test: 2) adb shell "stop;start" many times, every time thread starts.

Bug: 62933449
Bug: 62933799

Merged-In: Icb7477e9d75338b9742e144fc2687d5ced91e89e
Change-Id: Icb7477e9d75338b9742e144fc2687d5ced91e89e

7 years agolibgui: New mutex for ConsumerBase frame callbacks
Dan Stoza [Mon, 26 Jun 2017 21:27:18 +0000 (14:27 -0700)]
libgui: New mutex for ConsumerBase frame callbacks

Adds a new mutex to protect ConsumerBase's mFrameAvailableListener
separately from the main mMutex. This prevents deadlocks when trying
to perform callbacks in response to other calls that come through
ConsumerBase.

Bug: 62915791
Test: EncodeVirtualDisplayWithCompositionTest#
          testRenderingMaxResolutionRemotely

Change-Id: I244dc2d83488e452d9690c0d7847c9ff15a95dbb

7 years agoMerge "libgui: export EGL headers." into oc-dr1-dev
TreeHugger Robot [Mon, 26 Jun 2017 17:54:11 +0000 (17:54 +0000)]
Merge "libgui: export EGL headers." into oc-dr1-dev

7 years agoMerge "Revert "libui: Load a.h.graphics.mapper passthrough service on library load...
TreeHugger Robot [Sat, 24 Jun 2017 00:04:43 +0000 (00:04 +0000)]
Merge "Revert "libui: Load a.h.graphics.mapper passthrough service on library load"" into oc-dr1-dev

7 years agoRevert "libui: Load a.h.graphics.mapper passthrough service on library load"
Jeff Vander Stoep [Fri, 23 Jun 2017 18:41:04 +0000 (11:41 -0700)]
Revert "libui: Load a.h.graphics.mapper passthrough service on library load"

This reverts commit 75ca86f072f82d38b21e0a13234ecbc2c24cb6ab.

avc: denied { read } name="hw" scontext=u:r:cameraserver:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:folio_daemon:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:hal_imsrtp:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:idmap:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:mediaextractor:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:mediametrics:s0
tcontext=u:object_r:system_file:s0 tclass=dir
avc: denied { read } name="hw" scontext=u:r:webview_zygote:s0
tcontext=u:object_r:system_file:s0 tclass=dir

Bug: 62353585
Bug: 62912747
Bug: 35197529
Test: build and boot device. Launch camera, take pictures.
Change-Id: Ic6884f7235edb9191034a285414eb93aa44ac23c

7 years agoMerge "Make VR HWC DPI a configurable property" into oc-dr1-dev
TreeHugger Robot [Fri, 23 Jun 2017 20:39:03 +0000 (20:39 +0000)]
Merge "Make VR HWC DPI a configurable property" into oc-dr1-dev

7 years agoDisable setting saved_cmdline_size
John Reck [Fri, 23 Jun 2017 19:00:44 +0000 (19:00 +0000)]
Disable setting saved_cmdline_size
am: ba54d5baf4

Change-Id: I447ad42ad4c245013e488701a61d8ce2348a368d

7 years agoDisable setting saved_cmdline_size
John Reck [Fri, 23 Jun 2017 16:44:08 +0000 (09:44 -0700)]
Disable setting saved_cmdline_size

Minimal revert of the addition of increasing
the saved_cmdline_size. This change
exposed kernel bugs that prevented
atrace from working.

Bug: 62375794
Test: manual
Change-Id: Ie946b9246ce9ba22af59dbf0b9fe8a59a5fa1f3f

7 years agolibgui: export EGL headers.
Steven Moreland [Fri, 23 Jun 2017 00:50:49 +0000 (17:50 -0700)]
libgui: export EGL headers.

Many libgui headers use these headers so not exporting
these breaks BOARD_VNDK_VERSION=current builds.

Test: headers resolved with BOARD_VNDK_VERSION=current
Change-Id: I085faeda4f8ad8a07d91e81222b8031a0dd1858a

7 years agoEGL: add color space validation
Courtney Goeltzenleuchter [Tue, 20 Jun 2017 14:12:54 +0000 (08:12 -0600)]
EGL: add color space validation

We want Android to support multiple color spaces as
that can be implemented entirely in the eglapi.cpp wrapper.
These additional dataspaces do not require special behavior
by the driver and may not recognize EGL_GL_COLORSPACE_DISPLAY_P3_EXT,
EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT, and related attributes.
Therefor, need to filter out those attributes before calling
the driver.
In the future there may be new extensions that do require
driver support. When that happens we'll need to update
stripColorSpaceAttribute to treat that correctly.

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: I0f0867feb73055100636d326213183ef1f052b7c
(cherry picked from commit eeaa52bc65b5cfaca1f0de44635b57919179df29)

7 years agoMerge "surfaceflinger: discard stale commands" into oc-dev
Chia-I Wu [Thu, 22 Jun 2017 20:04:12 +0000 (20:04 +0000)]
Merge "surfaceflinger: discard stale commands" into oc-dev
am: f8ca9a0875

Change-Id: Ief69f6fcf0c738612b14b94d65b3ae1555973d6c

7 years agoMerge "LibGUI remove DEBUG" into oc-dev
Fabien Sanglard [Thu, 22 Jun 2017 20:03:13 +0000 (20:03 +0000)]
Merge "LibGUI remove DEBUG" into oc-dev
am: be597daebd

Change-Id: I65756ce89b4a10d2df403f9f9a4ce2cacdaafda0

7 years agoDisable skip Validate on client composition
Fabien Sanglard [Thu, 22 Jun 2017 20:02:43 +0000 (20:02 +0000)]
Disable skip Validate on client composition
am: 269c236109

Change-Id: Ib0d2f8a9e59cf4618ed029fe35391f566d11bcfb

7 years agoMerge "surfaceflinger: discard stale commands" into oc-dev
Chia-I Wu [Thu, 22 Jun 2017 19:59:35 +0000 (19:59 +0000)]
Merge "surfaceflinger: discard stale commands" into oc-dev

7 years agoMerge "LibGUI remove DEBUG" into oc-dev
Fabien Sanglard [Thu, 22 Jun 2017 19:56:29 +0000 (19:56 +0000)]
Merge "LibGUI remove DEBUG" into oc-dev

7 years agoDisable skip Validate on client composition
Fabien Sanglard [Thu, 22 Jun 2017 18:35:16 +0000 (11:35 -0700)]
Disable skip Validate on client composition

SurfaceFlinger should not skip validate when GLComposition is
needed. This can happen when SF decides to force GLComposition
(like when a screen rotation occurs).

Bug: 62906801
Test: Manual
Change-Id: I248146eade395a124cb149773287abd88ae36511

7 years agosurfaceflinger: discard stale commands
Chia-I Wu [Thu, 22 Jun 2017 17:48:28 +0000 (10:48 -0700)]
surfaceflinger: discard stale commands

When we skip validate, we may have stale commands on the command
buffer.  They should be discarded.

Bug: 62906801
Test: manual
Change-Id: Ie7921ba75ab2252b834cda6924e1fcfdf236f759

7 years agoLibGUI remove DEBUG
Fabien Sanglard [Thu, 22 Jun 2017 18:13:49 +0000 (11:13 -0700)]
LibGUI remove DEBUG

DEBUG_ONLY_CODE flag enables expensive checks such as
BufferQueueCore::validateConsistencyLocked() which when running
represents 15.1% of SurfaceFlinger total runtime. Enabling these
check for "eng" build only make "userdebug" build closer to "user".

Test: Manual
Bug: 62905241
Change-Id: I77065ecf4e62261c3f02b1cad9966d5c4845c639

7 years agoSkip Validate
Fabien Sanglard [Thu, 22 Jun 2017 05:58:06 +0000 (05:58 +0000)]
Skip Validate
am: 249c0ae80a

Change-Id: I336fce473d21e5fdfb80ad8eb48f1df5a24497d8

7 years agoSkip Validate
Fabien Sanglard [Tue, 20 Jun 2017 02:22:36 +0000 (19:22 -0700)]
Skip Validate

b/37474580
b/62806392

Test: marlin, ryu

Change-Id: I09e0c52cb7c914dcd883dc771d97a365c89f7037

7 years agoMerge "Update dumpstate binary file name" into oc-dr1-dev
Jibu Joseph [Thu, 22 Jun 2017 04:36:00 +0000 (04:36 +0000)]
Merge "Update dumpstate binary file name" into oc-dr1-dev

7 years agoMerge changes from topic 'vendor_available_libgui' into oc-dr1-dev
TreeHugger Robot [Wed, 21 Jun 2017 21:35:59 +0000 (21:35 +0000)]
Merge changes from topic 'vendor_available_libgui' into oc-dr1-dev

* changes:
  Make libgui available to vendors
  Mark EGL/GLES libs as vendor_available
  Change export_include_dirs into export_header_lib_headers

7 years agoMerge "Check key before edit value in countFlushCompleteEventsLocked" into oc-dr1-dev
TreeHugger Robot [Wed, 21 Jun 2017 20:42:24 +0000 (20:42 +0000)]
Merge "Check key before edit value in countFlushCompleteEventsLocked" into oc-dr1-dev

7 years agoUpdate dumpstate binary file name
Jie Song [Wed, 21 Jun 2017 20:26:00 +0000 (13:26 -0700)]
Update dumpstate binary file name

Keep modem_log_all.tar for a while for vendors

Bug: 62865279
Test: Verify file name in bugreport
Change-Id: Ia64f6c8e978877040eecfbc6066f0d741d91ddf3

7 years agoMerge "Add DVR method to get native display metrics" into oc-dr1-dev
Santos Cordon [Wed, 21 Jun 2017 17:53:06 +0000 (17:53 +0000)]
Merge "Add DVR method to get native display metrics" into oc-dr1-dev

7 years agoMerge "Avoid SELinux violation at vndservicemanager" into oc-dr1-dev
Martijn Coenen [Wed, 21 Jun 2017 13:55:22 +0000 (13:55 +0000)]
Merge "Avoid SELinux violation at vndservicemanager" into oc-dr1-dev

7 years agoMake libgui available to vendors
Jiyong Park [Wed, 21 Jun 2017 03:14:18 +0000 (12:14 +0900)]
Make libgui available to vendors

libgui is now available to vendors, especially for BufferQueue in
between the OMX and Camera HALs for encoding the captured video stream.

In doing so, its headers were moved from frameworks/native/include to
its local directory frameworks/native/libs/gui/include. This is required
because global include path is not supported when building for vendor.
However, in order not to affect platform modules that are still relying
on the global include path, symlinks are provided.

frameworks/native/include/gui -> frameworks/native/libs/include/gui
frameworks/native/include/private/gui ->
frameworks/native/libs/include/private/gui

Bug: 37731063
Test: BOARD_VNDK_VERSION=current m -j libgui.vendor
Change-Id: I0bab8d2e31959085ad58b1ce4c610334ee3da033

7 years agoMark EGL/GLES libs as vendor_available
Jiyong Park [Wed, 21 Jun 2017 03:26:51 +0000 (12:26 +0900)]
Mark EGL/GLES libs as vendor_available

EGL/GLES libs are marked as vendor_available, otherwise vendors are not
able to use OpenGL. The libs were not simply declared as LL-NDK because
doing so causes the dual loading of libui.so in vendor processes;
platform version of libui.so is loaded since it is depended by libEGL.so
whereas there also is vendor version of libui.so in /system/lib/vndk.

When libEGL.so is built for vendors, 1) libgraphicsenv is removed from
its dependency list as the lib must not be available to vendors and 2)
eglGetNativeClientBufferANDROID is unusable since the function relies on
AHardwareBuffer_to_ANativeWindowBuffer which isn't available to vendor.

Bug: 37731063
Test: BOARD_VNDK_VERSION=current m -j libEGL.vendor
Test: BOARD_VNDK_VERSION=current m -j libGLESv2.vendor

Change-Id: I83a128b14a5d852bb0f2cd821a8e3f82c66a313f

7 years agoChange export_include_dirs into export_header_lib_headers
Jiyong Park [Tue, 20 Jun 2017 04:51:22 +0000 (13:51 +0900)]
Change export_include_dirs into export_header_lib_headers

Remove the duplicated information that headers for libbinder is in the
'include' dir.

Test: m -j
Change-Id: I5527c2709ff9d3a996c619f973345e61407cd3f0

7 years agodumpstate: Add the 2nd fd for binary file
Jie Song [Tue, 20 Jun 2017 23:29:42 +0000 (16:29 -0700)]
dumpstate: Add the 2nd fd for binary file

Bug: 33820081
Test: Verify binary file is added in bugreport
Change-Id: Ibe1c219ca4bf288adcb76996c6178426a4d04333

7 years agoAvoid SELinux violation at vndservicemanager
Kouji Shiotani [Tue, 13 Jun 2017 06:40:54 +0000 (15:40 +0900)]
Avoid SELinux violation at vndservicemanager

Avoid following SELinux violation.

avc: denied { read } for comm="vndservicemanag"
name="nonplat_service_contexts" dev="rootfs" ino=17045
scontext=u:r:vndservicemanager:s0
tcontext=u:object_r:service_contexts_file:s0 tclass=file permissive=0
ppid=1 pcomm="init" pgid=1 pgcomm="init"

This violation caused by vndservicemanager reading service_contexts at
svcmgr_handler(). In main() loading as well, processing is divided by
the VENDORSERVICEMANAGER flag. Therefore, even in svcmgr_handler(),
processing is divided by flags like main().

Bug: 62562415
Test: mma
Change-Id: I06b0308a80fc6ea1ca57cd10d9555dd269b8e12d

7 years agoMake VR HWC DPI a configurable property
Kevin Schoedel [Tue, 20 Jun 2017 20:46:00 +0000 (16:46 -0400)]
Make VR HWC DPI a configurable property

Bug: 62833924
Test: temporary logging
Change-Id: I4e38ab9dd9ef6eb42813b3809dc38d1f103d2bf3

7 years agoMerge "surfaceflinger: fix a potential child layer leak" into oc-dev
Chia-I Wu [Tue, 20 Jun 2017 20:28:58 +0000 (20:28 +0000)]
Merge "surfaceflinger: fix a potential child layer leak" into oc-dev
am: 1b02b6329e

Change-Id: Ie2bd5a6d1d37bb5b7c7b679b8c472389ff619188

7 years agoMerge "surfaceflinger: fix a potential child layer leak" into oc-dev
TreeHugger Robot [Tue, 20 Jun 2017 20:15:29 +0000 (20:15 +0000)]
Merge "surfaceflinger: fix a potential child layer leak" into oc-dev

7 years agoCheck key before edit value in countFlushCompleteEventsLocked
Peng Xu [Tue, 20 Jun 2017 19:41:33 +0000 (12:41 -0700)]
Check key before edit value in countFlushCompleteEventsLocked

Fix an unchecked editValueFor that potentially causes log fatal
when sensor is removed from connection shortly before arrival of
flush complete message.

Bug: 62806749
Test: compiles, flush() still working.
Change-Id: I3684251b7bb746b01d0d8849024217c80ad52f9d

7 years agoAdd DVR method to get native display metrics
Stephen Kiazyk [Fri, 9 Jun 2017 21:26:31 +0000 (14:26 -0700)]
Add DVR method to get native display metrics

This seems like the kind of infomration we should be able to communicate
to vrcore.

Bug: 62494565
Test: Builds and loads, still need to test with vrcore
Change-Id: I2342fabcd2bcb8a34c0b783391b60defc381f3c6
(cherry picked from commit 6c5a92f142b5fa1907ff91a7dce4d09ddcb554c6)

7 years agoFix minor version bump reflected in lshal --init-vintf
Yifan Hong [Mon, 19 Jun 2017 22:47:39 +0000 (15:47 -0700)]
Fix minor version bump reflected in lshal --init-vintf

Test: lshal --init-vintf has no warnings, and power@1.1 / vibrator@1.1
      is shown in output.

Bug: 62675393
Change-Id: I1ffd8b6dc7fcadcf7228cf2b8838e918bb3afe6b
Merged-In: I1ffd8b6dc7fcadcf7228cf2b8838e918bb3afe6b

7 years agoMerge "Fix incorrect bitness for lshal --init-vintf" into oc-dr1-dev
TreeHugger Robot [Mon, 19 Jun 2017 21:27:01 +0000 (21:27 +0000)]
Merge "Fix incorrect bitness for lshal --init-vintf" into oc-dr1-dev

7 years agoFix incorrect bitness for lshal --init-vintf
Yifan Hong [Mon, 19 Jun 2017 19:27:08 +0000 (12:27 -0700)]
Fix incorrect bitness for lshal --init-vintf

Test: lshal --init-vintf, graphics.mapper has 32+64.

Change-Id: Ic586c8333064cc5636679ce8ad4e1231307191f4
Merged-In: Ic586c8333064cc5636679ce8ad4e1231307191f4
Fixes: 62675393

7 years agoMerge changes from topic 'layer-wp-race' into oc-dev
Chia-I Wu [Sat, 17 Jun 2017 01:58:33 +0000 (01:58 +0000)]
Merge changes from topic 'layer-wp-race' into oc-dev
am: a17b14eb92

Change-Id: I1af51f57255024d36e9cae5c221361f36cb28da4

7 years agoMerge changes from topic 'layer-wp-race' into oc-dev
TreeHugger Robot [Sat, 17 Jun 2017 01:51:06 +0000 (01:51 +0000)]
Merge changes from topic 'layer-wp-race' into oc-dev

* changes:
  surfaceflinger: Layer::getParent requires state lock held
  surfaceflinger: distinguish mCurrentParent/mDrawingParent
  surfaceflinger: protect Client::mParentLayer with a lock

7 years agosurfaceflinger: fix a potential child layer leak
Chia-I Wu [Thu, 15 Jun 2017 19:53:59 +0000 (12:53 -0700)]
surfaceflinger: fix a potential child layer leak

We should not remove a child layer from its already removed parent.
Call p->removeChild only after we've checked that the ancestor is
alive.

Apply e6b63e1ae12692327f7e46d5f10d6ade5a7bf192 and this fix to
SurfaceFlinger_hwc1.cpp as well.

Bug: 37121786
Test: manual stress test
Change-Id: I7b811450a998acc4ad9690bd4eda058ce6588e14