Commit Graph

986 Commits

Author SHA1 Message Date
Mark Salyzyn
d4dabf872a am cdbf28b3: Merge "native frameworks: 64-bit compile issues"
* commit 'cdbf28b3f7f5327f4cb0eb95b8326bf4c24c87ba':
  native frameworks: 64-bit compile issues
2014-03-13 15:26:10 +00:00
Mark Salyzyn
92dc3fc52c native frameworks: 64-bit compile issues
- Fix format (print/scanf)
- Suppress unused argument warning messages (bonus)

Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
2014-03-12 13:12:44 -07:00
Dan Stoza
88a459a9b3 VirtualDisplaySurface: no attach/detach support
Change-Id: I630dd6e352940318c33a4e072d2f33a6ec58c556
2014-03-12 09:34:36 -07:00
Dan Stoza
c9ed7d3768 Merge "BufferQueue: Allow detaching/reattaching buffers" 2014-03-11 23:47:15 +00:00
Jesse Hall
399184a4cd Add sideband streams to BufferQueue and related classes
Sideband streams are essentially a device-specific buffer queue that
bypasses the BufferQueue system. They can be used for situations with
hard real-time requirements like high-quality TV and video playback
with A/V sync. A handle to the stream is provided by the source HAL,
and attached to a BufferQueue. The sink HAL can read buffers via the
stream handle rather than acquiring individual buffers from the
BufferQueue.

Change-Id: Ib3f262eddfc520f4bbe3d9b91753ed7dd09d3a9b
2014-03-11 12:23:14 -07:00
Dan Stoza
9f3053de78 BufferQueue: Allow detaching/reattaching buffers
Adds detachBuffer and attachBuffer calls to both the producer and
consumer sides of BufferQueue. Buffers may be detached while dequeued
by the producer or acquired by the consumer, and when attached, enter
the dequeued and acquired states, respectively.

Bug: 13173343
Change-Id: Ic152692b0a94d99e0135b9bfa62747dab2a54220
2014-03-10 16:45:38 -07:00
Alan Viverette
cd554e36a8 Don't simulate color space after correction
Change-Id: Ied0918ffa2be5f9382e693f442b142b3e068e735
2014-03-10 12:43:49 -07:00
Greg Hackmann
55886cb128 am 7429e4f7: am 112aa42e: Merge "SurfaceFlinger: fix 64-bit format string warnings"
* commit '7429e4f7d43cd42563ce77a3a4a861a392bc750f':
  SurfaceFlinger: fix 64-bit format string warnings
2014-03-08 07:28:19 +00:00
Greg Hackmann
7429e4f7d4 am 112aa42e: Merge "SurfaceFlinger: fix 64-bit format string warnings"
* commit '112aa42e91b4bb0cde334753e2ad05e3f248b377':
  SurfaceFlinger: fix 64-bit format string warnings
2014-03-08 01:56:32 +00:00
Greg Hackmann
86efcc0cbc SurfaceFlinger: fix 64-bit format string warnings
Change-Id: Idacfbf0601743fba1c5de7632201a66a307a2710
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-03-07 12:45:13 -08:00
Wonsik Kim
e4cf2f20dd Merge "Implement video plane layer" 2014-02-27 00:09:56 +00:00
Wonsik Kim
f837c93a1b Implement video plane layer
Binding with video source will follow.

Change-Id: Ic14e9757f5b61f4055cbeda47c1bafae0a621abb
2014-02-27 00:08:22 +00:00
Jesse Hall
a9d27063a1 am 9d65631f: am c9bf3ba4: Merge "Virtual Display async mode is overridden"
* commit '9d65631f5de153b50331d9f63225fe60ba70f8bc':
  Virtual Display async mode is overridden
2014-02-25 21:57:51 +00:00
Jesse Hall
9d65631f5d am c9bf3ba4: Merge "Virtual Display async mode is overridden"
* commit 'c9bf3ba411c66dd1d977c81f1aca08109cbf8c86':
  Virtual Display async mode is overridden
2014-02-25 21:51:10 +00:00
John Dong
4ee5696dfb Virtual Display async mode is overridden
Virtual Display async setting is overridden by eglApi.c causing
stall during composition.

Set the async mode after eglCreateWindowSurface()

b/13139121

Change-Id: I336ca145552e387217cd8bea6e4b7f5f490a274d
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
2014-02-21 16:10:54 -08:00
Colin Cross
d14b0c1860 am 361d9df3: am 6b4ecf31: Merge "surfaceflinger: add BoardConfig.mk variable to force 32-bit"
* commit '361d9df38cf9760baffc863d5364a1df9cf8be6b':
  surfaceflinger: add BoardConfig.mk variable to force 32-bit
