Commit Graph

1269 Commits

Author SHA1 Message Date
Lajos Molnar
67d8bd66aa surfaceflinger: add getDisplayStats() method
This is used by media service to schedule video frames at the
proper time, based on precise vsync timings.

Bug: 14659809
Change-Id: I1a90603f3dc09dca9aa4f90a3aa845fab56e0a5e
2014-09-18 17:03:20 -07:00
Aravind Akella
0ec2066e47 SensorService fixes.
i) Initialize sensor_event.flags to zero or wake_up flag before sending dropped flush_complete_events. This will avoid unnecessary acks. 
Currently it is not set to anything which may result in garbage values for flags field.
   ii) Change the dump format of SensorEventConnection.
   iii) Add const to method signatures wherever applicable.

Bug id: https://b2.corp.google.com/issues/17498626

Change-Id: Ia736ffb01c366540aab73cdcf596ce852c052593
2014-09-15 20:32:21 +00:00
Aravind Akella
8493b79e1c SensorService fixes
i) Significant Motion multiple clients fix. Make a copy of
  mActiveConnections vector before cleaning up SensorEventConnections
  when one-shot sensors trigger.
  ii) Maintain a mapping between flush_complete_events and
  SensorEventConnections to accurately map flush() API calls and
  corresponding flush_complete_events
  iii) Remove all references to 1_1 and 1_2 HALs.
  iv) Dynamically allocate sensor_event buffers in SensorService main
  threadLoop.

Bug: 17412359
Change-Id: If3c3986197660cafef2d2e0b4dc7582e229cf1c4
2014-09-10 18:24:18 -07:00
Riley Andrews
c3ebe66b49 Add rotation to surfaceflingers screen cap.
+ This is needed so that activity manager does not
  have to do cpu side rotations when capturing recents
  thumbnails.

Change-Id: If998008e675ad01305db8399fd643cf4608b7025
2014-09-09 03:51:16 +00:00
Glenn Kasten
a602086872 Make IPowerManager native conform to .aidl for oneway
But provide a temporary escape hatch for AudioFlinger.
This oneway option will be removed as soon as possible.

Bug: 16408906
Change-Id: I20d6da1969ae05b96e72795463470eb4c1f8fbdc
2014-09-05 17:12:24 -07:00
Aravind Akella
253c4720af Merge "SensorService flush fixes." into lmp-dev 2014-09-05 19:53:36 +00:00
Eric Laurent
437353a0ef Merge "IPowerManager: make all binder call one way" into lmp-dev 2014-09-05 17:30:05 +00:00
Eric Laurent
f20c329a8a IPowerManager: make all binder call one way
make all binder call to power manager service one way so that
they don't block calling thread and are processed in the
incoming order.

Bug: 16408906.
Change-Id: I94034df7f0a36d967e085b53fdc37fff7b44757b
2014-09-05 09:14:19 -07:00
Aravind Akella
9e3adfcebf SensorService flush fixes.
i) Fix a possible race condition when adding a pending flush connection
 to mActiveSensors data structure.
 ii) Invalidate flush_complete_events as soon as they are consumed by a
 connection so that they are not used by other connections which are
 registered for the same sensor.

Change-Id: I1491bea8c2081c4aab1feacc60add13b7aa26bb7
2014-09-03 18:24:05 -07:00
Michael Wright
3da3b8436c Fix type for temp variable
Change-Id: I8e2d229da326e5182692f94660336169fb249da7
2014-08-29 16:16:26 -07:00
Michael Wright
bcbf97ef8f Add logging for switch state
Bug: 17004602
Change-Id: I15c9feb7b28274183742936c20e34e7fb07e0b70
2014-08-29 14:31:32 -07:00
Jesse Hall
4d407a0f05 surfaceflinger: Trace HW vsync enable
This makes it possible to tell whether two HW vsync signals are too
far apart because one was late, or because we turned HW vsync off
briefly between them.

Bug: 17259382
Change-Id: If4fba2a8a6013568349949ce87c5c36f0468d2a2
2014-08-25 16:05:01 -07:00
Aravind Akella
5466c3d20d SensorService fixes
1) Limit maxEventsToWrite depending on the size of the socket
     buffer allocated (Fix for write failure on manta).
     2) Do not call flush() if the sensor is not activated (OEM issue).

Change-Id: I81ea78dbdef3a3773af505ca1c9a5e39492c0b48
2014-08-22 17:09:23 -07:00
Michael Lentine
eb21986df0 Merge "Update currentConfig variable when active display is changed." into lmp-dev 2014-08-22 16:34:14 +00:00
Michael Lentine
d3e6914cea Update currentConfig variable when active display is changed.
Bug: 17182607
Change-Id: I8631c105a9e0fa402a7d9670717becc9857af935
2014-08-21 14:43:13 -07:00
Aravind Akella
e74baf6ca7 SensorService fixes.
i) Add more debug stats (acks needed, acks received)
  ii) Comment out write failure message.

