Use implementation-defined format when HWC writes to output buffer

When GLES isn't writing to the output buffer directly, request an
implementation-defined format with minimal usage flags, leaving the
format choice up to gralloc. On some hardware this allows HWC to do
format conversions during composition that would otherwise need to be
done (with worse power and/or performance) by the consumer.

Bug: 8316155
Change-Id: Iee6ee8404282036f9fd1833067cfe11dbadbf0bf
Add a boardconfig to force HWC composition of virtual displays

When this boardconfig is defined, even when all virtual display
composition is done by GLES, the HWC will be forced to copy from the
GLES framebuffer to the output buffer. On some hardware this allows
HWC to do format conversions that would otherwise have to be done by
the consumer, with worse power and/or performance.

Bug: 8316155
Change-Id: If980ecc589f138cef063eafa757f7f748196713e
Wait for buffers to drain

When a BufferQueue producer disconnects and reconnects, we retain
the previously-queued buffers but empty the slots.  This allows
the number of queued buffers to grow without limit.  The low-memory
killer does not approve.

Bug 11069934

Change-Id: Ia2eaa954c7a3904b54209a3701dba01689e204d8
am 85075869: Wait for buffers to drain

* commit '8507586903fa803abf535853a169913f2cf2e555':
  Wait for buffers to drain
Only consume touches up until the frame time

When resampling is disabled, it's currently possible to consume
touches after the current frame time. This breaks some guarantees and
could cause unexpected behaviors.

Change-Id: I99908a2cac2df9f795dd4a07188b4451213cf3e4
am 3223217a: Only consume touches up until the frame time

* commit '3223217aed6dcfa55b5b952cd6be71f70e41ba63':
  Only consume touches up until the frame time
Merge "Use implementation-defined format when HWC writes to output buffer" into klp-dev
Merge "Add a boardconfig to force HWC composition of virtual displays" into klp-dev
am c5807f90: Merge "Use implementation-defined format when HWC writes to output buffer" into klp-dev

* commit 'c5807f90f8e05227e6396f30b3ed91fc01392d9a':
  Use implementation-defined format when HWC writes to output buffer
am 93fcb823: Merge "Add a boardconfig to force HWC composition of virtual displays" into klp-dev

* commit '93fcb82361a1cd5ceb138f8331ad9cf11fc77c95':
  Add a boardconfig to force HWC composition of virtual displays
Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS

related to b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: I2dc8d65a74174aa833cc491264f97f1f2df49307
am c354effe: Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS

* commit 'c354effe97be26638618e3bc0da81a3f8b384b20':
  Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
Native counterpart of new power manager method

Cherrypicked from master.

b/9464621

Change-Id: I54c0ed50a57ac870da91db8589a73a2c792dbd8d
Bug fixes for SensorService

i) Emulate Flush for AOSP Fusion Sesnsors on newer HALs that support batching.
ii) Early return if there are no events for the current SensorEventConnection.

Bug: 11325707, 11376538

Change-Id: Idb856302463649a99d3d5d0c965bb06ba06b8e1d
am 708cc794: Native counterpart of new power manager method

* commit '708cc794f6ccd4d31e0a00a23b289272c665adc1':
  Native counterpart of new power manager method
Merge "Bug fixes for SensorService" into klp-dev
EGL: rename CallStack::dump into CallStack::log

Bug: 11324229
Change-Id: Ibac1be182c336e7aa5ac098f08d18b3c188964b4
am 46417b84: Merge "Bug fixes for SensorService" into klp-dev

* commit '46417b845a257d6725adf048a3cfad6306218e9b':
  Bug fixes for SensorService
Merge "EGL: rename CallStack::dump into CallStack::log" into klp-dev
am 40da5283: Merge "EGL: rename CallStack::dump into CallStack::log" into klp-dev

* commit '40da5283ebc6b5cf1e3820740dc274c47cc55f6d':
  EGL: rename CallStack::dump into CallStack::log