Commit Graph

1066 Commits

Author SHA1 Message Date
Dan Stoza
7143316af2 Fix virtual display nesting
This fixes the cycling rendering loop caused by nesting virtual
displays by preventing them from recomposing if their contents
haven't changed.

Bug: 12101046
Change-Id: I600365c0fd5d3ad93e04295d26cf9de177ffc79b
2014-02-04 16:46:54 -08:00
Andy McFadden
d592f32df9 Merge "Allow "opaque" flag to be updated" 2014-01-30 21:42:02 +00:00
Andy McFadden
4125a4ffaf Allow "opaque" flag to be updated
Moves the "opaque layer" from Layer to Layer::State.  This allows
it to be updated as part of a transaction.

Bug 12387406

Change-Id: I0a114ce6adf77cd12fb08f96e0691b76c475768d
2014-01-29 17:36:49 -08:00
Jesse Hall
ef11a6c887 am ade9a911: am f65ebc3b: am f5bcb391: Merge "SurfaceFlinger: mFbProducerSlot initailization"
* commit 'ade9a911d04dbd4bfbd3e80a917ea67a581b4797':
  SurfaceFlinger: mFbProducerSlot initailization
2014-01-28 18:26:56 +00:00
mayank parshar
fdfde88d0b SurfaceFlinger: mFbProducerSlot initailization
b/12487813

SurfaceFlinger crash is observed during simulation of
Secondary display

Note: change 14e8b01a76
removed the initialization leading to the crash when
simulating secondary display.  Restore the initialization
to solve the problem.

Change-Id: Iae5845fb82735e01de5cc0dc582d13c27e3c614f
Signed-off-by: mayank parshar <mayankp@broadcom.com>
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
2014-01-28 09:33:33 -08:00
Jesse Hall
467113c6fc am 25f75c36: am 8c303f7e: am fcf9c1ba: Merge "SurfaceFlinger: mFbFence initialization"
* commit '25f75c361098086ffa2b87dcc3f22ac5f64c05be':
  SurfaceFlinger: mFbFence initialization
2014-01-26 16:50:36 +00:00
mayank parshar
b988f85fc4 SurfaceFlinger: mFbFence initialization
MobC00383030
b/12487813

SurfaceFlinger crash is observed while connecting
to Wi-Fi display.

Note: change 14e8b01a76
removed the initialization leading to the crash when
running through the HWC composition path.  Restore the
initialization to solve the problem.

Change-Id: I581defc7135ac512080c0da06a62b1dae7d218c4
Signed-off-by: mayank parshar <mayankp@broadcom.com>
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
2014-01-25 06:35:24 -08:00
Jesse Hall
524672571f am 03691218: am e5f7bf74: am b6c21004: Merge "Implement per-display EGLConfig and configless EGLContext"
* commit '03691218ada2fb7e084ad4ae7ddd54f9b28d5611':
  Implement per-display EGLConfig and configless EGLContext
2014-01-03 18:36:29 +00:00
Jesse Hall
10ca42cbdc am 4c37d088: am 6c7dcfa9: am 662d3134: Merge "Move EGLConfig selection to RenderEngine"
* commit '4c37d0886ca06c290e205cad2798406361bbbf53':
  Move EGLConfig selection to RenderEngine
2014-01-03 18:36:28 +00:00
Jesse Hall
19e872912a Implement per-display EGLConfig and configless EGLContext
Bug: 12230666
Change-Id: Icca608b108cbdcab9cf01a9236d8cdbda000a836
Signed-off-by: Jesse Hall <jessehall@google.com>
2013-12-23 21:53:39 -08:00
Jesse Hall
05f8c703d4 Move EGLConfig selection to RenderEngine
Bug: 12230666
Change-Id: I8d1111a7e0fd9d9e2525e6a80da8ce46d7dd085d
Signed-off-by: Jesse Hall <jessehall@google.com>
2013-12-23 21:53:39 -08:00
Brian Carlstrom
494600a755 am 285bfefb: am c1bf6fa9: am 7fea2361: Merge "Track Looper decoupling from ALooper"
* commit '285bfefb01f24e98348628c115eb6c524417ea82':
  Track Looper decoupling from ALooper
2013-12-19 07:58:30 +00:00
Brian Carlstrom
fe761ab6c7 Track Looper decoupling from ALooper
Change-Id: I612f0de7002e24948a4cbbea7b416b4fbb3929aa
2013-12-12 23:54:43 -08:00
Aravind Akella
8850909038 Bug fix for SensorFusion data rate.
SensorFusion is always returning data at the slowest possible sampling rate (5 Hz). batch() is getting called twice, first time with the requested rate and second time with the slowest rate (which overwrites the requested rate). Fix batch call in SensorFusion::activate()