Change-Id: Iac892a66530849a2dd023d6f5628cd070a79537d
2014-08-21 12:28:35 -07:00
Jesse Hall
d4548dd027 am 514e30a9: am c3d1889e: Merge "surfaceflinger: skip composition for empty frames" into klp-modular-dev
* commit '514e30a96cefad109509ce01622fa7f82f3f318c':
  surfaceflinger: skip composition for empty frames
2014-08-20 20:02:02 +00:00
Jesse Hall
514e30a96c am c3d1889e: Merge "surfaceflinger: skip composition for empty frames" into klp-modular-dev
* commit 'c3d1889e508038efe240ed1974ed377a2e12835c':
  surfaceflinger: skip composition for empty frames
2014-08-20 19:52:40 +00:00
Naseer Ahmed
949ea0868d sf: Clear display configs when hot pluggable display is disconnected
Display configs for external displays are stored in the framework
everytime we receive a hot plug to connect. However, since the
configs are not cleared on disconnect, framework will just assume
that the configs are valid. This does not work for use cases when
you connect/disconnect external displays with different resolutions.

e.g. 1080p to 4K and vice-versa

With this change we clear the display configs and repopulate when
we receive a hot plug to connect.

Change-Id: I2eeab186a8d8668a53390a2413b2ce5e044a1845
Acked-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2014-08-20 15:10:14 -07:00
Michael Lentine
4d7c41008d Merge "Destroy eglSurface before recreating." into lmp-dev 2014-08-19 22:53:25 +00:00
Michael Lentine
f2568dea41 Destroy eglSurface before recreating.
Bug: 16856208

Change-Id: Ifb5c8997afab4bc922356a3542d1f899a2546855
2014-08-20 10:56:34 -07:00
Michael Lentine
7b90258c7b Fix inverse orientation when original is not applied first.
Change-Id: I6f1a11950c77c99800acbf08a672bc1b2310b0b5
2014-08-19 18:16:01 -07:00
Michael Lentine
1440963470 Fix camera orientation by swapping horizontal and vertical flips when needed.
Bug: 16637957

Change-Id: I66de597546fdc19e0af9e6150ca20460ab36bf8b
2014-08-19 16:16:35 -07:00
Jesse Hall
b7a0549c98 surfaceflinger: skip composition for empty frames
By not committing the results of composition for empty frames, we
avoid spitting out series of black frames for virtual displays that
don't have visible layers. We still draw one black frame when going
from having layers to not having any. In particular, this avoids
having a series of empty frames due to re-compositing the primary
display in the period between creating the virtual display and adding
layers to it.

Bug: 16786752
Change-Id: I7e9b2ed2e407d8d49c7af736b447d4c6181b0ad8
2014-08-19 22:15:43 -07:00
Michael Lentine
f755140794 Incorporate TransformToDisplayInverse into the crop calculation.
Change-Id: Ia9757b3a43d3b8f99df9fef2ed4d11c43b5abdd2
2014-08-18 16:35:43 -07:00
Michael Lentine
2cfbef255b Merge "Fix inverse orientation when original is not applied first." into lmp-dev 2014-08-19 22:53:25 +00:00
Michael Lentine
62205596b9 Merge "Fix camera orientation by swapping horizontal and vertical flips when needed." into lmp-dev 2014-08-19 02:43:23 +00:00
Michael Lentine
b3abe7c06a Merge "Incorporate TransformToDisplayInverse into the crop calculation." into lmp-dev 2014-08-19 15:47:37 +00:00
Aravind Akella
a54f3b2f4a Merge "SensorService fixes." into lmp-dev 2014-08-18 21:31:41 +00:00
Riley Andrews
866399093f Take advantage of sync points during screen cap.
Do not wait for the screen capture to complete within surface flinger,
instead pass a sync point back with the captured gralloc buffer.

Change-Id: I7137c0e0fc710688d1d61f189159418fb27ea263
2014-08-19 19:27:14 +00:00
Aravind Akella
6c2664ae34 SensorService fixes.
1) Flush should only be received by the app calling flush(). Maintain
      a queue of all flush() calls and send flush_complete events in that
      order.
   2) Log warnings for older HALs. Remove batch() calls with DRY_RUN flag.
   3) Reallocate event cache when more sensors register and the desired
      maxCacheSize increases. Clear NEEDS_ACK flag in the buffer whenever
      there is a write() failure.
   4) More dump information. Add wake-up flag, maxDelay and timestamps for
      sensor events.