2014-02-21 13:54:24 +00:00
Colin Cross
361d9df38c am 6b4ecf31: Merge "surfaceflinger: add BoardConfig.mk variable to force 32-bit"
* commit '6b4ecf314461067c0e05130edaf785fb010f471a':
  surfaceflinger: add BoardConfig.mk variable to force 32-bit
2014-02-21 00:22:18 +00:00
Colin Cross
89450d45ac surfaceflinger: add BoardConfig.mk variable to force 32-bit
Individual devices may need to force surfaceflinger to compile for
32-bit if they don't have 64-bit GL libraries.

Change-Id: I3703b2f8e36e90cf125d9ed5e6318c3506861948
2014-02-20 15:37:14 -08:00
Andy McFadden
44c35ec4a9 Allow "opaque" flag to be updated. DO NOT MERGE
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-02-18 15:55:42 -08:00
Dan Stoza
c701401f8c Allow disabling layer rotation during screenshots
Add the ability to ignore layers' transformation matrices during
screenshot capture, which will allow the window manager to capture
unrotated images for recents during the device rotation animation.

Bug: 11805195
Change-Id: I854d87bc84ca06ef9a054a454af1c080ee66fbb8
2014-02-14 23:10:42 +00:00
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
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
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
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
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
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
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
Andy McFadden
9c8b3097e6 am af4ae923: am 6410c8c4: Merge "Use black for blackout layer" into klp-dev
* commit 'af4ae923c3f8a2e40d74eb6291da16b4a6514449':
  Use black for blackout layer
2013-10-14 10:48:32 -07:00
Jesse Hall
44e45cfeb3 Merge "DispSync: don't compensate for wakeup latency" into klp-dev 2013-10-13 20:13:59 +00:00
Andy McFadden
6410c8c409 Merge "Use black for blackout layer" into klp-dev 2013-10-11 21:39:49 +00:00
Andy McFadden
c6f2169559 Use black for blackout layer
SurfaceFlinger was rendering dark purple for secure content, which
showed up when we took a screen shot for the orientation change
animation.  Use black instead.

Bug 11157921

Change-Id: I3895e8168891d49dc5b84eed599bcd0a303bb70a
2013-10-11 11:16:03 -07:00
Jesse Hall
19cd5bc78c am 8c76d2a1: am 5c65efe2: Merge "Wake up disp sync thread when setting display period" into klp-dev
* commit '8c76d2a16ede579fd2069647ff73591bb6d6a235':
  Wake up disp sync thread when setting display period
2013-10-10 16:08:22 -07:00
Jesse Hall
5c65efe2b1 Merge "Wake up disp sync thread when setting display period" into klp-dev 2013-10-10 22:24:32 +00:00
Jesse Hall
72f69d9f23 Wake up disp sync thread when setting display period
Bug: 10624956
Change-Id: I272c15f319521bfbd1bb70451366c7dd84d60bf9
2013-10-10 14:48:22 -07:00
Andy McFadden
95e4a7d9f3 am c00ab7b5: am 2d8d120d: Fix blank / partial screenshots
* commit 'c00ab7b5aafb7625ad7ebd2af107936df3efc98b':
  Fix blank / partial screenshots
2013-10-10 08:38:36 -07:00
Jamie Gennis
0d5c60edf1 DispSync: don't compensate for wakeup latency
This change removes the wakeup latency compensation from the software-generated
vsync events.  Choreographer can't handle timestamps in the future, so don't
aim for early wake-ups with the expectation that the actual wake-up will be
late.

Bug: 11153576
2013-10-09 17:56:42 -07:00
Andy McFadden
2d8d120dc1 Fix blank / partial screenshots
The screen capture code wasn't waiting for the render to finish,
so sometimes you'd see an empty or partial image.

Bug 11131777

Change-Id: Ic64087322ce3bb15bb5f4fb1eb07579880fe6197
2013-10-09 16:38:02 -07:00
Jamie Gennis
b85d2cf0a2 resolved conflicts for merge of 790b6d09 to master 2013-10-08 17:50:36 -07:00
Jamie Gennis
faf77cce9d SurfaceFlinger: SW-based vsync events
This change adds the DispSync class, which models the hardware vsync event
times to allow vsync event callbacks to be done at an arbitrary phase offset
from the hardware vsync.  This can be used to reduce the minimum latency from
Choreographer wake-up to on-screen image presentation.