Bug: 12064319
Change-Id: If62f3e514233f69810336fd22b136b4395b667d3
2013-12-10 01:57:12 +00:00
Jesse Hall
324c69b542 am 1ee45c2d: am 14e8b01a: Don\'t change the framebuffer target until we render a new one
* commit '1ee45c2d2d816ee912624d81ff1b0aaa98e8fa74':
  Don't change the framebuffer target until we render a new one
2013-11-08 13:01:20 -08:00
Jesse Hall
14e8b01a76 Don't change the framebuffer target until we render a new one
Continuing to send the last-rendered framebuffer to HWC on subsequent
frames allows the HWC to read partially-composed regions that haven't
changed, instead of re-composing from scratch.

Bug: 11573910
Change-Id: I8829877d2a06001f1e1b3f168cbba71c7b217b2d
2013-11-07 12:37:13 -08:00
Jesse Hall
ad78055746 am 2d32aa59: am 356c2386: Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev
* commit '2d32aa5918de1c12c54a32e8eb28bbc96d430796':
  Provide virtual display output buffer to HWC in prepare
2013-11-06 21:12:40 -08:00
Jesse Hall
356c23865d Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev 2013-11-07 04:43:20 +00:00
Jesse Hall
45c9c0477d am f111ee13: am 49318631: Merge "Don\'t use implementation-defined format with CPU consumers" into klp-dev
* commit 'f111ee13a6f5d8606c5dc7a5cc07cedf929e69a8':
  Don't use implementation-defined format with CPU consumers
2013-11-06 08:52:02 -08:00
Jesse Hall
493186312a Merge "Don't use implementation-defined format with CPU consumers" into klp-dev 2013-11-06 15:35:09 +00:00
Jesse Hall
f7a675837b Provide virtual display output buffer to HWC in prepare
We were already making sure the HWComposer class had the handle before
prepare, but it wasn't passing the handle along to HWC as intended.

Partial fix for bug: 11430248
Change-Id: I25f672c4fdfaa6a81fe0acb24d9ad05153ee17dc
2013-11-05 16:27:14 -08:00
Jamie Gennis
1a8e6bf966 am 39c5ea2c: am ee874caa: Merge "DispSync: remove delay when enabling vsync events" into klp-dev
* commit '39c5ea2caaddd7ea44eaeed38d3760fbc421ad56':
  DispSync: remove delay when enabling vsync events
2013-11-05 12:02:26 -08:00
Jesse Hall
497ba0e085 Don't use implementation-defined format with CPU consumers
If the virtual display surface is being consumed by the CPU, it can't
be allowed with HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED since there is
no way for the CPU consumer to find out what format gralloc chose. So
for CPU-consumer surfaces, just use the BufferQueue's default format,
which can be set by the consumer.

A better but more invasive change would be to let the consumer require
a certain format (or set of formats?), and disallow the producer from
requesting a different format.

Bug: 11479817
Change-Id: I5b20ee6ac1146550e8799b806e14661d279670c0
2013-11-04 16:43:03 -08:00
Jamie Gennis
41c3c496ff DispSync: remove delay when enabling vsync events
This change fixes a bug that caused an extra frame of latency when enabling
vsync event callbacks in DispSync.  The bug was related to the logic that
prevents the two events from firing with very little time between them due to
updates to the vsync model.

Bug: 11479720
Change-Id: Ie7eaff9e92ffb7b7b6cb4d3d4402c96cbd29af7e
2013-11-01 13:58:56 -07:00
Aravind Akella
3d0c7797ac am 245c4339: am 46417b84: Merge "Bug fixes for SensorService" into klp-dev
* commit '245c43395b9bb6502e0a4bcde4c60ad9541e5ce2':
  Bug fixes for SensorService
2013-10-25 18:12:58 -07:00
Aravind Akella
46417b845a Merge "Bug fixes for SensorService" into klp-dev 2013-10-25 23:16:59 +00:00
Aravind Akella
b4099e77ec 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
2013-10-25 13:58:58 -07:00
Marco Nelissen
708cc794f6 Native counterpart of new power manager method
Cherrypicked from master.

b/9464621

Change-Id: I54c0ed50a57ac870da91db8589a73a2c792dbd8d
2013-10-25 12:50:04 -07:00
Jesse Hall
45cb6ec715 am 96002be4: am c354effe: Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
* commit '96002be4bd4b8bbfecba2cc45bdf0b47f06464bc':
  Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
2013-10-25 10:55:24 -07:00
Jesse Hall
c354effe97 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
2013-10-25 17:48:09 +00:00
Jesse Hall
6fdaaf5c7c am a54a8b63: am 93fcb823: Merge "Add a boardconfig to force HWC composition of virtual displays" into klp-dev
* commit 'a54a8b63d191d2c1c4669f89b32c4b8a9c04cd31':
  Add a boardconfig to force HWC composition of virtual displays