Bug: 16874778
Change-Id: I195646191059fd31f75f2f07886c0f98bf9b509a
2014-08-19 11:18:25 -07:00
Michael Wright
62fbb16383 Shelve InputFlinger for another release. DO NOT MERGE
Change-Id: I0f034a2b8b1d9192f61f5001799bd3aa4b3964c7
2014-08-18 10:17:18 -07:00
Michael Lentine
25db8dc7c6 Merge "Change output format to not throw warning on volantis." into lmp-dev 2014-08-06 23:49:20 +00:00
Michael Lentine
b54ee7704e Change output format to not throw warning on volantis.
Change-Id: Id66eb61bdb1ceccfb7aefa0aa70793dac807c257
2014-08-07 14:54:23 -07:00
Michael Lentine
5af281f4ab Fix HWComposer Surface Crop when surface is rotated
Bug: 15091149

Change-Id: I97ecd8af9636da9403fafdb3f9b846f95053ebb7
2014-08-07 13:44:14 -07:00
Michael Lentine
5a35059600 Merge "Fix HWComposer Surface Crop when surface is rotated" into lmp-dev 2014-08-07 15:00:45 +00:00
Michael Wright
78f2444aaf Revert "Revert "Add system accelerators for BACK and HOME.""
This reverts commit d671f98a27.

Change-Id: Ibec48f81653bd2f755fc59a241fa7836baf53233
2014-08-06 16:59:54 -07:00
Michael Wright
d671f98a27 Revert "Add system accelerators for BACK and HOME."
This reverts commit 278b525d25.
2014-08-06 15:50:43 -07:00
Michael Wright
278b525d25 Add system accelerators for BACK and HOME.
Meta+Backspace -> BACK
Meta+Enter -> HOME

Bug: 14066931
Change-Id: Iff1d027300fa9911626785944a6d8efe4f62235e
2014-08-06 19:01:19 +00:00
Eric Penner
a02e9484be Merge "SurfaceFlinger: Prevent deadlock by updating an atomic layer set." into lmp-dev 2014-07-29 21:36:00 +00:00
Eric Penner
51c59cd1e7 SurfaceFlinger: Prevent deadlock by updating an atomic layer set.
Bug: 12934849

Change-Id: I9dede7316f1e967de4140bd731ac810115ea302f
2014-07-30 19:05:38 -07:00
Michael Lentine
9ae79d869a Build fix for size_t on 64bit.
Change-Id: Ic16895b30d78ba8a635b709adbae31a590501b20
2014-07-30 16:42:12 -07:00
Michael Lentine
258ee43fbc Build fix for printf with int64 and size_t
Change-Id: I642584cce7dd43e6d491a49228b0bce047d53354
2014-07-30 16:24:48 -07:00
Michael Lentine
fd9d183cd8 Build fix to use the correct source.
Change-Id: If36710be600dd0e15c31682e0343f281baa55627
2014-07-30 15:39:17 -07:00
Michael Lentine
7306c670eb Add error for format and make sure setActiveConfig fails with an invalid mode.
Change-Id: Iacdb5cbad125787f96c64c88d432fc541c4cad1a
2014-07-30 14:36:25 -07:00
Michael Lentine
47e45405d1 Allow for resizing of Virtual Displays.
Modify SurfaceFlinger to use VirtualDisplaySurface in all cases when a virtual
display is used. Add functionality in VirtualDisplaySurface to resize the
buffers aquired in the QueueBufferOutput. Add transaction support in
SurfaceFlinger for resize. Add the modification of the size in DisplayDevice.

Change-Id: Iae7e3556dc06fd18d470adbbd76f7255f6e6dd6b
Tested: None
2014-07-30 14:36:25 -07:00
Michael Wright
1f6078aef7 Have VirtualDisplays send SF resize messages when resizing
Change-Id: I76d15b22099a659450ec875836c9bf2b6584838f
2014-07-30 11:23:44 -07:00
Michael Lentine
6c9e34a98a Modified SurfaceFlinger to implment setActiveConfig and getActiveConfig.
This can be used to change the current display mode of the device.

Change-Id: Icdc3fb58389b861dc77b68102083da6f7a96eccb
Tested: None
(cherry picked from commit 2651fa9463)
2014-07-29 16:56:30 +00:00
Riley Andrews
03414a1cfe Turn on support for async cursor update in surfaceflinger.
If available, surfaceflinger will use the hwc setCursorPositionAsync()
api to change the position of supported cursor layers outside of
the usual prepare/set loop.

Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
2014-07-28 22:07:41 +00:00
Aravind Akella
56ae42613c SensorService performance improvements.
i) Send ack for wake_up sensors on the socket connection instead of using Binder RPC.
  ii) Cache events per connection in case there are write failures. Compute cache size
      from FIFO counts of sensors.
 iii) Send FlushCompleteEvent only for apps that explicitly called flush().

Change-Id: I018969736b7794b1b930529586f2294a03ee8667
2014-07-24 17:23:01 -07:00