Bug: 10624956
Change-Id: I8c7a54ceacaa4d709726ed97b0dcae4093a7bdcf
2013-10-07 17:59:53 -07:00
Alan Viverette
794c5ba973 Simplify color adjustment using homogeneous coordinates
Change-Id: Ie31abacb134c29d82a6041fa7d521f68a1a273af
2013-10-03 16:40:52 -07:00
Dave Burke
c5214289d6 am 9b4b1180: am 06993503: Merge "only clear FB when asked for the opaque layer" into klp-dev
* commit '9b4b1180941f4d2ef9d3e7bd26bc1855ff9fb141':
  only clear FB when asked for the opaque layer
2013-10-02 10:44:44 -07:00
Dave Burke
0699350336 Merge "only clear FB when asked for the opaque layer" into klp-dev 2013-10-02 17:36:40 +00:00
Jesse Hall
fee52e20b9 am f3fa0712: am 93573e91: Merge "Treat composition frames with no layers as using GLES composition" into klp-dev
* commit 'f3fa0712282e760c316f44cba05f884f9399b98f':
  Treat composition frames with no layers as using GLES composition
2013-10-02 09:57:03 -07:00
Jesse Hall
10a9ca1c69 am 72d270c5: am b716e570: Set the outbuf acquire fence after we actually have it.
* commit '72d270c5f0918d1dc7a6a1774b80469c9f28b7ea':
  Set the outbuf acquire fence after we actually have it.
2013-10-02 09:57:02 -07:00
Jesse Hall
93573e91c2 Merge "Treat composition frames with no layers as using GLES composition" into klp-dev 2013-10-02 14:54:03 +00:00
Jesse Hall
0c6fd94c13 am 92d7c3ee: am b65f32eb: Fix two EGLConfig selection bugs
* commit '92d7c3ee03109cf2d465a103b828b7d7d3ee9848':
  Fix two EGLConfig selection bugs
2013-10-01 20:58:49 -07:00
Jesse Hall
b716e57048 Set the outbuf acquire fence after we actually have it.
In GLES-only mode, we don't have the outbuf acquire fence until after
GLES composition is done for the frame. We were setting the fence in
HWC's state immediately after dequeueing the buffer from the consumer,
before GLES had started. This fence got passed through HWC and on to
the consumer, so the consumer was reading the buffer before GLES was
done writing to it.

Now we update HWC's state just before set(), when we know we have the
right fence.

Bug: 11000763
Change-Id: Iea9db4c69634c352dc2d600f0bdb6bef2a432636
2013-10-01 17:25:20 -07:00
Mathias Agopian
ac68302e1c only clear FB when asked for the opaque layer
a layer need to be considered NOT opaque if it has a
plane-alpha.

Bug: 10846930
Change-Id: Ibd8981b63ede4560c7096bacc4cff46a7eb2a8bb
2013-10-01 15:36:52 -07:00
Jesse Hall
d05a17fbb3 Treat composition frames with no layers as using GLES composition
When there are no window layers for a display, SurfaceFlinger clears
the undefined region using GLES. Some of the places that check for
GLES composition weren't considering this special case, in particular:

- We were skipping the eglSwapBuffers() on these frames.
- We were putting VirtualDisplaySurface in HWC-only composition mode.

This change centralizes the logic for this special case.

Bug: 10957068
Change-Id: I2deaf2ed101e8ea76708862a6bb67751b6078794
2013-09-30 17:08:28 -07:00
Jesse Hall
b65f32ebe2 Fix two EGLConfig selection bugs
This fixes two bugs introduced by
  Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d

(a) There is no invalid EGLConfig value, in particular zero is valid.
    Checking return values of eglGetConfigs and eglChooseConfig is the
    only way to determine success.
(b) The "simple" EGLConfig query used as the emulator fallback should
    not include EGL_RECORDABLE; the emulator doesn't have it.

Bug: 10935622
Change-Id: Ib798a24e7cf06a679811c46eaa45d39174a715ec
2013-09-30 10:49:16 -07:00
Mathias Agopian
ff98f3e598 am 338acd68: am 86206b41: Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev
* commit '338acd6869532f2684cbd1e4f273eaffc6d4ef6d':
  fix initialization of framebuffer target crop rect on hwc 1.3
2013-09-26 12:47:35 -07:00
Mathias Agopian
2b3d0c4079 am 0ff4b283: am 6da15f46: fix crashers with wifi/virtual displays
* commit '0ff4b28396d77a0ed2f191836895a891108a8b5b':
  fix crashers with wifi/virtual displays