2013-10-23 15:20:43 -07:00
Jesse Hall
014dd9f0f2 am 48775386: am c5807f90: Merge "Use implementation-defined format when HWC writes to output buffer" into klp-dev
* commit '487753868aa86902f723dbdedd7083783701188d':
  Use implementation-defined format when HWC writes to output buffer
2013-10-23 15:20:42 -07:00
Todd Poynor
7014fbd700 batteryservice: remove BatteryProperties fields not sent to BatteryService
Change-Id: I1116ebf0e21117fd37df7bfc41cb8ebaf9361faa
2013-10-22 23:18:36 +00:00
Marco Nelissen
8938550af4 Merge "Native counterpart of new power manager method" 2013-10-18 14:28:55 +00:00
Naseer Ahmed
6a968462f9 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
2013-10-17 13:57:58 -07:00
Jesse Hall
1e27ba234c 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
2013-10-17 11:20:22 -07:00
Marco Nelissen
5c0106e134 Native counterpart of new power manager method
Change-Id: I54c0ed50a57ac870da91db8589a73a2c792dbd8d
2013-10-16 12:57:32 -07:00
Jamie Gennis
cd65a2c51e am bbfbe93c: am 0a645cc5: SurfaceFlinger: give SF its own vsync phase
* commit 'bbfbe93c0d2d6c7818e23219d2925f02ddf5bd92':
  SurfaceFlinger: give SF its own vsync phase
2013-10-15 17:29:21 -07:00
Jamie Gennis
5727fc08ba am 47c772e8: am d1700756: SurfaceFlinger: Add EventControlThread
* commit '47c772e8ec28eb0a3df9c8edd252f292c7c8e152':
  SurfaceFlinger: Add EventControlThread
2013-10-15 17:29:21 -07:00
Jesse Hall
c6694b4cb4 resolved conflicts for merge of e94d204a to master
Change-Id: Idb2030dbb25a2e4b972492587558b25a305e68bd
2013-10-15 17:22:33 -07:00
Jamie Gennis
0a645cc5a9 SurfaceFlinger: give SF its own vsync phase
This change allows SurfaceFlinger to run at a different vsync phase offset from
that used by external listeners.

Bug: 11175503
Change-Id: I561c53a5659fa6dc1e3e4ae30340f3c1a6adceb4
2013-10-15 14:31:41 -07:00
Jamie Gennis
d1700756ec SurfaceFlinger: Add EventControlThread
This change adds a new thread for calling HWComposer's eventControl
asynchronously.  The DispSync-based vsync approach ends up enabling and
disabling HWComposer's vsync callbacks at arbitrary times, and some HWComposer
implementations do not have these calls optimized.

Bug: 11175503
Change-Id: I719be82bd200b391c61d40863b991c7b59acdfd6
2013-10-15 14:31:41 -07:00
Jesse Hall
247423751f Merge "Disable hardware vsync when blanking the screen" into klp-dev 2013-10-15 19:53:11 +00:00
Aravind Akella
e276feb813 am 487c7815: am 641a1868: Merge "SensorService Flush API bug fix." into klp-dev
* commit '487c7815d7d81570c4f2cf37ceddf10ec84e0c39':
  SensorService Flush API bug fix.
2013-10-15 10:07:23 -07:00
Aravind Akella
641a18688b Merge "SensorService Flush API bug fix." into klp-dev 2013-10-15 17:01:55 +00:00
Jesse Hall
adbb3062e1 am a04fd39c: am 8e26b28b: Filter out vsync events from HWC with duplicate timestamps
* commit 'a04fd39cb88bb6df5f639464f70795f58cd0aefa':
  Filter out vsync events from HWC with duplicate timestamps
2013-10-15 05:05:36 -07:00
Aravind Akella
c551eac5b1 SensorService Flush API bug fix.
SensorService is dead locking itself when flush is called on older devices which don't support batching. mConnectionLock is acquired twice.

Change-Id: I5c25585bfb2b396df4b05826a9cba1da7997a3ee
2013-10-14 17:09:19 -07:00
Jesse Hall
948fe0ce74 Disable hardware vsync when blanking the screen
Bug: 11220224
Change-Id: I99d0a42e1a6bb0aaf89706f6d100e9ef2a5deaa4
2013-10-14 16:25:01 -07:00
Jesse Hall
8e26b28be6 Filter out vsync events from HWC with duplicate timestamps
Bug: 11220224
Change-Id: I4efe0b66ea8969bf0ec3c4fcb325d354c8a0c315
2013-10-14 15:34:00 -07:00
Jesse Hall
4df2dae1c9 am 44b09f8b: am 44e45cfe: Merge "DispSync: don\'t compensate for wakeup latency" into klp-dev
* commit '44b09f8b55bef56e06ad584db231916c17e30f5b':
  DispSync: don't compensate for wakeup latency
2013-10-14 10:51:54 -07:00