2013-09-26 12:47:35 -07:00
Mathias Agopian
86206b41b2 Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev 2013-09-26 19:41:22 +00:00
Mathias Agopian
8f63c2049b fix initialization of framebuffer target crop rect on hwc 1.3
Bug: 10936771
Change-Id: If283e5e231ca34b93e0b1784bb4e8e4c7bfd75de
2013-09-25 20:44:34 -07:00
Mathias Agopian
6da15f46f5 fix crashers with wifi/virtual displays
Bug: 10647742
Change-Id: I4b8ed9da52ef95af3a3b3a04b98514a3776a674d
2013-09-25 20:40:07 -07:00
Mathias Agopian
1c479c56da am 754bad45: am d555684c: reinstate black-screenshot debugging code
* commit '754bad4534e9a2de8b4e3ecbe097993c71246f91':
  reinstate black-screenshot debugging code
2013-09-20 11:20:44 -07:00
Mathias Agopian
4d5755389d am f589dd29: am e2a3e872: Merge "Fix GLES context version selection" into klp-dev
* commit 'f589dd2915587994d3dd36eff2191962fe0b71c0':
  Fix GLES context version selection
2013-09-20 11:19:58 -07:00
Mathias Agopian
d555684cb3 reinstate black-screenshot debugging code
turned off by default.

Bug: 10809349
Change-Id: I3e6b8c7860e6b0e122b8f07de4020967cd1f005c
2013-09-19 17:09:26 -07:00
Christopher Ferris
6de9653ac8 Merge "Remove unnecessary include." 2013-09-19 23:16:10 +00:00
Christopher Ferris
d142f4b787 Remove unnecessary include.
All these files are including utils/CallStack.h, but none of the code
uses any CallStack objects.

Change-Id: I38c3a346a3bd0ddbff368d0f7f8b3f3d78fc0432
2013-09-19 15:45:03 -07:00
Mathias Agopian
2185f8b420 Fix GLES context version selection
Explicitly selects an ES 2.0 config first, then an ES 1.x config,
before attempting the fallback path for the emulator.

Bug: 10820214
Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d
2013-09-18 16:20:26 -07:00
Mathias Agopian
0f0e845113 am a7e1660b: am c1c05de4: fix camera API 2.0 orientation
* commit 'a7e1660b257326f99261e7c9b2d58c9d2e68d0b0':
  fix camera API 2.0 orientation
2013-09-18 15:36:00 -07:00
Mathias Agopian
c1c05de415 fix camera API 2.0 orientation
we add a flag to ANativeWindow::setBufferTransform that means
"apply the inverse rotation of the display this buffer is displayed
onto to".

Bug: 10804238
Change-Id: Id2447676271950463e8dbcef1b95935c5c3f32b2
2013-09-17 23:45:22 -07:00
Mathias Agopian
7229e98229 am 3f342c11: am 02b62df7: Merge "Make sure do disconnect from a BQ when its client dies." into klp-dev
* commit '3f342c113360eacc1e9c1ff481cb03f700a50117':
  Make sure do disconnect from a BQ when its client dies.
2013-09-17 14:35:29 -07:00
Mathias Agopian
02b62df711 Merge "Make sure do disconnect from a BQ when its client dies." into klp-dev 2013-09-17 21:31:14 +00:00
Jesse Hall
cd9fd427ac am b8080d9a: am 2a36497e: Merge "Stop using default value for Surface producerControlledByApp parameter" into klp-dev
* commit 'b8080d9a3b760617c5dde7b1d2d63aa2bcecf3a7':
  Stop using default value for Surface producerControlledByApp parameter
2013-09-16 20:32:34 -07:00
Mathias Agopian
365857df8b Make sure do disconnect from a BQ when its client dies.
Bug: 5679534

Change-Id: If447e8673df83fe0b1d6210641e0a48522501a53
2013-09-16 16:15:21 -07:00
Jesse Hall
83cafffeac Stop using default value for Surface producerControlledByApp parameter
Bug: 10785749
Change-Id: Ifbf9340e5eabe621a69e990ec3e05ac51f8db66a
2013-09-16 15:39:55 -07:00
Alan Viverette
9c5a333511 Add API for pushing color transforms to SurfaceFlinger
BUG: 9057596
Change-Id: Iea0953366eac875b7968897a75472c25a137edb5
2013-09-12 20:04:35 -07:00