• Home
  • History
  • Annotate
  • only in /frameworks/native/libs/gui/
History log of /frameworks/native/libs/gui/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
65bee228207da4064b09abc4c2b88cd7b797890b 26-Jun-2017 Dan Stoza <stoza@google.com> 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
(cherry picked from commit 95971c8172495f7b6a0ede1a3508472b9a4e7b36)
onsumerBase.cpp
53213430b56f4051fcee7e5d79a03adce9e3eb5f 22-Jun-2017 Fabien Sanglard <sanglardf@google.com> 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
(cherry picked from commit 98bfd4f5714c70c94d7a72efa29a1966fb0ea6a9)
ndroid.bp
4e623e259c3e8677d57f761a3708423fb2e77e2a 16-Jun-2017 Bryce Lee <brycelee@google.com> Add method to explicitly create Surface.

It is sometimes necessary for a SurfaceControl client to request the
associated Surface object be created rather than reuse the cached
value. This changelist adds an additional method that performs the
same creation operations as if the Surface object was created for the
first time.

Bug: 62108743
Test: go/wm-smoke
Change-Id: I2f460f20b2d16ed9ff81cb36842bcd2f8641e03c
urfaceControl.cpp
c6ff79830b9126f948791f03164a58ad079e9e5d 14-Jun-2017 Eino-Ville Talvala <etalvala@google.com> ConsumerBase: discardFreeBuffers() also needs to dump its own cache

ConsumerBase has its own cached slots with graphic buffer references,
so it's not enough to just ask the buffer queue consumer to free
buffers.

Add code equivalent to what happens in the onBuffersReleased callback.

Test:
Bug: 62593139
Change-Id: Ibc1444b868c6150aa2da1c209e06bdba42f1595d
onsumerBase.cpp
2672decb92fa24ef012cbbd3690c120530fa3cd3 14-Jun-2017 Eino-Ville Talvala <etalvala@google.com> BufferQueueProducer: Call onBuffersReleased() in detachNextBuffer

Like detachBuffer(), detachNextBuffer() needs to inform the consumer,
who generally has a cache of buffer items, that a buffer is no longer
owned by the buffer queue.

Otherwise the consumer layer can leak the buffer reference until
consumer teardown/disconnect.

Test: Camera CTS is fine, using a camera app shows correct memory
behavior
Bug: 62591036

Change-Id: I14c200d13e60dbbe21261343941f84fb786db117
ufferQueueProducer.cpp
b1e2f8deb38353e4bcc9d3ef06bc15bd5e417425 09-Jun-2017 Jorim Jaggi <jjaggi@google.com> Properly run window animations at vsync-sf (2/2)

- Add new Choreographer instance that runs on vsync-sf
- Use this new Choreographer for WindowAnimator, and remove all
the hacks around it

Test: Open apps and close apps, notice no stutter
Test: Screen zoom animations
Test: go/wm-smoke
Bug: 36631902
Change-Id: I72a8b39709303a38fc077100229b8a81a153ba3e
isplayEventReceiver.cpp
SurfaceComposer.cpp
ests/Surface_test.cpp
932f008485dbb6fb452c8616abd7586f914f72ce 31-May-2017 Dan Stoza <stoza@google.com> libgui: Add Surface::getLastDequeueStartTime

Adds the getLastDequeueStartTime method, which allows the caller to
determine whether the last dequeueBuffer call fell into a given time
window.

Bug: 62213889
Test: SurfaceTest.TestGetLastDequeueStartTime in libgui_test
Change-Id: I1684deb09273745a3adc751554624d2257fa890e
urface.cpp
ests/Surface_test.cpp
feec3b1a49dbf48bc792d39d004b42cf2c72b14c 25-May-2017 Chia-I Wu <olv@google.com> libgui: fix BQ buffer allocation error checking

The error path was broken since we moved away from
IGraphicBufferAlloc.

Bug: 37956614
Test: simulate buffer allocation failures
Change-Id: I1e1ec840fafd3075b84126c6dbf6194568175a42
ufferQueueProducer.cpp
c1225bdafc7c717007fb7f8d165ba4e72b63004b 24-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "libgui: Add test for OOB slot number in dequeue" into oc-dev
55be505a75a379b10a945b3de81fbebe2b85a344 23-May-2017 Shuzhen Wang <shuzhenwang@google.com> Surface: Use buffer id to synchronize slots

For the same buffer, GraphicBuffer's buffer_handle_t* may change when
doing attach/detach. Use Id instead.

Test: Call attach/detach, and observe mRemovedBuffers is updated
Bug: 38238747
Change-Id: I6ab1ae5340565f98cb981b7e38c31a4f85190e56
urface.cpp
52402901b33d843e8b0731db92049461884bebfd 17-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Surface: add unit test for GetAndFlushRemovedBuffers" into oc-dev
47730d67169a3c12c50c1561f75cd0f619acc0f0 17-May-2017 Dan Stoza <stoza@google.com> libgui: Add test for OOB slot number in dequeue

Adds a unit test that verifies that a malicious BnGraphicBufferProducer
cannot pass an invalid slot number to a Surface and thus cause the
Surface to segfault (or otherwise access out-of-bounds memory).

Bug: 36991414
Test: The new Malicious* tests pass after applying the security patch
Change-Id: I2083465a496cfcc8e8c3b3bc288f5f6904005ac3
ests/Android.bp
ests/Malicious.cpp
c5cd20733795a0fe1f1ba228ec099c4c7e6dbaa7 23-Feb-2017 Jammy Yu <jammy.yu@mstarsemi.com> Fix error BufferQueue attaching flow.

Fix error BufferQueue attaching flow. Because BufferQueue attaching
buffer flow doesn't set mNeedsReallocation to false, it will case
Surface client to request buffer for attached buffer to cause unsync
buffer states with ACodec. So, for attaching buffer by Producer, we
need to set mNeedsReallocation to false in BufferQueue. And Surface
client will not request buffer again for attached buffer to cause
some missing frames.

Bug: 38238747
Issue: 34897483
Test: GTS
Change-Id: I25f9fff4b5d1f7052ab3be612cf34879fd17c27c
ufferQueueProducer.cpp
2c201405acc3101fec6b501c56be85bc1d876f0c 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580 am: 788ff8c16f am: 72c1a6f762 am: 8b99decc86 am: 83f226ba1b am: 2d4959d8eb
am: 6a7200333a

Change-Id: Iee50110f6189c015e2aca1c77a460d964d8d5439
0c7f6e142d9a549b5e79da32f27783e12c995ce9 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742 am: 787aa48f41 am: f69675e5c2 am: d65a388e1b am: b829d2abe9 am: 79a34dd24b
am: a1b1e635cc

Change-Id: I574d7193656580b26b2a2923673f39541f010878
6a7200333aa2c7f2abbdfba79fb2ca708db0743e 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580 am: 788ff8c16f am: 72c1a6f762 am: 8b99decc86 am: 83f226ba1b
am: 2d4959d8eb

Change-Id: Ic8400bff6a8c8e48719abe1aadcb0661d36bba87
a1b1e635ccef0536a173c1baa76ab88b2a4d9082 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742 am: 787aa48f41 am: f69675e5c2 am: d65a388e1b am: b829d2abe9
am: 79a34dd24b

Change-Id: I3909027db625685911575c9c98b5446b86af09c0
2d4959d8ebb865f67a6568ac76e16492797f1611 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580 am: 788ff8c16f am: 72c1a6f762 am: 8b99decc86
am: 83f226ba1b

Change-Id: Ic0586397a434045a9594b78ff955f6426b977641
79a34dd24b38ea1231beca99bbfc0063563b0751 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742 am: 787aa48f41 am: f69675e5c2 am: d65a388e1b
am: b829d2abe9

Change-Id: I3e1b7c882bcfcc93e93e296887930771878b25a1
83f226ba1bf9fce749946c9c1a63d825c1868bac 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580 am: 788ff8c16f am: 72c1a6f762
am: 8b99decc86

Change-Id: I025b51ff0858ddfd88fdbca04724deab8afdabd8
b829d2abe93377eec1647e2c078b6f5285231ce9 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742 am: 787aa48f41 am: f69675e5c2
am: d65a388e1b

Change-Id: I73489256702d123302a204c2720f9752515020ba
8b99decc8673e34428a0ecdbb96ab307494184b6 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580 am: 788ff8c16f
am: 72c1a6f762

Change-Id: Idf9fc3f7e2d09483b7e938c0c4389813dd5f2f60
d65a388e1b426afb1a4e4c5dd9b47c605ed26b96 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742 am: 787aa48f41
am: f69675e5c2

Change-Id: Icb1a0aae634951cd903fb2deef632005e01d4d7f
72c1a6f7621a1325dfa6f08d7353ebd089344583 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a am: 0544fa4580
am: 788ff8c16f

Change-Id: I5623d15da983b9277ab968d63b537ce396ad007c
f69675e5c26217602fc794e46e8e0c7b8af15eea 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5 am: 9a44ee0742
am: 787aa48f41

Change-Id: I96e45ad313a7ea1233972ac80a1c8c85f6e64618
788ff8c16f4157c21aac480a78dd9699bad0b1e3 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22 am: 1f8b90126a
am: 0544fa4580

Change-Id: Id6d055a523eed1f96e1373d4f3fede43551a8abe
787aa48f415cd5b856bd60ce8fa005f1928e6ac6 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0 am: cce83f15e5
am: 9a44ee0742

Change-Id: I79f6a2eb14d624b153244788267a16c752927e33
0544fa45802436d0cf20ea6183905f0a368635fc 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53 am: 6a9b41dc22
am: 1f8b90126a

Change-Id: Iaf0fd93af8567520229a0a73fda8bd5fcc8091f1
9a44ee074255474f613e0aa09e6ed5e502df4575 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f am: 2fe15aa6f0
am: cce83f15e5

Change-Id: I82264d2033d6b098199321fd29c0d26017ec5359
1f8b90126aeb9eb88d396f0103e8a17e34ac3be8 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7 am: 91a7e47a53
am: 6a9b41dc22

Change-Id: I03af2ccc0f7f671baa4ec9f7b9a3b55f8b377435
cce83f15e5689e2f39408c6cbeec32bb9616fc5f 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580 am: 78976cea8f
am: 2fe15aa6f0

Change-Id: I36fcc82af237645b61c69d70c574843a5b2753c8
6a9b41dc22baa5fc94d6c848fa96dc466ad1c51c 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev am: af33c978c8 am: 396cc342a7
am: 91a7e47a53

Change-Id: I198ba45e3005214e9cd41379d6f833297be93caf
2fe15aa6f00b3c58e4dda26d2c117e422056ffa1 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev am: 98e3c06010 am: 970bb51580
am: 78976cea8f

Change-Id: I30e6a29474b6cf86f97961f527301837b35c8a36
396cc342a7561eb84e50a365dbb20c31390c75ab 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev
am: af33c978c8

Change-Id: I97f957bc5375d11cd034d4b06baa8636e7999f8c
970bb515801cb8f8138eb2d3be53ae5dbba27672 16-May-2017 Dan Stoza <stoza@google.com> Merge "libgui: Check slot received from IGBP in Surface" into lmp-dev
am: 98e3c06010

Change-Id: I28774e185329082424a26cfccca4c95c7863e88f
af33c978c82088375bfca5adb5cfa508f93843d7 16-May-2017 Chia-I Wu <olv@google.com> Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev
1f2af5cf894222c82f6ea7bb5fa1e442d2b2674d 12-May-2017 Yin-Chia Yeh <yinchiayeh@google.com> Surface: add unit test for GetAndFlushRemovedBuffers

Also fix the removed list flush behavior to match spec.

Test: the new test pass, smoke test GCA
Bug: 36869090
Change-Id: I8f7bdd8b168424f4e79980d21a7388aa9e35597e
urface.cpp
ests/Surface_test.cpp
c79a29689c1046f1f0301c75df9b9a67cba8bf04 15-May-2017 Chia-I Wu <olv@google.com> libgui: check for invalid slot in attachBuffer

Bug: 37478824
Test: manual
Change-Id: I369337d53539bf7f7e3d925bccdae4045da1b404
GraphicBufferProducer.cpp
90ce2a9c1d3af422c66b4061805831cb208263d8 02-May-2017 Dan Stoza <stoza@google.com> libgui: Check slot received from IGBP in Surface

Checks that the slot number received from mGraphicBufferProducer in
Surface::dequeueBuffer is on the interval [0, NUM_BUFFER_SLOTS) to
protect against a malicious BnGraphicBufferProducer.

Bug: 36991414
Change-Id: I1a76fd1bcce1c558f1c0c30f03638278288ed4fa
urface.cpp
687272a3bda8e189d2ba651f41da3a8ee3f659f7 09-May-2017 Lajos Molnar <lajos@google.com> bufferqueue: allow null stream in H2BGBP::setSidebandStream

Bug: 38172844
Change-Id: I585e1dc01f2e7f955c39046c1592bda7bea45a23
ufferqueue/1.0/H2BGraphicBufferProducer.cpp
2041913a05b79b96c5c084f30bb8944049a976c8 22-Apr-2017 Jiwen 'Steve' Cai <jwcai@google.com> BufferQueue: plumbing mConsumerIsProtected

This replaces current logic in BufferQueue that uses
GRALLOC_USAGE_PROTECTED to indicate whether an ANativeWindow is capable
of handling hardware protected gralloc buffers. Current logic is
problematic as it enforces producer to use protected buffer no matter
whether producer side is capable of writing into a protected buffer.

This new solution, however, introduces a new NATIVE_WINDOW_* flag that
consumer can set on IGraphicBufferConsumer to indicate its capacity,
which can then be queried by producer via Surface::query (or
IGraphicBufferProducer::query).

When consumer is capable of reading protected buffer (e.g. a protected
GL context), the producer can generate either a protected or unprotected
buffer.

When consumer is not capable of reading protected buffer, the producer
should only generate unprotected buffer.

Bug: 35726763
Test: videoplayer-nodrm-protected.apk and videoplayer-drm-protected.apk
both works.

Change-Id: I1bf6814c9f1f81f9e04f0e89646b0733ff1a4758
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferConsumer.cpp
f3ef3eab3aaae979c48ef03d27c5004f357b3d03 20-Apr-2017 Chris Forbes <chrisforbes@google.com> gui: Adjust for libui gralloc flags change

Change-Id: I9f73a1753f9e991eb3a7f0a005c3ab240f0a38b4
Bug: b/33350696
Test: Bullhead: booted to launcher, take photo, watch youtube
ufferQueueProducer.cpp
fc333972e92e176ea73b34c5c6c25fc5875140be 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Return error when trying to disconnect twice" into oc-dev
0556d79eacbf0c9978080d87aa4075120533c7ef 22-Mar-2017 Mathias Agopian <mathias@google.com> get rid of IGraphicBufferAlloc

Buffers can now be allocated directly through
the graphic allocator HAL.

Test: marlin: run full camera cts
Test: angler: take screenshot, take photo w/ and w/o HDR, video, panorama, refocus, slo-mo
Bug: 36462585
Bug: 36333314
Change-Id: Ie5222c53c3b9462e0ac7a41568718aad131eb328
ndroid.bp
ufferQueue.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
onsumerBase.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
SurfaceComposer.cpp
ests/Surface_test.cpp
1b47dfd74909803eecb96e9e8a2695eebcc430a7 13-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes Ica5f5f5c,Ifb7d2cec,Ia402b4bc,I9c3b6b7e,I36ba19c7, ... into oc-dev

* changes:
libgui: Make IGraphicBufferConsumer a SafeInterface
libbinder: Add vector<Parcelable> to SafeInterface
libbinder: Add sp<NativeHandle> to SafeInterface
libbinder: Support enums in SafeInterface
libbinder: Support sp<Flattenable> in SafeInterface
libbinder: Add int64_t/uint64_t to SafeInterface
libgui: Normalize IGraphicBufferConsumer methods
libgui: Format IGraphicBufferConsumer
7dcda8011de1753b0d9f4bf640733f83db601cec 13-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SurfaceFlinger: Add parent-less relative layering." into oc-dev
4b5fbdb107cf25bf0cad040a63cf51399ce9215b 10-Apr-2017 Dan Stoza <stoza@google.com> libgui: Make IGraphicBufferConsumer a SafeInterface

Converts IGraphicBufferConsumer to be a SafeInterface such that all
parceling/unparceling is done automatically.

Test: libgui_tests + manual testing
Change-Id: Ica5f5f5c3e6b5735f0f1327a50cefe8f3f6f0feb
GraphicBufferConsumer.cpp
db66e627ad8904491e384c64f82fc77a939b9705 11-Apr-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Add parent-less relative layering.

This is a temporary functionality for the intermediate state where not
all child-surface like things in WM land are ported to use Child
Surfaces. In particular, we have ported SurfaceView to use child
surfaces and relative Z ordering. However the TV frameworks provide a
View framework component which overlays views over the SurfaceView but
below the main application window. Since we have not ported View
framework surfaces to use child layers, there is nothing the WM or
View Framework can do about this situation. Luckily the WM API's to
have requested this are @hide but we have the one media framework
component using it. In order to solve this issue we provide a method
to set Z ordering relative to another window without inheriting
its coordinate space as a child window would. This way the WM can
recognize these TYPE_APPLICATION_MEDIA_OVERLAY windows and Z-order
them at -1 with respect to the parents (and the SurfaceView can be at
-2).

Test: Included in transaction tests. Also manual test of bug repro steps with accomp frameworks/base CL
Bug: 36693738
Change-Id: I921852d3d34f67f79ec745b9703f9e679867e7a1
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
dc96fdfa58260867c993fff78611220874753201 21-Mar-2017 Brian Anderson <brianderson@google.com> egl: Differentiate pending vs invalid timestamps.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Iaa418ff1753a4339bfefaa68a6b03e8c96366a87
urface.cpp
ests/Surface_test.cpp
6b376713907086c9642e7b7e66e51ddfa531b003 04-Apr-2017 Brian Anderson <brianderson@google.com> egl: Avoid use of retire as present

Retire fences from HWC1 are implemented inconsitently,
so present emulation doesn't always work well.

This patch disables present for all HWC1 based devices.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*
Bug: 36730849, 36887025

Change-Id: I1eba2f8490c2f6feced2a36d1efc4cd66be7da40
SurfaceComposer.cpp
urface.cpp
ests/Surface_test.cpp
0c9a1ed91f8e19887ac43eff5af16e59878c8226 07-Apr-2017 Dan Stoza <stoza@google.com> libgui: Normalize IGraphicBufferConsumer methods

This change modifies IGraphicBufferConsumer such that all synchronous
methods return a status_t and, as such, all outputs are returned by
output parameter rather than return value. It also eliminates the use
of a const char* parameter that SafeInterface can't handle.

Test: m -j + libgui_tests + manual testing
Change-Id: I9bb0e2892492d5e0a3f660bf228834b9ed014539
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
1d0359c5a8e19a3ad0bb3e0d8265c32bab6f0d4d 06-Apr-2017 Dan Stoza <stoza@google.com> libgui: Format IGraphicBufferConsumer

Applies the framework default .clang-format and does a bit of tidying
up (cleaning up and reflowing comments to 100 characters, reordering
includes, etc.).

Test: libgui_tests + manual testing
Change-Id: I6a4c6149282661ad1bf92571597d22123c3ba93c
GraphicBufferConsumer.cpp
3e198b2b331c09e8d078b5cd4cb770bcf049c0d1 08-Apr-2017 Wonsik Kim <wonsik@google.com> Return error when trying to disconnect twice

Bug: 34637488
Bug: 36737364
Test: cts-tradefed run cts-dev --module Graphics
Test: libgui_test
Change-Id: I9deb1e8978e3789269ed1cf9753892b68f246e0f
ufferQueueProducer.cpp
ests/BufferQueue_test.cpp
2d191c302df1c7b2443d333a5a243c0043a37101 03-Apr-2017 Dan Stoza <stoza@google.com> libgui: Make IDisplayEventConn... a SafeInterface

Converts IDisplayEventConnection to be a SafeInterface such that all
parceling/unparceling is done automatically.

Test: libgui_test + SurfaceFlinger_test + manual testing
Change-Id: I2f5311315dc4fadbf3599f2b28f150097f53de57
DisplayEventConnection.cpp
6b698e4fe4ff50dcef818452283637f9870ae770 03-Apr-2017 Dan Stoza <stoza@google.com> libgui: Remove RefBase from BitTube

Removes RefBase from BitTube, since because it is not a Binder object,
it doesn't need to be reference-counted in this way.

In the process, we rename IDisplayEventConnection::getDataChannel to
IDEC::stealReceiveChannel to make it clearer that this is a non-const
operation on the remote end that removes its access to the receive
channel.

This also adds a couple of methods for moving the receive file
descriptor out of one BitTube and into another, since this is the
essence of the IDisplayEventConnection::stealReceiveChannel method,
and now with C++11 move semantics, we can do this without needing to
return an sp<> from EventThread's implementation of stealReceiveChannel.

Test: m -j + manual testing
Change-Id: Ibaaca2a14fb6155052fe5434c14bc3e671b43743
itTube.cpp
isplayEventReceiver.cpp
DisplayEventConnection.cpp
nclude/private/gui/BitTube.h
7d290174b08a56ae6bc6719bec58805ca38b348b 01-Apr-2017 Dan Stoza <stoza@google.com> libgui: Make BitTube Parcelable and use unique_fd

This change completes the Parcelable interface for BitTube (it was
semi-Parcelable before as it implemented writeToParcel, but this adds
the complementary readFromParcel).

It also changes the send and receive file descriptors from ints to
android::base::unique_fds, which simplifies some of their lifecycle
management.

Finally, it changes the default constructor to leave the class
uninitialized, adding a BitTube(BitTube::DefaultSize) constructor to
replace that functionality (and paving the way for the ability to
default-construct a BitTube prior to readFromParcel'ing into it).

Test: m -j + manual testing
Change-Id: Ib0cba4c7c443b449a9a1837f07f7334395d4f10d
itTube.cpp
nclude/private/gui/BitTube.h
27c8115510cebda13cbe24fd4caa946ea9c5003c 01-Apr-2017 Dan Stoza <stoza@google.com> libgui: Format BitTube and move into gui namespace

Reformats BitTube using the framework default .clang-format and moves
it into the android::gui namespace.

Test: m -j + manual testing
Change-Id: I5ea748b809f37c2ec4dcfb41e7b84daf7a084368
itTube.cpp
isplayEventReceiver.cpp
DisplayEventConnection.cpp
nclude/private/gui/BitTube.h
1e438d2c9ce366ef98452ed6e50699196433bf2c 01-Apr-2017 Dan Stoza <stoza@google.com> libgui: Move BitTube out of system include dir

Moves the BitTube header out of the system include directory and into
libgui's include directory.

Test: m -j
Change-Id: I046e3f07ec4a58736c8de7ea7ba0f43a8e3e328b
ndroid.bp
nclude/private/gui/BitTube.h
e1c599b52fcce94bd27ebbc4d74cd59c9e71b452 31-Mar-2017 Dan Stoza <stoza@google.com> libgui: Normalize IDisplayEventConnection methods

This change modifies the IDisplayEventConnection API such that every
synchronous method returns a status_t (to be able to return transport
errors). This required changing getDataChannel to return its channel by
output parameter rather than return type.

Currently no more error messages are checked than before, but this will
both enable calling code to check error messages if it desires and,
more importantly, allow the Bp/Bn code to be semi-automatically
generated using SafeInterface.

Test: libgui_tests + manual testing
Change-Id: I8d5bc5ef0475cee07b638a97079b234f0384c022
isplayEventReceiver.cpp
DisplayEventConnection.cpp
a5f61dd70ac151c8adbde20d3bc4cd7d27808d21 31-Mar-2017 Dan Stoza <stoza@google.com> libgui: Format IDisplayEventConnection

Applies the framework default .clang-format and does a bit of tidying
up (reflowing comments to 100 characters, reordering includes, etc.).

Test: libgui_tests + manual testing
Change-Id: I8b3515339a93dbe42ce4421cb561b78ed2fe9104
DisplayEventConnection.cpp
ba55e0e5c812ef0b6c0efdc9fe876ab3f9a8f6e3 05-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I1ed97f98,I32449355,I5c84d6f2,Ib9652278,I73deaa44 into oc-dev

* changes:
libgui: Make IConsumerListener a SafeInterface
libgui: Format IConsumerListener
libbinder: Support Flattenable in SafeInterface
libgui: Add missing FenceTime header to GLConsumer
libgui: Fix naming/enums in ISurfaceComposerClient
6a570b60716e4cbccd10432502491588f8a5c096 13-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Use Configstore to test getWideColor function

Test: make tests in libs/gui/tests/
Test: adb sync
Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter="SurfaceTest.GetWideColorSupport"
Bug: 29940137

Change-Id: I618c300b1882d2ebd7474586d72f4d469e2d41bf
ests/Android.bp
ests/Surface_test.cpp
3e85cbed6a61f6022b2a9f5972d9e2faa3c1345b 30-Mar-2017 Jaesoo Lee <jaesoo@google.com> import configstore-utils as a shared library.

android.hardware.configstore-utils is now built as a shared library.

Bug: 36275627
Test: Built and check the boot log messages
Change-Id: I83ccebcad8005f39ca8534477d7cd3f69a2041aa
ndroid.bp
d934111402840dceca21d0d491014d5692f02b7c 05-Apr-2017 Mathias Agopian <mathias@google.com> Merge "Remove useless GraphicBuffer() constructor" into oc-dev
c8ca12ae35708b94583c956fbb81918696f0c313 29-Mar-2017 Dan Stoza <stoza@google.com> libgui: Make IConsumerListener a SafeInterface

Converts IConsumerListener to be a SafeInterface such that all
parceling/unparceling is done automatically.

Test: libgui_tests + manual testing
Change-Id: I1ed97f9802e320662cd29e181539ce839ffe0f3f
ConsumerListener.cpp
d8339d96577a08bc90d0b2a4b7bc57b38aeeca4e 28-Mar-2017 Dan Stoza <stoza@google.com> libgui: Format IConsumerListener

Applies the framework default .clang-format and does a bit of tidying
up (reflowing comments to 100 characters, reordering includes, etc.).

Test: libgui_tests + manual testing
Change-Id: I324493551bca5a6c6a011cbe773021236e11e992
ConsumerListener.cpp
29ae6e3bcda8838800f4a5bc3d20c6603a5cb2a2 04-Apr-2017 Dan Stoza <stoza@google.com> libgui: Fix naming/enums in ISurfaceComposerClient

Moves the Tag enum out of the ISurfaceComposerClient header and into an
anonymous namespace in the .cpp file, changes it to UPPER_UNDERSCORE
naming, and makes its LAST entry actually point to the last value.

Test: m -j + manual testing
Change-Id: I73deaa446a87709548c2069c3a1f29605967ab97
SurfaceComposerClient.cpp
2d45cf2a4062992429f28b1c4fc1c8a224138321 04-Apr-2017 Mathias Agopian <mathias@google.com> Merge "fix race condition that can cause a use after free" into oc-dev
f543e5a7110868647e6dc16788b72ad7de80fa38 04-Apr-2017 Mathias Agopian <mathias@google.com> Remove useless GraphicBuffer() constructor

Test: compiled & run
Bug: 36869708


Change-Id: I83d80a1cde28671135b7716a434c503aeefcec46
ests/CpuConsumer_test.cpp
ests/FillBuffer.cpp
ests/SurfaceTextureFBO_test.cpp
ests/SurfaceTextureGL_test.cpp
4f6ce7c7b839da76c1542b41816764e05413af99 04-Apr-2017 Mathias Agopian <mathias@google.com> fix race condition that can cause a use after free

Bug: 33004354
Test: manual
Change-Id: I9b38ee644b02268c9b995a330db758aa2e568399
ufferQueueProducer.cpp
0860434b11f60cfa8fa0f46f58e69f6ae3ed1d0b 04-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Surface: add getRemovedBuffer API" into oc-dev
e572fd7b6262389e89cc23d9eb25129394698eb8 29-Mar-2017 Yin-Chia Yeh <yinchiayeh@google.com> Surface: add getRemovedBuffer API

This allows clients to optionally sign up to track
buffers going out of Surface.

Test: compile
Bug: 34461678
Change-Id: I8696b304c169099c872bd9ba783015c0f0dad73a
urface.cpp
723c48987209c93a902c29a858880b4fe340509d 30-Mar-2017 Yin-Chia Yeh <yinchiayeh@google.com> DO NOT MERGE: ConsumerBase: call freeBufferLocked when a slot is overwritten

Cherrypicked from master.

Test: the CL + camera service side fix pass ReprocessCaptureTest
Bug: 34461678
Change-Id: Ia7863321bcb46cba53532fc1570c5facd9280aaa
onsumerBase.cpp
cae605cd5668f8107e340ad8a672c7f034147401 29-Mar-2017 Robert Carr <racarr@google.com> Fix seamless rotation with SurfaceView WM bypass.

First a brief review on seamless rotation. In seamless rotation
the WM will do the following atomically:

1. Update the display transform.
2. Set window transforms to make the surfaces at their old size appear
at the correct location in the new coordinate space.
3. Set a flag to undo the transforms when the surfaces resize.

However, windows with NATIVE_WINDOW_TRANSFORM_DISPLAY needed to be special cased.
The flag will perform step 2 in terms of buffer mapping, but not in terms of bounds
computation. So to compensate the WM would apply the transform to the bounds,
set these bounds, and then skip applying the transform matrix (as the buffer is
transformed by the flag).

Now that the WM can't see the Camera view, it can't implement this special logic
and the Camera view inherits the parent transform. We compensate for this in
SurfaceFlinger by omitting parent rotation transform components for
Surfaces with NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY. To some extent this
breaks arbitrary rotation for surfaces with NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY
but this is essentially ok:

1. We lived with that bug until N-MR1
2. We fixed it in N-MR1 because the camera was falling back to ROTATE
a lot which shouldn't be happening anymore, following introduction
of specifying rotation animation in manifest.

Test: Rotate camera, disable HWC, rotate camera some more. Switch to front camera, repeat.
Bug: 36230754
Bug: 36727915
Change-Id: Ied390c9cb3968fcce32a84ee7947f699746fdc81
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
a615e47ef0ebdf6ab666dbc4c51df33ed11ff00a 23-Mar-2017 Dan Stoza <stoza@google.com> libgui: Make ISurfaceComposerClient a SafeInterface

Converts ISurfaceComposerClient (specifically its Bp/Bn children) to be
SafeInterfaces such that all parceling/unparceling is done
automatically.

Test: Manual testing
Change-Id: Ie5eee51fc893b0e4d7c3b498fe756306f9a029b5
SurfaceComposerClient.cpp
88752d7f1a13a425c59c429f0986f6f899b7826b 27-Mar-2017 Kalle Raita <kraita@google.com> Disable BufferQueueInAnotherProcess test

The BufferQueueInAnotherProcess relies on executing before any test that
tries to open a BufferQueue in the local process. A recent test addition
broke the condition. Upcoming SF & BQ changes are likely to obsolete the
test, so won't spend time on fixing it. Disabling for now and the test
will be removed when the infrastructure changes land.

Test: libgui_test
Bug: 36592665
Change-Id: I648e197cab6bab3aed445390069265589a717bf1
ests/BufferQueue_test.cpp
a0c93e1082b8dc96ede753ad200912c7a750891e 17-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Check board config for wide-color color spaces

Check that board config allows wide-color color
spaces.
Test: make tests in libs/gui/tests/
Test: adb sync
Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter="SurfaceTest.GetWideColorSupport"

bug #35996305

Change-Id: Ia5b8116bc25befb6491e72e67cd8ed3c90ca5698
ndroid.bp
urface.cpp
d4c6f9912fa4f9d6a5a2e51672adf27c7a1c8624 21-Mar-2017 Dan Stoza <stoza@google.com> BQ: Resend queued buffer handles after disconnect

When the producer disconnects from a BufferQueue, all of its slots are
cleared and buffers in the queue are marked as stale. When the slots
are cleared, we notify the consumer that buffers were released so that
it can clear its cache of slot-to-buffer mappings.

However, when we were marking queued buffers as stale, we were not
clearing the bit that dictates whether the BQ needs to send a buffer
handle upon acquire, so in the case where the producer queues a buffer
and disconnects, and then the consumer acquires that queued buffer,
the consumer doesn't get the buffer handle, nor can it retrieve it from
its cache, because it has (or should have) already cleared it.

This change clears that bit upon disconnect.

Bug: 36453246
Test: New test in libgui_tests + Vulkan CTS test from bug
Change-Id: Ic27f119a4164878257c3841b4e1d421694159774
ufferQueueCore.cpp
ests/BufferQueue_test.cpp
d8ab4396a858a9c929a1bb3cadf7705fb8061574 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "egl: Remove retire event."
af7b2a1b7eb4452c49255eb8ac186ab842266b35 19-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add unit test for onBufferFreedListener

As a follow up to cover new functionality introduced in ag/1998938

Bug: 35114769
Test: run libgui_test with --gtest_filter='BufferItemConsumerTest.*'

Change-Id: I461dc88eac84e165f80a1838b63bfd6bb22a56d7
ests/Android.bp
ests/BufferItemConsumer_test.cpp
8c0761fcfe0078c36ab28bab0722276d141a861f 18-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "BufferItemConsumer: Add onBufferFreedListener"
021d92e6b92a877b9c8a2d17761be8c2251ad7f6 17-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> BufferItemConsumer: Add onBufferFreedListener

This callback can reliably notify its listener when a GraphicBuffer is
being freed at the consumer end of a BufferQueue. This is extremely
useful when user of BufferItemConsumer caches the GraphicBuffer, so they
can listen to this callback and clean up resource properly.

Bug: 35114769
Test: Built system, flash marlin (should have no functional change as
the listener is optional).
Change-Id: I591cfd3ece697b1b4fb3efbeff987c7960422d24
ufferItemConsumer.cpp
4e606e3901b500bdd0f3ea21b8cb63734087bf0a 16-Mar-2017 Brian Anderson <brianderson@google.com> egl: Remove retire event.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Ibf63d22e42ae52307662107eec50f80de0e703f5
rameTimestamps.cpp
SurfaceComposer.cpp
urface.cpp
ests/Surface_test.cpp
d001058145c2186f454a3fb043388d6d9b84c9d8 07-Mar-2017 Brian Anderson <brianderson@google.com> Fix getFrameTimestamp test flakes.

This fixes both the dEQP CTS flakes relating to
compositor timing and the lib_gui test flakes that
don't initialize properly.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*
Bug: 35995043

Change-Id: If8e59f0dc9a916bab28bd1a36190cef9a56cb64f
ests/Surface_test.cpp
6e1193af40c870c50013affec37c8429986b3c7b 07-Mar-2017 Pawin Vongmasa <pawin@google.com> Make IGraphicBufferProducer a hybrid interface.

android::IGraphicBufferProducer will now become a hybrid
interface on
top of the HIDL interface
android::hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer.

This CL also removes the hybrid interface mechanism from libbinder and
splits BufferQueueDefs into two parts, ui and gui.

Test: Camera, Photos, YouTube and Play Movies apps.
Bug: 35442034
Bug: 33854657
Change-Id: Idbbfdc8d9be375281b533050cea03c56fded9075
ndroid.bp
GraphicBufferProducer.cpp
ufferqueue/1.0/B2HProducerListener.cpp
ufferqueue/1.0/H2BGraphicBufferProducer.cpp
10e9ab50517330d1972234b4c167d5467d01abbf 09-Mar-2017 Mathias Agopian <mathias@google.com> check that the NativeWindowType is valid in eglCreateWindowSurface

This will avoid certain crash (null dereference),
and return an error instead. This is useful for
app developers as java language apps are not
expected to crash when passed bad arguments

This doesn’t fix bug 36065206, but was prompted
by it.

Test: compile / run
Bug: 36065206
Change-Id: I90d25730b3dd292d756b4c38b51320a466fa6d48
urface.cpp
801ea093b0e923a61b832f2adba698a273479880 07-Mar-2017 Mathias Agopian <mathias@google.com> split libsensor our of libgui

Test: compile & run
Bug: treble cleanup
Change-Id: I5b2c2a14f7d3b364d25695cf0901c5b08cfb0fc9
ndroid.bp
itTube.cpp
isplayEventReceiver.cpp
DisplayEventConnection.cpp
SensorEventConnection.cpp
SensorServer.cpp
ensor.cpp
ensorEventQueue.cpp
ensorManager.cpp
ests/Android.bp
ests/Sensor_test.cpp
cec55bbb37125e79ba11e286b9817faf3f49f4e4 04-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "fallout of cleaning-up libutils includes"
e9e9fe40fb702ab1390a32c61981bc927177258a 01-Mar-2017 Mathias Agopian <mathias@google.com> fallout of cleaning-up libutils includes

Test: run & compile
Bug: n/a

Change-Id: I99e462d2db6560742fa3f065d5de50cd60111130
ufferQueueCore.cpp
onsumerBase.cpp
c5b97c5b5610b2fe6186f599798c97250bb01b95 26-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add plumbing for Surface::getHdrSupport

Add plumbing for future Vulkan and EGL extensions
VK_EXT_swapchain_colorspace
EGL_EXT_colorspace_scrgb_linear
EGL_KHR_gl_colorspace

Test: TBD
Change-Id: Id1f28cfb36828adbdc6dd3694b5943eca038c356
urface.cpp
1eb1b2703754beda3c20bedfca2b4fae885b7164 03-Feb-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add plumbing for Surface::getWideColorSupport

Add plumbing for future Vulkan and EGL extensions
VK_EXT_swapchain_colorspace
EGL_EXT_colorspace_scrgb_linear
EGL_KHR_gl_colorspace

Test: make tests in libs/gui/tests/
Test: adb sync
Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter="SurfaceTest.GetWideColorSupport"
Change-Id: Ibb182d02c468d8f24130545187096d1abe5fc30e
(cherry picked from commit d634f970fabe965a421f50011bb1167d6b7cac86)
urface.cpp
ests/Surface_test.cpp
77c073bdbe1b24a332056e1194a6162b7717a848 01-Mar-2017 Rob Carr <racarr@google.com> Merge changes from topic 'surfaceview-without-wm'

* changes:
Add detachChildren transaction.
Add deferTransaction variant taking GraphicBufferProducer.
f3edb8989a27b272ffa9273c5735e9dc891380ec 01-Mar-2017 Rob Carr <racarr@google.com> Merge "SurfaceControl: Correct setMatrix parameter naming."
6961b6bc1f6f172745deee98e7dcb34a3668e4e6 01-Mar-2017 Mathias Agopian <mathias@google.com> Remove unneeded references to IMemory

Test: compiled & run
Bug: cleanup
Change-Id: Ifef6695275f244a420df574b3bc49adb99c93fbf
SurfaceComposer.cpp
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
ests/Surface_test.cpp
9524cb3b37a91b5741790c77ff24fd825b02bca7 13-Feb-2017 Robert Carr <racarr@google.com> Add detachChildren transaction.

Add SurfaceControl#detachChildren for use by the WindowManager.
This method is used in cases where the WM would previously preserve
windows the client tried to destroy. For example, when becoming invisible
(in the activity lifecycle sense, not in the SurfaceFlinger sense)
an app will destroy its child surfaces. Previously the WM would keep child
windows alive until the animation finishes to prevent glitches. The new
scheme for this is the WM will detach the children at this point,
at which point the parent layer becomes the owner of the children and the WM
can control the lifecycle as it wishes. I also included a test for reparentChildren
as I realized I had forgotten that.

Test: New test in Transaction_test.cpp
Change-Id: I79c22b2ccccceb9bdcc37b70c491bdf33dcf83d2
urfaceComposerClient.cpp
urfaceControl.cpp
0d48072f6047140119ff194c1194ce402fca2c0b 11-Jan-2017 Robert Carr <racarr@google.com> Add deferTransaction variant taking GraphicBufferProducer.

For SurfaceView using child layers, the client framework
will not have access to the Handle* for the parent surface,
but still needs a way to defer transactions to it's frames.

Test: Tested with corresponding SurfaceView modifications and existing tests.
Change-Id: I6f01c360e85a95ff0ab08db406741221152e5d5c
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
89ed4c8cfd8ad64269dfcff9742e16bdd705b926 10-Feb-2017 Mathias Agopian <mathias@google.com> split libandroid.so

- ANativeWindow (native_window.h) and
AHardwareBuffer (hardware_buffer.h) now live
in libnativewindow.so, which is a vodka library.

- libandroid.so still provide those symbols
via a static library version (libnativewindow.a)

- removed libbinder dependency as well

Test: compiled & booted
Bug: 35164655
Change-Id: Ib4bc8e8fc9ec1891bcbee63c28fd0131d82edf29
ndroid.bp
ests/Android.bp
ests/SRGB_test.cpp
cb6e1e385edd44fbc68718e792b7180b1015d438 22-Feb-2017 Robert Carr <racarr@google.com> SurfaceControl: Correct setMatrix parameter naming.

The first parameter dsdx controls the X scaling. The last parameter
is called dtdy but controls the Y scaling. Clearly this was meant to be
named dsdy. You can verify this with a quick look at Transaction_test.

Test: Tried various stuff, phone still works.
Change-Id: Ie9e898443350ffdcf227888a8d85efdbe1b6b033
urfaceComposerClient.cpp
urfaceControl.cpp
fb94f1db72bd769d4a63e2baf0b5a4ca5da7a86f 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Break a dependency of libui on libandroid"
f810b29ebc8564f94ff7fb14f2d13a0f4d111703 17-Feb-2017 Brian C. Anderson <brianderson@google.com> Merge changes from topic 'GPU_replace_GL'

* changes:
Fix unexpected FrameEvents on BufferQueue reconnect
Add FrameEvents::isValidTimestamp
Change GL references to GPU for getFrameTimestamps.
Clean up FrameTimestamp log messages.
a9347647eca3101c014be902b713772de3977d87 14-Feb-2017 Mathias Agopian <mathias@google.com> Break a dependency of libui on libandroid

This was only a header dependency, but it still
created a circular dependency, which will cause
problems in another CL.

We fix this by creating a libarect static library
containing only that header. both libui and
libandroid now depend on it and reexport the
header.

We also make sure rect.h ends-up in the right
place.

Test: built and booted device
Bug: 35164655

Change-Id: Iba25b8b801b26b26ec1401c00caf367a06f197ca
ests/SurfaceTextureClient_test.cpp
0576a8858b6d48e6645af1810fc4977e2ac7096f 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Verbose logging when API_MEDIA is force-disconnected"
0ed70ddebe2a392c32b010e00229b9f0e2fd2e09 17-Feb-2017 Romain Guy <romainguy@google.com> Merge "Add RGBA 10:10:10:2 format for surfaces"
5ac51484b293cc0ad08562b03c405721b0bdbc71 17-Feb-2017 Chong Zhang <chz@google.com> Verbose logging when API_MEDIA is force-disconnected

Media is seeing intermittent failures during CTS when mediaplayer
connected to a surface successfully but subsequent dequeueBuffer
fails. We suspect that media is getting force-disconnected. Adding
a verbose log when this happens to help track down the failure.

bug: 35364355

Change-Id: I0c48e3d141648a3d08c6abeb6793f8363e9502fc
ufferQueueProducer.cpp
a34320a81c9787958f1b02e93e828472e54864b5 16-Feb-2017 Dan Stoza <stoza@google.com> libui: Remove STL from Fence

Renames Fence::hasSignaled to Fence::getStatus, and changes its return
type from std::experimental::optional (STL is no longer permitted in
libui) to an enum class. Also updates its one caller.

Test: Builds and sailfish boots
Change-Id: I682039b9fd88bf79f1e2a955944c4a564ed6f60b
onsumerBase.cpp
541f22658ab1617c9d12c98684ab40248df8749b 11-Feb-2017 Romain Guy <romainguy@google.com> Add RGBA 10:10:10:2 format for surfaces

Bug: 2984164
Test: CtsHardwareTestCases
Change-Id: Ifc90e413f414a19ac09e923e48ec7ff45d3e930b
puConsumer.cpp
LConsumer.cpp
5ea5e5905170f32d5cf45ad35c552d64743892c3 02-Dec-2016 Brian Anderson <brianderson@google.com> Fix unexpected FrameEvents on BufferQueue reconnect

Helps reduce the number of ALOGE's being hit
when switching between apps.

* Notify Layer when the Producer disconnects.
* Avoid sending event deltas from a previous connection.
* Avoid releasing a frame more than once.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I64f314be72ddb154b584d726ac382cd468e345bf
ufferQueue.cpp
ufferQueueProducer.cpp
rameTimestamps.cpp
ConsumerListener.cpp
ests/DummyConsumer.h
ests/IGraphicBufferProducer_test.cpp
ed816e6cb4ca15181bf6120890c85290b5f7c02b 27-Oct-2016 Brian Anderson <brianderson@google.com> Add FrameEvents::isValidTimestamp

Refactor only.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I86653ac14186ca509f58a94047f25a7b74231b30
rameTimestamps.cpp
urface.cpp
b04c6f03a2334b03ae0105ec005aeecfa61f4a90 21-Oct-2016 Brian Anderson <brianderson@google.com> Change GL references to GPU for getFrameTimestamps.

Test: Rename only.

Change-Id: Idaf7ab38f78f58aa8387823f47dac084e21eb1f0
rameTimestamps.cpp
urface.cpp
ests/Surface_test.cpp
8cc8b10e27d515a6962ae6c66a62387ced45f5fe 21-Oct-2016 Brian Anderson <brianderson@google.com> Clean up FrameTimestamp log messages.

Test: Log message changes only. Existing tests pass.

Change-Id: I032c76393a4949b291c3a650279367caf05a775c
rameTimestamps.cpp
9f02435fd44c0651c85e9bd4dc7307bc6b1a85fa 15-Feb-2017 Brian C. Anderson <brianderson@google.com> Merge "EGL: Add eglGetCompositorTimingANDROID."
832b6b94684cbd8bf0fcf00bd431ee5e8de03ba7 14-Feb-2017 Brian C. Anderson <brianderson@google.com> Merge "EGL: Use frameId instead of framesAgo for frame events."
4b62d90346b53bf9d2eee038799ec75300283ba6 14-Feb-2017 Nick Vaccaro <nvaccaro@google.com> Merge "Sensors: Add LOW_LATENCY_OFFBODY_DETECT sensor API"
0a61b0c813f5991bf462e36a2314dda062727a10 07-Dec-2016 Brian Anderson <brianderson@google.com> EGL: Add eglGetCompositorTimingANDROID.

Exposes the composite deadline, composite interval, and
the composite to present latency.

A history of composite and present fences are stored.
When the present fence's timestamp becomes known,
the composite to present latency is updated with
sampling jitter removed.

The values are updated in the producer when timestamps
are enabled and on queue and dequeue.

The deadline is snapped to the next expected deadline
based on the current systemTime().

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I406814258613b984b56488236632494f2f61ff2e
rameTimestamps.cpp
urface.cpp
ests/Surface_test.cpp
841abed655e96e51506ae6a78e6b4dab6740bfd7 11-Feb-2017 Mathias Agopian <mathias@google.com> clean-ups, remove warnings, fix includes.

Test: built and run
Bug: none

Change-Id: I505df89e2263952d90fae432c5eaa7d00056c6f0
raphicBufferAlloc.cpp
05debe1d787b7471c2bc9c8f7569a338ca5c7ad4 09-Feb-2017 Mathias Agopian <mathias@google.com> Split view::Surface out of Surface.cpp

it’s moved into a new view/Surface.cpp, header in
gui/view/Surface.h

their entanglement also meant that code that needs
only view::Surface ended up with all of Surface
dependencies.

Test: built and booted device
Bug: treble
Change-Id: I1a350d258f124fbe0a7bc5a2ca165311dcb0d8e3
ndroid.bp
urface.cpp
iew/Surface.cpp
5c0a87e5a2cba5c1b199e77f3a42e931e706569b 10-Feb-2017 Mathias Agopian <mathias@google.com> Merge "Break dependency of libui on libbinder"
06d63de03cb2a551ca99608f5aa0c4f3e200b0fc 04-Jan-2017 Chia-I Wu <olv@google.com> surfaceflinger: cache HWC client targets and buffers

Remember HWC client targets and buffers, and make sure we send each
unique slot/handle pair only once. This allows the composer to
clone/register/retain each buffer only once.

Test: builds and boots
Change-Id: Ib485189043a9c132031e82d4d7380ace3bf9453d
LConsumer.cpp
e1f5e6fd7ad07778fa4381059852a94567d77dfc 07-Feb-2017 Mathias Agopian <mathias@google.com> Break dependency of libui on libbinder

the dependency existed only because of
HdrCapabilities, which inherited from
Parcelable, instead of LightFlatenable<>.

An added benefit is that HdrCapabilities isn’t
virtual anymore.

Also, since the dtor is not trivial, move it to
the cpp, to avoid inlining.

Fix-up includes.

Test: built and booted device

Change-Id: Iaf9c4ef9dcc5cb28b29f79d9f7d8f21800223eb8
SurfaceComposer.cpp
2a902d763f7a04777f8432bc98917d5772070686 08-Feb-2017 Mathias Agopian <mathias@google.com> Merge "move GraphicEnv from libgui to libui"
5a2cc1dc8ccf63939ad130fd6867c84f9851dd6d 08-Feb-2017 Mathias Agopian <mathias@google.com> Merge "Fix include dependencies"
224fa294dbf77791dcb3ea3756018347cabea9ac 08-Feb-2017 Craig Donner <cdonner@google.com> Merge "Add methods for allocating and locking GraphicBuffers via gralloc1 flags"
2b5dd4062dd951b2cafc4b80bd3a1813b013d71a 08-Feb-2017 Mathias Agopian <mathias@google.com> Fix include dependencies

Some headers included other headers they didn’t
need. This is trying to reduce the dependencies
of Surface.h / Surface.cpp on the rest of the
world.

Test: compiled
Bug: not applicable
Change-Id: Ibb5de1308a387394a1367638c3b7f26b5549ce6a
SurfaceComposer.cpp
urface.cpp
991d2545afb325a3ebb8679519c4b0c13e29fada 06-Feb-2017 Mathias Agopian <mathias@google.com> move GraphicEnv from libgui to libui

This breaks a circular dependency between libEGL
and libgui.

Test: compiled and booted a device
Change-Id: I78932bba07fb9ef310d8e1622bd3a47f57e89c45
ndroid.bp
raphicsEnv.cpp
1049d1d0b21ee318e309f9a90098c092cb879c41 17-Dec-2016 Brian Anderson <brianderson@google.com> EGL: Use frameId instead of framesAgo for frame events.

Using a frameId allows an app to poll for timestamps
from a thread other than the swapping thread.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I3faac0513929837982a2e63f7e0d3d529bd28f10
urface.cpp
ests/Surface_test.cpp
e96a325aff9da4e02abeb7b9178592583cf3b78c 02-Feb-2017 Craig Donner <cdonner@google.com> Add methods for allocating and locking GraphicBuffers via gralloc1 flags

Bug: 34050596
Test: manual
Change-Id: I9515e60fe6b67d2c6f02b1bb78651669430f12ef
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
26191364e457a50af0c891a2a3a32a0b5594923d 03-Feb-2017 Yunlian Jiang <yunlian@google.com> Merge "Fix warning: macro redefined" am: 909ef30a63 am: f62690cdaf am: d1f7b9d025
am: 501e019523

Change-Id: I2155e7df5ffd16a967d4465218cf852c9148f884
501e019523a5548b874274a8db85c8b3e5177ae9 03-Feb-2017 Yunlian Jiang <yunlian@google.com> Merge "Fix warning: macro redefined" am: 909ef30a63 am: f62690cdaf
am: d1f7b9d025

Change-Id: Ifa71e97d5ade8685f2f31400afd1727034321b4d
d1f7b9d02502c8b1b59a8873c74bf26ae288db6d 03-Feb-2017 Yunlian Jiang <yunlian@google.com> Merge "Fix warning: macro redefined" am: 909ef30a63
am: f62690cdaf

Change-Id: If7255629f0be37af2c08da90e9010423d73decfc
909ef30a63032f4cada67303ab022be9b7a458da 03-Feb-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Fix warning: macro redefined"
479c60c85c40fd3536b0c88036e838dc1a4c56a0 27-Jan-2017 Albert Chaulk <achaulk@google.com> Refactor how layer metadata for use by VR is propagated
from WindowManager based on feedback in frameworks/base.

Since windowType and ownerUid are immutable, they are sent
on creation instead of separate IPC.

Bug: 30984984
Test: built locally

Change-Id: I380b3cdcf6aec471fc23f1e27846ab80492e8add
SurfaceComposerClient.cpp
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
1db73f66624e7d151710483dd58e03eed672f064 21-Dec-2016 Robert Carr <racarr@google.com> SurfaceFlinger: Add support for non-privileged clients.

Allow clients without privilege to create child layers through scoped
connections. We enable this in preparation for allowing SurfaceView
to bypass the WindowManager. We include support for reparenting of
all of a layer's children for the WindowManager to use in cases where
one surface is replacing another (while keeping its children around).

Test: Tested with corresponding SurfaceView modifications.
Change-Id: I9920e6730d719113522a68788e63fb59f70d3406
SurfaceComposer.cpp
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
ests/Surface_test.cpp
4c695296d87804d7d9ecdad43ec24e4dbc6c74fe 25-Jan-2017 Ian Elliott <ianelliott@google.com> Merge "Vulkan: only report refreshDuration, not {min|max}RefreshDuration"
be833a27b36149e48f2e1b8bbb2f70dd63428419 25-Jan-2017 Ian Elliott <ianelliott@google.com> Vulkan: only report refreshDuration, not {min|max}RefreshDuration

Test: Manually tested with a modified cube demo, that reports the refresh
duration returned from this extension.

As part of discussions within Khronos, it was decided that
VK_GOOGLE_display_timing should only report one refresh duration for a display,
and assume that it's refresh rate is fixed (which is the case for our current
devices).

Change-Id: I772348281c18a36b02dcfe0519d1943e25a41f7c
urface.cpp
e895863cca8c23bd65d2d21211f81e457b48416d 25-Jan-2017 Rob Carr <racarr@google.com> Merge changes I96f8ad86,I84dcd82e,Ifcece69f

* changes:
SurfaceFlinger and libgui: Support for child layers.
SurfaceFlinger: Use traversal functions to iterate LayerList.
SurfaceFlinger and libgui: Switch Z-order to signed type.
eda1dc7a6961d0ac00b0b6953997033a109493b7 25-Jan-2017 Ian Elliott <ianelliott@google.com> Merge "Plumb refresh cycle duration up to VK_GOOGLE_display_timing."
86aa938c79672c0be42a0a7d9b03dda47c47d134 25-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "BufferQueue: Add bufferReplaced flag in QueueBufferOutput"
1f0a16a5d7cd00ba7fda82e7d315afa1fd1303b9 25-Oct-2016 Robert Carr <racarr@google.com> SurfaceFlinger and libgui: Support for child layers.

Add support for parenting Layers in a tree. Layers
follow scene-graph style rules, that is to say:
1. A child is cropped to the final bounds of the parent.
2. A child inherits the parent's transform (including position)
3. A child's Z ordering is relative to the parent and bounded between
the parents siblings.
4. A childs lifetime is bounded by it's parents lifetime.

Test: New tests in Transaction_test plus manual testing with later branches.
Change-Id: I96f8ad863665b9a70b6f845561344c297b7e6eff
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
ae0608381b2b4699218febd6d45ad9d307544d55 28-Nov-2016 Robert Carr <racarr@google.com> SurfaceFlinger and libgui: Switch Z-order to signed type.

In preparation for SurfaceFlinger child layers. In that model
children's Z order will be relative to their parent. We need
negative Z values to represent children stacking below their
parent (e.g. SurfaceView). Java side already uses signed types
strangely enough.

Test: Basically a refactoring. SurfaceFlinger still works.
Change-Id: Ifcece69f6f9d917cbf5238a59f8e5de1e8ba6a25
SurfaceComposer.cpp
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
ests/Surface_test.cpp
6cf6af0299f7e48bc5bcdcd6a6c0f5a8725e9411 22-Nov-2016 Albert Chaulk <achaulk@google.com> VR: Add API to plumb surface type and owner through to SurfaceFlinger

This is a cherry-pick of
https://googleplex-android-review.git.corp.google.com/c/1648886/

Test: None
Bug: None
Change-Id: I338c84c2576ab85fa4f6d8e759c9e7ce912cdd61
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
62c48c931f88ec44c41621afe988c34cab1fb41d 20-Jan-2017 Ian Elliott <ianelliott@google.com> Plumb refresh cycle duration up to VK_GOOGLE_display_timing.

Test: Manually tested with a modified cube demo, that reports the refresh
duration returned from this extension.

Change-Id: Ib9499429119e910585a4ee9341c3a2d86a3bdae0
urface.cpp
146abf38c2442b77dc78a0565ad010376c9d1b69 24-Jan-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Merge "Make dataspace accessible to surface flinger"
22f842ba04c32cef2faf855dc304eb0ab131b9ec 19-Jan-2017 Shuzhen Wang <shuzhenwang@google.com> BufferQueue: Add bufferReplaced flag in QueueBufferOutput

For async buffer queue, when queueBuffer overwrites a previously queued
buffer, because consumer won't be able to acquire the overwritten
buffer, onBufferReleased isn't triggered either.

This makes it difficult to track which buffer in the buffer queue
becomes free other than calling dequeueBuffer(). Adding a flag in
QueueBufferOutput addresses this issue.

Test: TestBufferReplacedInQueueBuffer in BufferQueue_tests
Bug: 34481539
Change-Id: Ic7f4be2d3f9691dd6b007a450240614c0c420f0d
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
ests/BufferQueue_test.cpp
e36e34731cbe77a49aa5e7d687dde041d83d0370 03-Nov-2016 Peng Xu <pengxu@google.com> Direct report mode support in sensor service and client

Added SensorDirectConnection to represent the direct channel.
The life-cycle is similar to that of SensorEventConnection.
Modified SensorDevice and SensorDeviceTreble to support new
HAL API. Added support in SensorManager, SensorService, binder
classes. Also added related helper functions in Sensor and dumpsys
support in SensorList.

Test: manual test with demo app
Bug: 30985702
Change-Id: I8750294b6aab717ed7f525299be642f1f0b85558
SensorEventConnection.cpp
SensorServer.cpp
ensor.cpp
ensorManager.cpp
2e990eb59e927187b11c7b5f0abe6dbdb0123d1d 13-Jan-2017 Nick Vaccaro <nvaccaro@google.com> Sensors: Add LOW_LATENCY_OFFBODY_DETECT sensor API

Test: none
Bug: 34234089
Change-Id: I7680ef1523cec0212e2817368f8d62891edc92cf
ensor.cpp
ensorManager.cpp
2fa7236082c73327ee05667ca27b32b3b08959d3 19-Jan-2017 Peng Xu <pengxu@google.com> Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor" am: 29280addfd am: 4925ffcbec am: ce7bcb28ff
am: dd912650f2

Change-Id: Iedfd745699cd937c54e345fe7c0d9dc35052afe8
dd912650f29293c79cdcf525ffb537d3a2c5a9a7 19-Jan-2017 Peng Xu <pengxu@google.com> Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor" am: 29280addfd am: 4925ffcbec
am: ce7bcb28ff

Change-Id: I9a241d3ecf5c7bee929f42bcba4438a60e36f94c
ce7bcb28ff04afae719d3147b0bf969e7394d8f7 19-Jan-2017 Peng Xu <pengxu@google.com> Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor" am: 29280addfd
am: 4925ffcbec

Change-Id: Id48ac0e29a62e17495ae0ae7f4b5741e89e93121
29280addfdd6b4573ceb18ccb59c213ba76b4cae 19-Jan-2017 Peng Xu <pengxu@google.com> Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor"
1966cf622baabcb5e496bb9c9ce4a2f9c438b124 21-Dec-2016 Jesse Hall <jessehall@google.com> EGL: Load updated EGL/GLES drivers

Because the driver namespace is stored in libgui, and libgui depends
on libEGL, this required a hack for libEGL to access the namespace.
See the comment added in GraphicsEnv.h for details; the summary is
that the libgui->libEGL dependency should go away, and then libEGL can
depend on libgui directly.

For system drivers, the loader would happily load anything named
lib{GLES,EGL,GLESv2,GLESv1_CM}_*.so in /vendor/lib[64]/egl, for
backward-compatibility with the old and no-longer-supported egl.cfg
system. However, it preferred unsuffixed names. That's not actually a
good idea, since the DT_SONAME would clash with the system libraries.
For updated drivers, we only look for suffixes from the
ro.hardware.egl and ro.board.platform system properties, similar to
the Vulkan and HAL library search. A future change (tied to a future
release) will do the same for system drivers.

Bug: 33531483
Test: Launch GLES apps w/ and w/o updated driver package
Change-Id: Ibfbb275629b0c6cf9c51314aea1361e81ff72d4b
raphicsEnv.cpp
b2401203c6a7c57a7f36efe02bdbd85bf2f64d1a 15-Dec-2016 Jesse Hall <jessehall@google.com> Load updated drivers using derived loader namespace

Bug: 33531483
Test: Launch vulkan apps w/ and w/o updated driver package
Change-Id: Ia73e1e33b637d6ffd96ea0480ed6d85b9f68dce3
ndroid.bp
raphicsEnv.cpp
a91f64cbe1bc057a466a865446767ffd48133a8f 21-Dec-2016 Jesse Hall <jessehall@google.com> EGL: Load updated EGL/GLES drivers

Because the driver namespace is stored in libgui, and libgui depends
on libEGL, this required a hack for libEGL to access the namespace.
See the comment added in GraphicsEnv.h for details; the summary is
that the libgui->libEGL dependency should go away, and then libEGL can
depend on libgui directly.

For system drivers, the loader would happily load anything named
lib{GLES,EGL,GLESv2,GLESv1_CM}_*.so in /vendor/lib[64]/egl, for
backward-compatibility with the old and no-longer-supported egl.cfg
system. However, it preferred unsuffixed names. That's not actually a
good idea, since the DT_SONAME would clash with the system libraries.
For updated drivers, we only look for suffixes from the
ro.hardware.egl and ro.board.platform system properties, similar to
the Vulkan and HAL library search. A future change (tied to a future
release) will do the same for system drivers.

Bug: 33531483
Change-Id: If6eb7dbbc37f219c999e20a983569d4c4e73bda1
Merged-In: Ibfbb275629b0c6cf9c51314aea1361e81ff72d4b
raphicsEnv.cpp
afd02885b98d85df0ae516bf8d89b90f9c6f6d00 15-Dec-2016 Jesse Hall <jessehall@google.com> Load updated drivers using derived loader namespace

Bug: 33531483
Change-Id: I7e4d5b76d5dde42f2d1b2ad5079a5339a4d11f3d
Merged-In: Ia73e1e33b637d6ffd96ea0480ed6d85b9f68dce3
ndroid.mk
raphicsEnv.cpp
27d40795cd61247006a1a15a7dc0687be3dfc4f7 17-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'drvup-master'

* changes:
EGL: Load updated EGL/GLES drivers
Load updated drivers using derived loader namespace
7a8d83ef77b31097cbccfc89ee93414b3f2c2d03 21-Dec-2016 Jesse Hall <jessehall@google.com> EGL: Load updated EGL/GLES drivers

Because the driver namespace is stored in libgui, and libgui depends
on libEGL, this required a hack for libEGL to access the namespace.
See the comment added in GraphicsEnv.h for details; the summary is
that the libgui->libEGL dependency should go away, and then libEGL can
depend on libgui directly.

For system drivers, the loader would happily load anything named
lib{GLES,EGL,GLESv2,GLESv1_CM}_*.so in /vendor/lib[64]/egl, for
backward-compatibility with the old and no-longer-supported egl.cfg
system. However, it preferred unsuffixed names. That's not actually a
good idea, since the DT_SONAME would clash with the system libraries.
For updated drivers, we only look for suffixes from the
ro.hardware.egl and ro.board.platform system properties, similar to
the Vulkan and HAL library search. A future change (tied to a future
release) will do the same for system drivers.

Bug: 33531483
Test: Launch GLES apps w/ and w/o updated driver package
Change-Id: Ibfbb275629b0c6cf9c51314aea1361e81ff72d4b
raphicsEnv.cpp
53457dbae92cb6fb12fac06cf0e874ff3c49528d 15-Dec-2016 Jesse Hall <jessehall@google.com> Load updated drivers using derived loader namespace

Bug: 33531483
Test: Launch vulkan apps w/ and w/o updated driver package
Change-Id: Ia73e1e33b637d6ffd96ea0480ed6d85b9f68dce3
ndroid.bp
raphicsEnv.cpp
c939411a88e5a248f6e6668b8b4041e868b97059 17-Jan-2017 Brian C. Anderson <brianderson@google.com> Merge changes from topic 'latchAndLastRefresh'

* changes:
EGL: Expose latch, last composite, and dequeue ready.
Add a DequeueReady FrameEvent
b621c5f0672244c6f67ef8a24a40ee7a53b89a57 16-Jan-2017 Brian C. Anderson <brianderson@google.com> Merge "Clean up Fence a little."
e36acfab9235dbdfe622f25ddbe183429c6aed58 12-Dec-2016 Jesse Hall <jessehall@google.com> Add GraphicsEnv to libgui

This singleton class stores information provided by the framework and
makes it available to EGL/GLES/Vulkan loaders. It will eventually
replace vulkan::LoaderData and possibly the egl blob cache directory
storage.

Bug: 33531483
Test: various apps w/ and w/o driver package installed
Change-Id: If8b84fd38428f1cc9fcee8ffc25eb90cd87cedb4
(cherry picked from commit 90b25ed559f3d04777dbbc195ad5c95287990bf7)
ndroid.bp
raphicsEnv.cpp
53c82c269692442f1e6456127184f3afa7d1d568 12-Dec-2016 Jesse Hall <jessehall@google.com> Add GraphicsEnv to libgui

This singleton class stores information provided by the framework and
makes it available to EGL/GLES/Vulkan loaders. It will eventually
replace vulkan::LoaderData and possibly the egl blob cache directory
storage.

Bug: 33531483
Change-Id: I40c3952374badabea738a34a51db90bf197979b8
Merged-In: If8b84fd38428f1cc9fcee8ffc25eb90cd87cedb4
ndroid.mk
raphicsEnv.cpp
90b25ed559f3d04777dbbc195ad5c95287990bf7 12-Dec-2016 Jesse Hall <jessehall@google.com> Add GraphicsEnv to libgui

This singleton class stores information provided by the framework and
makes it available to EGL/GLES/Vulkan loaders. It will eventually
replace vulkan::LoaderData and possibly the egl blob cache directory
storage.

Bug: 33531483
Test: various apps w/ and w/o driver package installed
Change-Id: If8b84fd38428f1cc9fcee8ffc25eb90cd87cedb4
ndroid.bp
raphicsEnv.cpp
911907815e02f8ddc8bbc852326d65bac9824084 14-Jan-2017 Brian C. Anderson <brianderson@google.com> Merge changes I6f728af0,I580409f0

* changes:
Surface unit tests for getFrameTimestamps.
Avoid sync calls for unsupported/non-existant times
1208546afec1eaa4aba85df78b72ef34dc3e086f 13-Jan-2017 Rob Carr <racarr@google.com> Merge "Add ScreenshotClient functionality for returning GraphicBuffer."
f6b96f91463158fae4c9fdb0e878d79e6da6c8f1 13-Jan-2017 Ashutosh Joshi <ashutoshj@google.com> Merge "Add an uncalibrated sensor type."
ab4e1ffdaa062ab369b125be0cf518a3054e6328 12-Jan-2017 Ashutosh Joshi <ashutoshj@google.com> Add an uncalibrated sensor type.

Adding an uncalibrated sensor type.

Test: Build compiles.
Change-Id: Ib082e81220ecafe76452c8df5ffe3e3f7c80a50a
ensor.cpp
673134ed213458e8d92920a9819f7b714947e211 10-Jan-2017 Robert Carr <racarr@google.com> Add ScreenshotClient functionality for returning GraphicBuffer.

WM and SysUI are interested in screenshotting to GraphicBuffer, for
zero copy initialization of Starting Windows and usage in SysUI. Both
codepaths are co-existing in the WM now, so existing screenshot APIs
are not cleaned up, though perhaps they could be soon.

Test: Manual in combination with other branches.
Bug: 31339431
Change-Id: I11151f44eddbba53559befebf5ee2bde1dee9b40
urfaceComposerClient.cpp
f7fd56a649f07133ad78d31eb5d3ae7a4e95d522 02-Sep-2016 Brian Anderson <brianderson@google.com> EGL: Expose latch, last composite, and dequeue ready.

Also fix discontinuous reserved token values.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I9d513b8784a7205dfe534c1c74b56c18cd49e74a
urface.cpp
ests/Surface_test.cpp
175a7206c5aea70236b916d7707ab25025eb9cd6 11-Oct-2016 Brian Anderson <brianderson@google.com> Clean up Fence a little.

Test: Cleanup patch only. Fences still work.

Change-Id: I65e5cdf5e3c067bc475c085ab6d3577d9753231c
rameTimestamps.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
3da8d2748580b2575e368e203ce2c7f8d34dea05 29-Jul-2016 Brian Anderson <brianderson@google.com> Surface unit tests for getFrameTimestamps.

Verifies the following:

1) The timestamps and fences aren't transferred if the
feature isn't explicitly enabled.
2) Attempts to get the timestamps will fail if not enabled.
3) Timestamps are transferred if enabled.
4) The support for Present/Retire timestamps are properly
queried from the ISurfaceComposer.
5) Timestamps correspond to the correct frame.
6) The consumer doesn't send the acquire fence back to the
producer and a sync call isn't made to try and get it
from the producer.
7) A sync call isn't made when no timestamps are requested.
8) If the consumer sent the producer fences, the consumer
can get the timestamps without a sync call.
9) If there was no GL composite performed, a sync call
isn't made to get a non-existant fence/time.
10) When asking for the retire or release time of the most
recent frame, a sync call isn't made.
11) Requests for unsupported timestamps return an error and
do not result in a sync call.

Test: Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I6f728af0d4a0f431c9e47131da64584a589559e7
rameTimestamps.cpp
urface.cpp
ests/Surface_test.cpp
f6386862dffb0fb9cb39343d959104a32e5e95b7 01-Nov-2016 Brian Anderson <brianderson@google.com> Add a DequeueReady FrameEvent

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I98ffd4123fc50b5f560e432f4078408c913c8edf
rameTimestamps.cpp
ests/Surface_test.cpp
50143b3780ad2aaa544c8d2d47619214b79c3c56 30-Sep-2016 Brian Anderson <brianderson@google.com> Avoid sync calls for unsupported/non-existant times

* Make sure not to do sync calls for present or retire
if they aren't supported.

* Don't do sync calls for retire or release if they
can not possibly exist.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I580409f01cbf07e9a6e00fbb05d914654f12a4a2
urface.cpp
e0ea99cc4ba89452b9b6b1baa33bddcb11f3351a 12-Jan-2017 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of a2c2d11f9 to master

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I84d0ffa430df3beca0dcc6ed205ce220d7be1f87
fbc97581511f1fa6aba808a970afa912706fbdea 12-Jan-2017 Mark Salyzyn <salyzyn@google.com> Merge "Replace cutils/log.h and rationalize log/log.h and android/log.h" am: d655e61a22
am: 16a30c1ac8

Change-Id: I697418fbab0dbbd447d0dca2eda5b1545cc2522e
7823e124e00576e20e47ec717cbe8bc89f0f2bf2 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if possible
- add system includes that are assumed as side effects
- define LOG_TAG first

Test: compile
Bug: 31289077
Bug: 30465923
Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd
raphicBufferAlloc.cpp
ensor.cpp
bb09b436fa119ad8b97f1bf5c04cc5aa10b5f1f0 30-Nov-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Make dataspace accessible to surface flinger

http://b/29940137

Keep track of dataspace in GLConsumer and make it
available to surfaceflinger's Layer class.

Test: TBD
Change-Id: I099dc6d8424909c5fc31bfe2d05a656695c4251b
LConsumer.cpp
5f541b9631ef51272658874fc06789972183c1da 09-Jan-2017 Jesse Hall <jessehall@google.com> Merge "Surface: Use async lock/unlock in copyBlt" am: b73de86f13 am: e29dda829d am: 55f599a079
am: 0bd15c1613

Change-Id: Ib1d9c139c68cfdc7b3854b94b825db5d980bc1ef
55f599a07966606ab1e3ea61f4e9c6e28d1cf5c1 09-Jan-2017 Jesse Hall <jessehall@google.com> Merge "Surface: Use async lock/unlock in copyBlt" am: b73de86f13
am: e29dda829d

Change-Id: I753acee7ab8f0c0ca62a5606ae1b5c44e2314fd3
c8e4c3d7d9f987b84ed307cb78732a34d21d3b5a 05-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Create libgfx, starting with FloatRect"
7b09e799f325d62dde2cce0f8615e0ebe318c096 09-Jan-2015 Francis Hart <fhart@nvidia.com> Surface: Use async lock/unlock in copyBlt

The Surface::lock() function now uses the asynchronous versions of
gralloc lock/unlock when copying the previously drawn content to the
backbuffer. This allows for optimisations in the gralloc module
implementation and so can improve performance and avoid CPU waits.

Change-Id: I57193f327db2ff0422e1b58b3484f613201d994c
urface.cpp
2c3a873135d1ef4870706714b4fa3988c197cc5d 04-Jan-2017 Francis Hart <fhart@nvidia.com> Merge "Surface: Ensure synchronisation of copyBlt" am: 88f77814a1 am: 5a2dcde971 am: 11d80ae93e
am: 3c3aba0214

Change-Id: Id93abe6750314f6fcdc7cfa044ca2e38b294d0d5
11d80ae93e8aaa1fda4ad32605a360daca2e1b53 04-Jan-2017 Francis Hart <fhart@nvidia.com> Merge "Surface: Ensure synchronisation of copyBlt" am: 88f77814a1
am: 5a2dcde971

Change-Id: Ifb17a3d79f367bf22e01746209453f8b36bb35b5
88f77814a1fe7a5cbf374bd16cdc88464e3fc8fe 04-Jan-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Surface: Ensure synchronisation of copyBlt"
8bcd61c5ab8946f5769319e0fa7f80a5fdb714af 04-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add libsync to dependencies of libgui"
153fbc8f8ba24e6e8f682c7aab7c205ade1fec6c 04-Jan-2017 Jesse Hall <jessehall@google.com> Add libsync to dependencies of libgui

This avoids a build break when AOSP change
https://android-review.googlesource.com/c/117076/
merges to internal master.

Test: mmm frameworks/native/libs/gui
Change-Id: I1a1d786e5079d07b5c7e3dedf9010ca783851041
ndroid.bp
71bded513d37a6c1260b4a62c69ecc0d24be95f7 19-Oct-2016 Dan Stoza <stoza@google.com> Create libgfx, starting with FloatRect

Creates libgfx, the future home of everything currently in libui and
libgui, which will be rigorously checked with -Weverything (with a few
common-sense exceptions) and clang-tidy and formatted using the included
.clang-format file.

Starts by moving FloatRect out of services/surfaceflinger since it will
be used by other libgfx primitives later.

Test: m
Change-Id: I5045ac089020e6ee380e81e8735117c500264b37
ndroid.bp
c03d283e8b3f830d76dd94822b2a13872c05c730 28-Dec-2016 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of 525a5f2 to master

Test: build
Change-Id: Id1c6d3d9dd158fb086b0d8ab74f7838ef0a51af1
430f62090cefe4630794873e30390433ad3e49a7 28-Dec-2016 Mark Salyzyn <salyzyn@google.com> Merge "Replace cutils/log.h and rationalize log/log.h and android/log.h" am: 1efda0b1d6
am: 7e92307cd8

Change-Id: I1523bfc0794fe8463fb6134ae8d8c5902947de8b
a5e161b1207ef447a51e99856097d69d4a6111e1 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if required
- add system includes that are assumed as side effects of log.h
- modules that use SLOG should use SLOG for all logging (installd)
- define LOG_TAG first
- remove logging infrastructure if not used

Test: build
Bug: 31289077
Change-Id: Iea147a0104c7ab7f12451304131d6500f42141e7
raphicBufferAlloc.cpp
ensor.cpp
88c55f90be1ae0eedd72c91149903fb2cc3abcdc 20-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Align properly in BufferItem::getFlattenedSize."
c4c286f30a60ef9ebfc959ea4869d87ceeb831dc 17-Dec-2016 Romain Guy <romainguy@google.com> Merge "Remove RGBX_FP16 format"
166429f252b9de9472423c0c79112c16d4af0fff 16-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Suppress unnecessary "frame not found" errors."
d3e08d4811e13aefd656e3376e7d56e2d37bb388 16-Dec-2016 Romain Guy <romainguy@google.com> Remove RGBX_FP16 format

Bug: 32984164
Test: compile
Change-Id: I4e0eadc3066717d4644d71cf2684a617bae34a1f
puConsumer.cpp
LConsumer.cpp
e2caadca83c8842bbfe74e21f11b9e2b5aeb4e13 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add fp16 pixel and window formats"
9698c2f193666ab506a6edf113c5a77d0d0acb3b 15-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Use FenceTime to share fence times and reduce open fds."
0f056f080d4766523a396c6efb3ae224f287e9ca 11-Oct-2016 Brian Anderson <brianderson@google.com> Align properly in BufferItem::getFlattenedSize.

Test: SurfaceFlinger still works.

Change-Id: I7b5ef08d33a18f98d485f57e461604ed65b657f1
ufferItem.cpp
4565daa628d914f05dabfeca83d2e5ee07936a99 14-Dec-2016 Brian Anderson <brianderson@google.com> Suppress unnecessary "frame not found" errors.

ConsumerFrameEventHistory only stores 8 frames of history,
but video can queue more than 8 frames, which triggers
some annoying ALOGE messages that aren't really errors.

This patch makes sure to print the error only if the
producer has enabled the frame events, which only happens
with EGL where we won't see more than 3 frames queued.

Test: This only affects error reporting.

Change-Id: I184202a71f5fe29159c148957b92fb2e856bf625
rameTimestamps.cpp
ff415149dc5a83a4eb5960daf2cb2c310ef89847 14-Dec-2016 Romain Guy <romainguy@google.com> Add fp16 pixel and window formats

Bug: 32984164
Test: compile
Change-Id: I8303afbf857796295a280c0d9438a3c403a11437
puConsumer.cpp
LConsumer.cpp
643f0949daccb57e48f2d05b355ce3ea5696965a 07-Dec-2016 Kalle Raita <kraita@google.com> Do not drop MonitoredProducer in binder calls

Currently the MonitoredProducer is left out when the producer is
marshalled for binder calls. If others than the owning layer have
references to the underlying surface, clearing the layer leads to the
surface being removed from the SF tracking list. This is in clear
contradiction with the test case
libgui_test.SurfaceTest#QueuesToWindowComposerIsTrueWhenPurgatorized.

Unfortunately the test case has not accounted for the async nature of
the operation and has been only intermittently failing for a long
while. Change also changes the test to wait for the clear operation to
complete.

Test: libgui_test, AUPT on Pixel XL
Bug: 31045556
Change-Id: Iddb1cef82c492e8b3beeb32de7e11587e0c1ebed
ests/Surface_test.cpp
3d4039d7a291cd9b6f2dd4b46fcdb576f2db3356 24-Sep-2016 Brian Anderson <brianderson@google.com> Use FenceTime to share fence times and reduce open fds.

FenceTimes are created and shared for each Fence that
FrameTimestampHistory and FrameTracker care about.

On the consumer side, the FenceTimes are also added to
shared timelines that are owned by SurfaceFlinger or
unshared timelines owned by Layer. The timelines are
checked at the end of every frame to minimize the number
of file descriptors open.

On the producer side, the FenceTimes are added to
the ConsumerFrameEventHistory instead, since the timelines
that would be tracked by SurfaceFlinger are not shared
with anyone else in the consumer's process. The timelines
are checked just after a frame is queued to minimize
the number of file descriptors open.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Ifd4301affe1b24705b2bee7608c5a2c09dfb4041
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
rameTimestamps.cpp
LConsumer.cpp
urface.cpp
dc10f8464090ccdac5e7bb6839fd8c1bba87b022 01-Dec-2014 Francis Hart <fhart@nvidia.com> Surface: Ensure synchronisation of copyBlt

The Surface::lock() function has an optimisation for copying the
previously drawn contents from the frontbuffer to the (current)
backbuffer, so that the client does not have to redraw the whole surface
contents. This logic was not using the sync fence FD from
dequeueBuffer() and so was not correctly synchronised with pending
operations on the backbuffer.

Change-Id: Ib44574d50f8bdb4a23078cd8da1c5c512c876320
urface.cpp
18fcfb557d17e648f669d346e51a72129cc8bbb4 07-Dec-2016 Yunlian Jiang <yunlian@google.com> Fix warning: macro redefined

Bug: None
Test: The warning is gone.
Change-Id: I27764f834285fc5d7456a9204afd6cef6915ee61
ests/SRGB_test.cpp
c413b7e8b96bfa364a1c3762067eb856ad965e8a 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359 am: dffa078205 am: b8b076e553 am: 46dd3c89e5
am: 04f62d5b99

Change-Id: I6f28a439b03be3fc7151313fc4f963c532196118
60d1f5b1abc557b86fdce7c91e9ae1de29ceebdf 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359 am: dffa078205 am: b8b076e553 am: 46dd3c89e5
am: 04f62d5b99

Change-Id: I64a922e22d208013967018bdf62213525db75f73
04f62d5b99d19a1a8653745c99bdb42ffab27924 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359 am: dffa078205 am: b8b076e553
am: 46dd3c89e5

Change-Id: I7664021716dc9f1a1e09afdbeb04a02f84195354
46dd3c89e554c417b30d8563230d3a97942c144f 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359 am: dffa078205
am: b8b076e553

Change-Id: Ia073be4ad2910078ac1e736ef6d2afadd849a525
b8b076e553ff70d71629c623737958d900a1a450 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359
am: dffa078205

Change-Id: Icea9297e2e5f7467ece053ae869208758f40b954
dffa078205f6b6c17e24214928f642393423e081 06-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix security vulneratibly 31960359

BufferQueueCore features a variable mLastQueuedSlot which is not
initialized in its constructor resulting in security vulnerability

Bug: 31960359
Change-Id: If892f59f6288d8b81b1e312995832a20c8341494
Tests: Manually on Angler
ufferQueueCore.cpp
95df778f8ace17f001faa0d2840004c33906e970 29-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51 am: ce40ad2441
am: 97ce922887

Change-Id: I198eccaf1f86d250088edb48bd5ef3dcb4cebc00
8f2e06aaf3dd0471ee531c1afbc735aa4221d4f1 29-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1 am: 1852db9aa3 am: d4f7a66cf6
am: 0646227ad2

Change-Id: I8c2d45d95b205e32545f39f7ccf746b1707ca682
7c3ba8aa288755fad78ddbabcee0ad5a0610ac1c 25-Jul-2016 Brian Anderson <brianderson@google.com> Update producer's cache of frame events in de/queue

* Cache is only updated during queue and dequeue if
the getFrameTimestamps is enabled.
* The consumer avoids sending a copy of the acquire
fence back to the producer since the producer
already has a copy.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I6a8b965ae79441a40893b5df937f9ed004fe7359
ufferQueueProducer.cpp
rameTimestamps.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/StreamSplitter_test.cpp
3890c3995c4a52439844faeb80b5503d42b977d8 25-Jul-2016 Brian Anderson <brianderson@google.com> Cache frame event history producer-side.

* Producer maintains a recent history of frames.
* Producer only does a binder call if requested
informatiVon doesn't exist in the cache.
* Consumer sends fences to the producer, which
can be queried for timestamps without a
binder call.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I8a64579407cc2935f5c659462cb227b07ba27e43
ufferQueue.cpp
ufferQueueProducer.cpp
rameTimestamps.cpp
GraphicBufferProducer.cpp
SurfaceComposer.cpp
urface.cpp
069b365163470d2736eb6f591c354d208b5da23b 22-Jul-2016 Brian Anderson <brianderson@google.com> Add displayPresentTime to getFrameTimestamps

Makes HWC1 use displayRetireTime and HWC2 use
displayPresentTime.

Properly takes into account if HWC2On1Adapter is used.

Returns whether present or retire is supported via
eglQueryTimestampSupportedANDROID, which uses a
cached answer in Surface.

Surface::getFrameTimestamps returns with an error
if the caller requests an unsupported timestamp.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Ib91c2d05d7fb5cbf307e2dec1e20e79bcc19d90b
SurfaceComposer.cpp
urface.cpp
d6927fb1143398370c0885844bfb58923ef740b7 24-Jul-2016 Brian Anderson <brianderson@google.com> Track frame events incrementally and per layer.

* Replaces FenceTracker, which was owned by SurfaceFlinger,
with FrameEventHistory, which is owned by Layer.
* Updates FrameEventHistory as events occur.
* Changes SurfaceFlinger flag "--fences" to
"--frame-events".

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I868c2ef93964656d7e41848243433499e7f45fe7
ndroid.bp
ufferQueue.cpp
ufferQueueProducer.cpp
rameTimestamps.cpp
GraphicBufferProducer.cpp
baaad32cd582bcc09db89135715717234ea398ea 23-Jul-2016 Brian Anderson <brianderson@google.com> BQ: Make QueueBufferOutput implement Flattenable

It will need to support file descriptors soon.

Also:
* Make it's members public and clean up
inflate/deflate usage.
* Send Fence::NO_FENCE over Binder from dequeue
to indicate lack of fence.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: Ia9e4600424a89ce026ba27e8aaed27a6bab860a4
GraphicBufferProducer.cpp
eae5819174ef95363b50affbc96c3117ccc458a6 23-Jul-2016 Brian Anderson <brianderson@google.com> Remove BnConsumerListener getFrameTimestamps implementation.

Test: Removes an unused method.

Change-Id: I4c8d3ca7efb2b511ff36acb59e45672b0a88f1eb
ConsumerListener.cpp
dbd0ea80021cbc61c578385f534f41a33338085b 22-Jul-2016 Brian Anderson <brianderson@google.com> Rename posted to requestedPresent for getFrameTimestamps

Test: Just a rename.

Change-Id: I63aa5b1b84715de2bebffb25f92bd826323a9acb
urface.cpp
3546a3f08ad84099db4006d651c656d58d2ed566 14-Jul-2016 Brian Anderson <brianderson@google.com> Fix FenceTracker releaseFence

This patch:
* Fixes the release fence when GPU compositing.
* Stores the final release fence in ConsumerBase just
before releasing the Buffer, which helps ensure
sync points aren't added unknowningly.
* Makes HWC2 release pending buffers as the first step
of postCompostion, rather than the last, which should
allow dequeue to unblock a little earlier and helps
make sure the previous buffer's release fence has
been finalized before FenceTracker::addFrame is
called.
* Fence tracker only sets the release fence once it
has been finalized so it does not report a release
fence for a buffer that is still latched.

Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*

Change-Id: I27d484bfd48f730bdcea2628f96795c6f4b4df7b
onsumerBase.cpp
e52d9e2acec131484588a2eb184d1d4b34eebeb3 15-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add layered buffer support to libui and libgui."
3422bee3cfad6b50b6f325898b623c92e709ec28 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51 am: ce40ad2441 am: 97ce922887 am: f69a37981f
am: 1ff5005698

Change-Id: Id726734cd8dcd454097397229e24532ab99a2d6c
1ff500569866920f44b73991b9755b10d49db713 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51 am: ce40ad2441 am: 97ce922887
am: f69a37981f

Change-Id: I84075320a494263410ba9454a8c1ec97fe5098f3
8c015e29b5dfae55bbb8f78f5ef88ee2744cf0cd 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1 am: 1852db9aa3 am: d4f7a66cf6 am: 0646227ad2 am: b4bd9606e0
am: 0bc4216678

Change-Id: Ica5b683c1c224e847db25d7ba192ba6d80ef9704
f69a37981fd7b8f9ee4eda517931d47bf107c7cb 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51 am: ce40ad2441
am: 97ce922887

Change-Id: I7b7bec42b2bb5d9b68e42681e599d1d979a298c1
97ce922887ee53eae54333c44007948ea40e914b 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51
am: ce40ad2441

Change-Id: Ia569c1b5841cf75626ae29e656688a405709ad79
0bc421667819f0ae0928834935af1534495f45f8 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1 am: 1852db9aa3 am: d4f7a66cf6 am: 0646227ad2
am: b4bd9606e0

Change-Id: I738237f426b898a05cb9511dbc0a768e7cc00cdf
ce40ad244154c875f1e1fd3cdce2c1440fe8fb6a 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f
am: c261a17e51

Change-Id: I8ef7a57b682596d4644bca2c8e5a7003d3125cca
b4bd9606e0f05781540a9dc3593e6733a696ce3d 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1 am: 1852db9aa3 am: d4f7a66cf6
am: 0646227ad2

Change-Id: If15e3089b94f73cee3cb0a284b0a514cf433331b
0646227ad2e6c1aaddc40fc871554b51a953fa29 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1 am: 1852db9aa3
am: d4f7a66cf6

Change-Id: I468e9387f0541fc22d71179ff6e05397f99e4dce
c261a17e516fd2ac5b391c38031759faaef6feb3 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224
am: b17adaa85f

Change-Id: I4259f7bbfafe66f7690c1ecd80f8c81a398ae78f
b17adaa85f8bd7112c0efb872ce461aaf70f73ef 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a
am: 57dbf1c224

Change-Id: I5f91ea6e826a24d37bf8c7f7cbcc49a235532a14
d4f7a66cf698f6229553980593d81cff80f02c77 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a am: b0dff427a1
am: 1852db9aa3

Change-Id: Ief2e221eb25138131d4b9fe19b669dca26dd1726
57dbf1c224be67afc296ef97b70b6a13647d4c83 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f
am: c8684d517a

Change-Id: I7d37baee66a7a16cb77e227b66ba93bc87119810
1852db9aa3e558c0a601d6b15c45214b0c6deff1 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169 am: 0517da2c5a
am: b0dff427a1

Change-Id: If61fab86a971de18633549240d32f41205bc52e9
c8684d517aeae248b0579ef7fcb4d31ff28e59a3 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef
am: aff7827b4f

Change-Id: I2a759e2ecdf1c67cb764a9279da23386cfb54914
b0dff427a1dd35598085a58d48ebf83260583cbf 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b am: a928cc7169
am: 0517da2c5a

Change-Id: Ie25ecd20988d9aa8d3f59b07d00b80c0a18d5e3a
0517da2c5a385663b5d4b0292f7799735cb0bb35 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f am: 230b943c6b
am: a928cc7169

Change-Id: I682597ada156253e34ef067ae565d656c6bb39f7
aff7827b4fb561f552a2da15ced8c30addfe4d08 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409
am: 275b2347ef

Change-Id: Iae0109ec3bddd6f71bab1759003a34e75270f6d4
275b2347efa92198ce6c69e0cc78ecf7d3c99aaf 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2
am: 9d14ab5409

Change-Id: I0ed8d425157308f35b43818a9592267c06cdc807
a928cc7169502813a29fcf582fc3e47207f0048c 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020 am: d073eb7a3f
am: 230b943c6b

Change-Id: I439ff370c0a353bb9a0adc14a39aedd1ec5a783d
230b943c6b92d97f64729facb68bd68cb8016e02 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020
am: d073eb7a3f

Change-Id: I5b7bf4ecee39de868b9c275531a6f11e65d1c3fd
e5c91fe2e2efdac5af4394253b696d46742446ee 15-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278
am: 2d8a2432e0

Change-Id: Ia5f419d7d113692f5d52b483f70ca09589333e13
6ebc46a7c01b22bc19d3c00b493f8d930b15b43a 22-Oct-2016 Craig Donner <cdonner@google.com> Add layered buffer support to libui and libgui.

Bug: 31686534
Test: manual
Change-Id: Ia40270701467f4b785660324cad883e7da08989a
ufferQueueProducer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
ests/Surface_test.cpp
d073eb7a3f28fd74bfa24c8b7599465cb7de5436 09-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32706020

Because of lack of mutex lock when get mConsumerName, if one thread
getConsumerName, another thread setConsumerName frequently, an UAF will
be triggered.

Change-Id: Id1bbf0d15de6d16def2f54ecade385058cda3b65
Test: Marling with poc provided in bug report.
Bug: 32706020
ufferQueueProducer.cpp
2d8a2432e04234d9edbb3b099f9bbbaa36ad4843 09-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix SF security vulnerability: 32660278

Because of lack of mutex lock when get mSidebandStream, if one thread
getSidebandStream, another thread setSidebandStream frequently, an UAF
will be triggered.

Bug: 32660278
Test: Marlin device with poc
Change-Id: Idbcf0976ce2db682d0f13455105c45a5c7481a45
ufferQueueConsumer.cpp
54dd92287d24406a8f46bcd4ffc60c807ddc01ab 08-Nov-2016 Craig Donner <cdonner@google.com> Merge "Keep protected content in EGLImage attrs as needed." am: 5a03327fa8
am: e86b7fb0cf

Change-Id: I6838c4f9c3885a0cc7e27355b5163c132e9f7b3e
e86b7fb0cf7fc3cbddd31d319c65c3d5a73406b4 08-Nov-2016 Craig Donner <cdonner@google.com> Merge "Keep protected content in EGLImage attrs as needed."
am: 5a03327fa8

Change-Id: Id79a4a1548e5c7f4cb504d474f856727bf0b51ee
f0b3db97fbb03a3ab0074c55a94464341988e630 18-Oct-2016 Michael Schwartz <schwartzmi@google.com> Remove unused dependencies

Also export libui headers since files like ConsumerBase.h depend on
symbols from that library.

Bug: 32208916
Test: Compiles for bullhead_treble-userdebug

Change-Id: I7148ee908f8115f6125b2d6971788709fbcf6202
ndroid.bp
ests/Android.bp
7fb30a8251a29cd3293e0bfc75f08e0836df0dc3 20-Oct-2016 Craig Donner <cdonner@google.com> Keep protected content in EGLImage attrs as needed.

When image_crop isn't supported, we also throw away the
protected_content_ext attrs in GLConsumer. Instead, keep them
around if they're used.

Bug: 32222880
Test: manual (cp from internal)
Change-Id: Ic182810cbaacdfaf912c57667f5176d3e47941a9
LConsumer.cpp
aafbfc0db4d5ff90681dacf584098973624463fc 01-Nov-2016 Marco Nelissen <marcone@google.com> Remove unneeded dependencies from libui and libgui

Test: build/boot
Change-Id: I3714e0c081837060ac6a6b28a32117d29b95e3d0
ndroid.bp
9b1d69080c791c669bb6f6b4412847b0db26efe6 28-Oct-2016 Craig Donner <cdonner@google.com> Keep protected content in EGLImage attrs as needed. am: a94d940c75
am: 78d93fcd28

Change-Id: Ifde3502241127dc24e2d16e100e304e07b44c619
78d93fcd28d4fba5e28fa29eee6d373a5e5c180d 28-Oct-2016 Craig Donner <cdonner@google.com> Keep protected content in EGLImage attrs as needed.
am: a94d940c75

Change-Id: I3376d949d387b4d0f70698b26dfd9f66755db88f
a94d940c75456714b1c4425dde1e44802cb838f7 20-Oct-2016 Craig Donner <cdonner@google.com> Keep protected content in EGLImage attrs as needed.

When image_crop isn't supported, we also throw away the
protected_content_ext attrs in GLConsumer. Instead, keep them
around if they're used.

Bug: 32222880
Change-Id: Ic182810cbaacdfaf912c57667f5176d3e47941a9
LConsumer.cpp
a33106352d32328660c22318da3de2fd6212f50f 04-Oct-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp

See build/soong/README.md for more information.

Test: mmma -j frameworks/native/{libs/gui,opengl/libs}
Change-Id: I90b4e299ebd2a38afb6642bc242d4ad5424fb901
Merged-In: I90b4e299ebd2a38afb6642bc242d4ad5424fb901
ndroid.bp
ndroid.mk
ests/Android.bp
ests/Android.mk
4149a66f5661f38c36d0110381f5ed372383331f 18-Oct-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp am: 3106c1c4fc
am: 2d4e12f147

Change-Id: Iaed7fa8aa07d9bbcf3614e6a0ec859d623997dbc
2d4e12f1473353c76a113abebda363010e027737 18-Oct-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp
am: 3106c1c4fc

Change-Id: I4e0b4bbe420201473a345ed19eaee753f45a4b80
3106c1c4fc8365312385adb063e808fe4643901e 04-Oct-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp

See build/soong/README.md for more information.

Test: mmma -j frameworks/native/{libs/gui,opengl/libs}
Change-Id: I90b4e299ebd2a38afb6642bc242d4ad5424fb901
ndroid.bp
ndroid.mk
ests/Android.bp
ests/Android.mk
48856d970403c1b7d4fe29eea520404d509622e0 18-Oct-2016 Matthew Bouyack <mbouyack@google.com> In SurfaceFlinger, test fence before merging am: 377c203375
am: 29cacbe8fe

Change-Id: I2daf0fe8d3e6c25cd41e46940137842179da1e6e
ea2b73b678cb72ed1c73b65d100a316e291a2e88 18-Oct-2016 Nick Vaccaro <nvaccaro@google.com> Sensors: Add WRIST_TILT_GESTURE as wake sensor am: 5e7f79bf29
am: 0eabfd2d6e

Change-Id: I7f18f764215f341756ce6c495cc24481d2d10df7
29cacbe8fedffe0f6db2c2836f76b6497caf78ab 18-Oct-2016 Matthew Bouyack <mbouyack@google.com> In SurfaceFlinger, test fence before merging
am: 377c203375

Change-Id: Icfbcbe58de9f6930f06774f47e6576ec523115bd
0eabfd2d6e8eb5864149be13f32444ba94e1a57e 18-Oct-2016 Nick Vaccaro <nvaccaro@google.com> Sensors: Add WRIST_TILT_GESTURE as wake sensor
am: 5e7f79bf29

Change-Id: Iffcd4b96d1156d314b42e89f8114b9b1de48d258
a34aade39ae0cf56c1747c13defd996b937dc9f3 18-Oct-2016 Matthew Bouyack <mbouyack@google.com> Merge changes I5d907c33,Ibce48cd2 into cw-f-dev

* changes:
In SurfaceFlinger, test fence before merging
libui: Change hasSignaled to return optional<bool>
5e7f79bf29e488ab589daf98b089697b8c767765 18-Oct-2016 Nick Vaccaro <nvaccaro@google.com> Sensors: Add WRIST_TILT_GESTURE as wake sensor

Include WRIST_TILT_GESTURE sensor type when determining if
a sensor is a wake sensor or not in getDefaultSensor().

Change-Id: Ib9ae3990e063848163edd34be2ec021ed518e346
ensorManager.cpp
377c2033750ad2a47e5c560f982a0242ea7dc79e 08-Oct-2016 Matthew Bouyack <mbouyack@google.com> In SurfaceFlinger, test fence before merging

If the old fence for a given layer has already expired, we can replace
it with the new fence rather than merging the two.

This saves 300-400us per frame on Android Wear

Change-Id: I5d907c336c7383ae4e2e0f71e42f23749494a359
onsumerBase.cpp
cf307b3a45825a1d74c10ae01c599ea0d586a17a 12-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 26989871a5 am: 35368f2475 am: 274347ebf1
am: 9420a844a5

Change-Id: Ibc3d4f92c9d25893d23e099d9a74862777893438
9420a844a588113d1ac2c940a22d972549d13cd1 12-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 26989871a5 am: 35368f2475
am: 274347ebf1

Change-Id: Idce8ffa834e8ae8298d3ab8f516b4f4f31b02f18
274347ebf122c4d7cf9f71c663b23803faad848d 12-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 26989871a5
am: 35368f2475

Change-Id: I1dffb52b3f59a8fe42c4c42e10ff7c9287e81e63
56a8d3260d1273a50a538f94bb376573c08e0600 11-Oct-2016 Elliott Hughes <enh@google.com> Rely on the platform -std default.

Bug: http://b/32019064
Test: builds
Change-Id: I88ea6b959b9d855a536e1475ed437105370203d0
ndroid.mk
6a242bac1145da44ac9b7aa3a2a7d44a4bee4eed 10-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name am: fd4c8c3805
am: c7d352eb17

Change-Id: I41e5e4313af7784cb2ddbd4f278eb4e675cb3a08
c7d352eb17bc507d9e28ec878895bd888166e514 10-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name
am: fd4c8c3805

Change-Id: I16d3eb7cde318f2078be36acea22b9bc84975b63
f35d95673e68285b2c25c914e51d9fba8e833a26 10-Oct-2016 Matthew Bouyack <mbouyack@google.com> Merge "Use snprintf for SurfaceFlinger fence name" into cw-f-dev
fd4c8c38051f9dad028e4e43e0eb39ba412b2c0a 07-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name

snprintf is significantly faster than String8::format
This change saves ~50us per frame on Android Wear

Change-Id: I6ac47c2434662ca561208daae232f02a9f136aaf
onsumerBase.cpp
59ea1049746e67065864928b1350a2edd78cdc4f 07-Oct-2016 Matthew Bouyack <mbouyack@google.com> resolve merge conflicts of 3b8e6b2 to nyc-mr1-dev-plus-aosp
am: 20e9085b51

Change-Id: I5b8f075d9a42ab3de359dc9bef9767d23af493d2
20e9085b51c00b7828e3a8fdfe902adc1c89a924 07-Oct-2016 Matthew Bouyack <mbouyack@google.com> resolve merge conflicts of 3b8e6b2 to nyc-mr1-dev-plus-aosp

Change-Id: I9c02a56d63de5828453aa8926ca801d96b04a6cf
077f38caaf921e394d6819fff4e574c5a07fe4a3 05-Oct-2016 Colin Cross <ccross@android.com> Merge "Fix anonymous struct and union warnings" am: 87e72cb237 am: a3ac6c2b86 am: 86eff80c19
am: ee45b938e8

Change-Id: I3580bd93dca6c863a11435c0fc4fa5bf25f51067
ee45b938e8a45f125a062b73d7111d636141ad68 05-Oct-2016 Colin Cross <ccross@android.com> Merge "Fix anonymous struct and union warnings" am: 87e72cb237 am: a3ac6c2b86
am: 86eff80c19

Change-Id: I6358d387eebddcd9238f250db7429f5846a2260a
86eff80c1961aa716efefbac218841259c6f96d4 05-Oct-2016 Colin Cross <ccross@android.com> Merge "Fix anonymous struct and union warnings" am: 87e72cb237
am: a3ac6c2b86

Change-Id: Iecd9d1b0b6a22d48a1cac59e028f7d31b50a3e3e
b1f30bae12a0df810a62f819ab3ac680b00768b9 01-Oct-2016 Colin Cross <ccross@android.com> Fix anonymous struct and union warnings

gui/BufferItem.h and android/sensor.h uses anymous structs and nested
anonymous unions, which are GNU extensions. sensor.h uses them as part
of its API, so disable the warnings in libgui, the only module that
tries to use it with -Weverything. BufferItem.h only uses the unioned
fields inside libgui, remove the union and do the 64-bit to 32-bit
slicing manually so libvulkan doesn't need the warnings disabled.

Bug: 31752268
Test: m -j
Change-Id: I92d59b1202f4d6e5419edaa6d27b6e1c50ac0042
ndroid.mk
ufferItem.cpp
6247ea9e71babcb2544331d8d8179d11af5a802e 04-Oct-2016 Colin Cross <ccross@android.com> Fix libgui warnings am: 6c5a17dd26 am: 972cce4cb9
am: af06c61e1b

Change-Id: I191c8a14d54427215922427c4bb497bdb7c27dd9
3b8e6b2f30af0564538c2a660033d6a97ab8038f 04-Oct-2016 Matthew Bouyack <mbouyack@google.com> Eliminate unnecessary calls to onBufferReleased

This change adds a callback to ProducerListener to indicate whether the
listener needs the 'onBufferReleased' notification. This allows us to
avoid making that binder call unnecessarily, saving ~170us per frame on
Android Wear.

By default the new callback returns true, so behavior for existing
clients should be unchanged. Only the DummyProducerListener returns
false.

Also note that it would be simpler to just pass NULL for the
ProducerListener if not for that fact that we still need it for death
notification.

Bug: b/31122630

Change-Id: I730834218a055d89e89f876dd77da8127eb78000
ufferQueueCore.cpp
ufferQueueProducer.cpp
ProducerListener.cpp
bb6d63ad528f94c350b65fb9f94004c691360066 01-Oct-2016 Colin Cross <ccross@android.com> Merge "Rename dump methods to dumpState" am: c72b9a3ce4
am: 219df2fd5b

Change-Id: I0597aa09cf66820708b125421e0814d1c1f6a4ac
dc782511dcaf46c7fa7488391cc27f0d0be354b0 27-Sep-2016 Colin Cross <ccross@android.com> Rename dump methods to dumpState

The dump methods shadow the IBinder dump method. The warnings were being
hidden by the use of -isystem to include frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: Iafc64da43032d5d9d84b64640e70d93fd7051bcf
(cherry picked from commit 3d1d280fa3cbc30700f728a4b13e5308315433d3)
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
4308a78ab80b776ae18d4c7a902dc20f2bc3e613 01-Oct-2016 Colin Cross <ccross@android.com> Merge "Rename dump methods to dumpState"
33a6d87795574c7d87fb1a8cdad34ec0eb152a10 30-Sep-2016 Colin Cross <ccross@android.com> Fix logging implicit sign conversions am: 8bafabf1f6
am: 6b2749643f

Change-Id: I22582b46e7490c3a6aae4417628a2d585fd21460
af06c61e1b5ce33fc1afa825f7eb21368c1c6e9b 30-Sep-2016 Colin Cross <ccross@android.com> Fix libgui warnings am: 6c5a17dd26
am: 972cce4cb9

Change-Id: I83e31cd57286bb8fc5a25f7a1f6d895176640a84
5fa1223322175356e6ac943cb06d8b1e1cfc39d9 27-Sep-2016 Colin Cross <ccross@android.com> Rename dump methods to dumpState

The dump methods shadow the IBinder dump method. The warnings were being
hidden by the use of -isystem to include frameworks/native/include.

Bug: 31752268
Test: m -j
Merged-in: Iafc64da43032d5d9d84b64640e70d93fd7051bcf
Change-Id: Iafc64da43032d5d9d84b64640e70d93fd7051bcf
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
6e7e2b44efa6427cc106b20cea76d9a80dadcac9 27-Sep-2016 Colin Cross <ccross@android.com> Fix logging implicit sign conversions

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I2ce11db524ee9d8f846fdf3ed6fb882d5ef57956
(cherry picked from commit 152c3b749a8ec634afc66dddef7d33130472aeb1)
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
8bafabf1f69673340c6504037997293322b9fb89 27-Sep-2016 Colin Cross <ccross@android.com> Fix logging implicit sign conversions

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Merged-in: I2ce11db524ee9d8f846fdf3ed6fb882d5ef57956
Change-Id: I2ce11db524ee9d8f846fdf3ed6fb882d5ef57956
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
6c5a17dd2603b282cb0800c262857dc0f3d55f7e 27-Sep-2016 Colin Cross <ccross@android.com> Fix libgui warnings

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Merged-in: Idba8278bc0a73886ecb7978617854b433c0b5875
Change-Id: Idba8278bc0a73886ecb7978617854b433c0b5875
urface.cpp
7b84b6b651de8f3111a4e1c055d53b5b092d02d8 30-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix logging implicit sign conversions"
71ebfe44eaf8d4deace2be743969429eea4dfdac 30-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix libgui warnings"
3d1d280fa3cbc30700f728a4b13e5308315433d3 27-Sep-2016 Colin Cross <ccross@android.com> Rename dump methods to dumpState

The dump methods shadow the IBinder dump method. The warnings were being
hidden by the use of -isystem to include frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: Iafc64da43032d5d9d84b64640e70d93fd7051bcf
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
ed4af7da02d185101f0c14c0834000cfaf7d709b 30-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix weak vtable warnings" am: d93a40c920 am: 11a2bcad06 am: cd77a5a218
am: 97514a25d6

Change-Id: Id5af70ceadd584f0dae7aa4d9bb4811ad822cf28
152c3b749a8ec634afc66dddef7d33130472aeb1 27-Sep-2016 Colin Cross <ccross@android.com> Fix logging implicit sign conversions

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I2ce11db524ee9d8f846fdf3ed6fb882d5ef57956
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
9a80d502c34dc663a2c166eba17de9003fd8605d 27-Sep-2016 Colin Cross <ccross@android.com> Fix libgui warnings

The warnings were being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: Idba8278bc0a73886ecb7978617854b433c0b5875
urface.cpp
97514a25d6fb0b108882e5e6ddcc6ca9fb2e334d 30-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix weak vtable warnings" am: d93a40c920 am: 11a2bcad06
am: cd77a5a218

Change-Id: Id487011570e506e49a23a793b13e3a173c618a4c
cd77a5a2180ec45d712de08f655225892713fcae 30-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix weak vtable warnings" am: d93a40c920
am: 11a2bcad06

Change-Id: I1fd134d6eedb2f324de36b8e066b7d942fccd2eb
97b64dbe717b7daf29962f44c1b621c633473556 26-Sep-2016 Colin Cross <ccross@android.com> Fix weak vtable warnings

Move virtual destructors into cpp file so that the compiler knows which
translation unit to put the vtable into. Hide the warning for
DeathRecipient, which has no virtual methods to move. The warnings were
being hidden by the use of -isystem to include
frameworks/native/include.

Bug: 31752268
Test: m -j
Change-Id: I25329d66bfc1f6a5064d05ce7d12ad9b090601f8
ConsumerListener.cpp
ProducerListener.cpp
4e44cf52e025991bc575140e923c7d2e4ead62b9 15-Sep-2016 Peng Xu <pengxu@google.com> TYPE_DYNAMIC_SENSOR_META should be wake up sensor

This CL makes the default TYPE_DYNAMIC_SENSOR_META sensor a wake-up
type.

Test: m cts-verifier
Test: Run "Dynamic Sensor Discovery Test" with a sensor HAL that
support dynamic sensor discovery (e.g. contexthub + ag/1189124)

Bug: 31068976

Change-Id: I97197df248a9e89af6b72af3bee3c536a58c8df2
ensor.cpp
4d10804e9e0902b083cd9e4d0c907b455388ea1b 26-Sep-2016 David Pursell <dpursell@google.com> Merge "libgui: add a test for Sensor serialization." am: 01a0c92da0 am: cca7f83210 am: 36c879bb7a
am: 44c72d265c

Change-Id: Ib56d39f7017b743ebc8cc31ddd99240d0793ea5c
44c72d265c09745dadec705d66cb163e8561acec 26-Sep-2016 David Pursell <dpursell@google.com> Merge "libgui: add a test for Sensor serialization." am: 01a0c92da0 am: cca7f83210
am: 36c879bb7a

Change-Id: Ifb3fcb554165a0b2ef6de38e0a71898fe84a0526
36c879bb7a076f9cd70941d7f83d35a70cea4e66 24-Sep-2016 David Pursell <dpursell@google.com> Merge "libgui: add a test for Sensor serialization." am: 01a0c92da0
am: cca7f83210

Change-Id: Id8e064040f9d3a167bd3501fa16c3b5b4d4721d8
6f09ce1dd6bba8550d05896a595caf1b9b47ba71 23-Sep-2016 David Pursell <dpursell@google.com> libgui: add a test for Sensor serialization.

On a few test boards we've hit a problem with Sensor serialization
causing a SIGBUS due to misaligned access. This is being fixed in
Flattenable.h, but adding a test here to verify the fix and detect
regression seems like a good idea.

Bug: http://b/31671510
Test: adb shell /data/nativetest/libgui_test/libgui_test \
--gtest_filter=SensorTest.*

Change-Id: I233359b04789dabe2246b95051290e101e0bd2c1
ests/Android.mk
ests/Sensor_test.cpp
96fc72d19e17d6d6dae1f3bdaca888a2db658f77 23-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Surface: Allow nullable IGBPs when unparceling a Surface"
3d0becdcec3f27880b345bd05f2120c1f7e668df 23-Sep-2016 Robert Carr <racarr@google.com> Surface: Add force disconnection method. am: 97b9c86338 am: 962b13b9be
am: a9d1c1099d

Change-Id: Iea981cfaddd2be6ecdfebbdfadd9d822f17d682f
a9d1c1099d795d8ccafbbf48ee053d34505fbbde 23-Sep-2016 Robert Carr <racarr@google.com> Surface: Add force disconnection method. am: 97b9c86338
am: 962b13b9be

Change-Id: Ie74482a867c24213a25332650b38c733e183630b
962b13b9be70217fc6f0c8db72891c44629c345c 23-Sep-2016 Robert Carr <racarr@google.com> Surface: Add force disconnection method.
am: 97b9c86338

Change-Id: Ia9f9dbdcbd9527d54dacb2cdc90eda443230e8d9
7407963cd42385ddb73d2acd1be72858d34bf242 23-Sep-2016 Eino-Ville Talvala <etalvala@google.com> Surface: Allow nullable IGBPs when unparceling a Surface

We will write a null IGBP, so we shouldn't error out when reading one;
leave semantics of that to higher-level code.

Test: No camera crash after lots of front-back camera switches
Bug: 31373143
Change-Id: I5f7cf7489aca721057c5731e3a79cf6f8f260774
urface.cpp
6cc1933af9c0cf656f9a511155f6613f8dbba667 22-Sep-2016 Rob Carr <racarr@google.com> Merge "Surface: Add force disconnection method." into nyc-mr1-dev
97b9c86338e2d364d47ea7522c2d81a8014f0e07 08-Sep-2016 Robert Carr <racarr@google.com> Surface: Add force disconnection method.

Add a new method forceScopedDisconnect to Surface. This will
be used by the framework to force disconnection at times where
the underlying GraphicBufferProducer may be about to be reused.
This is scoped by PID to avoid conflicting with remote producers.

Bug: 30236166
Change-Id: I857216483c0b550f240b3baea41977cbc58a67ed
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
82e5e2edc733396d24a9e5eca48c365f961ea029 13-Sep-2016 Dan Stoza <stoza@google.com> Squashed: gralloc1/binder/requestor am: f62eaf5994
am: c76b6fb0c8

Change-Id: Ib81919fbddfb24d0429c12cc9fa1d516c195e5ac
5a002874266fdd1c4ece5f4c935811016e95dba2 13-Sep-2016 Kalle Raita <kraita@google.com> Increase YV12BufferPow2 test threshold am: 6a2593ac53
am: b384bc32a0

Change-Id: Idb99f4c01321a4400093ae8fc33cb3a1ab507653
6a2593ac53c6eccf5505e17594e57dab51f816ea 03-Aug-2016 Kalle Raita <kraita@google.com> Increase YV12BufferPow2 test threshold

The NPOT version already has 3 as the threshold and at least one
platform seems to have diff of 3 in one of the internal pixels for POW2
variant.

Bug: 21306103
Bug: 30920650
Change-Id: I7882a6ff43ffc862d95fea32c8ee8e7f19fb759d
Cherry-pick from master (e3747fd25918c943caef4d9c7158a668c786c55d)
ests/SurfaceTextureGL_test.cpp
f62eaf5994ac86f4d84e2d34af727617919d7bb7 02-Jun-2016 Dan Stoza <stoza@google.com> Squashed: gralloc1/binder/requestor

This is a combination of the following three commits:

libui: Convert Allocator and Mapper to gralloc1

Converts GraphicBufferAllocator and GraphicBufferMapper to speak
gralloc 1.0 (via the C++ shim and optionally the 1On0 adapter) instead
of gralloc 0.x.

-----

Create graphic buffer using binder interfaces

Using binder interfaces rather than directly allocating the buffer prevents
SELinux warnings.

-----

Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 28401203
Bug: 29402015
Bug: 30776557
ufferQueueProducer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
8211047138ea7892c73f4e6f6291a85a11759e0c 22-Jul-2016 Eino-Ville Talvala <etalvala@google.com> DO NOT MERGE ANYWHERE: BufferQueue consumers: Add discardFreeBuffer method

This method releases all free buffers owned by the buffer queue,
in order to save memory (at the cost of potential future
reallocation of buffers).

Bug: 28695173
Change-Id: I458d10373e639e3144faf673af2ba01aca36e65a
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
d7de179ac5e759efd7d6574d04d24fc3825cffec 01-Sep-2016 Pablo Ceballos <pceballos@google.com> libgui: Add null pointer check in setDisplaySurface am: eddbef88cf am: 8663a03444
am: 739c90cb7b

Change-Id: I587f5160c6abb9e4e4c98657658ff63a91ac1a40
739c90cb7b3a0756d01c3c729476970f72d7e917 01-Sep-2016 Pablo Ceballos <pceballos@google.com> libgui: Add null pointer check in setDisplaySurface am: eddbef88cf
am: 8663a03444

Change-Id: I9ddce6a3f72111aad068bbd13f3618589cbd87fd
8663a03444df4ead2ed5f5f5cb1251e48d55052d 01-Sep-2016 Pablo Ceballos <pceballos@google.com> libgui: Add null pointer check in setDisplaySurface
am: eddbef88cf

Change-Id: I3a3ddac84b3f38f6c911ff65642441fd187bbe54
669867835ba2a8120cc3c171c8dc3e41ae9b9c8c 01-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "libgui: Add null pointer check in setDisplaySurface" into nyc-mr1-dev
eddbef88cf78deb9b08a6cad2c9cb67e4ddcea0d 01-Sep-2016 Pablo Ceballos <pceballos@google.com> libgui: Add null pointer check in setDisplaySurface

Bug 31236602

Change-Id: I78d4e28e40db93f7e7e304355b370af0fa790b9d
urfaceComposerClient.cpp
ebaa0cf99b5fba04ebc89385d5d1c6fce66f6e70 31-Aug-2016 Eino-Ville Talvala <etalvala@google.com> Surface: Add parcel/unparceling for missing field. am: 529a103fde am: aa516aca42
am: e476eadbbd

Change-Id: Ib48cdf37b9d91f83c62aa245d1e0ee88c92fdfcc
ec8ab15da8bb39fb55e16b216f9bf26e0c3030c9 31-Aug-2016 Pablo Ceballos <pceballos@google.com> Fail setDisplaySurface if can't enable async am: 1aad24c0c4 am: ad685f0f9f
am: 881a8a9cd7

Change-Id: I97891b6c0c7be3462d0033fcb33630d20a9d127e
e476eadbbd5fad47b61aae4992ab0f6206391f8f 30-Aug-2016 Eino-Ville Talvala <etalvala@google.com> Surface: Add parcel/unparceling for missing field. am: 529a103fde
am: aa516aca42

Change-Id: I26bee1ea4d80a2627b8418476fd5adc3aaaef6a4
529a103fde484a6512aaffd9ae063decb93765eb 30-Aug-2016 Eino-Ville Talvala <etalvala@google.com> Surface: Add parcel/unparceling for missing field.

Read/write new isSingleBuffered field in native code as well.
Currently just write 'no' unconditionally and discard on read.

Bug: 31162160
Change-Id: Icfb7a37fb37a41f6437fe08bcfad271474ba6983
urface.cpp
881a8a9cd76df805806492131894fb3c8874a68c 29-Aug-2016 Pablo Ceballos <pceballos@google.com> Fail setDisplaySurface if can't enable async am: 1aad24c0c4
am: ad685f0f9f

Change-Id: Ia025b013bfc8199cfae3f2463a00df0b81329994
ad685f0f9fda27ded1c872a243bd96b61c80867e 29-Aug-2016 Pablo Ceballos <pceballos@google.com> Fail setDisplaySurface if can't enable async
am: 1aad24c0c4

Change-Id: Ie81fb73d61e9c3a6cbb53d7877e8ebbcc9e5aea5
4db50cec13f5fb69e847d1106c78cb972bc62149 29-Aug-2016 Pablo Ceballos <pceballos@google.com> Merge "Fail setDisplaySurface if can't enable async" into nyc-mr1-dev
a1d24b45ccb6f68448f478e2a847a5544276002b 23-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 30776557
Change-Id: I6e0f346584c871bb3b9d5481f82b697b0475a916
ufferQueueProducer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
38c7f3b7f35f8ef70e0cf2e5035dd229b4cca00e 25-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata am: d4079aff75
am: a009af9b54

Change-Id: I12f8900605754f5edddc1910ed4b245322f310a2
024e9313ce69ced1f853d737de680ef9f50ed26d 24-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 30776557
Change-Id: I6e0f346584c871bb3b9d5481f82b697b0475a916
ufferQueueProducer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
d4079aff759713e7c7dd14cecb585a7290e80772 23-Aug-2016 Dan Stoza <stoza@google.com> Add requestor name to GraphicBuffer alloc metadata

Adds a requestor name (usually the BufferQueue consumer's name) to the
metadata that GraphicBufferAllocator stores on allocation so that
`dumpsys SurfaceFlinger` can attempt to attribute buffer usage to the
correct client.

Bug: 30776557
Change-Id: I6e0f346584c871bb3b9d5481f82b697b0475a916
ufferQueueProducer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
GraphicBufferAlloc.cpp
1aad24c0c47598b0cce5ea2cadd5c2a5f3c5196d 04-Aug-2016 Pablo Ceballos <pceballos@google.com> Fail setDisplaySurface if can't enable async

Bug 30106031

Change-Id: I1c2d048b59e9805e72542c387fbcdb002496a13f
urfaceComposerClient.cpp
e3747fd25918c943caef4d9c7158a668c786c55d 03-Aug-2016 Kalle Raita <kraita@google.com> Increase YV12BufferPow2 test threshold

The NPOT version already has 3 as the threshold and at least one
platform seems to have diff of 3 in one of the internal pixels for POW2
variant.

Bug: 21306103
Change-Id: I7882a6ff43ffc862d95fea32c8ee8e7f19fb759d
ests/SurfaceTextureGL_test.cpp
c1ba5c4649554e744844b07cfe402b42fbe12ff3 08-Jun-2016 Sahil Dhanju <sahildhanju@google.com> Multithreaded Surface Replayer that replays traces

Change-Id: Id8d17f74e00d4796e1ea266bdaf9e8dd0af6475b
SurfaceComposer.cpp
urfaceComposerClient.cpp
512f006f46ecdb6e964fea99b7bfdad0fe69a1a0 22-Jul-2016 Eino-Ville Talvala <etalvala@google.com> BufferQueue consumers: Add discardFreeBuffer method am: bc2df65a3f
am: 7ac8cefbfc

Change-Id: I5ed889a884b84ae0b0bc8eac2e683d7e1a84f5ef
7ac8cefbfc37bc5bf8cc39be7cf593b63b985f4b 22-Jul-2016 Eino-Ville Talvala <etalvala@google.com> BufferQueue consumers: Add discardFreeBuffer method
am: bc2df65a3f

Change-Id: Ib0f788e9fb8a0e0678f95e9d8e49a19069ed69a7
bc2df65a3f3f4b8abaaaa2a4e576a3a42c2d30f3 22-Jul-2016 Eino-Ville Talvala <etalvala@google.com> BufferQueue consumers: Add discardFreeBuffer method

This method releases all free buffers owned by the buffer queue,
in order to save memory (at the cost of potential future
reallocation of buffers).

Bug: 28695173
Change-Id: I458d10373e639e3144faf673af2ba01aca36e65a
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
468051e20be19130572231266db306396a56402b 14-Jun-2016 Irvel <irvel@google.com> Integrate SurfaceInterceptor into SurfaceFlinger

Change-Id: If18d967f2b69ed219f17a9afedb61884ad5f1dc8
ufferQueue.cpp
ufferQueueProducer.cpp
c4cba997508820c5ffbbcdca8d4769944a7caacf 20-Jul-2016 Michael Wright <michaelwr@google.com> Merge commit '19cd2f88b6914e2f4c43a9595532e81a697304fe' into fresh-again

Change-Id: I6032eea1ad12960fc1c88582ae295f83c84bb37e
19cd2f88b6914e2f4c43a9595532e81a697304fe 20-Jul-2016 Michael Wright <michaelwr@google.com> Merge \"Color transforms are now color modes.\" into nyc-mr1-dev
am: f42ca4da5b

Change-Id: I2b5f704695dbbf84baf56b21369c3c80cc2142e1
28f24d0ab481bd9c6fd5618414fee694e837c5c6 12-Jul-2016 Michael Wright <michaelwr@google.com> Color transforms are now color modes.

Rename color transforms to color modes for all interfaces exposed to
surfaceflinger clients. Also split it out to be a separate
configuration value from display modes.

Bug: 29044347

Change-Id: I87e937f7c954a50c946e8e2c606797caa416c5d8
SurfaceComposer.cpp
urfaceComposerClient.cpp
bd3577ef5bae7d65e54bddc04f90b619330edb89 21-Jun-2016 Pablo Ceballos <pceballos@google.com> Make sure constructors initialize all members

- Add default constructors to Parcelables that didn't have them and
make sure all members are initialized by the constructors.
- Add missing fields to BufferItem flatten/unflatten.

Change-Id: I9aa83b326dc3aee757762e63be499dc96a74df91
ufferItem.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferAlloc.cpp
45bb23ad433a00cd9fc907c1185a0b884118705e 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge \"BQ: Remove getNextFrameNumber Binder call\" into nyc-mr1-dev
am: f9de6e0d7e

Change-Id: I8ac76ca4bc0ed97deca8823ed8d4a75f594f7add
bcfff94dba652484a702deb0b193ff6e4ecfc641 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge \"BQ: Handle errors in GraphicBuffer/Fence unflatten\" into nyc-mr1-dev
am: 20854e608f

Change-Id: Ia81dcd76950e3c78665deb7127cc9cb6a9d15251
f9de6e0d7e7a12f4d70bb4828863efb035fc133b 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Remove getNextFrameNumber Binder call" into nyc-mr1-dev
20854e608f45aa7cd9c4cc2b8ec0c860fff35e4a 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Handle errors in GraphicBuffer/Fence unflatten" into nyc-mr1-dev
ecc4a4ed0620cd0c8c951cbe1df7af7c53987eee 07-Jul-2016 Dan Stoza <stoza@google.com> Surface: Add LAST_[DE]QUEUE_DURATION queries
am: 70ccba596c

Change-Id: I635453d221d45c690ef222cbf9ac0df80497d249
70636b334d75ab77ffc925d9624a72456140d87a 07-Jul-2016 Pablo Ceballos <pceballos@google.com> BQ: Handle errors in GraphicBuffer/Fence unflatten

Bug 29873396

Change-Id: Ieab38091f60722a11e227aecac7508fc11d9f58b
GraphicBufferProducer.cpp
70ccba596c586b7effde1ff99d36c911873b4ed4 01-Jul-2016 Dan Stoza <stoza@google.com> Surface: Add LAST_[DE]QUEUE_DURATION queries

Adds support for the NATIVE_WINDOW_LAST_DEQUEUE_DURATION and
NATIVE_WINDOW_LAST_QUEUE_DURATION queries.

Bug: 29413700
Change-Id: Iea4efa208e8390fb2de52d5ad9f083ae91bf50b0
urface.cpp
bc8c1928e1dbdaf6a2820f6e426c96ed61284043 01-Jul-2016 Pablo Ceballos <pceballos@google.com> BQ: Remove getNextFrameNumber Binder call

- Return the value in queueBuffer instead and cache it in Surface

Change-Id: I10ab112afb03cf0231b047d4a4569cd641827043
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/IGraphicBufferProducer_test.cpp
fc35258c9dd71b68dc278fa0c9220d74fd643f31 01-Jul-2016 Pablo Ceballos <pceballos@google.com> Fix build break

Change-Id: Ifb9aeed9bd416d2646d9bdb9a0fe21cfd6b88af5
GraphicBufferProducer.cpp
0ade247d4b02b81f323480b4ba043927f6b36a73 01-Jul-2016 Pablo Ceballos <pceballos@google.com> resolve merge conflicts of 8e3e92b to nyc-mr1-dev

Change-Id: Ic67f0894e68ea5276eb9187a13cd24f105d55d68
6155b40830e7945e9d4a76fe89af9a6322d4977f 01-Jul-2016 Pablo Ceballos <pceballos@google.com> resolve merge conflicts of 7467665 to nyc-mr1-dev-plus-aosp

Change-Id: I69094217d8f09b44d38fefd48d1717322cfca55d
746766539386226e86b4018c3bb878a07a4f4d11 01-Jul-2016 Pablo Ceballos <pceballos@google.com> BQ: Add and expose a unique id
am: 8e3e92b906

Change-Id: I2602c1d2f5247cf0b3d2718f52dddba6c23c003d
4131d908551bfe0f5551312111dec3966df9a0be 30-Jun-2016 Pablo Ceballos <pceballos@google.com> BQ: Handle buffer allocation failure
am: 0a06809457

Change-Id: I8c9e660e93febe88d370f38c34a0d3e92641c320
0a0680945710946f3bf01ae05f933ccec4162dc8 30-Jun-2016 Pablo Ceballos <pceballos@google.com> BQ: Handle buffer allocation failure

Return the slot to the mFreeSlots if we fail to allocate.

Bug 29873396

Change-Id: Icafc5c64c7233d47e160f7a56e5a314e4a01611d
ufferQueueProducer.cpp
8e3e92b906db431c4fa822f21242977d4ee99942 28-Jun-2016 Pablo Ceballos <pceballos@google.com> BQ: Add and expose a unique id

Bug 29422927

Change-Id: I80eab94f073ebc378302f00fa86a740c3643657e
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
0da71178c119342322d3ad8629c497910b910302 23-Jun-2016 Greg Kaiser <gkaiser@google.com> Merge \\"Sensor: Make getId() more varied\\" into nyc-dev am: c0ca0ceaa5
am: 2bee6c5651

Change-Id: I3bda8f26fdb7c269d05ded520e6d63f92f2c8d02
25aefe9945808e9323d7b8cfb4c784f8bc10d99b 23-Jun-2016 Greg Kaiser <gkaiser@google.com> Merge \"Sensor: Make getId() more varied\" into nyc-dev
am: c0ca0ceaa5

Change-Id: I6b6ecc30646e6e9a912a1ad096bd93fea341968b
2bee6c565136c291bba0c9310f6975c6cc196728 23-Jun-2016 Greg Kaiser <gkaiser@google.com> Merge \"Sensor: Make getId() more varied\" into nyc-dev
am: c0ca0ceaa5

Change-Id: Ifa6208fea63d830d07447d5232b39f9e3ccf870b
53ca2e00c6f2a71b93c8e3c8e85aeeb03c5bd06d 22-Jun-2016 Greg Kaiser <gkaiser@google.com> Sensor: Make getId() more varied

Apps from different developers will now receive a different
ID for the same dynamic sensor. Additionally, all apps
will now receive a different/new ID for the same dynamic
sensor after a factory reset.

Bug: 28775590, 29547335
Change-Id: I368655b0e4bdc16736a7fd163ea3f7dad2886b3b
ensor.cpp
d99daf4fe6e32f3d15482141abf79ef81327fdf4 22-Jun-2016 Robert Carr <racarr@google.com> Merge changes from topic \'seamless-rotation\' into nyc-mr1-dev
am: 4bfbe1f7ef

Change-Id: I05be2795f7b09b92f79627f991c01d7e32840121
367c5684f4d417e5176bec12d67f4e2e42738fe0 20-Jun-2016 Robert Carr <racarr@google.com> SurfaceControl: Add getTransformToDisplayInverse

For seamless rotation, the window manager needs
access to this flag, as it will apply the inverse
display transform itself to all other windows.

Bug: 28823590
Change-Id: Ifeee1078a9cb4cd01c8052570c137c6228b2f13d
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
99e27f0bc236e38d88ff4f9912ede514a729b8eb 17-Jun-2016 Robert Carr <racarr@google.com> Change setPositionAppliesWithResize to apply to all geometry.

To support seamless rotation, change setPositionAppliesWithResize
to also include the crop. As the transformation matrix is already
frozen during resize, this enables the window manager to set the
total geometry state before and after resize in a race free fashion.

Bug: 28823590
Change-Id: I3f8f0e162b7ef4e9403c1220c7e4191b3ef30526
urfaceComposerClient.cpp
urfaceControl.cpp
e38b57e2d454b9fafc088ef9efda88ada3267dbf 18-Jun-2016 Eino-Ville Talvala <etalvala@google.com> Merge \"BufferQueueProducer: Signal consumer when a buffer is detached\" into nyc-dev
am: 51ed38bb13

Change-Id: I7f901c66dd9e2f62bdc15c8b768f27003aa46611
b38f78b097f3acd641f8eca347c67ec882ce6578 18-Jun-2016 Eino-Ville Talvala <etalvala@google.com> Merge \\"BufferQueueProducer: Signal consumer when a buffer is detached\\" into nyc-dev am: 51ed38bb13
am: 36ad49c4b2

Change-Id: Iacd73306f490f18cd657eec9c018324e19d80542
36ad49c4b2d576d17cd82f3ea96a45a20acc089b 18-Jun-2016 Eino-Ville Talvala <etalvala@google.com> Merge \"BufferQueueProducer: Signal consumer when a buffer is detached\" into nyc-dev
am: 51ed38bb13

Change-Id: I9adb021022e1ed4b1a5b74eaa59cc88c5de475a6
51ed38bb139c54ed29384f679b5080d4be5792ca 18-Jun-2016 Eino-Ville Talvala <etalvala@google.com> Merge "BufferQueueProducer: Signal consumer when a buffer is detached" into nyc-dev
30b71b10302bdfcd6c0679c03cf21d17a715317b 14-Jun-2016 Craig Donner <cdonner@google.com> resolve merge conflicts of 4931fb2 to nyc-mr1-dev-plus-aosp

Change-Id: I5c46d161af4c4d6b6fcec6705f2d9c7dccc41fc2
7aa838826c48fe0ec3c4a75e709316c87ce9aea5 14-Jun-2016 Craig Donner <cdonner@google.com> resolve merge conflicts of 4931fb2 to nyc-mr1-dev-plus-aosp

Change-Id: Ic490104e9b7f01df5ea6404b3b5bab733fa46812
4931fb298e076212981b2acae6752743d7340f02 14-Jun-2016 Craig Donner <cdonner@google.com> Merge \"Revert \"GLConsumer: add build-time disable of gpu protected content\"\" into nyc-dev
am: e1e1e75173

Change-Id: Iea28323a8e7bd2333d396b70703ac4b1a99b1911
e1e1e75173d557466e824782c61802a8415c7073 14-Jun-2016 Craig Donner <cdonner@google.com> Merge "Revert "GLConsumer: add build-time disable of gpu protected content"" into nyc-dev
4df76b2f5f7e8be128b5ec7a2d8d03845effaea0 14-Jun-2016 Craig Donner <cdonner@google.com> Revert "GLConsumer: add build-time disable of gpu protected content"

This reverts commit dea97b7aa2b5cfbb7d42f30bcbf86a01778b609b.

Bug: 28545166

Change-Id: I4b069e14c2b99e190ebdea6df1ed83827ffe17b6
ndroid.mk
LConsumer.cpp
93dd0518a0101844ef435a3425c803c986b38d87 10-Jun-2016 Eino-Ville Talvala <etalvala@google.com> BufferQueueProducer: Signal consumer when a buffer is detached

When a buffer is detached, it should be cleared from the consumer-side
cache as well.

Not doing so can leak buffers no longer owned by the queue for extended
lengths of time, depending on the exact usage patterns of the producer
and consumer.

Bug: 28695173
Change-Id: I2c618be51f2c827d92d0e19b92a2d5befda87c38
ufferQueueProducer.cpp
a26e6618867f0a587942fa737b14dc67c2f0c9a9 09-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge \"Plumbing for getting FenceTracker timestamps\" into nyc-mr1-dev
am: 9e8143ec78

Change-Id: Ife1f3e19cc0bde26960c5a480d4fe81188c4c8f3
9e8143ec78a0bf3779f12000b67f21b8fba6e2a7 09-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "Plumbing for getting FenceTracker timestamps" into nyc-mr1-dev
ce796e78a57018f186b062199c75d94545318aca 05-Feb-2016 Pablo Ceballos <pceballos@google.com> Plumbing for getting FenceTracker timestamps

Change-Id: I1ebee9e42e28658bd3a2b161fdaabb7da756d8f3
ufferQueue.cpp
ufferQueueProducer.cpp
ConsumerListener.cpp
GraphicBufferProducer.cpp
urface.cpp
f7b6b5d956f96458567eae519a926a6f51b077c0 07-Jun-2016 Robert Carr <racarr@google.com> Merge "SurfaceFlinger: Add mode to apply position with resize." into nyc-dev am: c3da482bb8
am: 3fee6ca1d9

* commit '3fee6ca1d93c1d4b822d2dcd36c61f9722dd88b9':
SurfaceFlinger: Add mode to apply position with resize.

Change-Id: I91f64e194199f1277a9b4e76c68faddcc7ef6660
3fee6ca1d93c1d4b822d2dcd36c61f9722dd88b9 07-Jun-2016 Robert Carr <racarr@google.com> Merge "SurfaceFlinger: Add mode to apply position with resize." into nyc-dev
am: c3da482bb8

* commit 'c3da482bb8081ee2c19b5965585267b8e21cfc7e':
SurfaceFlinger: Add mode to apply position with resize.

Change-Id: Icedb7a6e37da9338b1194edaa32a67257640969f
34703b94e1a9f97f5b225c1b35433a90f8686e38 07-Jun-2016 Robert Carr <racarr@google.com> Merge "SurfaceFlinger: Add mode to apply position with resize." into nyc-dev
am: c3da482bb8

* commit 'c3da482bb8081ee2c19b5965585267b8e21cfc7e':
SurfaceFlinger: Add mode to apply position with resize.

Change-Id: Ic185f162bdb765dfdd19ce35f3dd94e29bb8dea3
82364e3cea0bf88fa8147766433329b3dd5148b8 15-May-2016 Robert Carr <racarr@google.com> SurfaceFlinger: Add mode to apply position with resize.

For some cases, like scaled windows with shadows,
we need to be able to apply the position concurrent with
window resize. This is because the scaling of the shadows causes
the top left coordinate of the non shadow surface content
to change before and after the resize.

Bug: 28899837
Change-Id: I522eacfbbcd79707dc1e5ab71901a263b3004ba9
urfaceComposerClient.cpp
urfaceControl.cpp
816f9227c26c08d3cb0cddeca6ae7773355090d9 06-Jun-2016 Mike Stroyan <stroyan@google.com> Merge "libgui: Check result in hook_dequeueBuffer_DEPRECATED" into nyc-dev am: 09e5f59bc9
am: fbcc332c85

* commit 'fbcc332c85cb856633d72088a65f55277f5fee23':
libgui: Check result in hook_dequeueBuffer_DEPRECATED

Change-Id: Ia801cc60607c0b5e01bc0a28e1ad8d9e81347615
fbcc332c85cb856633d72088a65f55277f5fee23 06-Jun-2016 Mike Stroyan <stroyan@google.com> Merge "libgui: Check result in hook_dequeueBuffer_DEPRECATED" into nyc-dev
am: 09e5f59bc9

* commit '09e5f59bc9a371c7b83153bb51543ec759684227':
libgui: Check result in hook_dequeueBuffer_DEPRECATED

Change-Id: If91c49dfef52a64c3721da737658cf4645c13fc1
fc06a1a55b5577d9e7269e640a062edd81867bcb 06-Jun-2016 Mike Stroyan <stroyan@google.com> Merge "libgui: Check result in hook_dequeueBuffer_DEPRECATED" into nyc-dev
am: 09e5f59bc9

* commit '09e5f59bc9a371c7b83153bb51543ec759684227':
libgui: Check result in hook_dequeueBuffer_DEPRECATED

Change-Id: I2364a946b82e4f87ec035fca331746bac92d85ee
87709c91ffad0cbe92e6b45cc13a2902b3170a2d 03-Jun-2016 Mike Stroyan <stroyan@google.com> libgui: Check result in hook_dequeueBuffer_DEPRECATED

Surface::hook_dequeueBuffer_DEPRECATED calls c->dequeueBuffer without
checking the returned result value. It should check for failing
result and return on error without using the values that
c->dequeueBuffer did not set.

Bug: 28692406
Change-Id: I10f9a23ad1052c5149040124366e0eb91b616267
urface.cpp
d1059865cca35932bff96c125d7d1d9a3aef3ccd 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Don\'t return fences from dequeue in shared buffer mode" into nyc-dev am: eb6377eb13
am: 907e94d3da

* commit '907e94d3da1215328fe3a5020cd5005e42499eba':
BQ: Don't return fences from dequeue in shared buffer mode

Change-Id: I1a2dbf037ada7477838b3935d3084d1fea6bd09c
217b5d19a6aa4e633214b5038ef5d74813ef336d 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Don\'t return fences from dequeue in shared buffer mode" into nyc-dev
am: eb6377eb13

* commit 'eb6377eb133f902e737fab370df7679430a1d8d1':
BQ: Don't return fences from dequeue in shared buffer mode

Change-Id: Ie66de8e99600c6c69ad1c5bb62c8adaaf3d43a71
907e94d3da1215328fe3a5020cd5005e42499eba 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Don\'t return fences from dequeue in shared buffer mode" into nyc-dev
am: eb6377eb13

* commit 'eb6377eb133f902e737fab370df7679430a1d8d1':
BQ: Don't return fences from dequeue in shared buffer mode

Change-Id: Ieb075d9598edcaec542ee06663aa292111968474
28c65ad1a1bc2cfd232044e9ea704197483cf250 02-Jun-2016 Pablo Ceballos <pceballos@google.com> BQ: Don't return fences from dequeue in shared buffer mode

Bug 29007505

Change-Id: I112ae6bd64ddc9a923ad9080e85a71adb96146af
ufferQueueProducer.cpp
3bfd2e196d248536207bf1e0acfe86bd4d786d1d 25-May-2016 Dan Stoza <stoza@google.com> Merge "BufferQueue/SF: Add OccupancyTracker" into nyc-mr1-dev
am: faa71321b0

* commit 'faa71321b0862fac97ad1f7825860fb740cc8507':
BufferQueue/SF: Add OccupancyTracker

Change-Id: I868b56c8502033877b08146c1cffeaaa263acc64
3495475bfd55f469db9a85475b6b9036dfca9079 20-May-2016 Chih-Hung Hsieh <chh@google.com> Merge "Fix misc-macro-parentheses warnings in libs/gui." am: 3f5fc8aa6a
am: 5abf78e6b8

* commit '5abf78e6b849595b2e937563a5570375b2287bd8':
Fix misc-macro-parentheses warnings in libs/gui.

Change-Id: Ica1eb1e2fcd63b70e470d3d5527c9789a11fbcbe
7c5f1090fa1710ab253a2320401f41fb1e4440ad 20-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings in libs/gui.

Bug: 28705665
Change-Id: I9fcebd23e0bcf89c41cb3cbc31cae00c8e623dbd
ests/CpuConsumer_test.cpp
e77c7669bee30b7c0099172cf0c38cef92412040 13-May-2016 Dan Stoza <stoza@google.com> BufferQueue/SF: Add OccupancyTracker

Adds an OccupancyTracker to BufferQueue. This module keeps track of
how many buffers are in the queue over time, which, in combination
with various aggregation of these statistics, allows SurfaceFlinger
to report what fraction of the time a given layer was double- or
triple-buffered.

Change-Id: Ida6e967dc5483c00a633e9fe03998e420dd88502
ndroid.mk
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
ccupancyTracker.cpp
ests/BufferQueue_test.cpp
6096a3a949a2f2b1d547428f4750a4d0ddefdb4f 06-May-2016 Pablo Ceballos <pceballos@google.com> Merge "libgui: Prevent segfaulting in abandoned ConsumerBase" into nyc-dev
am: 39e4428c81

* commit '39e4428c8196a99bb882ee8c1e16ad697372a9fb':
libgui: Prevent segfaulting in abandoned ConsumerBase

Change-Id: I59df1d1834beb0c11f957c967aca583a922dfd5f
39e4428c8196a99bb882ee8c1e16ad697372a9fb 06-May-2016 Pablo Ceballos <pceballos@google.com> Merge "libgui: Prevent segfaulting in abandoned ConsumerBase" into nyc-dev
43e0928eb27d4d18e3a11debd4052ef96422bec5 06-May-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Fix segfault in dump()" into nyc-dev
am: ed2c5d1931

* commit 'ed2c5d1931bb48240b9293b0d0c3d370fbbd6f81':
BQ: Fix segfault in dump()

Change-Id: Iae6e4fc005377dde3860e737b8f20f0bdd768faf
ed2c5d1931bb48240b9293b0d0c3d370fbbd6f81 06-May-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Fix segfault in dump()" into nyc-dev
ee1cd12a327f926bba54bb9f6d77098aa63ae6c1 05-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings." am: caff47a0c4
am: 4a912c41d3

* commit '4a912c41d39a1e55fbfc5610ed480b4023b34fd0':
Fix google-explicit-constructor warnings.

Change-Id: If184ceba0bd601eadf3389d98a43dbfcf67f68ab
067b2ca8f53e6331f05fc23820bf5113b88a97b2 05-May-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Add debug dump if about to segfault"" into nyc-dev
am: 876c150be2

* commit '876c150be2164a20d3fc6da44f0e668e00960dda':
Revert "Add debug dump if about to segfault"

Change-Id: Id2f976413b60262c099c28e786d22d417efc09d0
876c150be2164a20d3fc6da44f0e668e00960dda 05-May-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Add debug dump if about to segfault"" into nyc-dev
adf51bac81fa28637d00227a44d7b20ea035980a 05-May-2016 Pablo Ceballos <pceballos@google.com> BQ: Fix segfault in dump()

When dequeueBuffer() is called we put the slot in mActiveBuffers, then
don't hold the BufferQueue lock while allocation occurs. So a slot
might be in mActiveBuffers but not have a buffer attached yet. Prevent
the dump function from segfaulting in this case.

Bug 27128710

Change-Id: Ie1480c0f9b2544554fc3281045e55ad30605e6ec
ufferQueueCore.cpp
65d9f6d63ab3bad1d835df14c662028a748eb3c5 04-May-2016 Pablo Ceballos <pceballos@google.com> libgui: Prevent segfaulting in abandoned ConsumerBase

mConsumer will be null if the ConsumerBase has been abandoned. Prevent
it from being dereferenced in those cases.

Bug 27718219

Change-Id: I9a3ecadb0655ec61cd2fd15ee98b3e1bef078cff
ufferItemConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
19e838ba3944f0a18c21fb396cfaf6c9f6db2c7b 04-May-2016 Jesse Hall <jessehall@google.com> resolve merge conflicts of 0b546c4 to nyc-dev-plus-aosp

Change-Id: I76408f38afc40816ae4cc7ef82d1250225d18032
73f2c8b123abf245f21ed17db6b2ee5f7f762563 04-May-2016 Pablo Ceballos <pceballos@google.com> Revert "Add debug dump if about to segfault"

This reverts commit 6366a10fd8223c91f1a3422620800cd6ac67ef90.

Bug 27674961
LConsumer.cpp
dea97b7aa2b5cfbb7d42f30bcbf86a01778b609b 04-May-2016 Jesse Hall <jessehall@google.com> GLConsumer: add build-time disable of gpu protected content

Some drivers incorrectly claim support for EGL_EXT_protected_content.
Until we've been able to verify that devices which claim support
actually implement it properly, require that GPU access to protected
content be manually enabled per-device.

Bug: 28545166
Change-Id: Ic10e47a99c38737ce1c39439fe9347d628aec491
ndroid.mk
LConsumer.cpp
d9cdadb38229e84f83c56ff2fe195a6a6ef535c3 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: Icd42a3b0043647fd4c094e8fe195ca0f94445de9
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureGL_test.cpp
304f6a01e8a71b356198aae588a6b3a4c422d4af 29-Apr-2016 Craig Donner <cdonner@google.com> Merge "Support EGL_EXT_protected_content in GLConsumer." into nyc-dev
am: 188b9f0035

* commit '188b9f00358d1f9f880b6d9deadc0b54f07b888e':
Support EGL_EXT_protected_content in GLConsumer.

Change-Id: I4a4f15049d62e55395d69e83157fbf4c140c52a3
188b9f00358d1f9f880b6d9deadc0b54f07b888e 29-Apr-2016 Craig Donner <cdonner@google.com> Merge "Support EGL_EXT_protected_content in GLConsumer." into nyc-dev
aec8697fcaa8bb30e335f7850cffdd0364c35532 29-Apr-2016 Craig Donner <cdonner@google.com> Support EGL_EXT_protected_content in GLConsumer.

When the consumer creates an EGLImage, it must now pass
EGL_PROTECTED_CONTENT_EXT to eglCreateImageKHR for protected buffers to be
mapped onto the GPU. This allows us to no longer need QCOM specific flags in
a few places (already removed).

Bug: 27536318
Change-Id: I1c49886d2dcbdceaf5fa9a33288753115651b4f2
LConsumer.cpp
01f30f165797d06b43eac2ee4738816f2c2a4b04 29-Apr-2016 John Reck <jreck@google.com> Merge "Return the transform to apply in getLastQueuedBuffer" into nyc-dev
am: 1992e9430c

* commit '1992e9430c82cc0d3f1b1fbb66749934a7482e8d':
Return the transform to apply in getLastQueuedBuffer

Change-Id: I04656a473afd254914ac0970fcaa3d27b26e6c3e
d6c480efb4fa5d4ca8cedef5ccec4bf763d467ba 29-Apr-2016 John Reck <jreck@google.com> Merge "Don\'t flatten nullptrs" into nyc-dev
am: 55e5cc0ea2

* commit '55e5cc0ea20f1cbfe71b76b3d3975dc02e061f4c':
Don't flatten nullptrs

Change-Id: Ib4c2d067ec151904048cfb4a54b36d0398d1a670
1a61da5e28fa16ad556a58193c8bbeb32a5f636d 28-Apr-2016 John Reck <jreck@google.com> Return the transform to apply in getLastQueuedBuffer

Bug: 28428955
Change-Id: Id48f7d3bf3f5deb074cf0a6a52a41caac875db41
ufferQueueProducer.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ce8e5df3c11616f3eb7867ce89558b530651166c 28-Apr-2016 John Reck <jreck@google.com> Don't flatten nullptrs

Bug: 28428970

BufferQueueProducer can return a nullptr for
the GraphicBuffer if there's nothing queued, which
IGraphicBufferProducer would attempt to flatten.

It's useful to distinguish that there's nothing queued
instead of just generic error, so fix IGraphicBufferProducer
to handle null GraphicBuffers.

Change-Id: I9e2b11e107e093d209a89a01d14feec3e885f268
GraphicBufferProducer.cpp
68a593e7fa07c947fef2c5de53c42e14ed630a8a 28-Apr-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 168dc86 to nyc-dev-plus-aosp

Change-Id: I1554cec6ea880a87921f723bc96972cb8e1d3c5c
ac979645609f7c1a73ffbb81d9cd0f2e8e0bf406 27-Apr-2016 Christopher Ferris <cferris@google.com> Merge "Fix use of invalid iterator." into nyc-dev
am: 44e9c02

* commit '44e9c027958ef5d7f8c8a06137ff9832b43114fb':
Fix use of invalid iterator.

Change-Id: Iaf425573fa29066179a12914eeec9bc90a5fab62
44e9c027958ef5d7f8c8a06137ff9832b43114fb 27-Apr-2016 Christopher Ferris <cferris@google.com> Merge "Fix use of invalid iterator." into nyc-dev
19a621eb117d960b6984e376135e314cd0cb8f73 27-Apr-2016 Peng Xu <pengxu@google.com> Merge "Fix sensor uuid, retrofit recent event logger" into nyc-dev
am: cf43c26

* commit 'cf43c2654da64f12d0803c66dd75525b3f1ab09f':
Fix sensor uuid, retrofit recent event logger

Change-Id: Ibb34fafb727e194bf78a2c90588c25d96aa7e51e
cf43c2654da64f12d0803c66dd75525b3f1ab09f 27-Apr-2016 Peng Xu <pengxu@google.com> Merge "Fix sensor uuid, retrofit recent event logger" into nyc-dev
87e94cd1d16281051d5241a25035aa1db0b073d8 26-Apr-2016 Christopher Ferris <cferris@google.com> Fix use of invalid iterator.

The code grabbed an iterator to a slot, but eventually does an erase
of the iterator. Unfortunately, the code then attempts to use this
invalid iterator which can introduce subtle crashes by putting a
garbage value on the free buffer list.

Bug: 28351886
Change-Id: I42a4431b182cee4de829f15fa4ddc175a3d141f7
ufferQueueProducer.cpp
e2347b7953f70232541bdc1b392230d6231aaeb9 26-Apr-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I0ce850de85e0de6a5472dd142f738856142db9ec
ConsumerListener.cpp
DisplayEventConnection.cpp
GraphicBufferAlloc.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
ProducerListener.cpp
SensorEventConnection.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ensorManager.cpp
urfaceComposerClient.cpp
6a2d3a06caa337857cf60cfc70a9a78909ad3608 21-Dec-2015 Peng Xu <pengxu@google.com> Fix sensor uuid, retrofit recent event logger

Fix an issue that causes uuid field not being initialzed in
sensorservice.

MostRecentEventLogger in sensorservice is migrated to use RingBuffer
instead of a custom circular buffer. This is expected to improve
readability and maintainability of code.

Dumpsys print format is retouched to offer more information in easier
to read format.

Bug: 28305085

Change-Id: I190e43350b60a22a9fccb92a95d6eab06a471560
ensor.cpp
76ddac5f35f6c5967fffb49103e750bb69ec707e 21-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Replace items from back of queue" into nyc-dev
am: 9461b93f7e

* commit '9461b93f7e46e71dd43b021084012ec337a5cee3':
BQ: Replace items from back of queue

Change-Id: I3efbf1485d2fbb4dc5fed5e4b6fa5884faa0e6c7
4d85da4a77203f4c361e48699e5598ebe8c77b32 20-Apr-2016 Pablo Ceballos <pceballos@google.com> BQ: Replace items from back of queue

It's possible to have one or more non-droppable items in the queue
ahead of a droppable item. In that case we want to replace the
droppable one at the end of the queue. By changing the policy to
always replace the last item in the queue (if it's droppable) we
ensure that there will never be more than one droppable item in the
queue and that it will always be the last one.

Bug 27129258

Change-Id: I9a6234fe12a0095ccb93ceb9cdb74616944900b0
ufferQueueProducer.cpp
2f35954b05ac060f4bb871681d1c3c6df05e4954 20-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Avoid unnecessary calls to consumer listener" into nyc-dev
am: 72b5975

* commit '72b59753f90df64b3dd86fa6a166b24c8b64b985':
BQ: Avoid unnecessary calls to consumer listener

Change-Id: I06c0cf4383e2e3c9c0d3589b8fedc4464ca9c373
e9105ba993a3d6fc5d4fbffe8605e1e32b3d14eb 20-Apr-2016 Dan Stoza <stoza@google.com> Merge "libgui: Add getLastQueuedBuffer to BufferQueue" into nyc-dev
am: 4908a01

* commit '4908a010f63c7d0a6d9a1f4b67c3453a116d1556':
libgui: Add getLastQueuedBuffer to BufferQueue

Change-Id: I3891dc3857fbf9fa762ddb384dc276e5683696bb
72b59753f90df64b3dd86fa6a166b24c8b64b985 20-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Avoid unnecessary calls to consumer listener" into nyc-dev
50101d02a8eae555887282a5f761fdec57bdaf30 08-Apr-2016 Dan Stoza <stoza@google.com> libgui: Add getLastQueuedBuffer to BufferQueue

Adds the ability to get the last buffer queued to a BufferQueue plus
its acquire fence.

Bug: 27708453
Change-Id: Iee39475740b40c854a5f46178b2934fd930e61b8
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
245cc5b57da46d5852aa820be2a96f37425b3337 19-Apr-2016 Pablo Ceballos <pceballos@google.com> BQ: Avoid unnecessary calls to consumer listener

Try to avoid unnecessary calls to the consumer listener's
onBuffersReleased() since they can potentially deadlock.

Bug 28254168

Change-Id: Ib064e5ebe1403a1028589342b3c33e6f40bb54a9
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
6e9f94360a2b4b3a3ce93d8c9c33efc87fef344f 19-Apr-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "libgui should re-export libbinder include paths" am: a8d696c
am: 1c5bc16

* commit '1c5bc165310564358cfa7b7d248b0ee7dc2dd8fa':
libgui should re-export libbinder include paths

Change-Id: I05ab8439e147f27dafcb8662b161d0be77702b6d
72db0b73ed262c4bcf2fad21f2bbef3c6890f5bb 19-Apr-2016 Christopher Wiley <wiley@google.com> libgui should re-export libbinder include paths

libgui headers include headres from libbinder. Therefor, consumers
need the complete include paths of both libries.

Bug: 27804373
Change-Id: I4c355f32fb58298059abf7c546b48e8b24b4dc3c
Test: Compiles when libbinder include path changes.
ndroid.mk
7a776ec3717bfe45d48f1c03987c8657ad8a56d5 18-Apr-2016 Robert Carr <racarr@google.com> Add setOverrideScalingMode to SurfaceControl
am: c3574f7

* commit 'c3574f7b0141c69fdca25ccafb80ff334462f9a3':
Add setOverrideScalingMode to SurfaceControl

Change-Id: I8752f95ed3d596c8648e5d527aae4cae00e171b9
c3574f7b0141c69fdca25ccafb80ff334462f9a3 24-Mar-2016 Robert Carr <racarr@google.com> Add setOverrideScalingMode to SurfaceControl

Provide an interface for the window manager to override
the client specified scaling mode. This makes it possible
for the window manager to force windows to be scaleable
for animations, etc, even when a resize is pending.

Bug: 27891386
Change-Id: Ic4aae9917bd6869ee0dbb425979b4e21c68342a3
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
9c0f518fddb935ea8bbee295d6061176ffbdfbad 16-Apr-2016 Peng Xu <pengxu@google.com> Merge "sensorservice: switch to use sp<> in sensor list" into nyc-dev
am: 47babb8

* commit '47babb84bcd2dcf4943687e33595ba58dc0dbe28':
sensorservice: switch to use sp<> in sensor list

Change-Id: I14fa40721296f2937cd8df9b62e32874f0ddfe09
47babb84bcd2dcf4943687e33595ba58dc0dbe28 16-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "sensorservice: switch to use sp<> in sensor list" into nyc-dev
755c451c7861a029e26e5f16e319b629169e656d 08-Apr-2016 Peng Xu <pengxu@google.com> sensorservice: switch to use sp<> in sensor list

* Switch to use smart pointer in SensorList to avoid object
life cycle issue.
* Refactor HardwareSensor and various virtual sensor class.
* Change active virtual sensor map into a set of handles.

Change-Id: I674d5eb5c0038179f9ef1b6f0d576b8b605649ec
ensor.cpp
63d6ca0bdcd152f0985df02f9a835900ca98f5b8 13-Apr-2016 Robert Carr <racarr@google.com> Merge "Add Surface::waitForNextFrame" into nyc-dev
am: dc71beb

* commit 'dc71bebc3d65918ec5c1c7cea1dae0a0af5468d7':
Add Surface::waitForNextFrame

Change-Id: I348c555c1ff80588fffffbe804f6d3a7ee0e15c0
dc71bebc3d65918ec5c1c7cea1dae0a0af5468d7 13-Apr-2016 Rob Carr <racarr@google.com> Merge "Add Surface::waitForNextFrame" into nyc-dev
9f31e299b3ec93b7bac969846105e7e926e3efcd 11-Apr-2016 Robert Carr <racarr@google.com> Add Surface::waitForNextFrame

We can use this for cases like SurfaceView
where one thread (e.g. the framework code)
wants to wait for an unknown client thread
to render a frame in to the surface before
we report it as shown to the window manager.

Bug: 22207948
Change-Id: I9d3344aa1c0ab0f0efd9df24e90ce0410d5f2e22
urface.cpp
329bf31be1a298ba078cef88805b9b77d8acb8a5 13-Apr-2016 Jorim Jaggi <jjaggi@google.com> Merge "Revert "Death to synchronous transactions (1/2)"" into nyc-dev
am: ad798d0

* commit 'ad798d03beb54e575abb693f3790c4e3855f32d4':
Revert "Death to synchronous transactions (1/2)"

Change-Id: I516d29a73391e8a2c43c817ec2a9e7ac5297c949
ad798d03beb54e575abb693f3790c4e3855f32d4 13-Apr-2016 Jorim Jaggi <jjaggi@google.com> Merge "Revert "Death to synchronous transactions (1/2)"" into nyc-dev
092123cf5abe88c82deb89bb0188e1cc8d8338be 13-Apr-2016 Jorim Jaggi <jjaggi@google.com> Revert "Death to synchronous transactions (1/2)"

This reverts commit c6a607aa7ab96f6b1bac487cffd1899e1f1cdcf5.

It causes issues when resizing: default buffer size on the consumer side
only gets set when the transaction actually executes. But because
consumer is not blocked on SF over WM anymore, it gets the default
buffer size before the surface is resized, and thus uses wrong bounds
for the buffer to be drawn, and never submits another one.

This needs a more involved fix.

Bug: 28122036
Bug: 28128613
Change-Id: I0e738f99e43fc9ea25426e9e6e607e01413d3bb7
urfaceComposerClient.cpp
5e5a6f3ebf4284858bf4c41c58103fed9ed46c50 11-Apr-2016 Peng Xu <pengxu@google.com> Merge "Refactor sensor list in SensorService" into nyc-dev
am: df4f17e

* commit 'df4f17e100e56a1f2964797ad83499e07ba9e062':
Refactor sensor list in SensorService

Change-Id: Icf06548c50ae7bf38590dc32a212252b95b606a7
df4f17e100e56a1f2964797ad83499e07ba9e062 11-Apr-2016 Peng Xu <pengxu@google.com> Merge "Refactor sensor list in SensorService" into nyc-dev
0cc8f809924706c7d683da30605f432635dd5bb6 06-Apr-2016 Peng Xu <pengxu@google.com> Refactor sensor list in SensorService

Refactor sensor lists management logic in sensorservice:
* Factor all sensor list management code into a separate class.
* Remove error-prone repeated sensor lists.
* Solve synchronization issue when sensor is added or removed during runtime.
* Switch to STL containers.

Bug: b/27911774

Change-Id: I94d5571e1fa3166dbe893ffac2a2a7584be6349c
ensor.cpp
898b1aa86da5425add5deb6f2028b233c563c05f 09-Apr-2016 Jorim Jaggi <jjaggi@google.com> Death to synchronous transactions (1/2)
am: c6a607a

* commit 'c6a607aa7ab96f6b1bac487cffd1899e1f1cdcf5':
Death to synchronous transactions (1/2)

Change-Id: Ie31f3fe60ae1f5a3f2b2c070f19bc82743de1e46
c6a607aa7ab96f6b1bac487cffd1899e1f1cdcf5 08-Apr-2016 Jorim Jaggi <jjaggi@google.com> Death to synchronous transactions (1/2)

Bug: 28068298
Change-Id: I0a9a212a4b19793cf2830193152c53c03b651970
urfaceComposerClient.cpp
b93445dca508213a9b67619afe006a198d356c4e 09-Apr-2016 Dan Stoza <stoza@google.com> Merge changes I0f07043f,Ib4635ee4,I472ad9f0 into nyc-dev
am: 97a46df

* commit '97a46df0ee9708822f190a76047c490f54c199cd':
Plumb HDR capabilities up to SurfaceComposerClient
HWC2: Add getHdrCapabilities to C++ shim
HWC2: Add getHdrCapabilities stub to adapter

Change-Id: Ia3ad51ebcedf563dbc1275299de125571aa10930
c4f471e75a8ec64ec34e3f2944a5a756215d0bec 24-Mar-2016 Dan Stoza <stoza@google.com> Plumb HDR capabilities up to SurfaceComposerClient

Plumbs HDR capabilities up from HWC2 through SurfaceFlinger and
ISurfaceComposer to SurfaceComposerClient.

Bug: 25684127
Change-Id: I0f07043ff42bfc7a159f785fee3e84936dc3c280
SurfaceComposer.cpp
urfaceComposerClient.cpp
f6fce6b9271b8cefdad7bed8ee34690e4c050614 29-Mar-2016 Peng Xu <pengxu@google.com> Merge "Define typical sensor sample rate in native code" into nyc-dev
am: a84b43c

* commit 'a84b43c914cdd0e665d7555f5800d5c06b895716':
Define typical sensor sample rate in native code
a84b43c914cdd0e665d7555f5800d5c06b895716 29-Mar-2016 Peng Xu <pengxu@google.com> Merge "Define typical sensor sample rate in native code" into nyc-dev
2dcb363c6e86b463a9f4e5925746e2f1089aef16 17-Mar-2016 Pablo Ceballos <pceballos@google.com> Rename single buffer mode to shared buffer mode

Change-Id: Id43d0737d9367981644e498942ebc0077d61038c
(cherry picked from commit 3559fbf93801e2c0d9d8fb246fb9b867a361b464)
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
2f3bf13887257abc9943b7e5bf58e9cd8189eb0a 17-Mar-2016 Peng Xu <pengxu@google.com> Define typical sensor sample rate in native code

Porting typical sensor sample rate (e.g. SENSOR_DELAY_UI)
defined in Java API to native code.

Change-Id: I8b59216415bc952b4e953ca6e8058beb1dd3c645
ensorEventQueue.cpp
59d12e90ae09171fc8b50fd8fd02e3247c04840c 28-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Rename single buffer mode to shared buffer mode" into nyc-dev
61be455e943463e72fa108fb01e3d1608446f03a 23-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Add final crop implementation" into nyc-dev
am: 41371bf

* commit '41371bfa0dad4a4332a8cc30b066d95546e4c4fc':
Add final crop implementation
41371bfa0dad4a4332a8cc30b066d95546e4c4fc 23-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Add final crop implementation" into nyc-dev
ae327b12161fac2d867aa1ae36d0bd3924625add 22-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Add debug dump if about to segfault" into nyc-dev
am: dd264bd

* commit 'dd264bdb06d6caa1e94fcd1d2a760d34d1c0cb89':
Add debug dump if about to segfault
6366a10fd8223c91f1a3422620800cd6ac67ef90 22-Mar-2016 Pablo Ceballos <pceballos@google.com> Add debug dump if about to segfault

Bug 27674961

Change-Id: I82242d2c1b7cc9646d233bab896f718652e9ce2c
LConsumer.cpp
acbe67888f0bd65d5400400f0115bae6bd6199dc 04-Mar-2016 Pablo Ceballos <pceballos@google.com> Add final crop implementation

Bug 26559810

Change-Id: Idaccd13cd625c92d18665ddecebdbb266ea365f3
ayerState.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
a782c8c707d511cda714c5d0da89e2458912cc5d 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857 am: 1ed2469 am: 46da938 am: b2428c7 am: ce3faa0 am: 6c42071
am: 413dc41

* commit '413dc41e1d310834ace8a24f835b3af2ee86180f':
BQ: fix some uninitialized variables
413dc41e1d310834ace8a24f835b3af2ee86180f 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857 am: 1ed2469 am: 46da938 am: b2428c7 am: ce3faa0
am: 6c42071

* commit '6c42071f84c450a884c72d38a44ab3f45dd16343':
BQ: fix some uninitialized variables
6c42071f84c450a884c72d38a44ab3f45dd16343 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857 am: 1ed2469 am: 46da938 am: b2428c7
am: ce3faa0

* commit 'ce3faa072a58dc01cecffa61d7df0a1d8bca212b':
BQ: fix some uninitialized variables
ce3faa072a58dc01cecffa61d7df0a1d8bca212b 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857 am: 1ed2469 am: 46da938
am: b2428c7

* commit 'b2428c71c20a2e67a257eba540e6de2ca0fbae22':
BQ: fix some uninitialized variables
b2428c71c20a2e67a257eba540e6de2ca0fbae22 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857 am: 1ed2469
am: 46da938

* commit '46da9385ad96fb1c2baab64fdea01eb3b0b41dd0':
BQ: fix some uninitialized variables
46da9385ad96fb1c2baab64fdea01eb3b0b41dd0 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f am: f16b857
am: 1ed2469

* commit '1ed24698aa431aa4c3198fa3b8e830f1c29812a6':
BQ: fix some uninitialized variables
1ed24698aa431aa4c3198fa3b8e830f1c29812a6 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables am: 93c617f
am: f16b857

* commit 'f16b85752d7344814663c658175cce1a933e976b':
BQ: fix some uninitialized variables
f16b85752d7344814663c658175cce1a933e976b 18-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables
am: 93c617f

* commit '93c617fd2a5e7910e0ba5c0ed6da152d30920679':
BQ: fix some uninitialized variables
3559fbf93801e2c0d9d8fb246fb9b867a361b464 17-Mar-2016 Pablo Ceballos <pceballos@google.com> Rename single buffer mode to shared buffer mode

Change-Id: Id43d0737d9367981644e498942ebc0077d61038c
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
e467ae3b36f4f66e03ac49f2bf53c847a897adea 17-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: Allow shared buffer to be the first queued buffer
am: 295a9fc

* commit '295a9fc8aa87daa2cded5c1a279b8cd24e9a9a9f':
BQ: Allow shared buffer to be the first queued buffer
295a9fc8aa87daa2cded5c1a279b8cd24e9a9a9f 15-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: Allow shared buffer to be the first queued buffer

- When single-buffer mode is enabled the shared buffer will now be
either the first buffer dequeued or the first buffer queued.
Whichever comes first.

Bug 24940410

Change-Id: I9f7e2630640e37fe1fb967aed41a3025567247a8
ufferQueueProducer.cpp
ests/BufferQueue_test.cpp
6bd4bf765c4790560b7da86cc86bfa1abab54187 17-Mar-2016 Aniroop Mathur <aniroop.mathur@gmail.com> Merge "Native: Sensor: For ndk sensor enable request, enable sensor with SENSOR_DELAY_NORMAL delay instead of 0 delay, by default " into nyc-dev
am: ec3c05b

* commit 'ec3c05b2d47efaca03ec42572fc2631af5267438':
Native: Sensor: For ndk sensor enable request, enable sensor with SENSOR_DELAY_NORMAL delay instead of 0 delay, by default
bfbd374cab2ea2a477a3d061fbe336e972e4090d 22-Oct-2015 Aniroop Mathur <aniroop.mathur@gmail.com> Native: Sensor: For ndk sensor enable request, enable sensor with
SENSOR_DELAY_NORMAL delay instead of 0 delay, by default

In case of one or more sensor applications running in background
(say Auto Rotation, Auto Brightness, some sensor ndk daemon like
panning, etc), which are using the common sensor (say accelerometer)
running at UI delay(66 ms), and then some 3rd party sensor ndk daemon
starts(say Direct Call feature, GPS ndk daemon for correcting latitude
and longitude using sensor data while using navigation, etc), which
enables the same sensor (accelerometer) but does not set the delay,
then that sensor chip will start to generate data at minimum delay
possible because of passing 0 delay value during enable.

Ideally, this is wrong behaviour because none of the sensor-ndk daemon
or android application has requested for minimum delay yet and so sensor
should generate data still at 66ms only. This in turn will make
significant increment in current consumption because of fastest sampling
rate.

Also, as you know, ASensorEventQueue_enableSensor api and
ASensorEventQueue_setEventRate api are not deprecated and is still used
irrespective of HAL 1_3 or latest 1_4. In fact, these are the only two
api currently available for enabling and setting delay. Direct Call,
panning, Smart alert, gps daemon, etc are such examples which uses these
ndk api

Small Code Snippet:
AutoRotation starts:
mSensorManager.registerListener(
listener1, mAccelerometer, SensorManager.SENSOR_DELAY_UI);

AutoBrightness start:
mSensorManager.registerListener(
listener2, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.registerListener(
listener2, mLight, SensorManager.SENSOR_DELAY_NORMAL);

Panning:
ASensorEventQueue_enableSensor(mSensorEventQueue1, mAccelerometer);
ASensorEventQueue_setEventRate(
mSensorEventQueue1, mAccelerometer, SENSOR_DELAY_UI);
(Here, first 0 delay will be set, but UI delay will override it with
function call setEventRate)
... more possible android-apps/sensor-ndk daemon

So currently, accelerometer is running at 66 ms delay
because DELAY_UI (66ms) is less than DELAY_NORMAL (200ms)

Now, sensor gps ndk daemon starts, enables the sensor but does not set
delay:
ASensorEventQueue_enableSensor(mSensorEventQueue2, mAccelerometer);
--> This call will request for 0ms delay so minimum delay will be set
(say 10ms)

Therefore now, accelerometer will run at 10 ms delay which is wrong
behavior because delay should still be 66 ms ideally. Also, running
sensor at lowest delay unnecessarily increases current consumption.
(Unless requested for minimum delay like in games)

Change-Id: Ib18d0d77f80b2621a204d491c3f61eed9a8b7251
Signed-off-by: Aniroop Mathur <a.mathur@samsung.com>
Signed-off-by: Aniroop Mathur <aniroop.mathur@gmail.com>
ensorEventQueue.cpp
93c617fd2a5e7910e0ba5c0ed6da152d30920679 16-Mar-2016 Pablo Ceballos <pceballos@google.com> BQ: fix some uninitialized variables

Bug 27555981
Bug 27556038

Change-Id: I436b6fec589677d7e36c0e980f6e59808415dc0e
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
a58c8265ec3e807a1fe20189ce2a9d55b26e5d1f 16-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Add a callback thread to ConsumerBase"" into nyc-dev
am: 49380be2cf

* commit '49380be2cfbc43adb79ef559b7bd8578040948cc':
Revert "Add a callback thread to ConsumerBase"
e07e3e5ef56b768d73e78fb273f2cfe6ebffc945 15-Mar-2016 Pablo Ceballos <pceballos@google.com> Revert "Add a callback thread to ConsumerBase"

This reverts commit 22b5702b40eca423171124e69c3d4ad03a3e6900.

Bug 27557176

Change-Id: Icc0e79af82329e6414ed44a99e90631cfcf140fa
onsumerBase.cpp
ests/SurfaceTextureGLToGL_test.cpp
e5bae2630d542b9d89437283b564d4a1caeeca62 14-Mar-2016 Brian Carlstrom <bdc@google.com> Merge "frameworks/native: Make Thread::run threadName argument required" into nyc-dev
am: 5229d8f558

* commit '5229d8f558dfa7d91037321dcf26fbc1131df15a':
frameworks/native: Make Thread::run threadName argument required
83b1e685d252e589fa4a2e7e54c1f416aca63043 13-Mar-2016 Brian Carlstrom <bdc@google.com> frameworks/native: Make Thread::run threadName argument required

Bug: 27557176
Change-Id: I009046d04cc127ee280c7b2038c04fab540fc5e6
onsumerBase.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureGLThreadToGL.h
ests/SurfaceTextureGL_test.cpp
26fd4307cbfa1ccf408e2d7d22851b68f8d64da8 08-Mar-2016 Chong Zhang <chz@google.com> Merge "Fix warning when force-disconnect but there is no connected API" into nyc-dev
am: 82a7ddc4b1

* commit '82a7ddc4b1ddc76df553c2633ce3bfe72bb9319b':
Fix warning when force-disconnect but there is no connected API
26bb2b1c0d8f7b05feb40b0e5bf1bb384e1b5f55 08-Mar-2016 Chong Zhang <chz@google.com> Fix warning when force-disconnect but there is no connected API

It's not really an error, we can return early.

bug: 27295820
Change-Id: I450ca615cf9c33b9aaef9c31eec8217c97516df5
ufferQueueProducer.cpp
054ce05abb0ea309a6c39cb5095948f1e34c2da8 02-Mar-2016 Eino-Ville Talvala <etalvala@google.com> Merge "GUI: Move Surface.aidl here and implement for native" into nyc-dev
am: cc19ec809e

* commit 'cc19ec809e45616449f332d2e72c754d7debf9fb':
GUI: Move Surface.aidl here and implement for native
cc19ec809e45616449f332d2e72c754d7debf9fb 02-Mar-2016 Eino-Ville Talvala <etalvala@google.com> Merge "GUI: Move Surface.aidl here and implement for native" into nyc-dev
b02287cfb8022a42cf41183acf7860139603d279 02-Mar-2016 Chong Zhang <chz@google.com> Merge "Add SurfaceControl::disconnect() to disconnect currently connected API" into nyc-dev
am: 649449dbb7

* commit '649449dbb777e58ea5f6f1af61f84022d088190c':
Add SurfaceControl::disconnect() to disconnect currently connected API
edf9f2e6cd8043a8bf035de1a9cfa487a49e838a 02-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Revert "Partial revert of "Fix Surface slot caching"""" into nyc-dev
am: 4782b268d5

* commit '4782b268d54d737294de7b51bdff4ecda2f1c1f0':
Revert "Revert "Partial revert of "Fix Surface slot caching"""
4782b268d54d737294de7b51bdff4ecda2f1c1f0 02-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Revert "Partial revert of "Fix Surface slot caching"""" into nyc-dev
3827379b2e414b4c96793dd3555302638db02562 02-Mar-2016 Pablo Ceballos <pceballos@google.com> Revert "Revert "Partial revert of "Fix Surface slot caching"""

This reverts commit 16c9c304a33af36faa352d32777bc48c50bf7b74.

Change-Id: Icbdcba8a646ac40c0533c1c04f5b15769332976c
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ProducerListener.cpp
ests/IGraphicBufferProducer_test.cpp
88612912ac8406f2be0eeff97892274f98509017 06-Jan-2016 Eino-Ville Talvala <etalvala@google.com> GUI: Move Surface.aidl here and implement for native

- Move android/view/Surface.aidl parcelable definition from frameworks/base
- Implement matching native behavior to android.view.Surface parceling,
to enable use of android.view.Surface in generated native AIDL interfaces

Bug: 25091611
Change-Id: I87ffbb9a19c27a99ce0749d0ca1f17aaa6b3fe74
urface.cpp
1b3a9acb77ee12568fa19740d8eeab165a0dcd98 01-Mar-2016 Chong Zhang <chz@google.com> Add SurfaceControl::disconnect() to disconnect currently connected API

bug: 27295820
Change-Id: I6f51338bc15e018ed7899172653599ab6254c8c9
ufferQueueProducer.cpp
urfaceControl.cpp
6cc6fc24678208d87290306432c72ff83015d6cb 01-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Partial revert of "Fix Surface slot caching""" into nyc-dev
am: d8bb8da1b7

* commit 'd8bb8da1b742c34e0d2c97cfd6d097b21df9bc47':
Revert "Partial revert of "Fix Surface slot caching""
d8bb8da1b742c34e0d2c97cfd6d097b21df9bc47 29-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "Partial revert of "Fix Surface slot caching""" into nyc-dev
408bc7267d1e0ae14f2e23355d9d6ab984775288 23-Feb-2016 Dan Stoza <stoza@google.com> Merge changes I8cc3ce7d,Ie1a7bfd2,Id472ed4e into nyc-dev
am: a4c2c3ba1e

* commit 'a4c2c3ba1ed2d741edfa652bf8f2bab229389e8e':
libgui: Allow for pending releases in GLConsumer
SF: HWC2 C++ shim
SF: HWC2On1Adapter
a4c2c3ba1ed2d741edfa652bf8f2bab229389e8e 23-Feb-2016 Dan Stoza <stoza@google.com> Merge changes I8cc3ce7d,Ie1a7bfd2,Id472ed4e into nyc-dev

* changes:
libgui: Allow for pending releases in GLConsumer
SF: HWC2 C++ shim
SF: HWC2On1Adapter
3ce460440b0ab0b6d6407c9d8735b19f6e3b8408 18-Nov-2015 Dan Stoza <stoza@google.com> libgui: Allow for pending releases in GLConsumer

Adds the ability for GLConsumer to record a pending release instead of
releasing the buffer immediately. This will be used by SurfaceFlinger
to latch a new buffer without having to immediately release the old
one, since it needs to get a fence from HWC before releasing.

Change-Id: I8cc3ce7d5ff80e2ea4b4d681b028db042352d229
LConsumer.cpp
43158c919463529fa7f7e8fa86e11cabc7bf56f1 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 am: 5da66d4fca am: ea91df0a24 am: f32db75e29 am: 804776a095
am: c59eed57f0

* commit 'c59eed57f048f3568f99e5d64ea9e15130ace78d':
Add SN logging
c59eed57f048f3568f99e5d64ea9e15130ace78d 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 am: 5da66d4fca am: ea91df0a24 am: f32db75e29
am: 804776a095

* commit '804776a095086816268d819ebeb7de2934afac1d':
Add SN logging
804776a095086816268d819ebeb7de2934afac1d 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 am: 5da66d4fca am: ea91df0a24
am: f32db75e29

* commit 'f32db75e29da29d79889b874ad2a8f40ade0dfaf':
Add SN logging
f32db75e29da29d79889b874ad2a8f40ade0dfaf 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 am: 5da66d4fca
am: ea91df0a24

* commit 'ea91df0a249368d058d409e6d125ebfcd9afa4ec':
Add SN logging
ea91df0a249368d058d409e6d125ebfcd9afa4ec 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392
am: 5da66d4fca

* commit '5da66d4fca1b95ffe45883e637cbcbb693ea6cf4':
Add SN logging
5da66d4fca1b95ffe45883e637cbcbb693ea6cf4 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66 am: e39a6e160d
am: 5e0fa1d392

* commit '5e0fa1d39283de9e41df9fccfee6a8f6102421cb':
Add SN logging
5e0fa1d39283de9e41df9fccfee6a8f6102421cb 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging am: d46695bb66
am: e39a6e160d

* commit 'e39a6e160d4dcf16531c2afe3364e639be58a2f7':
Add SN logging
e39a6e160d4dcf16531c2afe3364e639be58a2f7 23-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging
am: d46695bb66

* commit 'd46695bb661ee294a0778e403044cd910c233ec1':
Add SN logging
9ba6f66139ce638c607a05672d914454ed3a07a1 22-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Add a callback thread to ConsumerBase" into nyc-dev
am: d880e517a5

* commit 'd880e517a56d2a73199591bcb9531a4ffa5b53cc':
Add a callback thread to ConsumerBase
d880e517a56d2a73199591bcb9531a4ffa5b53cc 22-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Add a callback thread to ConsumerBase" into nyc-dev
d46695bb661ee294a0778e403044cd910c233ec1 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Add SN logging

Bug 27046057

Change-Id: Iede7c92e59e60795df1ec7768ebafd6b090f1c27
ufferQueueConsumer.cpp
a0ed8e394594aa0b4407fca71a104fbfe204f775 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Add interface for controlling single buffer auto refresh" into nyc-dev
am: aaf51e52cf

* commit 'aaf51e52cfa937a8938a4429a14432a8424c66d0':
Add interface for controlling single buffer auto refresh
aaf51e52cfa937a8938a4429a14432a8424c66d0 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Add interface for controlling single buffer auto refresh" into nyc-dev
22b5702b40eca423171124e69c3d4ad03a3e6900 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Add a callback thread to ConsumerBase

- Add a message queue and callback thread in ConsumerBase.
- This is used to prevent deadlocks when ConsumerBase calls into
BufferQueueConsumer and that generates a callback.

Bug 27229287

Change-Id: I45c41e5a554555511fcfa5c185a7d60b0d969b7e
onsumerBase.cpp
ests/SurfaceTextureGLToGL_test.cpp
7928be71f5f50abb3defdc55db753400f339c061 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403 am: 5d2c73e7dc am: 724f7954db am: 82b9819d93
am: 738d34b162

* commit '738d34b162e0b54fbbc04f72c46204b5adb6554f':
BQ: Add permission check to BufferQueueConsumer::dump
738d34b162e0b54fbbc04f72c46204b5adb6554f 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403 am: 5d2c73e7dc am: 724f7954db
am: 82b9819d93

* commit '82b9819d930c48124812c1a499a91218305a5d14':
BQ: Add permission check to BufferQueueConsumer::dump
82b9819d930c48124812c1a499a91218305a5d14 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403 am: 5d2c73e7dc
am: 724f7954db

* commit '724f7954dba26a23a36c7832b37ea722987c3491':
BQ: Add permission check to BufferQueueConsumer::dump
724f7954dba26a23a36c7832b37ea722987c3491 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403
am: 5d2c73e7dc

* commit '5d2c73e7dc9d4d23a76ca92c0170233e897fe55c':
BQ: Add permission check to BufferQueueConsumer::dump
5d2c73e7dc9d4d23a76ca92c0170233e897fe55c 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb
am: 8b640e6403

* commit '8b640e6403de9dd328b2605c9f21b62d1d31e7d6':
BQ: Add permission check to BufferQueueConsumer::dump
8b640e6403de9dd328b2605c9f21b62d1d31e7d6 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114
am: f419ec1bfb

* commit 'f419ec1bfb969f1add4c90b5b188041968f5f227':
BQ: Add permission check to BufferQueueConsumer::dump
f419ec1bfb969f1add4c90b5b188041968f5f227 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3
am: 7e83de0114

* commit '7e83de0114538b006b4299fd608983ecd61b6422':
BQ: Add permission check to BufferQueueConsumer::dump
7e83de0114538b006b4299fd608983ecd61b6422 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev
am: 793be16dd3

* commit '793be16dd31661e0e95915caa6fc99afc4acc3f6':
BQ: Add permission check to BufferQueueConsumer::dump
16c9c304a33af36faa352d32777bc48c50bf7b74 19-Feb-2016 Pablo Ceballos <pceballos@google.com> Revert "Partial revert of "Fix Surface slot caching""

This reverts commit 981066c3a5be3e4775b6537ef32268f7e108c912.
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ProducerListener.cpp
ests/IGraphicBufferProducer_test.cpp
8c3d16018eb00eda1cf8c6bb717313a4852e611d 18-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Partial revert of "Fix Surface slot caching"" into nyc-dev
am: 8164ce1d59

* commit '8164ce1d59f505f7e6eb5bce66864879b021f2b6':
Partial revert of "Fix Surface slot caching"
981066c3a5be3e4775b6537ef32268f7e108c912 18-Feb-2016 Pablo Ceballos <pceballos@google.com> Partial revert of "Fix Surface slot caching"

- Partially reverts commit 789a0c82cb370d6b82f401cc130af58c85802cbf.
- Leaves the fix in Surface, but reverts all changes to the
Producer/Consumer listeners.

Bug 27246023
Bug 27229287

Change-Id: I9283f9e59e666b5ae44c0db25f99a80d05eea3ee
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ProducerListener.cpp
ests/IGraphicBufferProducer_test.cpp
0e93732cf1b32fb001d4e99e6f49b97aab91a247 17-Feb-2016 Bill Yi <byi@google.com> Merge commit 'db5c5bb0259fa024517d9a151726785facba4f02' into HEAD
1dba36ce8a0681921e8f3571fac5ec52da16762c 17-Feb-2016 Christopher Wiley <wiley@google.com> Merge "Allocate buffers locally in systems without SurfaceFlinger" am: afcf267cbd
am: 225a2901af

* commit '225a2901af2fb08e1cc47103565bc35eedb45752':
Allocate buffers locally in systems without SurfaceFlinger
45f33a57d6755c81db3c0dcbc6f49d1c4ca53e56 11-Feb-2016 Christopher Wiley <wiley@google.com> Allocate buffers locally in systems without SurfaceFlinger

In Brillo systems, we have no applications and configure
SELinux policy statically. In this model, we do not need
a special service to allocate buffers, since any process
that needs buffers can be appropriately marked at build time.

Bug: 26936651
Test: A test program on brilloemulator can allocate buffers for
the camera with this patch.

Change-Id: Ifcdb7a4b878f9a26f4899c7b75a12447dcdb0ac9
ndroid.mk
ufferQueueCore.cpp
88f692852f99a7d0ae3990211d193b06ad209818 12-Feb-2016 Pablo Ceballos <pceballos@google.com> BQ: Add permission check to BufferQueueConsumer::dump

Bug 27046057

Change-Id: Id7bd8cf95045b497943ea39dde49e877aa6f5c4e
ufferQueueConsumer.cpp
3ec34b60f6a27bd363d97c8dfad806a594b10d19 16-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Fix Surface slot caching" into nyc-dev
am: 3130422a1d

* commit '3130422a1d7a7d2a5d528cd161e860fb5f66d353':
Fix Surface slot caching
3130422a1d7a7d2a5d528cd161e860fb5f66d353 16-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Fix Surface slot caching" into nyc-dev
2b133f89ae696fd03c9011ed5f96f11639470f40 13-Feb-2016 Dimitry Ivanov <dimitry@google.com> Merge "Add missing liblog dependency" am: 39f1abac3c
am: 3b3e298583

* commit '3b3e2985832ffb5d3fb3b6af4dc8be66f8fd01b0':
Add missing liblog dependency
eca95691e1a733f4995f5342d8f2263a4d10e427 13-Feb-2016 Dimitry Ivanov <dimitry@google.com> Add missing liblog dependency

Bug: http://b/27171986
Change-Id: Ifbe01c6b325e7198a95ea865f557b0c9acb65809
ests/Android.mk
dce5c559712031b3cb8039067819c11c1a4e16f9 11-Feb-2016 Pablo Ceballos <pceballos@google.com> BQ: Fix iterator use

Don't use an iterator after it's been removed from the container.

Change-Id: I374b454bba95d10dcec6a600bf8f16e5636e426b
ufferQueueProducer.cpp
789a0c82cb370d6b82f401cc130af58c85802cbf 05-Feb-2016 Pablo Ceballos <pceballos@google.com> Fix Surface slot caching

- Now that it's possible to resize a BufferQueue while buffers are
dequeued/acquired, it's no longer correct for Surface to clear its
cache when the BufferQueue is resized since it must keep at least
the currently dequeued buffers.
- Add an onSlotsFreed callback to IProducerListener so that producers
that wish to be notified about buffers being freed can do so. Note
that this isn't currently used in Surface.
- Review and fixup all the places where the producer/consumer
listeners for freed buffers should be called.

Change-Id: I4ab0c92bc69b75a3c072ddf5d74d78f941dba4c8
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ProducerListener.cpp
urface.cpp
ests/IGraphicBufferProducer_test.cpp
ests/Surface_test.cpp
ff95aabbcc6e8606acbd7933c90eeb9b8b382a21 14-Jan-2016 Pablo Ceballos <pceballos@google.com> Add interface for controlling single buffer auto refresh

- Adds a boolean to BufferQueue that controls whether or not auto
refresh is enabled in SurfaceFlinger when in single buffer mode.
- Adds plumbing up to ANativeWindow.
- When enabled, it will cache the shared buffer slot in Surface in
order to prevent the Binder transaction with SurfaceFlinger.

Bug 24940410

Change-Id: I83142afdc00e203f198a32288f071d926f8fda95
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
72daab652e3481566c01ce45c6afdb9fcec6f140 08-Dec-2015 Pablo Ceballos <pceballos@google.com> BQ: Flexible resizing

- Allow the producer to call setMaxDequeuedBufferCount and the
consumer to call setMaxAcquiredBufferCount when buffers are
currently dequeued/acquired as long as the new value is not less
than the number of dequeued/acquired buffers.

Bug 22768206

Change-Id: I599a4027a6ae9cb0a1c0d5ec60cb5e65b86a345b
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
9e314337cdc65b1fbf52060e9a6a4ddf2215c352 12-Jan-2016 Pablo Ceballos <pceballos@google.com> BQ: Conditionally compile validateConsistencyLocked

- Only enable it on userdebug and eng builds so that it won't slow
down user builds.

Change-Id: I70933a23d54657fdf5cbc23873da4fbee84b9a26
ndroid.mk
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
23b4abe024ea88c45e0b94c80e1fb537a573b143 08-Jan-2016 Pablo Ceballos <pceballos@google.com> BQ: Improved buffer/slot tracking

- Explicitly track active buffers and unused slots on top of the
already existing tracking for free slots and free buffers.

Change-Id: Ife2678678e96f0eb0b3fb21571058378134bd868
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
urface.cpp
08f41ad292ea8d5d615155489a9a5ed598a17bb5 28-Jan-2016 Peng Xu <pengxu@google.com> Merge "Dynamic Sensor Discovery implementation"
b18a09887b44a68909ce80d52c7f66fb2c0b970f 27-Jan-2016 Ashutosh Joshi <ashutoshj@google.com> Merge "Adding support for new sensor types"
1b4566c4172244a5ac23a2de7ee53f43000b45bf 15-Jan-2016 Ashutosh Joshi <ashutoshj@google.com> Adding support for new sensor types

Adding support for new sensor types
i) 6DOF pose sensor.
ii) Motion Detect Sensor.
iii) Stationary Detect Sensor.
iv) Heart Beat Sensor.

Change-Id: Icebd222a2301f719bc0d24d4873fa2fabea1b2fa
ensor.cpp
05249fc2d0da542efa46acdb7b10a619a68538e1 16-Jan-2016 Craig Donner <cdonner@google.com> Adds private EGL extension to create an EGLClientBuffer from a gralloc'd buffer. This lets you create a color EGLimage backed by gralloc, which is needed to support protected textures.

Bug: 22775237
Bug: 22855417

Change-Id: I8e03061d74a74a8fdd6524ffa97a6c75a6ced89c
ufferQueueProducer.cpp
ca19b6a4d347dae318157988134471f9d40e2052 26-Jan-2016 Nick Vaccaro <nvaccaro@google.com> Merge "[DO NOT MERGE ANYWHERE] Fix bodysensor permission" into cw-e-dev
b7beb52d622f901d2c2efd3b8ebd1879514d3e88 22-Jan-2016 Peng Xu <pengxu@google.com> [DO NOT MERGE ANYWHERE] Fix bodysensor permission

Bug: 26481493
Bug: 26447970

Change-Id: Iaadf64814c03ae8098c8553ac98d19b77c1eabcd
ensorManager.cpp
2576cb63b3fe1592f54816625036566b9eb0793a 20-Jan-2016 Peng Xu <pengxu@google.com> Dynamic Sensor Discovery implementation

Defined the dynamic sensor meta data type and UUID of sensor.

Implementation in sensorservice and the native SensorManager to
support Dynamic sensor discovery.

Change-Id: I9df2f2ae51d46cd946a9757393f7a60b52cc4fb8
SensorServer.cpp
ensor.cpp
ensorManager.cpp
8af07499231374a259033c009a1616590ac34322 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c am: dc9ec35294 am: 9d959e2755 am: edb7c81a1b am: 2a7a1247cb am: 40ba03fc68 am: ea2b6c68e1 am: 6df23e81f7 am: c748125025
am: db5c5bb025

* commit 'db5c5bb0259fa024517d9a151726785facba4f02':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
2c062b34fb166bbe6b3648a7e82c738c414dca5d 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak am: dded8fdbb7 am: 7ee203b59d am: dc252255af am: 202aaa8f97 am: ec87aa5218 am: c5cb7c489b am: e8cceaf02f am: aef60500d2
am: 362647d373

* commit '362647d37327db2ed53301398a9de7c030af2d42':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
db5c5bb0259fa024517d9a151726785facba4f02 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c am: dc9ec35294 am: 9d959e2755 am: edb7c81a1b am: 2a7a1247cb am: 40ba03fc68 am: ea2b6c68e1 am: 6df23e81f7
am: c748125025

* commit 'c7481250259144c2f7795408ad971f4a9319d996':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
362647d37327db2ed53301398a9de7c030af2d42 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak am: dded8fdbb7 am: 7ee203b59d am: dc252255af am: 202aaa8f97 am: ec87aa5218 am: c5cb7c489b am: e8cceaf02f
am: aef60500d2

* commit 'aef60500d2a505c3dbbea74f62053c0bb072d5a7':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
40ba03fc68e6c234bb8604784716cb2481ad1c67 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c am: dc9ec35294 am: 9d959e2755 am: edb7c81a1b
am: 2a7a1247cb

* commit '2a7a1247cb4829daaaa4e6a6ee3e670cd2f068bf':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
2a7a1247cb4829daaaa4e6a6ee3e670cd2f068bf 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c am: dc9ec35294 am: 9d959e2755
am: edb7c81a1b

* commit 'edb7c81a1b99d2456910b03db9e4ac250eac2fab':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
edb7c81a1b99d2456910b03db9e4ac250eac2fab 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c am: dc9ec35294
am: 9d959e2755

* commit '9d959e275561bcace3aab1f9df009c6c880003fa':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
ec87aa52189d5d3bbf5df214ab099d5de9f5836c 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak am: dded8fdbb7 am: 7ee203b59d am: dc252255af
am: 202aaa8f97

* commit '202aaa8f97083b68c0a736f4cd432f61c9b0989d':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
9d959e275561bcace3aab1f9df009c6c880003fa 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37 am: 413318311c
am: dc9ec35294

* commit 'dc9ec35294b8ec6b6c349b826edc9b44f4ddb96d':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
202aaa8f97083b68c0a736f4cd432f61c9b0989d 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak am: dded8fdbb7 am: 7ee203b59d
am: dc252255af

* commit 'dc252255af835bb3a69bc9a0d01da12419c0fc05':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
dc252255af835bb3a69bc9a0d01da12419c0fc05 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak am: dded8fdbb7
am: 7ee203b59d

* commit '7ee203b59d9a74d485ce2fdfd07e96b2d10ff23b':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
dc9ec35294b8ec6b6c349b826edc9b44f4ddb96d 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak am: d06421fd37
am: 413318311c

* commit '413318311c8cc356dd7e0837ce26e937a9f4c56a':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
413318311c8cc356dd7e0837ce26e937a9f4c56a 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak
am: d06421fd37

* commit 'd06421fd37fbb7fd07002e6738fac3a223cb1a62':
IGraphicBufferProducer: fix QUEUE_BUFFER info leak
7ee203b59d9a74d485ce2fdfd07e96b2d10ff23b 15-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
am: dded8fdbb7

* commit 'dded8fdbb700d6cc498debc69a780915bc34d755':
IGraphicBufferConsumer: fix ATTACH_BUFFER info leak
d06421fd37fbb7fd07002e6738fac3a223cb1a62 12-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferProducer: fix QUEUE_BUFFER info leak

Bug: 26338109
Change-Id: I8a979469bfe1e317ebdefa43685e19f9302baea8
GraphicBufferProducer.cpp
70982a5f95f68295244e5f6cc037c193713a5259 12-Jan-2016 Dan Stoza <stoza@google.com> Revert "libgui: Remove custom BufferQueue allocators"

This reverts commit acd56150573d3a6d449c0de01f93c6f269d121e3.

Change-Id: I877f63a57fbddb4dcff71b3909b460ecc05981eb
ufferQueue.cpp
ufferQueueCore.cpp
dded8fdbb700d6cc498debc69a780915bc34d755 11-Jan-2016 Robert Shih <robertshih@google.com> IGraphicBufferConsumer: fix ATTACH_BUFFER info leak

Bug: 26338113
Change-Id: I019c4df2c6adbc944122df96968ddd11a02ebe33
GraphicBufferConsumer.cpp
acd56150573d3a6d449c0de01f93c6f269d121e3 08-Jan-2016 Dan Stoza <stoza@google.com> libgui: Remove custom BufferQueue allocators

Removes the ability to set a custom GraphicBuffer allocator for a
BufferQueue. Custom-allocated buffers may still be used through the
attachBuffer call.

Change-Id: I127bdfb496fc089a61c7e266c8bd2b906d41f32e
ufferQueue.cpp
ufferQueueCore.cpp
3bb0c8810fb461a64f04bce81f32ca1994fde9b5 06-Jan-2016 Dan Stoza <stoza@google.com> libgui: Remove custom allocator from tests

The StreamSplitter test used a custom allocator to ensure that only one
GraphicBuffer was ever allocated during the test run. Now we can ensure
that by disabling allocation on the relevant BufferQueues after
allocating that one buffer, so the custom allocator is unnecessary.

Change-Id: I98289bda669c50a93ba9b70ceca1781203ad83b2
ests/StreamSplitter_test.cpp
5ecfb68ffd63d352df0392dca6e95ef67a66c679 05-Jan-2016 Dan Stoza <stoza@google.com> libgui: Fix attaching buffers without allocation

This changes the way that BufferQueue selects slots in
waitForFreeSlotThenRelock. This method is called from both
dequeueBuffer and attachBuffer, but those two methods actually have
different preferences:

dequeueBuffer wants a slot with a buffer if possible (to avoid
unnecessary allocations), but will settle for a slot without a buffer
if no free buffers are available.

attachBuffer wants a slot without a buffer if possible (to avoid
clobbering an existing buffer), but will settle with clobbering a free
buffer if no empty slots are available.

These preferences are now respected, which has the side-effect of
fixing a bug where it was not possible to attach a buffer if allocation
is disabled (since the previous implementation assumed finding a slot
without a buffer meant that the caller intended to allocate a buffer,
which would accordingly be blocked since allocation is disabled).

Bug: 26387372
Change-Id: Iefd550fd01925d8c51d6f062d5708d1f6d517edd
ufferQueueProducer.cpp
ests/BufferQueue_test.cpp
127fc63e8a15366b4395f1363e8e18eb058d1709 30-Jun-2015 Dan Stoza <stoza@google.com> libgui: Add dequeue/attach timeout

Adds the ability to specify the timeout when dequeueBuffer or
attachBuffer block due to the lack of a free buffer/slot. By default,
these will block indefinitely (which is signified by a timeout of -1).

When a timeout (other than -1) is specified, non-blocking mode is
disabled and the given timeout will be used instead.

Bug: 25196773
Change-Id: I17fdbeebccb7c8d878703d758ac1209608258e61
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
c2e7788721489c5a2ef681fd0bfa591d2ce41175 17-Dec-2015 Robert Carr <racarr@google.com> Expose setScalingMode from Surface.

While we are here fix a validation error causing
NATIVE_WINDOW_SCALING_MODE_NO_SCALE_CROP to never be applied.
Furthermore, we remove GLConsumer logic causing the scaling mode to
be reinitialized when buffers change.

Bug: 26010823
Change-Id: I1bf1e4fdc2eded67ff401783cf24f920e4684326
LConsumer.cpp
urface.cpp
0bd49eb442c0e6913617380cd6f520a0b488773d 08-Dec-2015 Dan Stoza <stoza@google.com> Merge "Fix the execution point of onFrameAvailable/onFrameReplaced callbacks" am: 789ede379d am: 67322258c0
am: d76538a4db

* commit 'd76538a4dbc69b4231150a8902049fb13f5140be':
Fix the execution point of onFrameAvailable/onFrameReplaced callbacks
67322258c0a42852bee446a5a99f8b64e1953683 08-Dec-2015 Dan Stoza <stoza@google.com> Merge "Fix the execution point of onFrameAvailable/onFrameReplaced callbacks"
am: 789ede379d

* commit '789ede379d2f19ce284866c72bcaad7e8255b1cc':
Fix the execution point of onFrameAvailable/onFrameReplaced callbacks
82fbb121763e16dcf58fb2a3e65d2f93543d9078 07-Dec-2015 Christian Poetzsch <christian.potzsch@imgtec.com> Fix the execution point of onFrameAvailable/onFrameReplaced callbacks

In a4650a5 the concept of a maximum frame number allowance for the consumer was
introduced. A call to acquireBuffers will only return buffers when their frame
number is less-than-or-equal-to this maximum frame number. When SurfaceFlinger
is the consumer, this maximum frame number is calculated in the
onFrameAvailable/onFrameReplaced callbacks. These callbacks are called when a
new buffer is dequeued by the application. The problem is that these callbacks
are called _after_ the fence wait which is used to throttle the frame
production of client apps. When the previous frame needs a long time to draw,
those waits can potentially be a long time. As a result SurfaceFlinger won't do
any composition with the new frame until the wait is over.

Normally this isn't a big problem because there is a queue of buffers for
SurfaceFlinger to work with. However, this changes massively when a client app
is using a swap interval of zero. In this case, a new frame will instantly
replace the previous queued frame. However, SurfaceFlinger doesn't know this
until the onFrameReplaced callback gets called - which is delayed by the fence
wait. If the timing is bad, SurfaceFlinger never gets a chance to pick up a new
frame to do the composition with.

We see this behaviour on our TC development system (slow GPU) with legacy
on-screen benchmarks. Such apps are using a swap interval of zero and sometimes
frames don't get updated for several seconds. This behaviour can be also seen
on a Nexus5, although it isn't as obvious as on our TC.

The fix in this cl is to move the EGL throttling to the end of the queueBuffers
function. This ensures that if a frame gets replaced in the queue, all
consumers who installed the callbacks, get called in a timely fashion.

Change-Id: I36e9ecda162150f41e97d4fb7437963a3d86b371
Signed-off-by: Christian Poetzsch <christian.potzsch@imgtec.com>
ufferQueueProducer.cpp
8c3e55f4149deda3ec7c7a67fda81216d5f9af25 02-Dec-2015 Ben Fennema <fennema@google.com> Revert "DO NOT MERGE ANYWHERE Add new interface for sensor physical data"

This reverts commit d4db70a7b8b2d136c46c50f89b276f8150be5fc2.

Change-Id: Ifb52d5595970a5178e12c2a90da4aac0e38f5942
SensorServer.cpp
ensorManager.cpp
d4db70a7b8b2d136c46c50f89b276f8150be5fc2 09-Oct-2015 Jani Suonpera <jasuonpe@gmail.com> DO NOT MERGE ANYWHERE Add new interface for sensor physical data

This is special solution only for emerald branch.

Changes including new const char* value/interface for sensor physical data. Sensor service and manager does not take care of content, structure or other
details of string. Sensor HAL is taking care of parsing data from string and setting values to Sensor HW.

Change-Id: I3abc3ddc7c6adc4b32a40b9a43f2a94c5af7b2b0
Signed-off-by: Ben Fennema <fennema@google.com>
SensorServer.cpp
ensorManager.cpp
33fcc2ecf707bfa15360d6d3ec95c778423d3032 21-Nov-2015 Pablo Ceballos <pceballos@google.com> Don't generate EGL fence in single buffer mode

Don't do sync operations or generate an EGLFence in SurfaceFlinger's
GLConsumer if re-using the same slot for consecutive buffers.

Bug 24940410

Change-Id: I1d42c6e1ebb3be241d3e332e726c898e8671cc8d
LConsumer.cpp
063121849890da78b1ad7fb96c54c795de5d1fd6 08-Oct-2015 Pablo Ceballos <pceballos@google.com> SF: Force refresh when in single buffer mode

- Add a boolean to BufferItem to track whether single buffer mode is
enabled. When it is, force SurfaceFlinger to acquire a new buffer
and refresh on every vsync.

Bug 24940410

Change-Id: Iea67330c416b6fb14500865f98c67f1c12f23197
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
ccdfd60d79a8b7f1ed6401d0f2e8e29166a10584 08-Oct-2015 Pablo Ceballos <pceballos@google.com> BQ: Add support for single buffer mode

- Adds a single buffer mode to BufferQueue. In this mode designate the
first dequeued buffer as the shared buffer. All calls to dequeue()
and acquire() will then return the shared buffer, allowing the
producer and consumer to share it.
- Modify the buffer slot state tracking. Add a new SHARED state for
the shared buffer in single buffer mode. Also track how many times
a buffer has been dequeued/queued/acquired as it's possible for a
shared buffer to be both dequeued and acquired at the same time, or
dequeued/acquired multiple times. This tracking is needed to know
when to drop the buffer out of the SHARED state after single buffer
mode has been disabled.
- Add plumbing for enabling/disabling single buffer mode from Surface.

Bug 24940410

Change-Id: I3fc550c74bacb5523c049a227111356257386853
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
b0c8d787040974128dc7c7c2e484da66a2437815 29-Oct-2015 Rob Carr <racarr@google.com> Merge "Support SurfaceView synchronization."
7dde599bf1a0dbef7390d91c2689d506371cdbd7 22-May-2015 Dan Stoza <stoza@google.com> Support SurfaceView synchronization.

Add API for fetching the next frame number to be produced by
a given buffer producer. Add an API to SurfaceComposer to
defer execution of the current transaction until a given frame number.
Together these may be used to synchronize app drawing and surface
control updates.

Change-Id: I8e0f4993332ac0199c768c88581a453fefbaff1d
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
ayerState.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
313fb8cd3c5b7d6cfc038afceb8f4e6cc21d8631 14-Oct-2015 Aravind Akella <aakella@google.com> am 0221b4bd: am 263b020b: am 6427e719: am 2ac7405b: Merge "Set DATA_INJECTION mode flag for sensors." into mnc-dr-dev

* commit '0221b4bd2d0443ec634d4264df32e7184a0e47c5':
Set DATA_INJECTION mode flag for sensors.
2ac7405bda4f621f07cbcc0b562d16f7a9611c7b 14-Oct-2015 Aravind Akella <aakella@google.com> Merge "Set DATA_INJECTION mode flag for sensors." into mnc-dr-dev
b687a2814ca9db576eb1ea33dea90ac35cd61bc1 06-Oct-2015 Pablo Ceballos <pceballos@google.com> BQ: fix Volantis test failures

The Volantis driver will dequeue a buffer in eglCreateWindowSurface.

- Remove the requirement that no buffers be dequeued when calling
setAsyncMode() on a BufferQueueProducer, since this gets called
from eglSwapInterval.
- Modify the tests to call setMaxDequeuedBufferCount before calling
eglCreateWindowSurface.

Change-Id: Icc64e9933f151771bbd57035549cd5928c0b7216
ufferQueueProducer.cpp
ests/IGraphicBufferProducer_test.cpp
ests/SurfaceTextureGLThreadToGL_test.cpp
ests/SurfaceTextureGLToGL.h
ests/SurfaceTextureGLToGL_test.cpp
b0127aadafbf3b314475e48772fdcc17939c5a9c 25-Sep-2015 Naveen Leekha <leekha@google.com> am 69412a51: am c4bd7211: resolved conflicts for 7534e4e6 to lmp-mr1-ub-dev

* commit '69412a51f58fa9450f1cb077c8d4b6410128d993':
resolved conflicts for 7534e4e6 to lmp-mr1-ub-dev
69412a51f58fa9450f1cb077c8d4b6410128d993 25-Sep-2015 Naveen Leekha <leekha@google.com> am c4bd7211: resolved conflicts for 7534e4e6 to lmp-mr1-ub-dev

* commit 'c4bd7211373cf5b745c7d4f849f43f7a2d2b1141':
resolved conflicts for 7534e4e6 to lmp-mr1-ub-dev
c4bd7211373cf5b745c7d4f849f43f7a2d2b1141 25-Sep-2015 Naveen Leekha <leekha@google.com> resolved conflicts for 7534e4e6 to lmp-mr1-ub-dev

Change-Id: I543df164076b44578b14d41031800bb62b81586d
GraphicBufferProducer.cpp
83e60e42573ebc1bb06a408170bcdac2824e8dd6 25-Sep-2015 Naveen Leekha <leekha@google.com> am 571e27e2: am e889592e: am 73887c08: am b414255f: Initialize local variables to avoid data leak

* commit '571e27e20e30560985d7c3a3ba8885693695b0fc':
Initialize local variables to avoid data leak
567dbbb6dd42be5013fcde0dadb3316d85f2fa0d 27-Aug-2015 Pablo Ceballos <pceballos@google.com> BQ: get rid of async in producer interface

- Get rid of the async flag in dequeueBuffer, allocateBuffers,
waitForFreeSlotThenRelock, and QueueBufferInput.
- Instead use the persistent flags mDequeueBufferCannotBlock and
mAsyncMode to determine whether to use the async behavior.

Bug 13174928

Change-Id: Ie6f7b9e46ee3844ee77b102003c84dddf1bcafdd
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
treamSplitter.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/StreamSplitter_test.cpp
571e27e20e30560985d7c3a3ba8885693695b0fc 25-Sep-2015 Naveen Leekha <leekha@google.com> am e889592e: am 73887c08: am b414255f: Initialize local variables to avoid data leak

* commit 'e889592e33891c9b88ff6ba655426118f8ef12ee':
Initialize local variables to avoid data leak
7534e4e63afedeb826a8d8a4b0cf3f9d40d243ea 25-Sep-2015 Naveen Leekha <leekha@google.com> am 18165848: am e2c4f4fb: am c1e6fbb5: Initialize local variables to avoid data leak

* commit '18165848e86feab8656bfdac3173bccf45a9a6df':
Initialize local variables to avoid data leak
e889592e33891c9b88ff6ba655426118f8ef12ee 25-Sep-2015 Naveen Leekha <leekha@google.com> am 73887c08: am b414255f: Initialize local variables to avoid data leak

* commit '73887c0864c9a928db6f66bd48c5aea4d31d9a8b':
Initialize local variables to avoid data leak
18165848e86feab8656bfdac3173bccf45a9a6df 25-Sep-2015 Naveen Leekha <leekha@google.com> am e2c4f4fb: am c1e6fbb5: Initialize local variables to avoid data leak

* commit 'e2c4f4fb8b34e36a4f2760f3812c942604cabfb6':
Initialize local variables to avoid data leak
73887c0864c9a928db6f66bd48c5aea4d31d9a8b 25-Sep-2015 Naveen Leekha <leekha@google.com> am b414255f: Initialize local variables to avoid data leak

* commit 'b414255f53b560a06e642251535b019327ba0d7b':
Initialize local variables to avoid data leak
e2c4f4fb8b34e36a4f2760f3812c942604cabfb6 25-Sep-2015 Naveen Leekha <leekha@google.com> am c1e6fbb5: Initialize local variables to avoid data leak

* commit 'c1e6fbb52c3f85cc7610d1d07d12be38f70b4ed4':
Initialize local variables to avoid data leak
b414255f53b560a06e642251535b019327ba0d7b 23-Sep-2015 Naveen Leekha <leekha@google.com> Initialize local variables to avoid data leak

The uninitialized local variables pick up
whatever the memory content was there on stack.
This data gets sent to the remote process in
case of a failed transaction, which is a security
issue. Fixed.

(Partial manual merge of master change
12ba0f57d028a9c8f4eb3afddc326b70677d1e0c. Rest
to automerge from klp-dev)

For b/23696300

Change-Id: I704c9fab327b3545c58e8a9a96ac542eb7469c2a
GraphicBufferProducer.cpp
c1e6fbb52c3f85cc7610d1d07d12be38f70b4ed4 23-Sep-2015 Naveen Leekha <leekha@google.com> Initialize local variables to avoid data leak

The uninitialized local variables pick up
whatever the memory content was there on stack.
This data gets sent to the remote process in
case of a failed transaction, which is a security
issue. Fixed.

(Manual merge of master change
12ba0f57d028a9c8f4eb3afddc326b70677d1e0c )

For b/23696300

Change-Id: I665212d10da56f0803b5bb772d14c77e632ba2ab
GraphicBufferProducer.cpp
68b88fc14f3915cfa8d0f1849caab333aa469f61 22-Sep-2015 Naveen Leekha <leekha@google.com> Merge "Initialize local variables to avoid data leak"
12ba0f57d028a9c8f4eb3afddc326b70677d1e0c 22-Sep-2015 Naveen Leekha <leekha@google.com> Initialize local variables to avoid data leak

The uninitialized local variables pick up
whatever the memory content was there on stack.
This data gets sent to the remote process in
case of a failed transaction, which is a security
issue. Fixed.

For b/23696300

Change-Id: Ie37a34851ffe203f9579f63f1fe1b8605a880c30
GraphicBufferProducer.cpp
583b1b32191992d6ada58b3c61c71932a71c0c4b 04-Sep-2015 Pablo Ceballos <pceballos@google.com> BQ: Prevent operations on disconnected BQs

- Update unit tests to match

Bug 23763412

Change-Id: I77e59bf6b57b328433c3835450455f80a8fa454b
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureFBO_test.cpp
ests/SurfaceTextureGL_test.cpp
ests/SurfaceTextureMultiContextGL_test.cpp
ests/Surface_test.cpp
ff12cba77b5b88f3978070bb970d7721225271ee 16-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "BQ: Modify consumer buffer count interfaces"
4aa427b964f22e3cf10381f8fc27e7042c322b9c 14-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "native: Rename mBuf to mSlot"
d89c2bb6d265c653d3e1d2d94177c75636760abd 14-Sep-2015 Haixia Shi <hshi@google.com> libgui: Fix missing va_end in Surface::hook_perform()

BUG=23667255
TEST=libgui builds and volantis still works

Change-Id: I01de6ade6a47072c3a32c3eedc8568b1fd571363
urface.cpp
f9b7f8548eb95f2c387c4c2331acfaa04b6099b8 10-Sep-2015 Aravind Akella <aakella@google.com> Set DATA_INJECTION mode flag for sensors.

Bug: 24001171
Change-Id: I70133546c68fb478b2c2062f05a4164a36cd9e4b
ensor.cpp
8660a319e203afbc2918ee54d9347d9abfda97ed 03-Sep-2015 Prashant Malani <pmalani@google.com> am be8dbebe: am 07da55f9: am 2f7531fb: am 13c63825: am e35c7d65: Add body sensors app op for custom sensors

* commit 'be8dbebed2319b299bf16c09b792acd1889d4487':
Add body sensors app op for custom sensors
13c638255f2223cb9c455d519ff1003fc0221537 03-Sep-2015 Prashant Malani <pmalani@google.com> am e35c7d65: Add body sensors app op for custom sensors

* commit 'e35c7d65bb3c226fe3c5fc5e3933f64f0963eaeb':
Add body sensors app op for custom sensors
e35c7d65bb3c226fe3c5fc5e3933f64f0963eaeb 21-Aug-2015 Prashant Malani <pmalani@google.com> Add body sensors app op for custom sensors

If the custom sensor requires the BODY SENSOR permission, we should add
the body sensors app op for the custom sensor

Bug: 23396558
Change-Id: I132917d1bca12c76c8a9fb146e00951cba3e6d7a
ensor.cpp
19e3e06e3c65a7c001a6fe0971744ba5ff536515 20-Aug-2015 Pablo Ceballos <pceballos@google.com> BQ: Modify consumer buffer count interfaces

- Rename setDefaultMaxBufferCount() to setMaxBufferCount(). Modify it
to be hard maximum on the number of buffers that can't be overwritten
by the producer.
- Enforce the maximum buffer count in setMaxAcquiredBufferCount(),
setMaxDequeuedBufferCount(), and setAsyncMode().
- Remove mOverrideMaxBufferCount as it's no longer needed since
overriding is no longer possible.
- Expose setMaxAcquiredBufferCount() in GLConsumer.
- Remove disableAsyncBuffer(), it was only being used for single buffer
mode. Single buffer mode is now achievable with setMaxBufferCount().

Bug 13174928

Change-Id: Ia33799f42751272a711fbd8559f7602ce9f18e4f
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTextureGLThreadToGL_test.cpp
ests/SurfaceTextureGLToGL_test.cpp
ests/SurfaceTextureGL_test.cpp
ests/SurfaceTextureMultiContextGL_test.cpp
e60fff5def350d1a53ae083b52d8be0641d24552 29-Aug-2015 Pablo Ceballos <pceballos@google.com> Merge "BQ: Get rid of setBufferCount"
ec907e472865f390bc37a79fde932dc19c387fea 27-Aug-2015 Pablo Ceballos <pceballos@google.com> Merge "BQ: add setMaxDequeuedBufferCount"
e6dc6eaab0166e628dade5687368a2733b468295 25-Aug-2015 Aravind Akella <aakella@google.com> am d5c3541d: am ba3f1a27: am 4baa69dd: am 8f35ca97: SensorManager fixes.

* commit 'd5c3541d10c9a641722ab66a84c7ea48d5c7cf66':
SensorManager fixes.
8f35ca973063e1449c5ec40b618393187a47ec58 18-Aug-2015 Aravind Akella <aakella@google.com> SensorManager fixes.

i) Use pingBinder() to check the status of sensorservice everytime an
event_queue is created. Retry to establish the binder connection if
SensorService has recovered from a runtime restart.
ii) LOG_ALWAYS_FATAL_IF getService(SensorService) returns NULL or malloc
returns NULL.

Bug: 22634472
Change-Id: I4e3912839b6f4114be1a124510878774dbd576a4
ensorManager.cpp
e5b755a045f4203fdd989047441259893c6fbe2d 14-Aug-2015 Pablo Ceballos <pceballos@google.com> BQ: Get rid of setBufferCount

- Remove setBufferCount from BufferQueueProducer and
IGraphicsBufferQueueProducer.
- Get rid of the unit tests for it.
- In Surface, convert setBufferCount calls into calls to
setMaxDequeuedBufferCount.
- Change mOverrideMaxBufferCount to a boolean since it can now be
derived from mMaxAcquiredBufferCount, mMaxDequeuedBufferCount, and
mAsyncMode.

Bug 13174928

Change-Id: Ia0adc737fae9e13f186df832b8428a0829041bf9
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/IGraphicBufferProducer_test.cpp
fa455354557f6283ff3a7d76979e52fd251c155f 13-Aug-2015 Pablo Ceballos <pceballos@google.com> BQ: add setMaxDequeuedBufferCount

Adds the new setMaxDequeuedBufferCount() function to
BufferQueueProducer. This will eventually replace setBufferCount.

Also add setAsyncMode.

Bug 13174928

Change-Id: Iea1adcd5d74a75f67d8e9dde06d521695628ad5a
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
60d6922a011fe18c111b8d30fb6ef1f655b6b15e 07-Aug-2015 Pablo Ceballos <pceballos@google.com> libsgui: Change Rect default constructor

The current Rect default constructor initializes to all zeroes. Change
it to initialize to an invalid Rect.

Modify all of the existing invocations of the default constructor to
maintain the existing behavior.

Bug 18173359

Change-Id: Ibbad076f1550a94f56d7b1cf5350071f2022e09a
ufferItem.cpp
ufferQueueProducer.cpp
LConsumer.cpp
SurfaceComposer.cpp
ayerState.cpp
urface.cpp
47650f4f66a49e1815ad08ca4fb12a661d133abc 05-Aug-2015 Pablo Ceballos <pceballos@google.com> native: Rename mBuf to mSlot

Remove the union in BufferItem.

Bug: 19769719
Change-Id: I4e496b5aafce0fc5206dc7551a741f9c262c2cd0
ufferItemConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
treamSplitter.cpp
ests/BufferQueue_test.cpp
ests/StreamSplitter_test.cpp
53390e1e8c33ebee5bb8100e846f5263ba05ff73 04-Aug-2015 Pablo Ceballos <pceballos@google.com> libgui/SF: Fix some code warnings

A couple of fixes to satisfy the Eclipse static code analysis tool.
- Initialize all members in constructors
- Remove unused forward declarations
- Add parentheses when combining logical and bitwise operators
- Fix a case statement with no break (it was intentional)

Change-Id: Icecb8cc98c6f58b97ab33fffb621f0edc33a7d3c
ensor.cpp
urfaceComposerClient.cpp
ests/CpuConsumer_test.cpp
ests/GLTest.h
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureMultiContextGL.h
ests/TextureRenderer.cpp
cbf4004fc45d2f5a14ec9e00d39cd6ca49bd07ad 30-Jul-2015 Aravind Akella <aakella@google.com> Bug fix in SensorManager.

If SensorService hasn't started when SensorManager instance is requested, keep retrying for a
longer duration.

Bug: 22529981
Change-Id: I3c506d962b61347085fc80b2c5832289539d6853
(cherry picked from commit e2806cb4456e3815e979f333ed23ec7df591a9ff)
ensorManager.cpp
e2806cb4456e3815e979f333ed23ec7df591a9ff 30-Jul-2015 Aravind Akella <aakella@google.com> Bug fix in SensorManager.

If SensorService hasn't started when SensorManager instance is requested, keep retrying for a
longer duration.

Bug: 22529981
Change-Id: I3c506d962b61347085fc80b2c5832289539d6853
ensorManager.cpp
8034fc63a06768678a7afe0bfcc7070a65eda1ab 29-Jul-2015 Narayan Kamath <narayan@google.com> Revert "Bug fix in SensorManager."

This reverts commit 869eb2089ec8a6286b944bfcff57e4cbe0c7e207.

Change-Id: I4fb865e3b18bbb011fa4e4b4732336930c3a45ae
ensorManager.cpp
869eb2089ec8a6286b944bfcff57e4cbe0c7e207 24-Jul-2015 Aravind Akella <aakella@google.com> Bug fix in SensorManager.

If SensorService hasn't started when SensorManager instance is requested, keep retrying for a
longer duration.

Bug: 22529981
Change-Id: I4ba6b760608e34d79273aeb39568f0fa72fbaf9d
ensorManager.cpp
5f920c1a2cf12c0638c05fbddee8ff6c1193731c 14-Jul-2015 Lajos Molnar <lajos@google.com> BufferQueueConsumer: signal onFrameReleased on dropped frames

Bug: 22552826
Change-Id: I9bdfeb8c68f403301af90d4b494f0ae7166a767c
ufferQueueConsumer.cpp
bbd4f23247b3599bdda0149fcb68f311900ecf4f 01-Jul-2015 Amith Dsouza <amithds@google.com> Merge "Revert "Revert "Modify EGL to disconnect the window when the surface gets destroyed.""" into mnc-dev
4f21a4cc22a94eeb65742fcbb0a8516624474fe5 01-Jul-2015 Amith Dsouza <amithds@google.com> Revert "Revert "Modify EGL to disconnect the window when the surface gets destroyed.""

This reverts commit 6e1a2fea67006b58e83ebbcc72f7b12f18c49d15.

Driver level issues fixed by an updated graphics driver.

Bug: 21266976
Change-Id: I93339fb6c6bab988f3550adb49ef8e70cda6473e
ufferQueueProducer.cpp
841a5926fc9b3f9f0e654ba3aab8e43bea7de7f1 29-Jun-2015 Aravind Akella <aakella@google.com> Enable sensor data injection mode through adb.

Change-Id: I415cf8ff0871fa74babaf9b879c68f210298b472
SensorServer.cpp
ensorEventQueue.cpp
ensorManager.cpp
db4850c01ff02bf7f936aa427e1fa8af9abc8f22 26-Jun-2015 Dan Stoza <stoza@google.com> libgui: Fix handling of rotated surface damage

Incoming surface damage was not aware that the EGL implementation was
rotating buffers in response to SurfaceFlinger's transform hint. This
didn't affect all cases because the effect was to apply a 90 degree
rotation instead of a 270 degree rotation. For full-screen updates,
things more or less worked, but in other cases this caused corruption.

This fixes that by correctly undoing the effect of rotated buffers on
the incoming surface damage, and then passing that damage down
untouched to HWC.

Bug: 22068334
Change-Id: I226ecfc7a91fe2e16edd2aa6d9149f0d26b529d6
urface.cpp
231160866738f6ed2175701f300fed1a8e8e02b0 18-Jun-2015 Dan Stoza <stoza@google.com> libgui/SF: Propagate SECURE Layer flag changes

This allows changes to the SECURE flag to propagate down to
Layers in SurfaceFlinger so that WindowManager can change it on the fly
in response to device policy updates.

Bug: 20934462
Change-Id: I558f6d22c6273be373f1f480365e42536af18a33
urfaceComposerClient.cpp
ec4cb387502d5bd09e49b55605cf679fe3a0207a 10-Jun-2015 Dan Stoza <stoza@google.com> GLConsumer: Fix crop math

When we have excess pixels that need to be removed from (for example)
the left and right sides, we currently do something like:

left += excess / 2;
right -= excess / 2;

If excess is odd, however, this removes 1 too few pixels since the odd
pixel gets rounded down twice. This changes the math to effectively:

left += excess / 2;
right -= (excess - excess / 2);

Which removes the correct total number of pixels.

Bug: 19611086
Change-Id: I8d1ad9fe7ba67c149794c148663d12acbccccef0
LConsumer.cpp
c6f30bdee1f634eb90d68cb76efe935b6535a1e8 08-Jun-2015 Dan Stoza <stoza@google.com> libgui/SurfaceFlinger: Add getConsumerName

Adds a getConsumerName method to IGraphicBufferProducer and Surface.
Currently, the name is cached inside of IGBP and is update on connect
and dequeueBuffer, which should be good enough for most uses.

Bug: 6667401
Change-Id: I22c7881d778e495cf8276de7bbcd769e52429915
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/DummyConsumer.h
ests/Surface_test.cpp
a2ca9bf0a9789e9e5e37961ebfb356347f59309e 08-Jun-2015 Dan Stoza <stoza@google.com> Revert "libgui: Add getConsumerName"

This reverts commit 107fbe5599016b0e35145a1a00c4f238b63d61e4.

Change-Id: I0c2b0f7c81193b05eb3dd2f5a59f83598434b744
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/DummyConsumer.h
ests/Surface_test.cpp
107fbe5599016b0e35145a1a00c4f238b63d61e4 06-Jun-2015 Dan Stoza <stoza@google.com> libgui: Add getConsumerName

Adds a getConsumerName method to IGraphicBufferProducer and Surface.
Currently, the name is cached inside of IGBP and is updated on connect
and dequeueBuffer, which should be good enough for most uses.

Bug: 6667401
Change-Id: Ife94bd89023fe7c00bad916932b9a19233fd2290
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/DummyConsumer.h
ests/Surface_test.cpp
812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2 03-Jun-2015 Dan Stoza <stoza@google.com> libgui: Add generation numbers to BufferQueue

This change allows producers to set a generation number on a
BufferQueue. This number will be embedded in any new GraphicBuffers
created in that BufferQueue, and attempts to attach buffers which have
a different generation number will fail.

It also plumbs the setGenerationNumber method through Surface, with the
additional effect that any buffers attached to the Surface after
setting a new generation number will automatically be updated with the
new number (as opposed to failing, as would happen on through IGBP).

Bug: 20923096
Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/Surface_test.cpp
6a04e5fcf67e754b215301fe38a6401db567f4b5 01-Jun-2015 Dan Stoza <stoza@google.com> libgui: Propagate error by clearing sp<GB>

Clears the sp<GraphicBuffer> returned by createGraphicBuffer when there
is an error during unflattening.

Bug: 21498231
Change-Id: I886da4474fc06853cc59188d62044b7d7549126b
GraphicBufferAlloc.cpp
04b00cea67b406c4a971b24b9f91e95c754813ed 30-May-2015 Michael Lentine <mlentine@google.com> Fix libgui crop matrix test.

On devices that have the crop image extension the crop is not applied to the
transform matrix so we have to expect different results in this case.

Change-Id: If62dec1111fb77c9fa2c4332d121665960ce0216
ests/SurfaceTextureClient_test.cpp
6e1a2fea67006b58e83ebbcc72f7b12f18c49d15 29-May-2015 Michael Lentine <mlentine@google.com> Revert "Modify EGL to disconnect the window when the surface gets destroyed."

This reverts commit 00699fa64197cc72a160d69e1f0003cdd43dc136.
ufferQueueProducer.cpp
0e65e6c283c96d514c5ecefbb46a976939cfa64a 26-May-2015 Dan Stoza <stoza@google.com> libgui: Fix surface damage on rotated buffers

Flips the width and height when the buffer comes in with a 90 degree
rotation so that performing the Y-flip from GL works correctly.

Bug: 20761426
Change-Id: I41c9edc8549c6cbdb534277b996ff20c59034582
urface.cpp
01f9e920b093c6414b32434cdd6efda7fe578ca5 22-May-2015 Michael Lentine <mlentine@google.com> Merge "Fix libgui tests." into mnc-dev
d8ead0ccd4b700e43a78efe9b140d4a069dc343d 20-May-2015 Michael Lentine <mlentine@google.com> Fix libgui tests.

Update IGraphicsBufferProducerTest to the new maximum enum value which is now
NATIVE_WINDOW_BUFFER_AGE. Update SurfaceTextureGLToGL_test to use the correct
counts for GraphicsBuffer refs.

Buf: 18138368

Change-Id: Ie2f7e00b414d63100b16944e3ab36b1ffceecd57
ests/IGraphicBufferProducer_test.cpp
ests/SurfaceTextureGLToGL_test.cpp
041b945e07168712fd4d2fec06f76aeaeaa5fc9e 22-May-2015 Chong Zhang <chz@google.com> Merge "fix BufferItem flatten/unflatten alignment" into mnc-dev
47f674dfeca31b29810ecb90f1277918b67c4cf8 22-May-2015 Chong Zhang <chz@google.com> fix BufferItem flatten/unflatten alignment

bug: 21370100
Change-Id: Ia3991dc591c176bdbd1d78d1804aa22777525b62
ufferItem.cpp
699a32bcdfaf0390a269a275b979d46ca815654a 18-May-2015 Michael Lentine <mlentine@google.com> Merge "Refactor ConsumerBase and it's derived classes." into mnc-dev
847f11e215e86b107ab50c1359fc7bc3cd7a3a11 18-May-2015 Michael Lentine <mlentine@google.com> Refactor ConsumerBase and it's derived classes.

Move setDefaultBufferSize, setDefaultBufferFormat, and
setDefaultBufferDataSpace into ConsumerBase and remove them from
CpuConsumer and BufferItemConsumer.

Bug: 19977701

Change-Id: Ic68992464c5da6da7a41c4063a53029a69efcd1b
ufferItemConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
3db36803b247bfbb582632be58416a0a11d1227b 15-May-2015 John Reck <jreck@google.com> Merge "Add ConsumerBase::isAbandoned" into mnc-dev
e478305181bb8dc8706361bc702256fe73f958de 15-May-2015 John Reck <jreck@google.com> Add ConsumerBase::isAbandoned

Bug: 20105644
Change-Id: I21526b5397ea51a15500c44a99daa9d75fc4ea67
onsumerBase.cpp
51c8c502f63624af8090fe42477b95791faec2c9 14-May-2015 Michael Lentine <mlentine@google.com> Merge "Modify EGL to disconnect the window when the surface gets destroyed." into mnc-dev
00699fa64197cc72a160d69e1f0003cdd43dc136 23-Jul-2014 Michael Lentine <mlentine@google.com> Modify EGL to disconnect the window when the surface gets destroyed.

Bug: 14445579

Change-Id: I1d263ff6cffcb6e448761fca7ca4b06466ad65aa
ufferQueueProducer.cpp
09d561dbee9a28db9632ff3d51f633c18aefe023 13-May-2015 Dan Stoza <stoza@google.com> Merge "Fix PTS handling for buffer replacement" into mnc-dev
2b83cc920ac98498bee161e2b0e7befdfc82ca2b 12-May-2015 Dan Stoza <stoza@google.com> libgui: Always allow allocation on connect

This change places BufferQueue into a predictable state where
allocation is allowed whenever a producer connects. This allows clients
to disconnect and reconnect without having to worry about being locked
out of allocation.

Bug: 20554276
Change-Id: Ic0f920a3d4204f2cafdfa69e46f3bb4204571d7e
ufferQueueProducer.cpp
a4650a50a0b35e9e4342d6600b6eb24fd94bb8e5 12-May-2015 Dan Stoza <stoza@google.com> Fix PTS handling for buffer replacement

This changes the way that SurfaceFlinger's shadow buffer management
works such that instead of tracking the size of the shadow queue in the
BufferQueue, SF tracks the last frame number it has seen, and passes
that into the acquireBuffer call. BufferQueueConsumer then ensures that
it never returns a buffer newer than that frame number, even if that
means that it must return PRESENT_LATER for an otherwise valid buffer.

Change-Id: I3fcb45f683ed660c3f18a8b85ae1f8a962ba6f0e
ufferQueueConsumer.cpp
ufferQueueCore.cpp
onsumerBase.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
dc13c5b85b099050c73297a19f1ef89308f7620b 12-May-2015 Dan Stoza <stoza@google.com> libgui: Hook up onFrameReplaced

This completes the plumbing from ConsumerListener::onFrameReplaced into
SurfaceFlinger (and other consumers that may care).

Change-Id: I376e78ace95d6748e8662e6b4d47c0dfa697a300
ufferQueue.cpp
onsumerBase.cpp
79e287890da9de37a834cceebdefe32a7d3ac0ac 04-May-2015 Dan Stoza <stoza@google.com> Merge "libgui: Clear frame number while freeing slot" into mnc-dev
52937cd9a543fe66696c38ae50ec141aa70ec1e4 02-May-2015 Dan Stoza <stoza@google.com> libgui: Clear frame number while freeing slot

Clears the frame number of a slot when it is freed, since it is used
to determine if a released buffer is stale.

Bug: 20445852
Change-Id: I02415e7b25a1eafe7414d6eb1cedf62ac5543cd9
ufferQueueConsumer.cpp
ufferQueueCore.cpp
c28fe8f5c54c5e98be7664dcffdbd5b324b850d6 02-May-2015 Svetoslav <svetoslavganov@google.com> Merge "Add body sensors app op - framework native" into mnc-dev
b412f6e203b38f8047f760261a5e3dc6d0722f08 30-Apr-2015 Svetoslav <svetoslavganov@google.com> Add body sensors app op - framework native

Change-Id: I727a2bb1e28ae9158f2df9c74dd0aee977dfd47f
SensorServer.cpp
ensor.cpp
ensorManager.cpp
ecc504043fddb7a75042ce402c67aedfac04d5e2 28-Apr-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Fix PTS on stale buffers

SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
getting out of sync for a few reasons. This change fixes these by
doing the following:

- Adds a check to re-synchronize the shadow copy every time we
successfully acquire a buffer by first dropping stale buffers before
removing the current buffer.
- Avoids trying to perform updates for buffers which have been rejected
(for incorrect dimensions) by SurfaceFlinger.
- Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
consumer to notify the BufferQueue that it is maintaining a shadow
copy of the queue and prevents it from dropping so many buffers
during acquireBuffer that it ends up returning a buffer for which the
consumer has not yet received an onFrameAvailable call.

Bug: 20096136
Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
(cherry picked from commit 2e36f2283f48ab764b496490c73a132acf21df3a)
ufferQueueConsumer.cpp
ufferQueueCore.cpp
GraphicBufferConsumer.cpp
4d0cd3f5241df28d8259c5ee7df33649c5c10f2d 30-Apr-2015 Taiju Tsuiki <tzik@google.com> Close Fence FDs in error cases of Surface and GraphicBufferMapper

Surface::{cancel,queue}Buffer and GraphicBufferMapper::lockAsyncYCbCr take the
ownership of |fenceFd|s. Though they don't close it on error cases.

Change-Id: I49a7ce8837d5c510c4ac4ad4649f310d18610e80
(cherry picked from commit c7263fb43297744eb04b11025424c0c526d5584c)
urface.cpp
800b41ab8486b9d885124071659c774f6c1856e2 28-Apr-2015 Dan Stoza <stoza@google.com> libgui: Fix buffer age on 64-bit targets

Changes a %llu to a PRIu64 to fix compilation on 64-bit targets.

Change-Id: I8ba982662dbe8ee2e1e47c4f6ce4bbdbe2020960
ufferQueueProducer.cpp
4afd8b67f9be307e6c6ed89deab2e85516bb3a0e 26-Feb-2015 Dan Stoza <stoza@google.com> BufferQueue: Add NATIVE_WINDOW_BUFFER_AGE query

Adds a NATIVE_WINDOW_BUFFER_AGE query, which returns the age of the
contents of the most recently dequeued buffer as the number of frames
that have elapsed since it was last queued.

Change-Id: Ib6fd62945cb62d1e60133a65beee510363218a23
(cherry picked from commit 49f810c72df8d1d64128e376757079825c8decd4)
ufferQueueCore.cpp
ufferQueueProducer.cpp
80640fca047bb5f4e792cd87138e24586a3a37c4 28-Apr-2015 Dan Stoza <stoza@google.com> libgui: Implement onTransact for sideband streams

Implements the GET_SIDEBAND_STREAM case of
IGraphicBufferConsumer::onTransact

Change-Id: I46138b87ce2d70dde48b3561dcd378ce5fd8f383
(cherry picked from commit 17166698d935a004adab216aca83a585f91e9d96)
GraphicBufferConsumer.cpp
d9c4971da2f2c4f980a748006bd40469c3332a13 27-Apr-2015 Dan Stoza <stoza@google.com> libgui: Change detachNextBuffer to return sp<GB>

Changes Surface::detachNextBuffer to return an sp<GraphicBuffer>
instead of an ANativeWindowBuffer* to ensure that reference counting
works correctly.

Bug: 20092217
Change-Id: I3979ea6121aaf14845f0554477b778770413581e
(cherry picked from commit 8b2daa3ca29492b181fb67840640d771c4a2b3ac)
urface.cpp
63a0f428230208b9f3601eb7c99a08100c6f3a0b 25-Apr-2015 Aravind Akella <aakella@google.com> Build fix SensorEventQueue.

Change-Id: I3e6ba031d42bd37067591771f378b7185169ab48
ensorEventQueue.cpp
cc60dc2128a98f952beb187da22b28dcba0124ad 25-Apr-2015 Aravind Akella <aakella@google.com> Merge "Enable data injection mode in SensorService."
6febf6c150b47a8e9ec7d77d988c176fe89ccbf2 24-Apr-2015 Dan Stoza <stoza@google.com> am 5d10894c: am ef47c080: am 958f5011: Merge "libgui: Allow an IGBProducer to disable allocation"

* commit '5d10894c9d547449cf231f02b736da9dfdebec11':
libgui: Allow an IGBProducer to disable allocation
7536ef4f07a3e8bfe227dbabe2298965af9d9e0e 24-Apr-2015 Dan Stoza <stoza@google.com> am 437fb850: am f96a7581: am fb6d43ff: Merge "libgui: Change BufferQueue to use free lists"

* commit '437fb850b0667be3e8655cb1ac6a8d491f59d045':
libgui: Change BufferQueue to use free lists
958f501189a29e53767f41bc8172e4af8d1ce2bf 24-Apr-2015 Dan Stoza <stoza@google.com> Merge "libgui: Allow an IGBProducer to disable allocation"
fb6d43ff44bb2b708494749a7f6037505ccd7bf6 24-Apr-2015 Dan Stoza <stoza@google.com> Merge "libgui: Change BufferQueue to use free lists"
a9e6cc387072e25706a6d847a97b02a6f25a918b 17-Apr-2015 Aravind Akella <aakella@google.com> Enable data injection mode in SensorService.

Change-Id: I0cd32a017235c31c54816e4a357ce3b988350ed6
SensorServer.cpp
ensorEventQueue.cpp
ensorManager.cpp
8efa4fb3704ace5cd764203af9d23125e97b7bcd 24-Apr-2015 Dan Stoza <stoza@google.com> am 65f68d5c: am fece8306: am 56f1f16c: Merge "libgui: Fix some bitrot/warnings in tests"

* commit '65f68d5cb4a758a8e6faac95817f70383748a9c0':
libgui: Fix some bitrot/warnings in tests
1925bd9219eb7b1fe1efe610511cd77183cb6062 24-Apr-2015 Dan Stoza <stoza@google.com> am 17df593e: am 9aae16a4: am 82e4d49b: Merge "libui/libgui: Fix errors in parceling"

* commit '17df593eb386940a26377d2db9fcb8a60e8badba':
libui/libgui: Fix errors in parceling
56f1f16c7b01a53282d483259ae80d035cc6496b 24-Apr-2015 Dan Stoza <stoza@google.com> Merge "libgui: Fix some bitrot/warnings in tests"
82e4d49b0ecb205d49f02cc07496f7508c56443c 24-Apr-2015 Dan Stoza <stoza@google.com> Merge "libui/libgui: Fix errors in parceling"
9de7293b0a1b01ebe6fb1ab4a498f144adc8029f 17-Apr-2015 Dan Stoza <stoza@google.com> libgui: Allow an IGBProducer to disable allocation

Adds a new method IGBP::allowAllocation, which controls whether
dequeueBuffer is permitted to allocate a new buffer. If allocation is
disallowed, dequeueBuffer will block or return an error as it
normally would (as controlled by *ControlledByApp).

If there are free buffers, but they are not of the correct dimensions,
format, or usage, they may be freed if a more suitable buffer is not
found first.

Bug: 19801715
Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
ests/BufferQueue_test.cpp
0de7ea752900b5da29ad19c2799040235477f3c5 23-Apr-2015 Dan Stoza <stoza@google.com> libgui: Change BufferQueue to use free lists

BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Fixes an issue with the first version of this change, found in bugs
20482952, 20443314, and 20464549.

Bug: 13175420
Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
83e9f6e75e0c32efba8a337bcf9eb44cbab2346c 23-Apr-2015 Dan Stoza <stoza@google.com> am 41422980: am d2c12e4c: am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""

* commit '41422980fabb087390791d951c28fef072d93be1':
Revert "libgui: Change BufferQueue to use free lists"
7637e35d17e06d532b0d2d11c0eef60594726209 22-Apr-2015 Dan Stoza <stoza@google.com> Merge "Revert "libgui: Change BufferQueue to use free lists""
1fc9cc25a487d4d9dea3cc185331e3481ead36ff 22-Apr-2015 Dan Stoza <stoza@google.com> Revert "libgui: Change BufferQueue to use free lists"

This reverts commit 8dddc990103b71137be2a6365a26b1ac36598e68.

Change-Id: I0b0fed9f1394c6f6ae812f6c562ead4473a8226e
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
2bff43a91240ba3e2f98778233f3c9fb8221bbf7 22-Apr-2015 Dan Stoza <stoza@google.com> am 3805a00d: am 91f16b1b: am e647ddde: Merge "libgui: Fix CPU rendering on Surface"

* commit '3805a00d6efef02535aaed96f412e0c55a9875f8':
libgui: Fix CPU rendering on Surface
c62acbd12711ee6cff1ef94c146316dfe5169045 22-Apr-2015 Dan Stoza <stoza@google.com> libgui: Fix CPU rendering on Surface

When the surface damage code went in, it incorrectly assumed that if
an application was doing CPU rendering, it would be using lock and
unlockAndPost instead of dequeue and queue, so it repurposed the dirty
region too aggressively. This change keeps it from clobbering the
dirty region if a CPU producer is attached.

Bug: 20431815
Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
urface.cpp
97ef903db12c72b24afba66c9971bbf35ec68de5 20-Apr-2015 Dan Stoza <stoza@google.com> am aadb236d: am 483c76dc: am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"

* commit 'aadb236d2e944791c1e7600eae9439fcb8a6caa9':
libgui: Change BufferQueue to use free lists
f8cebe54576c8100769e2515d4f67bdd013a6927 20-Apr-2015 Dan Stoza <stoza@google.com> libgui: Fix some bitrot/warnings in tests

These tests hadn't been run in a while and had accumulated some rot.
This fixes most of the compile warnings and some tests which fail
incorrectly, but 2 failures remain on N6.

Change-Id: I7fee78cd058a32f4d7df40ec9f899ff767f68517
ests/Android.mk
ests/BufferQueue_test.cpp
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/SRGB_test.cpp
ests/StreamSplitter_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureFBO_test.cpp
ests/SurfaceTextureGL_test.cpp
eea6d682b8b0f7081f0fe8fab8feadb16e22b30b 20-Apr-2015 Dan Stoza <stoza@google.com> libui/libgui: Fix errors in parceling

BufferItem and GraphicBuffer were not parceling correctly, which had
not been noticed because the libgui tests (specifically, one that
tests placing a BufferQueue in a separate process from the IGBP/C)
had not been run recently. This change fixes the errors found in
those classes.

Change-Id: Ie224361a534a79115a3481d83ff97f21d154d4f5
ufferItem.cpp
8dddc990103b71137be2a6365a26b1ac36598e68 17-Apr-2015 Dan Stoza <stoza@google.com> libgui: Change BufferQueue to use free lists

BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Bug: 13175420
Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
2992fcd0b2da1b98b0dfd9c80459e8648e72447e 15-Apr-2015 Dan Stoza <stoza@google.com> am 057a561a: am 57a9f5a0: am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"

* commit '057a561afbf30ede99b5ec627deec7ee11701f6d':
libgui: Pass surface damage through BufferQueue
5065a55291b67f584d7b0be3fa3cfc4e29a3cd1c 18-Mar-2015 Dan Stoza <stoza@google.com> libgui: Pass surface damage through BufferQueue

This change adds support for passing surface damage all of the way
down from the EGL interface through the consumer side of the
BufferQueue. Depends on system/core change
Ie645e6a52b37b5c1b3be19481e8348570d1aa62c

Bug: 11239309
Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
ufferItem.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
668285721ba81fc4fb6f5e223b382f5e604c64c2 08-Apr-2015 Dan Stoza <stoza@google.com> am 172ff24c: am 5977851b: am 00afb817: Merge "libgui: Plumb detachBuffer through ConsumerBase"

* commit '172ff24ccbc232cdf244a2bcbbb51df754929521':
libgui: Plumb detachBuffer through ConsumerBase
634f5ee6a713b3cf4086a2af8e9b56e76cba245f 03-Apr-2015 Dan Stoza <stoza@google.com> libgui: Plumb detachBuffer through ConsumerBase

Exposes IGraphicBufferConsumer::detachBuffer as a ConsumerBase
method. attachBuffer is not currently exposed, because all current
clients will be recycling buffers through the allocator.

Bug: 19628705
Change-Id: I3e519767fa43d5d880c1d5695e31b60f6ad588af
onsumerBase.cpp
921d1d7a61f527b7bbf42e9ba46bd92342cc7c99 02-Apr-2015 Dan Stoza <stoza@google.com> Revert "libgui: Plumb attach/detach through CpuConsumer"

This reverts commit 20c5672883796c0dedf38f51dc2fc6f140b09ae6.
ufferQueueConsumer.cpp
puConsumer.cpp
231832eb27107fb561467f5f4a9be2c577c61ea8 11-Mar-2015 Dan Stoza <stoza@google.com> DO NOT MERGE libgui: Plumb attach/detach through Surface

Exposes the attachBuffer and detachNextBuffer calls from
IGraphicBufferProducer to the public Surface interface. Also moves
the version of connect that takes a producer callback from protected
to public.

Bug: 19628705
Change-Id: I9ebc3013c4d9c84c4e8ef150c00e03f8af80319e
(cherry picked from commit c14ecb9de243af8864610fd3c74342e3ca2cb4bc)
urface.cpp
4949c50372de4c7fdb57de1dc0c1f5bb3ac463eb 12-Feb-2015 Aravind Akella <aakella@google.com> Support restricted mode in SensorService.

In restricted mode, only CTS tests can register for sensors or call flush() on them. The requests
from other applications will be ignored.

Change-Id: Ieb923df3e0cfe3390fe2d052af776da79589744b
SensorServer.cpp
ensorManager.cpp
1c87e474d87d6d1380fb61d476d606b1a2fda1c1 13-Mar-2015 Dan Stoza <stoza@google.com> DO NOT MERGE libgui: Remove IGBC::BufferItem

Removes IGraphicBufferConsumer::BufferItem. Depends on the
following changes:
I187b3a7d05196b6289596afac8fb9a9d4aebff76
I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc

Cherry-pick of Id1fa56d092188f2cb712768d5d2fc6a9027fb73c

Change-Id: I3edf0db8fba656fd78e18a5a7f1137f0fb6b237d
ufferItem.cpp
ufferItemConsumer.cpp
ufferQueue.cpp
ufferQueueConsumer.cpp
onsumerBase.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
cf3834db104e0b052056e3a06d46e3f222f0d372 11-Mar-2015 Dan Stoza <stoza@google.com> DO NOT MERGE libgui: Prepare for IGBC::BufferItem removal

Currently, there are two instances of BufferItem: one inside of
IGraphicBufferConsumer, and a standalone one inside of libgui. They
only differ in the name of one of the fields, and we want to remove
the IGBC version. This changes things so that client code may be
incrementally switched over to the libgui version.

This is a squashed commit containing the following changes:
I64f495105f56cbf5803cea4aa6b072ea29b70cf5
I1394e693314429ada93427889f10b7b01c948053
I9c3bc8037fa9438d4d9080b8afb694219ef2f71f
I699ed0a6837076867ca756b28d1ffb2238f7a0d9
Iac8425e1241774304a131da2fb9dec6e82922f13

Change-Id: Ic4d51f5df6dbc70b376d13fceba2335b9bae4f3d
ufferItem.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
treamSplitter.cpp
ests/BufferQueue_test.cpp
ests/StreamSplitter_test.cpp
82c6bcc9705eabcaf5b9e45bc81867b0e2d61a02 20-Feb-2015 Eino-Ville Talvala <etalvala@google.com> DO NOT MERGE Add dataSpace to buffer queues; remove old format enums.

- Wire up new dataSpace parameter through buffer queue stack
- Update tests to include the parameter
- Switch eglApi to using dataSpace to indicate sRGB gamma/linear
difference
- Remove RAW_SENSOR in favor of RAW16
- Remove use of sRGB format enums
- Add default dataspace to buffer queue core
- Add query for default dataspace

Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df

Change-Id: I461952389c18051176c6b75e664f20ad369f5760
ufferItem.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
puConsumer.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
treamSplitter.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/SRGB_test.cpp
ests/StreamSplitter_test.cpp
ests/Surface_test.cpp
ad36432de81c4c88d726680b7c52e8357df98455 19-Mar-2015 Dan Stoza <stoza@google.com> Merge "Surface: Permit an IProducerListener on connect"
744fc02fe85884e2cc456303b7471e56a877b970 05-Dec-2014 Dan Stoza <stoza@google.com> libgui: Only allow one return from useFenceSync

An #ifdef was causing multiple returns in this function, which was
triggering an unreachable code error on some build targets. This
adds an #else to ensure that only one return is exposed in any given
build.

Cherry pick of I9ed7c3e769bc9094ad31d810944227d1d8302886

Change-Id: Ibddc5706159d168031d1805fcce3eedc068296cf
yncFeatures.cpp
48245f0c6de556daa79564a1637da4e71e25f455 19-Mar-2015 Dan Stoza <stoza@google.com> Merge "libgui: Plumb attach/detach through Surface"
966b98bd86abc6473167bc98ddf8ddb1f8dd2ed5 03-Mar-2015 Dan Stoza <stoza@google.com> Surface: Permit an IProducerListener on connect

This change allows clients of Surface to provide an IProducerListener
callback object to Surface::connect, which will be passed down to the
underlying IGraphicBufferProducer.

Cherry pick of I5ea5229bf3a329bf02c6bd20e7247039c75d136b

Change-Id: I6f8f52c72654e4cee649721383819bafe378f964
urface.cpp
2632350ac88cdf007c62e18345b71411755ed6ba 04-Mar-2015 Dan Stoza <stoza@google.com> GLConsumer: Fix unsigned subtraction during crop

Since some variables had been switched from signed to unsigned, there
was a section of code that was guaranteed to be incorrect because it
effectively did 'if (a < b) { c = a - b; }'. This change fixes it.

Cherry pick of I9cdd6c9a0179801addebb5d6dc1fbaddf8f53c62

Bug: 19346631
Change-Id: Id13a46f74c9ae7278463ce22b586f4dc21b5e453
LConsumer.cpp
3be1c6b60a188dc10025e2ce156c11fac050625d 18-Nov-2014 Dan Stoza <stoza@google.com> libgui: Enable -Weverything and -Werror

Enables -Weverything and -Werror, with just a few exceptions for
warnings we can't (or shouldn't need to) work around.

Cherry pick of I034abec27bf4020d84af60d7acc1939c59986dd6 plus a
couple of minor changes to CpuConsumer.cpp to make it work with a
prior change:
Uncomment CC_LOGV on line 46
Change C-style cast to static_cast on line 71

Change-Id: Iaec610477ea0122317b0578fb74caf2383d4cf08
ndroid.mk
itTube.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
ConsumerListener.cpp
DisplayEventConnection.cpp
GraphicBufferAlloc.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
ProducerListener.cpp
SensorEventConnection.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
ensor.cpp
ensorEventQueue.cpp
ensorManager.cpp
treamSplitter.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
yncFeatures.cpp
20c5672883796c0dedf38f51dc2fc6f140b09ae6 16-Mar-2015 Dan Stoza <stoza@google.com> libgui: Plumb attach/detach through CpuConsumer

Adds CpuConsumer::{detachNextBuffer,attachAndReleaseBuffer}, which
can be used to more carefully manage the ownership of GraphicBuffers.

Bug: 19628705
Change-Id: Ia7a7e30da6d81eb2367241998f14988db0afc3bf
ufferQueueConsumer.cpp
puConsumer.cpp
724768f9163ea2483614877895fa74140fbb386e 17-Mar-2015 Dan Stoza <stoza@google.com> Revert "libgui: Plumb attach/detach through CpuConsumer"

This reverts commit 43078e2827211139f0614719c920f3c5bff6c3fa.

Change-Id: Ifef774d9922bb90450384e810e4767b56cc29de3
ufferQueueConsumer.cpp
puConsumer.cpp
c14ecb9de243af8864610fd3c74342e3ca2cb4bc 11-Mar-2015 Dan Stoza <stoza@google.com> libgui: Plumb attach/detach through Surface

Exposes the attachBuffer and detachNextBuffer calls from
IGraphicBufferProducer to the public Surface interface. Also moves
the version of connect that takes a producer callback from protected
to public.

Bug: 19628705
Change-Id: I9ebc3013c4d9c84c4e8ef150c00e03f8af80319e
urface.cpp
43078e2827211139f0614719c920f3c5bff6c3fa 16-Mar-2015 Dan Stoza <stoza@google.com> libgui: Plumb attach/detach through CpuConsumer

Adds CpuConsumer::{detachNextBuffer,attachAndReleaseBuffer}, which
can be used to more carefully manage the ownership of GraphicBuffers.

Bug: 19628705
Change-Id: Ia7aa1ac59c2f768f2d8a0f35ad23067936a7427c
ufferQueueConsumer.cpp
puConsumer.cpp
54716317b5752010134edc64421a3f492bd608ab 13-Mar-2015 Dan Stoza <stoza@google.com> libgui: Remove IGBC::BufferItem

Removes IGraphicBufferConsumer::BufferItem. Depends on the
following changes:
I187b3a7d05196b6289596afac8fb9a9d4aebff76
I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc

Change-Id: Id1fa56d092188f2cb712768d5d2fc6a9027fb73c
ufferItem.cpp
ufferItemConsumer.cpp
ufferQueue.cpp
ufferQueueConsumer.cpp
onsumerBase.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
9cf51a7c86717cd33d0717c48d6acece9caff3b3 13-Mar-2015 Dan Stoza <stoza@google.com> libgui: Fix infinite recursion

One of the overloads of BufferQueueConsumer::acquireBuffer was
calling itself infinitely instead of calling the other overload.
This fixes that issue.

Bug: 19733425
Change-Id: Iac8425e1241774304a131da2fb9dec6e82922f13
ufferQueueConsumer.cpp
dd26416fe135f93ef2c8570738f8e1ca5e2ca3a3 12-Mar-2015 Dan Stoza <stoza@google.com> libgui: Prepare for IGBC::BufferItem removal

Switches some dependencies from IGraphicBufferConsumer::BufferItem to
android::BufferItem and adds some methods to facilitate incrementally
changing client code to do the same.

Change-Id: I699ed0a6837076867ca756b28d1ffb2238f7a0d9
ufferItemConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
treamSplitter.cpp
ests/BufferQueue_test.cpp
ests/StreamSplitter_test.cpp
de7100ab2304434f73cbd1022823835184511d04 12-Mar-2015 Dan Stoza <stoza@google.com> libgui: Add a BufferItem overload to IGBC::acquire

Adds an overload of IGraphicBufferConsumer::acquireBuffer which takes
an android::BufferItem instead of an IGBC::BufferItem.

Change-Id: I9c3bc8037fa9438d4d9080b8afb694219ef2f71f
ufferQueueConsumer.cpp
GraphicBufferConsumer.cpp
8757c016c8b8fd039347ab8f773dee28603a7a1c 11-Mar-2015 Dan Stoza <stoza@google.com> libgui: Add BufferItem(IGBC::BufferItem)

Add a constructor for building a BufferItem from an
IGraphicBufferConsumer::BufferItem.

Change-Id: I1394e693314429ada93427889f10b7b01c948053
ufferItem.cpp
94d5ac480286d5e4d856bb968263e6991a62002d 06-Mar-2015 Eino-Ville Talvala <etalvala@google.com> Merge "Add dataSpace to buffer queues; remove old format enums."
d8bf6e0bafc0bbc9eb41086f3942aae8563c6270 06-Mar-2015 Dan Stoza <stoza@google.com> Merge "Surface: Permit an IProducerListener on connect"
abf952c1b121405ebb6720a779817b7850fb43b9 04-Mar-2015 Dan Stoza <stoza@google.com> GLConsumer: Fix unsigned subtraction during crop

Since some variables had been switched from signed to unsigned, there
was a section of code that was guaranteed to be incorrect because it
effectively did 'if (a < b) { c = a - b; }'. This change fixes it.

Bug: 19346631
Change-Id: I9cdd6c9a0179801addebb5d6dc1fbaddf8f53c62
LConsumer.cpp
5b75a513e431c097ae704cba2f7affa6bfaecec9 20-Feb-2015 Eino-Ville Talvala <etalvala@google.com> Add dataSpace to buffer queues; remove old format enums.

- Wire up new dataSpace parameter through buffer queue stack
- Update tests to include the parameter
- Switch eglApi to using dataSpace to indicate sRGB gamma/linear
difference
- Remove RAW_SENSOR in favor of RAW16
- Remove use of sRGB format enums
- Add default dataspace to buffer queue core
- Add query for default dataspace

Change-Id: I070bd2e7c56506055c419004c29e2e3feac725df
ufferItem.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
puConsumer.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
treamSplitter.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/SRGB_test.cpp
ests/StreamSplitter_test.cpp
ests/Surface_test.cpp
f8e3c6b6d8051331f3d7d535635dfbb2c40ed1b9 03-Mar-2015 Dan Stoza <stoza@google.com> Surface: Permit an IProducerListener on connect

This change allows clients of Surface to provide an IProducerListener
callback object to Surface::connect, which will be passed down to the
underlying IGraphicBufferProducer.

Change-Id: I5ea5229bf3a329bf02c6bd20e7247039c75d136b
urface.cpp
fc35dd8bc9601f693eeed6d807c261666d09378f 11-Feb-2015 Nick Vaccaro <nvaccaro@google.com> am 26cc3d0b: am b9bb1f13: Merge "Add support for SENSOR_TYPE_WRIST_TILT_GESTURE" into lmp-mr1-modular-dev

* commit '26cc3d0b67ff4daf31eaeed0ecd87b391978aadb':
Add support for SENSOR_TYPE_WRIST_TILT_GESTURE
26cc3d0b67ff4daf31eaeed0ecd87b391978aadb 11-Feb-2015 Nick Vaccaro <nvaccaro@google.com> am b9bb1f13: Merge "Add support for SENSOR_TYPE_WRIST_TILT_GESTURE" into lmp-mr1-modular-dev

* commit 'b9bb1f139bd1cbf3b3faa002b509f3f0a167e20b':
Add support for SENSOR_TYPE_WRIST_TILT_GESTURE
9bb99b1570a1715cce1d02a776c06f1596d61ecd 22-Jan-2015 Nick Vaccaro <nvaccaro@google.com> Add support for SENSOR_TYPE_WRIST_TILT_GESTURE

Change-Id: I7e5516de805618df41de0f9b06805002e32708c3
ensor.cpp
b3ca72ce1ea0d5e9ef1601dd35520f9fcf23cbca 29-Jan-2015 Lajos Molnar <lajos@google.com> CpuConsumer: fix build error
puConsumer.cpp
bacce71e40661f908be8f3138ae6c9144c69ba65 29-Jan-2015 Chad Jones <chadj@google.com> Merge commit 'ec41d55b8d018f349f7687cfe491651db600b51d'
ec41d55b8d018f349f7687cfe491651db600b51d 29-Jan-2015 Lajos Molnar <lajos@google.com> am 94ee9b59: Merge "CpuConsumer: lock buffers that could be YUV as ycbcr" into lmp-mr1-dev

* commit '94ee9b5916903e6ee23bb1ce8f688900a4eb6f65':
CpuConsumer: lock buffers that could be YUV as ycbcr
6a26be7c2b1e5a84b5d2105780148016889285e6 23-Jan-2015 Lajos Molnar <lajos@google.com> CpuConsumer: lock buffers that could be YUV as ycbcr

Bug: 17906609
Change-Id: Ic71af69ec3b19ab1224ed3ad5e0a97c60e81cda6
puConsumer.cpp
a21b7a0686b9d179d4e717678c1f88bb5eed9dc6 10-Dec-2014 Andreas Gampe <agampe@google.com> am b93bca5d: am a59d7a6a: Merge "GUI: Remove unused variables"

* commit 'b93bca5d0831068cd599f905ba43dc8334095d65':
GUI: Remove unused variables
b93bca5d0831068cd599f905ba43dc8334095d65 09-Dec-2014 Andreas Gampe <agampe@google.com> am a59d7a6a: Merge "GUI: Remove unused variables"

* commit 'a59d7a6a66a2b8dcb2d00dbd6371fa89ae45ab04':
GUI: Remove unused variables
7398a5af38a9eead2ac6c87da876ba834b450519 09-Dec-2014 Andreas Gampe <agampe@google.com> GUI: Remove unused variables

For build-system CFLAGS clean-up, remove unused variables.

Bug: 18632512
Change-Id: I79fdcf830683d7278f4bf114cfb76a26da1b88ff
puConsumer.cpp
SurfaceComposer.cpp
urface.cpp
dd883c0b08d2a60f89542b9b9f5fdabcb14885c7 18-Nov-2014 Dan Stoza <stoza@google.com> libgui: Enable -Weverything and -Werror

Enables -Weverything and -Werror, with just a few exceptions for
warnings we can't (or shouldn't need to) work around.

This is a squashed commit based on an initial change with a couple of
fixes to avoid breaking certain targets. The source commits are:
d723bd7669b4fc88dc282d8bf8ba5ecb2849d22f
00d504c06ea034befe143e6b8cb34d004670ed02
429ba89cd293633d2f882165066b422c96597df2

Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
ndroid.mk
itTube.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
ConsumerListener.cpp
DisplayEventConnection.cpp
GraphicBufferAlloc.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
ProducerListener.cpp
SensorEventConnection.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
ensor.cpp
ensorEventQueue.cpp
ensorManager.cpp
treamSplitter.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
yncFeatures.cpp
00d504c06ea034befe143e6b8cb34d004670ed02 05-Dec-2014 Dan Stoza <stoza@google.com> libgui: Only allow one return from useFenceSync

An #ifdef was causing multiple returns in this function, which was
triggering an unreachable code error on some build targets. This
adds an #else to ensure that only one return is exposed in any given
build.

Change-Id: I9ed7c3e769bc9094ad31d810944227d1d8302886
yncFeatures.cpp
ae33effd43a615183f089f0a216b5965e8104842 31-Oct-2014 Michael Lentine <mlentine@google.com> Fix crash when user provides large values in the Parcel.

Bug: 18102648
Change-Id: Ie6a24718e586a34424238363de80f9545951514f
(cherry-picked from commit 8afa1c4ab86d724feb7716e153b7835385534590)
SurfaceComposer.cpp
ayerState.cpp
d723bd7669b4fc88dc282d8bf8ba5ecb2849d22f 18-Nov-2014 Dan Stoza <stoza@google.com> libgui: Enable -Weverything and -Werror

Enables -Weverything and -Werror, with just a few exceptions for
warnings we can't (or shouldn't need to) work around.

Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
ndroid.mk
itTube.cpp
ufferItemConsumer.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
raphicBufferAlloc.cpp
ConsumerListener.cpp
DisplayEventConnection.cpp
GraphicBufferAlloc.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
ProducerListener.cpp
SensorEventConnection.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
ensor.cpp
ensorEventQueue.cpp
ensorManager.cpp
treamSplitter.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
yncFeatures.cpp
753011461964c5a610c12d4dfc9ab85ab20b6977 05-Dec-2014 Dan Albert <danalbert@google.com> am 5588d900: Merge "Enable clang for libui/libgui/surfaceflinger"

* commit '5588d9000cd1ef217185c9001d6b5ecd84db9741':
Enable clang for libui/libgui/surfaceflinger
01049c8321aab30cd431e2febeddd79242ae5a4f 11-Nov-2014 Dan Stoza <stoza@google.com> Enable clang for libui/libgui/surfaceflinger

Enables clang and C++11 for libui/libgui/surfaceflinger, and
eliminates all compile-time warnings.

Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f
(cherry picked from commit f10c46ef855b6410b20ebd8b1351d4d78d8eca8e)
ndroid.mk
ensorEventQueue.cpp
urfaceComposerClient.cpp
e12cfc23b2399ded0cc4608e47c5ba864fc5ab7d 17-Nov-2014 Marco Nelissen <marcone@google.com> am 55f71bc0: Merge "Replace IInterface::asBinder() with a static"

* commit '55f71bc0800b9ec7a779c5d30d5a90e074c2526b':
Replace IInterface::asBinder() with a static
097ca275f4717a2c47a5d49f302ed2b72c8a1370 14-Nov-2014 Marco Nelissen <marcone@google.com> Replace IInterface::asBinder() with a static

so we can do NULL checks again, and update calls to IInterface::asBinder()
to use the new static version.

Change-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a
ufferQueueProducer.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
ensorManager.cpp
treamSplitter.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
ests/BufferQueue_test.cpp
2ea926bda2fa30f3ba8d0ed2d2395a8ada952e6e 14-Nov-2014 Marco Nelissen <marcone@google.com> Replace IInterface::asBinder() with a static

so we can do NULL checks again, and update calls to IInterface::asBinder()
to use the new static version.

Change-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a
ufferQueueProducer.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
SensorServer.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
ensorManager.cpp
treamSplitter.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
ests/BufferQueue_test.cpp
f10c46ef855b6410b20ebd8b1351d4d78d8eca8e 11-Nov-2014 Dan Stoza <stoza@google.com> Enable clang for libui/libgui/surfaceflinger

Enables clang and C++11 for libui/libgui/surfaceflinger, and
eliminates all compile-time warnings.

Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f
ndroid.mk
ensorEventQueue.cpp
urfaceComposerClient.cpp
8e624d4cad45532c09879356f3adaa3b65fdcfc9 07-Nov-2014 Dan Stoza <stoza@google.com> am 98d20f82: Merge "Add a BufferItem parameter to onFrameAvailable" into lmp-mr1-dev

* commit '98d20f82ca8979b30c81df9639f54ab11e1951f9':
Add a BufferItem parameter to onFrameAvailable
98d20f82ca8979b30c81df9639f54ab11e1951f9 07-Nov-2014 Dan Stoza <stoza@google.com> Merge "Add a BufferItem parameter to onFrameAvailable" into lmp-mr1-dev
8dc55396fc9bc425b5e2c82e76a38080f2a655ff 04-Nov-2014 Dan Stoza <stoza@google.com> Add a BufferItem parameter to onFrameAvailable

Passes the BufferItem for the queued buffer to the onFrameAvailable
callback so the consumer can track the BufferQueue's contents. Also
adds an onFrameReplaced callback, which is necessary if the consumer
wants to do anything more than simple queue length tracking.

Bug: 18111837
Change-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0
ufferItem.cpp
ufferQueue.cpp
ufferQueueProducer.cpp
onsumerBase.cpp
ConsumerListener.cpp
treamSplitter.cpp
ests/BufferQueue_test.cpp
ests/DisconnectWaiter.h
ests/FrameWaiter.h
ests/IGraphicBufferProducer_test.cpp
ests/StreamSplitter_test.cpp
ests/SurfaceTextureGLThreadToGL.h
cad831fb15f3c35945cb250d95d31c9b43d65785 07-Nov-2014 Dan Albert <danalbert@google.com> am c6f93a43: Merge "Add missing include to fix libc++ build."

* commit 'c6f93a43d636b0ad16b75adf664c6a33d30b39dd':
Add missing include to fix libc++ build.
0d1c700214bc59d522b21e70cd05d6880f7feb9f 07-Nov-2014 Dan Albert <danalbert@google.com> Add missing include to fix libc++ build.

This was previously committed, but I guess it got lost in the merge
queue.

Bug: 15193147
Change-Id: Ic0e5d90ab403fb833d6a3bb7c55d279c56534869
ests/SRGB_test.cpp
aa4ccfd123620f8dd28c4ae65a2a5aa3b8a0f83e 04-Nov-2014 Jesse Hall <jessehall@google.com> am de288fe2: Revert "bufferqueue: workaround: allow NULL fence with queueBuffer"

* commit 'de288fe2d43adfa1b2243ae534faaf832bf50491':
Revert "bufferqueue: workaround: allow NULL fence with queueBuffer"
de288fe2d43adfa1b2243ae534faaf832bf50491 04-Nov-2014 Jesse Hall <jessehall@google.com> Revert "bufferqueue: workaround: allow NULL fence with queueBuffer"

Underlying bug has been fixed, workaround no longer needed

This reverts commit 5b0cbcf9464dbcda9d19ae978911222806ec8bdc.

Change-Id: Ic9532b407d1291a7780a12a75aaa117ae4aa9fcb
ufferQueueProducer.cpp
54430ca2a88f57c709ea2924ea0b78820ae62643 01-Nov-2014 Michael Lentine <mlentine@google.com> am 793fc0e1: Merge "Fix crash when user provides large values in the Parcel." into lmp-mr1-dev

* commit '793fc0e13d25bdecda1219999f8be2cb3c121d20':
Fix crash when user provides large values in the Parcel.
8afa1c4ab86d724feb7716e153b7835385534590 31-Oct-2014 Michael Lentine <mlentine@google.com> Fix crash when user provides large values in the Parcel.

Bug: 18102648
Change-Id: Ie6a24718e586a34424238363de80f9545951514f
SurfaceComposer.cpp
ayerState.cpp
f12f15502a3092a9f7f28cf45b1a00e2efbd6eac 30-Oct-2014 Jesse Hall <jessehall@google.com> am 1834f8ea: GLConsumer: correct EGL_NO_DISPLAY to EGL_NO_CONTEXT

* commit '1834f8ea975e9a882b44dc479320fe02e306e630':
GLConsumer: correct EGL_NO_DISPLAY to EGL_NO_CONTEXT
1834f8ea975e9a882b44dc479320fe02e306e630 06-Aug-2014 Jesse Hall <jessehall@google.com> GLConsumer: correct EGL_NO_DISPLAY to EGL_NO_CONTEXT

Change-Id: I4dcb57a0db9ee3c5222cd453c9213859384212b0
(cherry picked from commit 46a1f6b40e1f7677cd41cd30f729ff66c7c21517)
LConsumer.cpp
15b2ecf599414c86cb198f3ffc126b50f88b5aa0 21-Oct-2014 Michael Lentine <mlentine@google.com> am dcc959be: Merge "Adding eglInitialize and eglTerminate image creation and deletion." into lmp-mr1-dev

* commit 'dcc959beb77099d319a94e3985da2f4ea4064e7b':
Adding eglInitialize and eglTerminate image creation and deletion.
dcc959beb77099d319a94e3985da2f4ea4064e7b 21-Oct-2014 Michael Lentine <mlentine@google.com> Merge "Adding eglInitialize and eglTerminate image creation and deletion." into lmp-mr1-dev
937052fb1ce8c2c5580e53d60ac771cb8fe7b532 20-Oct-2014 Jesse Hall <jessehall@google.com> am a069e853: am 649bafb7: Merge "bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)" into lmp-dev

* commit 'a069e8532ba272ac5b935e332e426a3dacf827fc':
bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)
a069e8532ba272ac5b935e332e426a3dacf827fc 20-Oct-2014 Jesse Hall <jessehall@google.com> am 649bafb7: Merge "bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)" into lmp-dev

* commit '649bafb7ba2c3204295bc3451ff7af7e28e714ed':
bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)
f35a5ba664f53813c2fb7c903e5f4809ad029569 20-Oct-2014 Jesse Hall <jessehall@google.com> am 649bafb7: Merge "bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)" into lmp-dev

* commit '649bafb7ba2c3204295bc3451ff7af7e28e714ed':
bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)
5b0cbcf9464dbcda9d19ae978911222806ec8bdc 19-Oct-2014 Jesse Hall <jessehall@google.com> bufferqueue: workaround: allow NULL fence with queueBuffer (DO NOT MERGE)

On one device there is a bug, not yet root-caused, that causes fence
fds to not make it across binder from producer to consumer in the
IGraphicBufferProducer::queueBuffer call. Rather than returning an
error, which the producer typically treats as a fatal error, this
change allows the buffer to be queued with no fence. This avoids an
application crash at the risk of (likely single-frame) visible
corruption.

Bug: 17946343
Change-Id: I9ca89f94098c455e1e90f5f58d5336c936b04a9c
ufferQueueProducer.cpp
27b780b517eb18582f978da64febb31ecfa8e4bf 16-Oct-2014 Dan Albert <danalbert@google.com> am 9cc84950: Merge "Don\'t check if this == NULL."

* commit '9cc849500df0bba42d3ed19b90c38ff1dffd2262':
Don't check if this == NULL.
759115cd6d6e4f7909342e25f1002a9d74ceee5e 16-Oct-2014 Dan Albert <danalbert@google.com> am 9cc84950: Merge "Don\'t check if this == NULL."

* commit '9cc849500df0bba42d3ed19b90c38ff1dffd2262':
Don't check if this == NULL.
9cc849500df0bba42d3ed19b90c38ff1dffd2262 16-Oct-2014 Dan Albert <danalbert@google.com> Merge "Don't check if this == NULL."
78be65e7bf6898c6afa55c9016f331ab1aa2503a 02-Oct-2014 Michael Lentine <mlentine@google.com> Adding eglInitialize and eglTerminate image creation and deletion.

Previously it was possible to have the driver's eglTerminate called beofre
eglDestroyImageKHR in GLConsumer. This was because we didn't increment the
refcount for the lifetime of the image. This could lead to a crash or a deadlock
when multiple threads called terminate and destroy simultaneously.

Bug: 17700483
Change-Id: I7010d0f1b3db875332e95630b5e098a5564ba755
LConsumer.cpp
20fca75fbd9141ebae6c9a28f5c09a837eb9caad 08-Oct-2014 Jesse Hall <jessehall@google.com> am b7702c5c: Merge "BufferQueueProducer: Throttle EGL frame production." into lmp-mr1-dev

* commit 'b7702c5ce7f010fa5f19646fd79f28ff04e7014b':
BufferQueueProducer: Throttle EGL frame production.
b7702c5ce7f010fa5f19646fd79f28ff04e7014b 08-Oct-2014 Jesse Hall <jessehall@google.com> Merge "BufferQueueProducer: Throttle EGL frame production." into lmp-mr1-dev
ae29ee0a9eea291316248a90799ff28f35defeb6 04-Oct-2014 Aravind Akella <aakella@google.com> am 93176114: am a7eb4b74: Merge "Fix sockfd leakage in SensorService." into lmp-dev

* commit '93176114cf34c9874c2db70fd7665e9f95dda9d0':
Fix sockfd leakage in SensorService.
99a0afbaee9eddabc2b544e3a5c432901c1d498c 30-Sep-2014 Eric Penner <epenner@google.com> BufferQueueProducer: Throttle EGL frame production.

Throttling was previously controlled by a combination of the
driver and the number of buffers in the queue. This patch makes
a more consistent trade-off, which allows two GPU frames pending
but not three. More buffering could improve throughput in the
case of varying frame times, but this also increases latency.

Bug: 17502897
Change-Id: I4ee68019ca94c635294c5959931a555a6c4ef2df
ufferQueueProducer.cpp
021543fc657a7f21d1b143c68258282b35262906 03-Oct-2014 Aravind Akella <aakella@google.com> am a7eb4b74: Merge "Fix sockfd leakage in SensorService." into lmp-dev

* commit 'a7eb4b74f74423dafd88adf94a7984ae927c3a23':
Fix sockfd leakage in SensorService.
a7eb4b74f74423dafd88adf94a7984ae927c3a23 03-Oct-2014 Aravind Akella <aakella@google.com> Merge "Fix sockfd leakage in SensorService." into lmp-dev
8a96955c8e14db40b16164236830fc9506a00872 29-Sep-2014 Aravind Akella <aakella@google.com> Fix sockfd leakage in SensorService.

i) Call removeFd() only if the fd in the BitTube has been
previously added to the Looper. Use a flag to determine whether the fd
has been previously added or not.
ii) Increment mPendingFlushEventsToSend after holding a connectionLock.
iii) Store the number of acks that are pending in SensorEventQueue
and send them all at once.

Bug: 17472228
Change-Id: I1ec834fea1112a9cfbd9cddd2198438793698502
ensorEventQueue.cpp
8619132f167afab3775315acdf6e7097fff41a91 03-Oct-2014 Jesse Hall <jessehall@google.com> am 74efd6e6: am f05ef4e5: Merge "Surface: cancel the dequeued buffer when requestBuffer fails" into lmp-dev

* commit '74efd6e6bec8a49f66090a5c0c18b65ba8a6fcad':
Surface: cancel the dequeued buffer when requestBuffer fails
0c2da9719bde37305c5724e54f97a8f61c7e8d0b 03-Oct-2014 Jesse Hall <jessehall@google.com> am f05ef4e5: Merge "Surface: cancel the dequeued buffer when requestBuffer fails" into lmp-dev

* commit 'f05ef4e542c3041379025e16497ff23710de5dbf':
Surface: cancel the dequeued buffer when requestBuffer fails
9f5a1b6abd5d77923bf5e0f1c5e2816fdee832c2 02-Oct-2014 Jesse Hall <jessehall@google.com> Surface: cancel the dequeued buffer when requestBuffer fails

Partial fix for bug: 17477219
Change-Id: Ibf5a9e26e02c4be8854925a77a70f5c9c7dcf6f2
urface.cpp
56b3f887a2a859eaac9f3c3eb2fa18eb5bf396da 23-Sep-2014 Dan Albert <danalbert@google.com> am 6ee97e74: Merge "Fix a null dereference."

* commit '6ee97e74d2c972dec2aa6a2f231b718eae54898f':
Fix a null dereference.
265f0d9dffb8b3d91c83991067abcd9684f2d712 23-Sep-2014 Dan Albert <danalbert@google.com> am 6ee97e74: Merge "Fix a null dereference."

* commit '6ee97e74d2c972dec2aa6a2f231b718eae54898f':
Fix a null dereference.
c78a0c17337bcd9dcaa38d61db992ced35eaf1f2 23-Sep-2014 Dan Albert <danalbert@google.com> Fix a null dereference.

Change-Id: I7224c3368ff414620062bc08b80a6a94d55d7931
SurfaceComposerClient.cpp
147372fdf9fae688114121228247497d43514ab7 19-Sep-2014 Lajos Molnar <lajos@google.com> resolved conflicts for merge of 67d8bd66 to lmp-mr1-dev-plus-aosp

Change-Id: I5e7e6fdf0d2afe6c3e4a0ed6ef96afb4713a72bc
435d9cde2777950c1d93b0982839d6796c5688b2 19-Sep-2014 Lajos Molnar <lajos@google.com> resolved conflicts for merge of 67d8bd66 to lmp-dev-plus-aosp

Change-Id: I2e9aab90ac53bb32630598f50cc26f6e46acf6d6
67d8bd66aaf04805cb8f2616ba964141b865e3b9 11-Sep-2014 Lajos Molnar <lajos@google.com> 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
SurfaceComposer.cpp
1474f8864faafebc92ff79959bb5c698bd29b704 09-Sep-2014 Dan Albert <danalbert@google.com> Don't check if this == NULL.

Entering a method with this == NULL is undefined behavior. Clang whines
about this.

Change-Id: Ibde628395ca10dfef0d2f59e81280576f104b83c
ayerState.cpp
4355c0c98644c37f0511257403bbfb71b342e2df 12-Sep-2014 Dan Albert <danalbert@google.com> am e1e3d278: Merge "Clean cruft out of makefiles."

* commit 'e1e3d278549eb6389eb0b5fa3f13a4ac079a55a2':
Clean cruft out of makefiles.
3d0daa57f5f180418fdecbf06f6a5a41e566f6d9 12-Sep-2014 Aravind Akella <aakella@google.com> am 8493b79e: SensorService fixes

* commit '8493b79e1cff92450076ca7450c4bf4e434a6816':
SensorService fixes
b79dfe672138805b4f70183fd738d9af58591148 12-Sep-2014 Dan Albert <danalbert@google.com> Clean cruft out of makefiles.

Cleans up manual uses of stlport and bionic (and removes uses of private
bionic headers).

Change-Id: I157309d702e59152adfa3450939082248ae4c043
ests/Android.mk
8493b79e1cff92450076ca7450c4bf4e434a6816 09-Sep-2014 Aravind Akella <aakella@google.com> 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
ensor.cpp
75ec33e0e609e3ef074f4230c2227e52bf82ad06 09-Sep-2014 Riley Andrews <riandrews@google.com> am d15ef27f: Update ScreenshotClient to take advantage of rotation in surfaceflinger\'s screencap api

* commit 'd15ef27f9b13727fa7358e3c09572f66bb1e0668':
Update ScreenshotClient to take advantage of rotation in surfaceflinger's screencap api
129dc8423da319d42af6ef71046c39ba59c0d878 09-Sep-2014 Riley Andrews <riandrews@google.com> am edb86f9f: Merge "Add rotation to surfaceflingers screen cap." into lmp-dev

* commit 'edb86f9f681e082a64a670814ee4d73ccf39942a':
Add rotation to surfaceflingers screen cap.
d15ef27f9b13727fa7358e3c09572f66bb1e0668 05-Sep-2014 Riley Andrews <riandrews@google.com> Update ScreenshotClient to take advantage of rotation in surfaceflinger's screencap api

Change-Id: I836649d9d5cd5958ce34e47f26f4a36d2d05d24c
urfaceComposerClient.cpp
5273a978337cbee2c1aae2f4d5c1b0e9d8dd6e1c 09-Sep-2014 Dan Albert <danalbert@google.com> resolved conflicts for merge of 86aeb9ef to lmp-dev-plus-aosp

Change-Id: I82fe2b385156d9bdb9e7183e308d7b2a4167b6ce
c3ebe66b49cfba035e1fd0e160a13db38eb81b0e 05-Sep-2014 Riley Andrews <riandrews@google.com> 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
SurfaceComposer.cpp
8b49125f10e3fd991c631e12856ce1ebf5a56d7e 09-Sep-2014 Dan Albert <danalbert@google.com> Make string literal concatenation play nice with C++11.

In C++11 mode, "foo"MACRO_THAT_EXPANDS_TO_STRING gets lexed as a user
defined literal. Add space around the macro.

Change-Id: I2741f5be9c0b1562e0f413d1309ef9d687e89b41
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
2d14a0ed4f5861bfa67e9db138ffdc70d2d5e6e4 26-Aug-2014 Eric Penner <epenner@google.com> GLConsumer: Fix eglTerminate/eglInit edge case.

If a display is terminated and then initialized, we can't detect
this using the display itself (it has the same value), but all
EglImages still become invalid for the display. This patch detects
this during image binding and forces creation of a new EglImage.

Bug: 10430249
Change-Id: I75101c50962f21263dca3ec6e241a2e5a3c23dad
LConsumer.cpp
ests/SurfaceTextureMultiContextGL_test.cpp
d53e052322c658ce7c67b046caaeee4babc0a657 19-Aug-2014 Riley Andrews <riandrews@google.com> Within CpuConsumer, use gralloc lockAsync/unlockAsync

Change-Id: I6b2cd195e111c3c7bf94c8052af4db92e09649a5
puConsumer.cpp
7d1cd4aae2aa42172abdff00ec1601248cf92b02 09-Aug-2014 Rachad <rachad@google.com> Merge "Tunneled Video Playback support" into lmp-dev
45e2fc22261cb8ecac4901b4425bcb7352c71174 08-Aug-2014 Michael Lentine <mlentine@google.com> Revert "Modify EGL to disconnect the window when the surface gets destroyed."

This reverts commit 843cbb241da60ada234918a30cfe9a01a1e04187.
ufferQueueProducer.cpp
b37ba399c1521c3eba40e126f65d9663532de446 05-Aug-2014 Aravind Akella <aakella@google.com> Sensor related changes for NDK.

i) ASensorManager_getDefaultSensor returns a wake-up/non wake-up sensor
depending on the type.
ii) Add ASensor_isWakeUpSensor and ASensorManager_getDefaultSensorEx
methods.
Bug : 16399898
Change-Id: I1a86fb8d9de23039fdf41679d1487e1cd761a9d0
ensorManager.cpp
7cb0d39016ff8061fe9fc2967870c145a6ffa2ac 30-Jul-2014 Rachad <rachad@google.com> Tunneled Video Playback support

Added native_window_set_sideband_stream() method to Surface.[h|cpp]
Added ConfigureVideoTunnelModeParams OMX configuration structure to
HardwareAPI.h

Bug: 16132368
Change-Id: I28fa1b9dbe858d93e353e0991098cad45c626bd9
urface.cpp
64ffcb0944db2cc523374f550fe1535dfe3eedd6 29-Jul-2014 Aravind Akella <aakella@google.com> Sensor.cpp changes.

1) Rename TILT_DETECTOR
2) Set mFlags correctly for wake-up sensors.
2) Log errors for incorrect sensor flags.

Change-Id: Ia449217d3b8a53353ad6b5c33c544ce37eb1de4f
ensor.cpp
47e45405d1533aa73307014f7bf371e118695cf3 19-Jul-2014 Michael Lentine <mlentine@google.com> 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
ayerState.cpp
1f6078aef71b1d3f080cd565adbec350c71088dd 27-Jun-2014 Michael Wright <michaelwr@google.com> Have VirtualDisplays send SF resize messages when resizing

Change-Id: I76d15b22099a659450ec875836c9bf2b6584838f
urfaceComposerClient.cpp
cd36eb445bcc55c88e157584d9ac229280459463 30-Jul-2014 Michael Lentine <mlentine@google.com> Merge "Modify EGL to disconnect the window when the surface gets destroyed." into lmp-dev
843cbb241da60ada234918a30cfe9a01a1e04187 23-Jul-2014 Michael Lentine <mlentine@google.com> Modify EGL to disconnect the window when the surface gets destroyed.

Bug: 14445579

Change-Id: I1d263ff6cffcb6e448761fca7ca4b06466ad65aa
ufferQueueProducer.cpp
fd8498c41e8904e3636e47cf81466d439aed46a8 29-Jul-2014 Aravind Akella <aakella@google.com> Remove WAKE_UP_* sensor constants.

Change-Id: I3de9d114ce82de4ed841932747d72e1f6f73c24f
ensor.cpp
11f14871db607718090ae6aa2e5dee3f490b8830 26-Jul-2014 Antoine Labour <piman@google.com> BufferQueueProducer: fix which slot gets pre-allocated

Commit 78014f32da6d0ebf52fb34ebb7663863000520a0 introduced a bug that
made us pre-allocate buffers into the last available free slots instead
of the first available ones. This in turn caused more re-allocations,
and possibly triggered driver bugs.

Change-Id: Ic4a70e676b4f2bbb054bc873be62ced26e3099a0
ufferQueueProducer.cpp
c268068c55afaaa441fda903b1b84a5b5c8a0a01 25-Jul-2014 Aravind Akella <aakella@google.com> Merge "SensorService performance improvements." into lmp-dev
56ae42613c91f6a6fb0dc3f626daa24666fd18c2 11-Jul-2014 Aravind Akella <aakella@google.com> 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
itTube.cpp
SensorEventConnection.cpp
ensorEventQueue.cpp
2295687487a0f2cc3e77915d5b0fe794d3af4d20 24-Jul-2014 Eric Penner <epenner@google.com> Merge "GLProducer: Reference count images rather than buffers." into lmp-dev
78014f32da6d0ebf52fb34ebb7663863000520a0 16-Jul-2014 Antoine Labour <piman@google.com> BufferQueue: release mutex while allocating. DO NOT MERGE

BufferQueueProducer::allocateBuffers used to keep the BufferQueueCore
mutex while doing the buffer allocation, which would cause the consumer
(which also needs the mutex) to block if the allocation takes a long
time.
Instead, release the mutex while doing the allocation, and grab it again
before filling the slots. Keep a bool state and a condvar to prevent
other producers from trying to allocate the slots while the mutex is
released.

Bug: 11792166

Change-Id: I4ab1319995ef892be2beba892f1fdbf50ce0416d
(cherry picked from commit ea96044470a29133321c681080870b9d31f81a19)
ufferQueueCore.cpp
ufferQueueProducer.cpp
5c3d243fcca6d0678bcbb0461bbbe0b63f35212c 12-Jul-2014 Eric Penner <epenner@google.com> GLProducer: Reference count images rather than buffers.

In most cases, EGLImages can be created one-to-one with graphic
buffers in slots, but that was difficult due to some special
cases:
- ReleaseTexImage binds a custom 'unslotted' debug image.
- When all slots are freed, we still need to hang on to one.

These cases were handled by keeping an additional reference to
the 'current' buffer (mCurrentTextureBuf), but we would create
new images since we can't reference count them in the same way.
This patch uses the same semantics, except that it reference
counts the image (an EglImage wrapper class) rather than just
buffer. The wrapper class also detects the cases when we need
a new EGLImage, and only creates them in those rare cases.

Change-Id: I2915761dbe49d2a9bda1f59e60f857543634636b
LConsumer.cpp
31d825d7edcaac7254f310d3cf85af9fc1927c25 18-Jul-2014 Jeff Brown <jeffbrown@google.com> Add glance gesture for doze mode.

Change-Id: I038a706c3999200313ff5360c5ff1150ec081f08
ensor.cpp
1681d95989271f3a9ac0dbb93d10e4a29f2b4444 28-Jun-2014 Ruben Brunk <rubenbrunk@google.com> Add sticky transform to surfaceflinger.

Bug: 15116722

- Adds a sticky transform field that can be set from a
SurfaceFlinger client Surface. This transform is
added to any transform applied to the Surface.

Change-Id: Idaa4311dfd027b2d2b8ea5e2c6cba2da5779d753
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
dc56bf721a9f29621fd57e1d861142fa9b2d3663 30-Jun-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Add allocateBuffers method"
ab57491de3a89a2d454d3060d36adef71741a7ae 25-Jun-2014 Dan Stoza <stoza@google.com> GLConsumer: Allow creation in detached mode

Adds a constructor that doesn't require a GLES texture name and sets
up the GLConsumer in detached mode.

Bug: 15616428
Change-Id: Idc9ea2e59baa24bbd959da9fffe0fb71c0aa9818
LConsumer.cpp
e49ba8e2ed8e17156eb00c8fc8e2285df62bc018 24-Jun-2014 Dan Stoza <stoza@google.com> GLConsumer: Stop using default constructor params

Removes the dependency on default constructor parameters for
GLConsumer so that a different constructor prototype can safely be
added.

Change-Id: I0da924bbd4c141edbf305598c1be8bc575654680
ests/MultiTextureConsumer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureGL.h
29a3e90879fd96404c971e7187cd0e05927bbce0 20-Jun-2014 Dan Stoza <stoza@google.com> BufferQueue: Add allocateBuffers method

This adds an allocateBuffers method to BufferQueue, which instructs
it to allocate up to the maximum number of buffers allowed by the
current configuration. The goal is that this method can be called
ahead of render time, which will prevent dequeueBuffers from blocking
in allocation and inducing jank.

This interface is also plumbed up to the native Surface (and, in
another change, up to the Java Surface and ThreadedRenderer).

Bug: 11792166
Change-Id: I4aa96b4351ea1c95ed5db228ca3ef98303229c74
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
urface.cpp
adb65d9add2b7350b563d4583c5efbe3f0f0aca1 13-Jun-2014 Aravind Akella <aakella@google.com> Merge "Surface reportingMode for Sensors."
0e025c5af365e45e02cb75c1d46b46c7f4cd44cb 04-Jun-2014 Aravind Akella <aakella@google.com> Surface reportingMode for Sensors.

Change-Id: Iac8dd3408c90eb7d285a2e8043131fab3a7e58fa
ensor.cpp
7227b96a73aaca975df0a04613f317e6f42545ed 12-Jun-2014 Prashant Malani <pmalani@google.com> Merge "surfaceflinger: Replace blank/unblank with setPowerMode"
55fc54970b674280376bbf037153ca1a5e53bc32 11-Jun-2014 Mark Salyzyn <salyzyn@google.com> am 72676e7d: am 0e1313cd: Merge "libgui: 64-bit compile issues"

* commit '72676e7d0db89d477495245aa15f1a128b5c35bc':
libgui: 64-bit compile issues
8f515ce1c57379cafac4357bc4fdb61dd346ec5f 09-Jun-2014 Mark Salyzyn <salyzyn@google.com> libgui: 64 bit compile issues (part deux)

- nsecs_t printed with PRId64
- int64_t/uint64_t print issues
- some size_t printing issues.
- missing argument to BQ_LOGV

Change-Id: I493f2b578e801dc38c44f8c536faa45266720402
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ensor.cpp
treamSplitter.cpp
72676e7d0db89d477495245aa15f1a128b5c35bc 09-Jun-2014 Mark Salyzyn <salyzyn@google.com> am 0e1313cd: Merge "libgui: 64-bit compile issues"

* commit '0e1313cdb1d5d21e4d6123f77b4238f1c8c2d564':
libgui: 64-bit compile issues
911004506dcb6ee68efdfd6636e0ffc72e6972b8 09-Jun-2014 Mark Salyzyn <salyzyn@google.com> libgui: 64-bit compile issues

Change-Id: I29961c1567b8431518a7d032ea43385e23b7bb37
itTube.cpp
onsumerBase.cpp
2c9b11f0291210c9b9513a1a0cce6afebd361b3b 25-May-2014 Prashant Malani <pmalani@google.com> surfaceflinger: Replace blank/unblank with setPowerMode

We replace the blank/unblank calls in surfaceFlinger with a more generic
setPowerMode() routine.

Some displays support different power modes (for example, with reduced
color palettes). Depending on the use case we should be able to toggle
these modes, so as to achieve incremental power savings.

Initially, three power modes will be supported:
- HWC_POWER_MODE_OFF
- HWC_POWER_MODE_DOZE
- HWC_POWER_MODE_NORMAL

HWC_POWER_MODE_OFF will correspond to blanking the display, while
HWC_POWER_MODE_NORMAL will correspond to unblanking. HWC_POWER_MODE_DOZE
will put the display into a low power setting, if it is supported in
hardware.

If such a low power mode is not supported, it should be treated as a
call to set the mode to HWC_POWER_MODE_NORMAL.

As a consequence of adding the mPowerMode field, the mScreenAcquired is
no longer required, and thus references to it are removed and replaced
equivalent references to mPowerMode.

We also add the glue code to connect the services invocation of setting
a power mode and the HAL implementation in HWComposer.

Bug: 13472578
Change-Id: I431595ecf16d2f2c94259272db3dd42f29636204
Signed-off-by: Prashant Malani <pmalani@google.com>
SurfaceComposer.cpp
urfaceComposerClient.cpp
403ec9f15a9cf2fedea2e2e0a24421dc30625140 30-May-2014 Narayan Kamath <narayan@google.com> Fix flattening/unflattening of android::Sensor.

Write string lengths as uint32_t so that their width is
the same on 32 and 64 bit processes.

Note that this fixes another bug as a side effect; getFlattenedSize
was assuming that sizeof(uint32_t) == sizeof(size_t).

Change-Id: I7b6e3993e1f1ac45c14832ce59c59e0772855a2f
ensor.cpp
3d5c8a98c1822e5f32f0b7e82a40f14f41769878 28-May-2014 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Add sourceCrop to screenshot"
d9441e4c27bb7d0b1dfe2a8b5c1ee1714442648d 14-May-2014 Aravind Akella <aakella@google.com> Surface maxDelay and isWakeUpSensor flag in Sensor.java.

Change-Id: Idd1e9045190beeca87b086b272e8cbf0bed05bae
ensor.cpp
c18790018be5d7ea7061ccbc81f3044e74adc823 23-May-2014 Dan Stoza <stoza@google.com> SurfaceFlinger: Add sourceCrop to screenshot

Adds a sourceCrop Rect parameter to screenshot commands, which allows
clients to capture only a portion of the screen instead of the whole
screen.

Bug: 15137922
Change-Id: I629447573cd34ffb96334cde7ba02490b9ea06d8
SurfaceComposer.cpp
urfaceComposerClient.cpp
ests/Surface_test.cpp
d763fc7822e7ab1eb593d479c0354a6bcdb6f09f 13-May-2014 Aravind Akella <aakella@google.com> am 47d871b2: am d35e3af0: Set default values for FifoMaxEventCount and ReservedEventCount.

* commit '47d871b2795f714499a34ffe85b67f8577883f7b':
Set default values for FifoMaxEventCount and ReservedEventCount.
47d871b2795f714499a34ffe85b67f8577883f7b 13-May-2014 Aravind Akella <aakella@google.com> am d35e3af0: Set default values for FifoMaxEventCount and ReservedEventCount.

* commit 'd35e3af04d4b7e850a3b87b2211d1a3993f9b76f':
Set default values for FifoMaxEventCount and ReservedEventCount.
d35e3af04d4b7e850a3b87b2211d1a3993f9b76f 13-May-2014 Aravind Akella <aakella@google.com> Set default values for FifoMaxEventCount and ReservedEventCount.

Change-Id: I4f610c2912ffe1697d1ffb99c556d1c88578466e
ensor.cpp
f63cbbf0e43e68b5e0855252d2ff90faa28109b3 12-May-2014 Etienne Le Grand <etn@google.com> Merge "Add wake gesture in Sensor.cpp"
f974bffb36a97d21432a504a741330c4f4245746 12-May-2014 Greg Hackmann <ghackmann@google.com> am 38c9e132: am c1ffd351: am bd20e551: Merge "Use asynchronous lock/unlock API"

* commit '38c9e1327a5b24267c3dab5293bc9d7ada6e9fc9':
Use asynchronous lock/unlock API
38c9e1327a5b24267c3dab5293bc9d7ada6e9fc9 12-May-2014 Greg Hackmann <ghackmann@google.com> am c1ffd351: am bd20e551: Merge "Use asynchronous lock/unlock API"

* commit 'c1ffd351bc44483369271c11dd4c6391bba8c64c':
Use asynchronous lock/unlock API
8f3960179c56767e5077be8337792bd4e244b7d7 01-Apr-2014 Francis Hart <fhart@nvidia.com> Use asynchronous lock/unlock API

The gralloc API now provides a way for using lock/unlock with the Android
explicit synchronisation concept. This changes updates the GraphicBuffer class
to also expose this functionality, and updates the Surface class to make use of
in line with the dequeueBuffer/queueBuffer mechanism.

This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local
gralloc module does not support this then the existing synchronous lock/unlock
mechanism will be used.

Change-Id: I8c3fd9592e0c5400ac9be84450f55a77cc0bbdc5
urface.cpp
2f3dca149a2bcae96f18e38f7ba99a95c3e1b08c 10-May-2014 Greg Hackmann <ghackmann@google.com> am 9493d492: am 9eb142e3: am a9d49f99: Merge "Revert "Use asynchronous lock/unlock API""

* commit '9493d4924a59f14b698389386337a9c07a7ea3c4':
Revert "Use asynchronous lock/unlock API"
02528cf6aaedbbfec55be57d33389e1c57d88245 09-May-2014 Greg Hackmann <ghackmann@google.com> am 4b46776f: am 8a6cd189: am f60564a1: Merge "Use asynchronous lock/unlock API"

* commit '4b46776ff88c5a365700b88e8b2b04e1b2c77e6e':
Use asynchronous lock/unlock API
9493d4924a59f14b698389386337a9c07a7ea3c4 09-May-2014 Greg Hackmann <ghackmann@google.com> am 9eb142e3: am a9d49f99: Merge "Revert "Use asynchronous lock/unlock API""

* commit '9eb142e34a5bc11508c0bd6f60ad3933c60aa530':
Revert "Use asynchronous lock/unlock API"
53ec72523a4083b88eaa13e2e720976523a7ebf8 09-May-2014 Greg Hackmann <ghackmann@google.com> Revert "Use asynchronous lock/unlock API"

This reverts commit 378ef07760eda717367d9429428c42d54d54d9a7.

Change-Id: I1de5ab973b5383633e75924fe90ac3ca8216c36a
urface.cpp
4b46776ff88c5a365700b88e8b2b04e1b2c77e6e 09-May-2014 Greg Hackmann <ghackmann@google.com> am 8a6cd189: am f60564a1: Merge "Use asynchronous lock/unlock API"

* commit '8a6cd189034ec4709a66e581b41deba56c028291':
Use asynchronous lock/unlock API
e284a90f5027aed767ff10a31640a9cd9b974838 08-May-2014 Etienne Le Grand <etn@google.com> Add wake gesture in Sensor.cpp

Change-Id: Ifb1744acffc2d57da43112fb9966261e8246d6de
ensor.cpp
7f7da32569f8e0b3d383a40b95f8ac1d55afd801 03-May-2014 Dan Stoza <stoza@google.com> Enable changing display configuration

This allows querying and switching display device configurations
through the ISurfaceComposer/SurfaceComposerClient interface.

Bug: 14320401
Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
SurfaceComposer.cpp
urfaceComposerClient.cpp
378ef07760eda717367d9429428c42d54d54d9a7 01-Apr-2014 Francis Hart <fhart@nvidia.com> Use asynchronous lock/unlock API

The gralloc API now provides a way for using lock/unlock with the Android
explicit synchronisation concept. This changes updates the GraphicBuffer class
to also expose this functionality, and updates the Surface class to make use of
in line with the dequeueBuffer/queueBuffer mechanism.

This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local
gralloc module does not support this then the existing synchronous lock/unlock
mechanism will be used.

Change-Id: I77daa1beb197b63b1c2f281b8414ac4ae4b5b03c
urface.cpp
943de2f71beff9566cc58ce5820495fd9776e1e3 24-Apr-2014 Aravind Akella <aakella@google.com> Merge "Enable wakeup sensors."
9a844cf78f09953145200b4074d47589257a408c 12-Feb-2014 Aravind Akella <aakella@google.com> Enable wakeup sensors.

SensorService should hold a wakelock till the app reads events from a wakeup sensor. Currently drivers hold a wakelock with a
timeout while delivering events from a wake up sensor like Significant Motion. This hack can be removed now.

Bug: 9774884
Change-Id: If3b5acb99c9cf0cd29012fcfa9d6b04c74133d01
SensorEventConnection.cpp
ensor.cpp
ensorEventQueue.cpp
e0d5862ad85f7bf4feb1eee9444bf3a5b49c5842 22-Apr-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Finally remove the BufferQueue constructor itself. From now on, all
BufferQueues must be created through the createBufferQueue method.

Bug: 13415624
Change-Id: I192bf9430265bab761dcd59db1f02c9d0ac4feed
ufferQueue.cpp
4cbf3c53447215a31f69d3ac615ba0daa902f717 21-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Guard against unbounded queue growth"
fb39827ebce4637dcba03770f6644cf67e932e06 21-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Increase max slots from 32 to 64"
ae3c3682333f25e860fe54e2bae3599bb466cdb6 19-Apr-2014 Dan Stoza <stoza@google.com> BufferQueue: Guard against unbounded queue growth

Adds logic to dequeueBuffer that blocks if there are currently too
many buffers in the queue. This prevents unbounded growth around
times where the slots are cleared but the queue is not (e.g.,
during rapid connect/disconnect or setBufferCount activity). This
replaces the fix from ag/377958 in a more general way.

Bug: 11293214
Change-Id: Ieb7adfcd076ff7ffe3d4d369397b2c29cf5099c3
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
017a53851628e967e5e103a467acb602010dffdc 18-Apr-2014 Dan Stoza <stoza@google.com> Merge "libgui: Remove unnecessary casts in SurfaceControl"
febd4f4f462444bfcb3f0618d07ac77e3fc1f6ad 10-Apr-2014 Dan Stoza <stoza@google.com> BufferQueue: Increase max slots from 32 to 64

Increases NUM_BUFFER_SLOTS from 32 to 64 and changes the mask
returned by IGBC::getReleasedBuffers from 32 to 64 bits.

Bug: 13174352
Change-Id: Ie8ef0853916cfb91f83881c7241886bb1950f01a
ufferQueue.cpp
ufferQueueConsumer.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
99b18b447dec188bcec37b415603b9dd400fc7e1 28-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Add StreamSplitter

Adds a StreamSplitter class, that takes one IGraphicBufferConsumer
interface and multiple IGraphicBufferProducer interfaces and
implements a one-to-many broadcast of GraphicBuffers (while managing
fences correctly).

Change-Id: I38ecdf3e311ac521bc781c30dde0cc382a4376a3
ndroid.mk
ufferQueueConsumer.cpp
ufferQueueCore.cpp
GraphicBufferConsumer.cpp
treamSplitter.cpp
ests/Android.mk
ests/BufferQueue_test.cpp
ests/StreamSplitter_test.cpp
d9822a3843017444364899afc3c23fb5be6b9cb9 28-Mar-2014 Dan Stoza <stoza@google.com> BufferQueueProducer: add detachNextBuffer

Adds a new method, IGBP::detachNextBuffer, that effectively does
dequeue + request + detach in a single call, but does not need to
know anything about the dequeued buffer, and will not block on
dequeue. This is mostly for the upcoming StreamSplitter to use in
its onBufferReleased callback.

Change-Id: Ie88a69de109003acebaa486a5b44c8a455726550
ufferQueue.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
7f605bd4c09e2b086e69751491e25e98f4a0eb98 14-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Hook up IProducerListener"
93b84e39e6cbb9f2ba37125465c4040e03b56048 11-Apr-2014 Aravind Akella <aakella@google.com> am ef89f763: am cf818ebb: Merge "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors" into klp-modular-dev

* commit 'ef89f7638c43ce5f73e32d487bf65c3375995e3b':
Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
ef89f7638c43ce5f73e32d487bf65c3375995e3b 11-Apr-2014 Aravind Akella <aakella@google.com> am cf818ebb: Merge "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors" into klp-modular-dev

* commit 'cf818ebbf07c6a20ef48d71bf82f8d4bdf3a398c':
Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
cf818ebbf07c6a20ef48d71bf82f8d4bdf3a398c 11-Apr-2014 Aravind Akella <aakella@google.com> Merge "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors" into klp-modular-dev
fd34b65f717b84fa06d8c37f41b070f41d0ad3a3 11-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Add producer buffer-released callback"
700180487ffec09d9df1657b018a7caadac24b75 08-Apr-2014 Aravind Akella <aakella@google.com> Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors

This reverts commit 4369a4ebd5ae7567e7075bc82830b83178099ed5.

Change-Id: Ifa8619cc6873470a07a987763d818d78d4232610
ensor.cpp
3b3ba78c3c586c2b09b11e0f1ab5347ff51a21e0 10-Apr-2014 Dan Stoza <stoza@google.com> libgui: Remove unnecessary casts in SurfaceControl

There are a number of places where we create a local
sp<SurfaceComposerClient>& to something that is already an
sp<SurfaceComposerClient>, which is redundant. This fixes that
by removing the local references.

Bug: 13814149
Change-Id: Ic558cbda651c344e5cac97022c97563928eed29c
urfaceControl.cpp
cf8684b2063c0458da634be0fae7ccabf3f50176 10-Apr-2014 Svetoslav <svetoslavganov@google.com> Merge "Adding render stats APIs to UiAutomation (framework native)."
d85084b2b65828442eafaff9b811e9b6c9ca9fad 20-Mar-2014 Svetoslav <svetoslavganov@google.com> Adding render stats APIs to UiAutomation (framework native).

bug:12927198

Change-Id: Ibb1c07f7d89e11281e5c1f27f412a29ac6f9c4ab
SurfaceComposer.cpp
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
4cd47b2e0eac8eb1c4a9d69e716e6dc0e2da7227 10-Apr-2014 Wonsik Kim <wonsik@google.com> Merge "Fix sideband stream issues"
fb9bf8725d682568fb509e2dac0587fa4e493572 08-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Remove Bn version of create*"
b3d0bdf0dbc19f0a0d7d924693025371e24828fd 08-Apr-2014 Dan Stoza <stoza@google.com> BufferQueue: Remove Bn version of create*

It turns out that there's no reason to have both I* and Bn* versions
of the createBufferQueue method, so I removed the Bn* version.

Change-Id: I66aeb09e10458ae540ddf1f38d2d0154ea8f315b
ufferQueue.cpp
ests/BufferQueue_test.cpp
5603a2fbbd1aae74c4635e2f600819fb05d112e0 07-Apr-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Bug: 13415624
Change-Id: I153b5470b21832cebe3c617d28a4ab9c9bf3b362
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
ests/MultiTextureConsumer_test.cpp
ests/SRGB_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTextureGL.h
ests/SurfaceTextureGL_test.cpp
ests/Surface_test.cpp
fc9aeb859096cc02ec9241fad589d361cf9c3ddd 07-Apr-2014 Andy McFadden <fadden@android.com> am 4215f434: am 6dbcebd0: Merge "Always release a buffer" into klp-modular-dev

* commit '4215f434187d518bf8c9807c9a18a7e0b617f7d2':
Always release a buffer
4215f434187d518bf8c9807c9a18a7e0b617f7d2 07-Apr-2014 Andy McFadden <fadden@android.com> am 6dbcebd0: Merge "Always release a buffer" into klp-modular-dev

* commit '6dbcebd0430e026fd5d99ba4b4f005bfaa9b8e2b':
Always release a buffer
afe3081e0e224a3d88da2e8f211e994f833cc6bb 31-Mar-2014 Wonsik Kim <wonsik@google.com> Fix sideband stream issues

- Notify a listener when sideband stream is set
- Mark a layer as visible when sideband stream is set, even though
no buffer is queued.

Change-Id: I9652bf530f2b5ce331533ec1bb3b10a815ca191c
ufferQueueProducer.cpp
75b332037f6197acb239bfbbf2ac09adb31e9971 05-Apr-2014 Etienne Le Grand <etn@google.com> am 4369a4eb: Revert "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors"

* commit '4369a4ebd5ae7567e7075bc82830b83178099ed5':
Revert "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors"
30d6fd6b28aeacfe06ddc7adaac34e8a0032df40 05-Apr-2014 Etienne Le Grand <etn@google.com> Revert "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors"

This reverts commit c57a019e117117c5a76c772970b26cd0f5db8c6a.

Change-Id: I3540565bc3e56a32cf3b176a29216cf68bb763b2
(cherry picked from commit 4369a4ebd5ae7567e7075bc82830b83178099ed5)
ensor.cpp
4369a4ebd5ae7567e7075bc82830b83178099ed5 05-Apr-2014 Etienne Le Grand <etn@google.com> Revert "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors"

This reverts commit c57a019e117117c5a76c772970b26cd0f5db8c6a.

Change-Id: I3540565bc3e56a32cf3b176a29216cf68bb763b2
ensor.cpp
33458f72e17be8e71f50e1f8843f7821d90934f5 05-Apr-2014 Etienne Le Grand <etn@google.com> am 00f4dde1: am c57a019e: Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors

* commit '00f4dde1aa88576811bca79bc8242e1fc1edb333':
Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
00f4dde1aa88576811bca79bc8242e1fc1edb333 05-Apr-2014 Etienne Le Grand <etn@google.com> am c57a019e: Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors

* commit 'c57a019e117117c5a76c772970b26cd0f5db8c6a':
Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
c57a019e117117c5a76c772970b26cd0f5db8c6a 25-Mar-2014 Etienne Le Grand <etn@google.com> Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors

Change-Id: If0f3dbdb5d2e9378e1fed4614baee4e750d0c850
ensor.cpp
87a678478005026d950bedec49ee80b693777b95 05-Apr-2014 Andy McFadden <fadden@android.com> Always release a buffer

In GLConsumer's updateAndReleaseLocked(), we must release either
the previously-acquired buffer or the newly-acquired buffer.

Bug 13755224

Change-Id: I96adc255400ed008ba6e6ac1725ab3514c7cc8ba
LConsumer.cpp
cece164b23dbb368de1be2112827dd2df0ab2b5c 04-Apr-2014 Mark Salyzyn <salyzyn@google.com> native gui: 64-bit compile issues

Change-Id: I45f605ff3759fb7ae9f0a6425d557d195f93281e
ufferQueueCore.cpp
9cfa49c95445b968da3170b4fdb0b942af69569e 02-Apr-2014 Wonsik Kim <wonsik@google.com> Merge "Declare ownership of native_handle_t object"
d1c103655533321b5c74fbefff656838a8196153 28-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Hook up IProducerListener

Actually call the producer listener's callback during
IGraphicBufferConsumer::releaseBuffer

Change-Id: Idfa6bb08d62629cd3a198318e6c6fd6a731e73ef
ufferQueueConsumer.cpp
f0eaf25e9247edf4d124bedaeb863f7abdf35a3e 21-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Add producer buffer-released callback

Add a callback to the producer side, onBufferReleased, which will be
called every time the consumer releases a buffer back to the
BufferQueue. This will enable a buffer stream splitter to work
autonomously without having to block on dequeueBuffer.

The binder object used for the callback replaces the generic IBinder
token that was passed into IGraphicBufferProducer::connect to detect
the death of the producer. If a producer does not wish to listen for
buffer release events, it can pass in an instance of the
DummyProducerListener class defined in IProducerListener.h, if it even
cares about death events (BufferQueue doesn't enforce the token being
non-NULL, though perhaps we should).

Change-Id: I23935760673524abeafea2b58dccc3583b368710
ndroid.mk
ufferQueue.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
GraphicBufferProducer.cpp
ProducerListener.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
2443c7903c6910b57bcc615a4bf2e60068c15dbd 24-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Set attached buffers as requested

When a buffer is attached to the producer side, it needs to be marked
as having been requested so that it can be queued successfully.

Change-Id: I90a88b332c415a57921bd094ae635afdf65bff99
ufferQueueProducer.cpp
0ec54e156bed93d59900b742c8e9adcfaee90612 21-Mar-2014 Wonsik Kim <wonsik@google.com> Declare ownership of native_handle_t object

Change-Id: I4e21ff8ea76cfafce943dc059c8f72b42397980e
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
1a0b8617909c94f6c7301b651cb7b07463529c8c 20-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Test remote producer and consumer

Adds a test that puts the BufferQueue into its own process and
connects to it over remote binder interfaces. This exposed the fact
that while IGBC was technically binderized, it didn't actually work
when flattened, so this change also fixes that.

Change-Id: I728cdb662a4273ddd3440ed6040a12560313fe68
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
8ce5c1cc8d3275c78553227fd9eca3302b6fac1d 19-Mar-2014 Wonsik Kim <wonsik@google.com> Merge "Fill in sideband stream caveat"
75555b2eaf0a2b8eff30df422e041cbe80ec74ef 18-Mar-2014 Dan Stoza <stoza@google.com> Merge "BufferItemConsumer: Use IGBC instead of BQ"
14226716f2a675eee6730a405db28c674a771395 18-Mar-2014 Dan Stoza <stoza@google.com> Merge "Remove deprecated BufferQueue constructor"
0ee14ca23dc2759e213172e38a840da0c36bd3ab 17-Mar-2014 Wonsik Kim <wonsik@google.com> Fill in sideband stream caveat

Change-Id: I20db8aea8f13acf31b42db08d90b338da8a5209c
urface.cpp
49bfda1fbdf828a8ea63ae2c2fa25739f6e48527 13-Mar-2014 Jesse Hall <jessehall@google.com> Fix broken build for more tests

Change-Id: I7bdd12a833233724805d01d993541ee05caa9bf6
ests/BufferQueue_test.cpp
ests/DisconnectWaiter.h
ests/IGraphicBufferProducer_test.cpp
73ed82f809a40560fd3a6d53d18e5c846362d764 13-Mar-2014 Jesse Hall <jessehall@google.com> Merge "Add sideband streams to BufferQueue and related classes"
6d5a7bb970dd5cfd5a51fe2de7f10b9fc75732b2 13-Mar-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Bug: 13415624
Change-Id: I52f58a4d22296d9fc3cdbd4ad53eb10a785db3ce
urfaceComposerClient.cpp
fe50d2a0a13116238d5321e16c06e6ed533618dc 12-Mar-2014 Dan Stoza <stoza@google.com> BufferItemConsumer: Use IGBC instead of BQ

Change-Id: Id1756ac62954ba412f2c23c5fa6e5d760c299347
ufferItemConsumer.cpp
f522af7eb6048c2efae77d7b94960bc49c003e0e 12-Mar-2014 Dan Stoza <stoza@google.com> BufferQueue: Allow returning interfaces as I*/Bn*

This adds a second createBufferQueue method that returns
sp<IGraphicBuffer*> interfaces instead of sp<BnGraphicBuffer*>, since
most clients don't actually need the Binderized versions (but some
might).

Change-Id: Iaf4f719c96ddb6f704afc75cf52be22588173e32
ufferQueue.cpp
399184a4cd728ea1421fb0bc1722274a29e38f4a 04-Mar-2014 Jesse Hall <jessehall@google.com> 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
ufferQueue.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
onsumerBase.cpp
ConsumerListener.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
9f3053de78630815d60cf48a2cf2348cc5867c45 07-Mar-2014 Dan Stoza <stoza@google.com> 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
ufferQueue.cpp
ufferQueueConsumer.cpp
ufferQueueProducer.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
ests/BufferQueue_test.cpp
c0c6a0cd4cc2121ffb61576482758aa542acf215 06-Mar-2014 Andy McFadden <fadden@android.com> Merge "FramebufferNativeWindow.h is obsolete"
2e336496c3b3b78910cf1c496e21dc4909ee32ad 06-Mar-2014 Andy McFadden <fadden@android.com> FramebufferNativeWindow.h is obsolete

This adds a deprecation #warning to the header.

Change-Id: Ia32f16e491cb01d435ec8846dda3d9a7d1a9cfc5
ests/BufferQueue_test.cpp
ests/CpuConsumer_test.cpp
ests/IGraphicBufferProducer_test.cpp
c1ef3efecbeff5bbea461d96bb5600b18d66bdb6 05-Mar-2014 Dan Stoza <stoza@google.com> Merge "Change BufferQueue into producer/consumer wrapper"
3e96f1982fda358424b0b75f394cbf7c1794a072 03-Mar-2014 Dan Stoza <stoza@google.com> Change BufferQueue into producer/consumer wrapper

Now that BufferQueue has been split into core + producer + consumer,
rewrite BufferQueue to be a thin layer over a producer and consumer
interface. Eventually, this layer will be deprecated in favor of
only using either the producer or consumer interface, as applicable.

Change-Id: I340ae5f5b633b244fb594615ff52ba50b9e2f7e4
ufferItem.cpp
ufferQueue.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
8be494eb0998cc8f7f41c504c71c54856e169806 04-Mar-2014 Igor Murashkin <iam@google.com> am 1738d4fc: am 462fb3a8: Merge "gui: Fix return code assert in CpuConsumer_test."

* commit '1738d4fca78b7678d09d5c8898e1f80fa63b4a6d':
gui: Fix return code assert in CpuConsumer_test.
1738d4fca78b7678d09d5c8898e1f80fa63b4a6d 04-Mar-2014 Igor Murashkin <iam@google.com> am 462fb3a8: Merge "gui: Fix return code assert in CpuConsumer_test."

* commit '462fb3a8d597fffef3d5534544428d5cee9d8c16':
gui: Fix return code assert in CpuConsumer_test.
462fb3a8d597fffef3d5534544428d5cee9d8c16 04-Mar-2014 Igor Murashkin <iam@google.com> Merge "gui: Fix return code assert in CpuConsumer_test."
4a07dc8d2149788be96ad783c0d63339e6747587 04-Mar-2014 Dan Stoza <stoza@google.com> Merge "Split BufferQueue into core + producer + consumer"
289ade165e60b5f71734d30e535f16eb1f4313ad 28-Feb-2014 Dan Stoza <stoza@google.com> Split BufferQueue into core + producer + consumer

Change-Id: Idc39f1e511d68ce4f02202d35425a419bc0bcd92
ndroid.mk
ufferItem.cpp
ufferQueueConsumer.cpp
ufferQueueCore.cpp
ufferQueueProducer.cpp
ufferSlot.cpp
0f1889efe77171696bfb3499832ed1732343d9fb 01-Mar-2014 Igor Murashkin <iam@google.com> gui: Surface::dequeueBuffer no locker holds mutex while blocking in binder

- This also fixes a hang in the camera service when trying to shut down
if the producer is infinitely blocked while trying to get a new buffer.

Bug: 13250382
Change-Id: I32ca82162bb8645b97dbe084e13e05ca05529a42
urface.cpp
fb83d84694e385039c3d37ed52cf44fa4ca410e4 20-Feb-2014 Dan Stoza <stoza@google.com> Merge "Fix calls to captureScreen"
8d7599633fedba38d2aba28cc95e0c66c3456694 20-Feb-2014 Dan Stoza <stoza@google.com> Fix calls to captureScreen

Change-Id: Ic0ff47afa29f143131906082dff79d4e907b7143
ests/Surface_test.cpp
44c35ec4a94eb33f7ee0df085c5d2d56d99962cf 30-Jan-2014 Andy McFadden <fadden@android.com> 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
urfaceComposerClient.cpp
c701401f8cec2e5309f8b57e2b97baced5093274 15-Feb-2014 Dan Stoza <stoza@google.com> 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
SurfaceComposer.cpp
urfaceComposerClient.cpp
d592f32df91a857a6649699281f497586e478840 30-Jan-2014 Andy McFadden <fadden@android.com> Merge "Allow "opaque" flag to be updated"
4125a4ffaf374ca9c0773f256998557d3325343e 30-Jan-2014 Andy McFadden <fadden@android.com> 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
urfaceComposerClient.cpp
b8072d84ba9bf43701fcace61414b3cef5910919 29-Jan-2014 Dan Stoza <stoza@google.com> libgui: Fix segfault in SRGB tests

Make the test exit cleanly if the output buffer is never mapped.

Bug: 12761226
Change-Id: If789f02198851a17b11ee06f612f9ba7e06da754
ests/SRGB_test.cpp
6a5d35dd5cd8710c6c9f100076e62ffbdb0b868b 08-Jan-2014 Dan Stoza <stoza@google.com> libgui: Add a test for SRGB surfaces

Add SRGBTest.RenderToSRGBSurface, which validates that passing the
SRGB colorspace attributes to eglCreateWindowSurface actually
results in an SRGB surface by comparing the output values to those
of a standard RGB surface.

Change-Id: I3d5fef8070ed8fa2357ddd1c5fcc849ae3fbd12a
ests/SRGB_test.cpp
3ed4e0b3655b4019b9ab9939f6df0cb8a102d37f 12-Dec-2013 Dan Stoza <stoza@google.com> libgui: Add a test suite for SRGB testing

This is the start of an SRGB test suite. Currently it has a test for
SRGB texture reads in GLES3.

Change-Id: I553ee2691dc92b98cae7a003084d4e2823d40d95
ests/Android.mk
ests/SRGB_test.cpp
cb1fcdedaaf95acabeac6a2d5bff423d6ca62296 03-Dec-2013 Dan Stoza <stoza@google.com> libgui: Split SurfaceTexture tests into more files

Extract the many different test fixtures and suites in SurfaceTexture_test.cpp
into separate files. No real functional changes, just tweaking headers to keep
things building (and adding a few copyright headers I forgot last time).

Change-Id: Id801bd5d617f0cc61d22508fb9b71b41694bdecf
ests/Android.mk
ests/DisconnectWaiter.h
ests/FillBuffer.cpp
ests/FillBuffer.h
ests/FrameWaiter.h
ests/GLTest.cpp
ests/GLTest.h
ests/MultiTextureConsumer_test.cpp
ests/SurfaceTextureFBO.h
ests/SurfaceTextureFBO_test.cpp
ests/SurfaceTextureGL.h
ests/SurfaceTextureGLThreadToGL.h
ests/SurfaceTextureGLThreadToGL_test.cpp
ests/SurfaceTextureGLToGL.h
ests/SurfaceTextureGLToGL_test.cpp
ests/SurfaceTextureGL_test.cpp
ests/SurfaceTextureMultiContextGL.h
ests/SurfaceTextureMultiContextGL_test.cpp
ests/SurfaceTexture_test.cpp
ests/TextureRenderer.cpp
ests/TextureRenderer.h
8f76b6bedf5c0b316d02a9f9de3d504c0344cb81 04-Dec-2013 Alistair Strachan <alistair.strachan@imgtec.com> gui: Fix return code assert in CpuConsumer_test.

The CpuConsumer error code was changed recently from INVALID_OPERATION to
NOT_ENOUGH_DATA, however the CpuConsumer_test was not updated. This change
fixes the return code checked by CpuConsumer_test so the test no longer
fails.

Change-Id: Ie548ddcb313fa34c130ac63355090cb44ac15ebf
ests/CpuConsumer_test.cpp
f3730fb8f7da368740f9e5ed2603b405aeb4be72 27-Nov-2013 Dan Stoza <stoza@google.com> libgui: Fix a couple of minor bugs, extract GLTest

Fix a couple of minor bugs in existing tests, and extract the GLTest class into
its own files.

Change-Id: I7d9570a0d3dbc9c5d7f9b13f2017607af42744b3
ests/Android.mk
ests/GLTest.cpp
ests/GLTest.h
ests/SurfaceTexture_test.cpp
7ea777f097784492f880623067becac1b276f884 19-Nov-2013 Igor Murashkin <iam@google.com> gui: Add tests for IGraphicBufferProducer

* Basic tests only. Needs more complicated queue/dequeue tests.
* Also needs consumer-side tests to really be thorough.

Change-Id: I1099dd56d65b6e9dfa15377726d6054ce657c0ca
ufferQueue.cpp
ests/Android.mk
ests/BufferQueue_test.cpp
ests/IGraphicBufferProducer_test.cpp
4be18a3566c5d902b7fe94db4cf14b174ed7beb5 18-Nov-2013 Igor Murashkin <iam@google.com> gui: Remove BufferQueue::MIN_UNDEQUEUED_BUFFERS

Change-Id: I7c0cc36046dbbdb9c0e85acfe5027293d1131275
ufferItemConsumer.cpp
7d2d160cdc3cba9f4454f38433c94b68376cb843 13-Nov-2013 Igor Murashkin <iam@google.com> gui: Update header docs for IGraphicBufferConsumer/Producer/BufferQueue

Also fix compiler warnings for libgui

Change-Id: I0ee38d9ad5eaa82d55bf812d291da8c433581cef
ufferQueue.cpp
onsumerBase.cpp
GraphicBufferConsumer.cpp
urface.cpp
0012dbc3c6015ace91275f022116e52da9adc4c6 19-Oct-2013 Andy McFadden <fadden@android.com> am 251b11c2: am 85075869: Wait for buffers to drain

* commit '251b11c2045b2ae97f2ab270a65e11b4ca49b1b6':
Wait for buffers to drain
251b11c2045b2ae97f2ab270a65e11b4ca49b1b6 19-Oct-2013 Andy McFadden <fadden@android.com> am 85075869: Wait for buffers to drain

* commit '8507586903fa803abf535853a169913f2cf2e555':
Wait for buffers to drain
8507586903fa803abf535853a169913f2cf2e555 19-Oct-2013 Andy McFadden <fadden@android.com> 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
ufferQueue.cpp
4a1e00fb3abb4e0598c3fb9a35c04349f672c5f9 11-Oct-2013 Aravind Akella <aakella@google.com> am 1f1e5768: am 5d6aa951: Merge "Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection." into klp-dev

* commit '1f1e576840d5b36a091368abb6fe6610384b6449':
Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection.
1f1e576840d5b36a091368abb6fe6610384b6449 11-Oct-2013 Aravind Akella <aakella@google.com> am 5d6aa951: Merge "Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection." into klp-dev

* commit '5d6aa95129a13aae37a60b3e4246a0592dab396d':
Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection.
701166d9f60a6e1149ff568aec0e03f3f3925292 08-Oct-2013 Aravind Akella <aakella@google.com> Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection.

Change-Id: I4ef2bec80406c517903ab9782dc9eaf3fa8b7f36
SensorEventConnection.cpp
ensorEventQueue.cpp
bd381c6164cc7b661dfc3fd7c15696f4225ac810 02-Oct-2013 Jamie Gennis <jgennis@google.com> am 6be1d210: am f0cf5f10: BufferQueue: fix a test crash

* commit '6be1d210eef392f5745d58a0033572b1af4b2f2a':
BufferQueue: fix a test crash
6be1d210eef392f5745d58a0033572b1af4b2f2a 02-Oct-2013 Jamie Gennis <jgennis@google.com> am f0cf5f10: BufferQueue: fix a test crash

* commit 'f0cf5f103cf9c54d59de4ed6f1d8ddd2302dec1b':
BufferQueue: fix a test crash
f0cf5f103cf9c54d59de4ed6f1d8ddd2302dec1b 26-Sep-2013 Jamie Gennis <jgennis@google.com> BufferQueue: fix a test crash

Bug: 10935880
Change-Id: If76e9fb055103bad0db7e6c16487532671573149
ufferQueue.cpp
4e8fd6f30d6304f3cbc729eb424566b57754c650 02-Oct-2013 Jamie Gennis <jgennis@google.com> am 886b1521: am a9c47f32: Merge "GLConsumer: start using EGL_ANDROID_image_crop" into klp-dev

* commit '886b152111cc13dcfe1b47724f5e496f12ccc420':
GLConsumer: start using EGL_ANDROID_image_crop
886b152111cc13dcfe1b47724f5e496f12ccc420 02-Oct-2013 Jamie Gennis <jgennis@google.com> am a9c47f32: Merge "GLConsumer: start using EGL_ANDROID_image_crop" into klp-dev

* commit 'a9c47f327373cbe48e187442c7f9554d24a75c08':
GLConsumer: start using EGL_ANDROID_image_crop
dbe9245e2e362b12e184cd33b9a27b0901f81244 24-Sep-2013 Jamie Gennis <jgennis@google.com> GLConsumer: start using EGL_ANDROID_image_crop

This change makes GLConsumer use the EGL_ANDROID_image_crop extension when
available on a device. The crop rectangle is passed to the EGL driver when
creating EGLImages, allowing the crop to be performed by the driver rather than
using the texture transform matrix.

Bug: 10897141
Change-Id: I63e9a5d5c85067376abc420e3639154468346311
LConsumer.cpp
3473e814a4a7efdc7e9842d0659825e741b502d0 20-Sep-2013 Eino-Ville Talvala <etalvala@google.com> am 1160e89d: am d171da97: GLConsumer: Add query for current frame number.

* commit '1160e89d31810f2ba66f8ab502281579115b39b0':
GLConsumer: Add query for current frame number.
6de9653ac876a4cae03d32c1134c56c795b1b11c 20-Sep-2013 Christopher Ferris <cferris@google.com> Merge "Remove unnecessary include."
d142f4b787abae7a5c392ded0dd2741574a0bce2 20-Sep-2013 Christopher Ferris <cferris@google.com> Remove unnecessary include.

All these files are including utils/CallStack.h, but none of the code
uses any CallStack objects.

Change-Id: I38c3a346a3bd0ddbff368d0f7f8b3f3d78fc0432
ufferQueue.cpp
urfaceControl.cpp
1160e89d31810f2ba66f8ab502281579115b39b0 19-Sep-2013 Eino-Ville Talvala <etalvala@google.com> am d171da97: GLConsumer: Add query for current frame number.

* commit 'd171da973de3c6b30263011334fdcd916739144f':
GLConsumer: Add query for current frame number.
d171da973de3c6b30263011334fdcd916739144f 19-Sep-2013 Eino-Ville Talvala <etalvala@google.com> GLConsumer: Add query for current frame number.

Surface the underlying frame number of the current texture.

Bug: 10830400
Change-Id: Ide3a7da12ea0aac54588beb6bf00dbfe2cd37653
LConsumer.cpp
0f0e845113b02d1a3a00271d3b5449bee7053dd2 19-Sep-2013 Mathias Agopian <mathias@google.com> am a7e1660b: am c1c05de4: fix camera API 2.0 orientation

* commit 'a7e1660b257326f99261e7c9b2d58c9d2e68d0b0':
fix camera API 2.0 orientation
a7e1660b257326f99261e7c9b2d58c9d2e68d0b0 19-Sep-2013 Mathias Agopian <mathias@google.com> am c1c05de4: fix camera API 2.0 orientation

* commit 'c1c05de415854eb7a13a16b7e22a22de8515123a':
fix camera API 2.0 orientation
c1c05de415854eb7a13a16b7e22a22de8515123a 18-Sep-2013 Mathias Agopian <mathias@google.com> 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
ufferQueue.cpp
GraphicBufferConsumer.cpp
2285c008fa53f086c8ccae3ac6eaf3f8a3992218 18-Sep-2013 Mathias Agopian <mathias@google.com> am e803e609: am 799f5126: Fix build (tests)

* commit 'e803e6095e007563df939326fdd3ca5109619a42':
Fix build (tests)
e803e6095e007563df939326fdd3ca5109619a42 18-Sep-2013 Mathias Agopian <mathias@google.com> am 799f5126: Fix build (tests)

* commit '799f51268006f319f6ae538dca670bfc7f522688':
Fix build (tests)
799f51268006f319f6ae538dca670bfc7f522688 18-Sep-2013 Mathias Agopian <mathias@google.com> Fix build (tests)

Change-Id: I5b233ef448e5e7eec3818c6586dfea138b28f7b6
ests/BufferQueue_test.cpp
7229e98229a6bc218d5c6fd50209134a78754149 17-Sep-2013 Mathias Agopian <mathias@google.com> 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.
3f342c113360eacc1e9c1ff481cb03f700a50117 17-Sep-2013 Mathias Agopian <mathias@google.com> am 02b62df7: Merge "Make sure do disconnect from a BQ when its client dies." into klp-dev

* commit '02b62df7119b27c89d91d96938d8f4f5232b296b':
Make sure do disconnect from a BQ when its client dies.
02b62df7119b27c89d91d96938d8f4f5232b296b 17-Sep-2013 Mathias Agopian <mathias@google.com> Merge "Make sure do disconnect from a BQ when its client dies." into klp-dev
cd9fd427ac4ee8312fd42b8e643805861d9d94b2 17-Sep-2013 Jesse Hall <jessehall@google.com> 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
b8080d9a3b760617c5dde7b1d2d63aa2bcecf3a7 17-Sep-2013 Jesse Hall <jessehall@google.com> am 2a36497e: Merge "Stop using default value for Surface producerControlledByApp parameter" into klp-dev

* commit '2a36497e45d4d96e35fed89cfdcb09b71459ac3c':
Stop using default value for Surface producerControlledByApp parameter
365857df8b94c959dea984a63013f6e7730ef976 12-Sep-2013 Mathias Agopian <mathias@google.com> Make sure do disconnect from a BQ when its client dies.

Bug: 5679534

Change-Id: If447e8673df83fe0b1d6210641e0a48522501a53
ufferQueue.cpp
GraphicBufferProducer.cpp
urface.cpp
83cafffeac037ab2f9d00f98f8d2f3da8fc9b857 17-Sep-2013 Jesse Hall <jessehall@google.com> Stop using default value for Surface producerControlledByApp parameter

Bug: 10785749
Change-Id: Ifbf9340e5eabe621a69e990ec3e05ac51f8db66a
urfaceControl.cpp
06ef81bd707020d579aae980ca30b5f954d9219a 12-Sep-2013 Kenny Root <kroot@google.com> resolved conflicts for merge of 1852eb4f to klp-dev-plus-aosp

Change-Id: I7217c0e859b384a042c02fe339e745996c6ef49e
c668871ac3f54e54dc21990f5d418643e01d636f 12-Sep-2013 Kenny Root <kroot@google.com> Use canonical UniquePtr.h file

Change-Id: Icc75bca078ffaf0c09b88ce5e897d666d1054063
ests/SurfaceTexture_test.cpp
7c4f236532692b847b9b103df6490549656ae993 12-Sep-2013 Mathias Agopian <mathias@google.com> am 90ed3e8d: fix a few problems with BitTube

* commit '90ed3e8d7883d9c80fb8bf11b1c593bd8b2b39d0':
fix a few problems with BitTube
0ae966033db8c1a42965ce4dce16ac8d5a7ed3b9 11-Sep-2013 Kenny Root <kroot@google.com> Remove copy of UniquePtr.h

The UniquePtr.h file is no longer in libcore/... so there is no need to
have this extra copy of it anymore.

Change-Id: I4ec4f86d2844e524b50441c3a9100a50a6a45b1a
ests/SurfaceTexture_test.cpp
90ed3e8d7883d9c80fb8bf11b1c593bd8b2b39d0 10-Sep-2013 Mathias Agopian <mathias@google.com> fix a few problems with BitTube

BitTube used to send objects one at a time and didn't
handle errors properly.

We now send all the objects in one call, which means they
have to be read as a single batch as well. This changes the
BitTube API.

Update SensorService to the new API.

Also added an API to set the size of the send buffer.

Bug: 10641596
Change-Id: I77c70d35e351fdba0416fae4b7ca3b1d56272251
itTube.cpp
ensorEventQueue.cpp
e29df8b929128621c8ef90091696d414eb235276 04-Sep-2013 Aravind Akella <aakella@google.com> am a5552de9: Merge "Sensor batching. Changes to the native code." into klp-dev

* commit 'a5552de96f0cff9fb1947d8d21556bfeccf9cd03':
Sensor batching. Changes to the native code.
724d91d778e71c8186399f4955de14b54812b3ed 27-Jun-2013 Aravind Akella <aakella@google.com> Sensor batching. Changes to the native code.

Bug: 10109508
Change-Id: I7333f3aac76125a8226a4c99c901fb904588df04
SensorEventConnection.cpp
ensor.cpp
ensorEventQueue.cpp
2d28c37269ca55b2be896ca67271994ebbc2bc84 30-Aug-2013 Jesse Hall <jessehall@google.com> am 87967c18: Merge "Force async behavior for the virtual display output BufferQueue" into klp-dev

* commit '87967c186995d1500875c495cba8f04f7cff76cc':
Force async behavior for the virtual display output BufferQueue
8db92553e9e6263cd41eaf1a1ebc9e3f88f92b5f 30-Aug-2013 Jesse Hall <jessehall@google.com> Force async behavior for the virtual display output BufferQueue

Bug: 10551087
Change-Id: I40bbb2b87d64420939a0ea309254f281437dab56
ufferQueue.cpp
169636c62bd6c434ecc6fa60359baa3789f840b8 22-Aug-2013 Eino-Ville Talvala <etalvala@google.com> am b6aea00c: Merge "Surface: Fix controlledByApp parameter" into klp-dev

* commit 'b6aea00c7843705fdc6d265d7e15b3df52e86009':
Surface: Fix controlledByApp parameter
7895e90e29d096be039202f2ff24fa8033b92477 21-Aug-2013 Eino-Ville Talvala <etalvala@google.com> Surface: Fix controlledByApp parameter

Bug: 10425641
Change-Id: I1a47e2ce4ecbdb8e67030a5d9ddf6604c5e2497d
urface.cpp
f94705f5fba8da61b0cdfc3c08f54a8ee66e1a42 19-Aug-2013 Andy McFadden <fadden@android.com> am 8b308ed7: Fix build

* commit '8b308ed70ed782f68c8075aac2a6b66bbfcdb9af':
Fix build
8b308ed70ed782f68c8075aac2a6b66bbfcdb9af 19-Aug-2013 Andy McFadden <fadden@android.com> Fix build

Neglected the "checkbuild"-built tests.

Change-Id: I202692f1a6d1e306c88e820c959d07d16e7c6a00
ests/BufferQueue_test.cpp
30290a557e596c9bd58f99f9b8a3ea10bcbc8760 19-Aug-2013 Andy McFadden <fadden@android.com> am 90f59bf9: Merge "Re-enable frame dropping for non-auto timestamps" into klp-dev

* commit '90f59bf9eba79b27629505bc2709d84e7c811c8b':
Re-enable frame dropping for non-auto timestamps
3c25621ad7d13f64d3ab95a27fa970fbc9998f73 16-Aug-2013 Andy McFadden <fadden@android.com> Re-enable frame dropping for non-auto timestamps

This change adds an entire field to note whether the timestamp was
auto-generated by Surface or supplied by the application.

The value is used when deciding whether or not to drop frames based
on buffer presentation timestamps. If a desired presentation time
was set explicitly, BufferQueue will use that value to decide if a
frame should be dropped. If the timestamp was generated by Surface
at the time the buffer was queued, the timestamp is ignored.

Bug 10151804

Change-Id: Ibd571a7578351063b813cbdad2ddbeed70655ba5
ufferQueue.cpp
GraphicBufferConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
0ba1a16bbb2c7ea5f52691c062613a2309821354 16-Aug-2013 Igor Murashkin <iam@google.com> am e60a0b1e: Merge "gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired" into klp-dev

* commit 'e60a0b1e6a29d79b4d0ec0374446cb829bcadee4':
gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired
a5b7513711555c8681eb9391cfafe30fb7d6dd3d 15-Aug-2013 Igor Murashkin <iam@google.com> gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired

- Return NOT_ENOUGH_DATA instead of INVALID_OPERATION when too many
buffers have already been locked.
- INVALID_OPERATION is nominally used when something irrecoverable happens,
but in this case the client just needs to call unlockBuffer to go back into a
good state.

Bug: 10333400
Change-Id: I3a034d77de85741429f832a90eedd670afa1dc94
puConsumer.cpp
70986f00348e1af2f04cc7a80bcb0431a01d93d5 15-Aug-2013 Mathias Agopian <mathias@google.com> am c6bae007: Fix build. optional tests were broken.

* commit 'c6bae007e6e29b585fc1207f84b378a480006173':
Fix build. optional tests were broken.
c6bae007e6e29b585fc1207f84b378a480006173 15-Aug-2013 Mathias Agopian <mathias@google.com> Fix build. optional tests were broken.

Change-Id: Iba9f5cb57f134559e1f9c55e293578d9f5d8cb96
ests/SurfaceTextureClient_test.cpp
b881700ab160b4544453bf8920e3022d46fee262 15-Aug-2013 Mathias Agopian <mathias@google.com> am 56f825e7: Merge "SurfaceFlinger now uses GLES 2.x when available" into klp-dev

* commit '56f825e7ab9f83706a74dcd4825c7bc839e49ae4':
SurfaceFlinger now uses GLES 2.x when available
3f84483382be2d528918cc1a6fbc6a7d68e0b181 08-Aug-2013 Mathias Agopian <mathias@google.com> SurfaceFlinger now uses GLES 2.x when available

Bug: 8679321

Change-Id: I2b152d01fb4e2de2ea9fe87f1ddbd6826d7520d7
LConsumer.cpp
771ed8d71be8c851991164cd10fcfbf2431df86d 13-Aug-2013 Jesse Hall <jessehall@google.com> am fc43e16a: Merge "Graphics:Add error check when create GraphicBuffer"

* commit 'fc43e16a5693bca0edfc82c650fb606971e47138':
Graphics:Add error check when create GraphicBuffer
2aff7025482cc40d2ebd45f81cdb318ac1c6f868 20-Nov-2012 Lingyun Zhu <lingyun.zhu@intel.com> Graphics:Add error check when create GraphicBuffer

Change-Id: Ib0ca59bf1dfe4ae0266c29c91c1dbe3d02c0904e
Author: Lingyun Zhu <lingyun.zhu@intel.com>
Signed-off-by: Lingyun Zhu <lingyun.zhu@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 50141
GraphicBufferProducer.cpp
45155969dc747d09d267cd1f22baf0eaf886a801 09-Aug-2013 Mathias Agopian <mathias@google.com> make sure GLConsumer::releaseTexImage() works after detachFromContext()

Change-Id: I27e0bc57e927d47b2b98113ee37b5396bcc72019
LConsumer.cpp
9870c9b66cc73ee31aabba23aa06deaf673ee5ef 09-Aug-2013 Mathias Agopian <mathias@google.com> make GLConsumer's debug texture static

this is so that we don't burn a gralloc handle and a bit
of memory per GLConsumer.

Change-Id: I30c3e7ec45d7f1b5426aca8e06c7716870877706
LConsumer.cpp
6c913be9ca95fd6b556d056e165a4ba6dc69795b 08-Aug-2013 Jesse Hall <jessehall@google.com> Add ISurfaceComposer::destroyDisplay

Bug: 10191053
Change-Id: Ia89286f95421344a60ffedaaca5825c4e3cd7f9e
SurfaceComposer.cpp
urfaceComposerClient.cpp
45263e2475ac6a885dbd78eff7d4e44f374e5237 07-Aug-2013 Mathias Agopian <mathias@google.com> don't hardcode debug texture dimensions

Change-Id: I356333801d246a8cafb3e977a77dc7325e8b822d
LConsumer.cpp
5f51ed9499508ecda2d44c794a258fe6f5e22149 07-Aug-2013 Mathias Agopian <mathias@google.com> fix tests more

Change-Id: I05c3dd6a22440844f8bd071f4c2b620b2bd8c720
ests/Surface_test.cpp
3dce3360e73f01ca8b9d707ad8be40a080cd560b 07-Aug-2013 Mathias Agopian <mathias@google.com> fix tests

Change-Id: I0f4d613481eda2c44a2d631a81d75de7e52e7a62
ests/Surface_test.cpp
3ca76f416bc8665a97636ca8a2d0128b9da9d92c 07-Aug-2013 Mathias Agopian <mathias@google.com> remove support for glReadPixels screenshot path

this was only needed on some chipset we're not
supporting in KLP.

Change-Id: I2e8fc07f135030bd61d2e241a8e426f1a4316425
SurfaceComposer.cpp
urfaceComposerClient.cpp
126b9c8e95743c0567a3809a5b8d37bda1c25397 07-Aug-2013 Mathias Agopian <mathias@google.com> Fix build. 3rd attempt

Change-Id: I4317b34fd07890ea7cf9db51be42d72ef21aca89
ests/Surface_test.cpp
db89edc94bd2a78226b407f9f7261e202e7fa325 02-Aug-2013 Mathias Agopian <mathias@google.com> All consumers now take an IGraphicBufferConsumer instead of a BufferQueue

this means they only have access to the consumer end of
the interface. we had a lot of code that assumed consumers
where holding a BufferQueue (i.e.: both ends), so most of
this change is untangling in fix that

Bug: 9265647
Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
GraphicBufferConsumer.cpp
urfaceComposerClient.cpp
ests/CpuConsumer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
687821c05b5a85db1b172e7599861c803d268a8d 05-Aug-2013 Eino-Ville Talvala <etalvala@google.com> Merge "BufferQueue: Support query of consumer usage bits"
d9ba9707b0ab5c53e34d8ce9a5e71c41b85bb8da 03-Aug-2013 Andy McFadden <fadden@android.com> Merge "Roll back recent change"
4b49e08385a96398aa2633e096fe916dc9f08768 03-Aug-2013 Andy McFadden <fadden@android.com> Roll back recent change

Disable dropping of frames based on timestamp. Resume auto-
generating timestamps in Surface.

Bug 10151804

Change-Id: I15de26158e1d7ef22a5b150e685a126dc48ae2b4
ufferQueue.cpp
urface.cpp
c1c39f8807f5b3dad9ca221d912f7cd4f4f74d9c 02-Aug-2013 Mathias Agopian <mathias@google.com> Merge "Binderize the consumer side of BufferQueue"
86cd09d388d8f6dd52ec1b3e19170966e99caacb 02-Aug-2013 Andy McFadden <fadden@android.com> Merge "Drop frames based on presentation timestamp"
a4e19521ac4563f2ff6517bcfd63d9b8d33a6d0b 01-Aug-2013 Mathias Agopian <mathias@google.com> Binderize the consumer side of BufferQueue

While currently untested, this should allow to move the
BuffereQueue in the consumer process and have everything
work as usual.

Bug: 9265647

Change-Id: I9ca8f099f7c65b9a27b7e7a3643b46d1b58eacfc
ndroid.mk
ufferQueue.cpp
onsumerBase.cpp
ConsumerListener.cpp
GraphicBufferConsumer.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTexture_test.cpp
14fab7dd794cd6bf29e6425340683c6221062b3c 01-Aug-2013 Andy McFadden <fadden@android.com> Drop frames based on presentation timestamp

If there are two or more buffers pending that are ready for
immediate presentation, drop all but the last one.

Any code that didn't explicitly specify timestamps for buffers
was using the default value (auto-generated "now"). As a result,
surfaceflinger would drop frames whenever more than one buffer
was queued. We now use zero as the auto-generated timestamp,
and we don't set the timestamp in eglBeginFrame().

Change-Id: I187f42d33de227cd3411ff0dcd3b9ce1961457eb
ufferQueue.cpp
urface.cpp
ba93b3f8e403636b614a4a379f9421bc70dca84f 02-Aug-2013 Mathias Agopian <mathias@google.com> log an error when dequeueBuffer gets a NULL Fence

Bug: 9858745
Change-Id: If35d6a7d770bf0a42d55bc55880a9ddb721fcfd0
ufferQueue.cpp
GraphicBufferProducer.cpp
urface.cpp
urfaceComposerClient.cpp
e142428a9c8b9d2380032cd4d7b55ee440fe8770 30-Jul-2013 Mathias Agopian <mathias@google.com> Make Flattenable not virtual

Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
GraphicBufferProducer.cpp
ensor.cpp
f7c6087bcc6a85cc82fd8dd83566550f880600ec 30-Jul-2013 Eino-Ville Talvala <etalvala@google.com> BufferQueue: Support query of consumer usage bits

Bug: 9592202
Change-Id: I61a17758200e61adaca695b426db3df0f6637d4c
ufferQueue.cpp
ests/Surface_test.cpp
ad678e18b66f495efa78dc3b9ab99b579945c9e2 24-Jul-2013 Mathias Agopian <mathias@google.com> single buffer mode for BufferQueue

Bug: 9891035
Change-Id: Id1ab5f911a6dc4c1d8235e65775b3d3635231ad4
ufferQueue.cpp
LConsumer.cpp
bf5b849ec7b2050e1fe05aebb3914823da6a0d07 27-Jul-2013 Mathias Agopian <mathias@google.com> fix build

Change-Id: I04df8ec96510b16e84054089f7c02609d8fe2b0c
ests/SurfaceTextureClient_test.cpp
c2414bb0989763641ca57cf72c11ef6d86565a23 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of HAL pixelformats 5551 and 4444

Change-Id: I39409103144c1ba09078c4ddc323a58987fb09ea
LConsumer.cpp
9642dba11046bf4ae6fe9db285e07ef9075da64e 25-Jul-2013 Mathias Agopian <mathias@google.com> Merge "Fix a race in BufferQueue"
6bac363cbdca7f5c4135d66c0e379475ecbd7319 24-Jul-2013 Mathias Agopian <mathias@google.com> Fix a race in BufferQueue

BufferQueue::dequeueBuffer() could incorrectly return
WOULD_BLOCK while in "cannot block" mode if it happened
while a consumer acquired the last allowed buffer
before releasing the old one (which is a valid thing
to do).

Change-Id: I318e5408871ba85e068ea9ef4dc9b578f1bb1043
ufferQueue.cpp
207c1e287c129e7ebf679a3aaf2076c3c47c1afb 23-Jul-2013 Mathias Agopian <mathias@google.com> fix log messages and bogus error message

also assert when releasing a buffer and it has
been queued

Change-Id: I6f78d9ceb406ec85ff46c7b6d0c047b14063e3d0
ufferQueue.cpp
26a6f37cc06b8014edcedbee8d5558ca7da9abe3 19-Jul-2013 Mathias Agopian <mathias@google.com> make sure to reset the framenumber when a buffer is marked FREE

Change-Id: Ic45929f35553de209801f74e8006fb1bf0b25b45
ufferQueue.cpp
7cdd786fa80cf03551291ae8feca7b77583be1c5 19-Jul-2013 Mathias Agopian <mathias@google.com> Make ANW.setSwapInterval(0) work again

we can now queue/dequeue a buffer in asynchrnous mode by using the
async parameter to these calls. async mode is only specified
with those calls (it is not modal anymore).

as a consequence it can only be specified when the buffer count
is not overidden, as error is returned otherwise.

Change-Id: Ic63f4f96f671cb9d65c4cecbcc192615e09a8b6b
ufferQueue.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTextureClient_test.cpp
a3fbda3cef04d51a35a3eb64b2f744a989800856 19-Jul-2013 Mathias Agopian <mathias@google.com> BuffferQueue disconnect is now always asynchrnous

we tag queued buffers with the "bufferqueue cannot block" flag
and use that bit to discard a buffer in the queue by new ones
comming in. this allows us to remove the buffer queue drain in
disconnect while maintaining the right behaviour if it gets
connected again (since each buffer remembers how it was enqueued).

Change-Id: I1e703d363a687b70b19ba49cef32213116e8bd3f
ufferQueue.cpp
ests/Surface_test.cpp
595264f1af12e25dce57d7c5b1d52ed86ac0d0c9 17-Jul-2013 Mathias Agopian <mathias@google.com> BufferQueue improvements and APIs changes

this is the first step of a series of improvements to
BufferQueue. A few things happen in this change:

- setSynchronousMode() goes away as well as the SynchronousModeAllowed flag
- BufferQueue now defaults to (what used to be) synchronous mode
- a new "controlled by app" flag is passed when creating consumers and producers
those flags are used to put the BufferQueue in a mode where it
will never block if both flags are set. This is achieved by:
- returning an error from dequeueBuffer() if it would block
- making sure a buffer is always available by replacing
the previous buffer with the new one in queueBuffer()
(note: this is similar to what asynchrnous mode used to be)

Note: in this change EGL's swap-interval 0 is broken; this will be
fixed in another change.

Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
ndroid.mk
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
puConsumer.cpp
ummyConsumer.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
b6a0ca7276017ac6d2e846a857d663941a5bd382 16-Jul-2013 Jean-Baptiste Queru <jbq@google.com> Tweaks for forward compatibility

Change-Id: Id6a96521b3fd5bd2a034fe89cfa4d3a179a66328
LConsumer.cpp
6fda52bc7d4a746abc52b91ce5c97449fb96abdf 16-Jul-2013 Ying Wang <wangying@google.com> always pass the BufferQueue explicitely to consumers

to fix tests build.

Change-Id: I70b9cf5b0d76df709e474181eeb7c42a54ecf43a
ests/Surface_test.cpp
8f938a53385a3c6d1c6aa24b3f38437bb2cc47ae 13-Jul-2013 Mathias Agopian <mathias@google.com> always pass the BufferQueue explicitely to consumers

Change-Id: I883b0a7b19d8e722f9ab714ba6f49e658b02ca86
ufferItemConsumer.cpp
puConsumer.cpp
LConsumer.cpp
urfaceComposerClient.cpp
ests/CpuConsumer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
1585c4d9fbbba3ba70ae625923b85cd02cb8a0fd 28-Jun-2013 Andy McFadden <fadden@android.com> Pay attention to buffer timestamps

When acquiring a buffer, SurfaceFlinger now computes the expected
presentation time and passes it to the BufferQueue acquireBuffer()
method. If it's not yet time to display the buffer, acquireBuffer()
returns PRESENT_LATER instead of a buffer.

The current implementation of the expected-present-time computation
uses approximations and guesswork.

Bug 7900302

Change-Id: If9345611c5983a11a811935aaf27d6388a5036f1
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
ests/BufferQueue_test.cpp
b4b63704c02319765625de360a140ef8a59ab43b 06-Jun-2013 Zhijun He <zhijunhe@google.com> CpuConsumer: Add set buffer size and format functions.

Add setDefaultBufferSize() and setDefaultBufferFormat(). ImageReader JNI need
them.

Bug: 9254294
Change-Id: I7d2464d43b0ca73fbb834ed22cecbfbb30eef60c
puConsumer.cpp
9e3cb55b8f6f007906872decfe3b8a2541e94dd2 07-May-2013 Lajos Molnar <lajos@google.com> BufferQueue: remove freeAllBuffersExceptHeadLocked()

Now that we are having separate buffer-instances for the buffer-
queue, we can free all buffers; we don't have to keep the head
alive.

Change-Id: I023e9161a2501d99333f8868ce438afa914ec50f
Signed-off-by: Lajos Molnar <lajos@google.com>
Related-to-bug: 7093648
ufferQueue.cpp
c5d7b7d323bba8772a9005f7d300ad983a04733a 03-May-2013 Lajos Molnar <lajos@google.com> BufferQueue: track buffer-queue by instance vs. by reference

Instead of representing the buffer-queue as a vector of buffer
indices, represent them as a vector of BufferItems (copies).
This allows modifying the buffer slots independent of the queued
buffers.

As part of this change, BufferSlot properties that are only
been relevant in the buffer-queue have been removed.

Also, invalid scalingMode in queueBuffer now returns an error.

ConsumerBase has also changed to allow reuse of the same
buffer slots by different buffers.

Change-Id: If2a698fa142b67c69ad41b8eaca6e127eb3ef75b
Signed-off-by: Lajos Molnar <lajos@google.com>
Related-to-bug: 7093648
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
puConsumer.cpp
LConsumer.cpp
2381033ad001960c606d13e3a4198e5da3672ec7 17-May-2013 Mathias Agopian <mathias@google.com> am e6eef6c1: am ea74d3b7: make the warning timout of Fence::waitForever() implicit and longer

* commit 'e6eef6c136b007f3a7e1e19884875b855c0c5f95':
make the warning timout of Fence::waitForever() implicit and longer
ea74d3b78d607cde17790a7bb83e6f68ffd34cfd 17-May-2013 Mathias Agopian <mathias@google.com> make the warning timout of Fence::waitForever() implicit and longer

- timeout is now 3 seconds instead of 1
- simplifies the API a bit
- allows us to change/tweak this timeout globaly

Bug: 8988871

Change-Id: I8d3c6ec43a372f602fb3f29856710339f86c0ec9
ufferItemConsumer.cpp
puConsumer.cpp
LConsumer.cpp
urface.cpp
d487ca1ab331e60956c7819265723676b25b7fba 09-May-2013 Eino-Ville Talvala <etalvala@google.com> am 87ab83d9: am f743e3db: Merge "Add support for HAL_PIXEL_FORMAT_YCbCr_420_888" into jb-mr2-dev

* commit '87ab83d96b9d826e94a7169a6205bcf9c2ee633a':
Add support for HAL_PIXEL_FORMAT_YCbCr_420_888
c43946b931de5dafd28f49963f9af78e05390b26 05-May-2013 Eino-Ville Talvala <etalvala@google.com> Add support for HAL_PIXEL_FORMAT_YCbCr_420_888

- Add fields to CpuConsumer::LockedBuffer for new information
- New lock methods for GraphicBuffer and GraphicBufferMapper for
the format

Bug: 8734880
Change-Id: If31f82c62d64b6942cf4cc6e5715585c03273f12
puConsumer.cpp
748b696c052d0f5e095e1dce34ae6650cd8cb5e4 25-Apr-2013 Jamie Gennis <jgennis@google.com> am 83ad8957: am 5b6ebd71: Merge "libgui_test: fix a couple minor test issues" into jb-mr2-dev

* commit '83ad89579e22228c1a48a2a488b86fc0d41057a6':
libgui_test: fix a couple minor test issues
bdcf1fe2ba4f6fe2eb63a5ec8246b1582b638e04 24-Apr-2013 Mathias Agopian <mathias@google.com> Merge changes I0d9f18d1,Ib96c9161

* changes:
Add a --color option to dumpsys SurfaceFlinger
clean-up/simplify all dump() APIs
ea2d942ddaea11ca5f136e27e0ab8bcd72bb0644 24-Apr-2013 Jamie Gennis <jgennis@google.com> libgui_test: fix a couple minor test issues

This change fixes how the MultiTextureConsumerTest.EGLImageTargetWorks checks
for pixels. It removes the call to eglSwapBuffers so that the test does not
rely on EGL swap-preserve behavior, and it makes the test use checkPixel()
rather than doing glReadPixels itself.

Bug: 8349336
Change-Id: I0f446a0083eebd07af6fd208762878b4e367725a
ests/SurfaceTexture_test.cpp
74d211ae26a0257c6075a823812e40b55aa1e653 22-Apr-2013 Mathias Agopian <mathias@google.com> clean-up/simplify all dump() APIs

remove the scratch buffer parameter and use
String8::appendFormat() instead.

Change-Id: Ib96c91617c8e7292de87433d15cf6232b7d591b0
ufferQueue.cpp
onsumerBase.cpp
LConsumer.cpp
e692ab9a6be63193c5b52a6562d85d06c40463b8 22-Apr-2013 Mathias Agopian <mathias@google.com> fix uninitialized variables in GLConsumer

mDefaultWidth, mDefaultHeight and mCurrentScallingMode are now
initialized to the same default value that BufferQueue uses.

Change-Id: I0d4da2022b06419d12745716d8ddbd48c8869953
LConsumer.cpp
187edf93c6245bb8fb3187c49f2174492ed6e049 17-Apr-2013 Igor Murashkin <iam@google.com> Merge "BufferItemConsumer: add functions to set default buffer format/size" into jb-mr2-dev
f31510a2ac0807cf3d4224a73fc3f8f691f42f5a 17-Apr-2013 Mathias Agopian <mathias@google.com> Add a test that checks multi-texturing works with GL_TEXTURE_EXTERNAL_OES

Bug: 8395618
Change-Id: I160d29699593b11058533ca753e275d5deeb3b54
ests/Android.mk
ests/SurfaceTexture_test.cpp
87d1e3427b536b5cb1123ddc357539cb4075687a 16-Apr-2013 Igor Murashkin <iam@google.com> BufferItemConsumer: add functions to set default buffer format/size

Bug: 8629088
Change-Id: I06f2e26a70d6dbcfcd70b08b4461e8e401f6e83f
ufferItemConsumer.cpp
53dc9044bfe17039592faf4660c5bf715e8120ad 11-Apr-2013 Andy McFadden <fadden@android.com> Merge "Updated comments" into jb-mr2-dev
c76e8a20e255c72e210d3a276acc69f7e9b7e3fd 10-Apr-2013 Ying Wang <wangying@google.com> Merge "Add liblog" into jb-mr2-dev
8a0cb4ee0b6c351de82987efb472fa38dfaf608a 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: I2ca4fa00dde0b574df3619134836bcb9315bd506
ndroid.mk
e6a0f5028b3ef81916e7fd58a64f76861bfa78e0 06-Apr-2013 Jamie Gennis <jgennis@google.com> libgui_test: increase the tolerance for a YUV test

This change increases the pixel difference tolerance of the
SurfaceTextureGLTest.TexturingFromCpuFilledYV12BufferNpot test from 2 to 3.

Bug: 8349135
Change-Id: I82e361a689335f49065cacd8a3fc145d67b125f1
ests/SurfaceTexture_test.cpp
ad669b04f4633957eea55b8ad2d8253adcefe39b 06-Apr-2013 Jamie Gennis <jgennis@google.com> libgui: fix an EGLImage leak

This moves the call to ConsumerBase::abandon from the ConsumerBase dtor to
ConsumerBase::onLastStrongRef. The abandon call relies on virtual methods to
perform the clean-up, so calling it from the ConsumerBase dtor after the
derived classes dtors ran was skipping some of the clean-up. The
onLastStrongRef method should get called just before the most derived class's
dtor gets called.

Bug: 8349135
Change-Id: I836946826927cc1ed69c049049f525f92b17a269
onsumerBase.cpp
ests/SurfaceTextureClient_test.cpp
753e3415cdaa99f9453d1ea71b163bf1b148e127 05-Apr-2013 Andy McFadden <fadden@android.com> Updated comments

Updated many comments. Added one minor error check.

Change-Id: Ib935dd99d417bada91d2e198008a50dd94269316
ufferQueue.cpp
ca08833d5ea99130797e10ad68a651b50e99da74 29-Mar-2013 Mathias Agopian <mathias@google.com> don't use compile-time configuration of libgui as much as possible

We now detect at runtime which sync features to use, which
allows us to remove a lot of the compile-time configuration
options. There is still one option though, to disable
KHR_fence_sync on some devices (which are more efficient
without it).

- added a backdoor to get the vendor's EGL strings

the new logic is:
- use always ANDROID_native_fence_sync if available
- fallback to KHR_fence_sync if available and not disabled
by the compile-time option
- use KHR_wait_sync if available and either of the above is
enabled

Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
ndroid.mk
onsumerBase.cpp
LConsumer.cpp
uiConfig.cpp
yncFeatures.cpp
2bb716871cf8bfadfff1193ed798da3bffc1f8ec 28-Mar-2013 Mathias Agopian <mathias@google.com> replace eglWaitSyncANDROID by eglWaitSyncKHR

Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
LConsumer.cpp
8000d0694bc34bc17d869da546d8ff8790ae7be4 27-Mar-2013 Mathias Agopian <mathias@google.com> make sure to unlock the screenshot's buffer on destruction

this fixes a memory leak on various devices

Bug: 8475134
Change-Id: I25924674c803a0cb22371a95c60664c36acb0340
urfaceComposerClient.cpp
13f01cbdbd34779a234bc674df79e23672fd5c0b 20-Mar-2013 Jesse Hall <jessehall@google.com> Pass sp<Fence>s around instead of file descriptors

Change-Id: Iac70584a2207940730e8f803a543e4e9a4000c47
LConsumer.cpp
aaebffd52f1bfa3d239bba0d60b699c01c6d791c 21-Mar-2013 Eino-Ville Talvala <etalvala@google.com> Merge "CpuConsumer: Properly track acquired buffers" into jb-mr2-dev
ac006439bb635cd99d8dcbefe95fa680e21519b5 21-Mar-2013 Ramanan Rajeswaran <ramanan@google.com> Merge "Revert "Revert "Change SurfaceControl setPosition to take floats""" into jb-mr2-dev
d6480c020b050c777ec1db2dd9c16fccfc47b47b 21-Mar-2013 Ramanan Rajeswaran <ramanan@google.com> Revert "Revert "Change SurfaceControl setPosition to take floats""

This reverts commit bbb57f3331c7182399ed82e9c4f93a965677dde3

Change-Id: Ib8f039f530d6b8175b5205c6c0008b135d4001a2
urfaceControl.cpp
7c1a487ba8c0a3b591a77e2ddcb33ef9bdfaff64 20-Mar-2013 Mathias Agopian <mathias@google.com> fix build. update test to new API

Change-Id: I31ca84c85edff3e2ff90c554769e058110f27d49
ests/Surface_test.cpp
abe815dd6978b718c04f6e22e1a893d2b51d11a1 20-Mar-2013 Mathias Agopian <mathias@google.com> rework how we take screenshots for a CPU consumer

We're not using IMemoryHeap as a transport anymore,
instead we're providing a CpuConsumer and use the
IGraphicBufferProducer version of the screenshot API.

However, some GPU drivers don't support properly
a GPU to CPU path, to work around this, we use a
temporary BufferQueue on the server side for the
GL rendering, and we use glReadPixels into the
CpuConsumer (we're now using a CPU to CPU path
which is always supported).

Currently this "wrapping" is always performed,
but it can be bypassed on devices that support
the GPU to CPU path.

This also addresses a DoS attack vector on
SurfaceFlinger, where an application could
consume all of SF's filedescriptors by creating
a lot of screenshots in a row.

Bug: 8390553

Change-Id: I9e81514c2a7711b9bb393f74305be7d2abe08f1c
SurfaceComposer.cpp
urfaceComposerClient.cpp
4c00cc11141da7d159eb2323b186ed344115c0f1 16-Mar-2013 Jesse Hall <jessehall@google.com> Fix argument types in IGraphicBufferProducer methods

Bug: 8384764
Change-Id: I7a3f1e1a0584a70af04f9eafef900505389d2202
ufferQueue.cpp
GraphicBufferProducer.cpp
urface.cpp
ests/BufferQueue_test.cpp
35ffa6a868f1aa650c90956a4129bb70f780fc99 13-Mar-2013 Mathias Agopian <mathias@google.com> Surface can now be created only from an IGraphicBufferProducer

it can't write itself to a parcel, nor can it be created from a
parcel.

Change-Id: I69165d5c54d6024b3e546e80d8b57e3dedda7893
urface.cpp
4d9b822e2c18142e55fe2611aa6cd7dc7d4a62c6 13-Mar-2013 Mathias Agopian <mathias@google.com> get rid of ISurface

ISurface was only used to get the IGraphicBufferProducer from
a Layer. It's now replaced by a BBinder subclass / IBinder and
is only used as a handle to the surface, to both refer to it
and manage its life-time.

Also cleaned-up a bit the ISurfaceComposer interface and
"create layer" code path.

Change-Id: I68d0e02d57b862cffb31d5168c3bc10cea0906eb
ndroid.mk
Surface.cpp
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
d2d5a64aa21cfc548c8c8333d1b36979e5e5a640 12-Mar-2013 Mathias Agopian <mathias@google.com> workaround a deadlock when taking screenshots into a surface

When disconnecting from BufferQueue, we now drain the queue
except the head (which means in the screenshot case we won't
have to block, but we might not have a buffer to show, this
will appear as an error in the log).

Bug: 8362363
Change-Id: If80989aac3c917beea2ebddf3cbb502849d394da
ufferQueue.cpp
7589b2a7975cc3bc2a0659ab6503ceb3e4d94048 08-Mar-2013 Mathias Agopian <mathias@google.com> add two libgui tests

we check that the order in which we destroy GLConsumer wrt.
releasing the corresponding EGLSurface via eglMake(Un)Current
doesn't leak a buffer.

On at least 2 devices this test doesn't pass.

Change-Id: I63ab83951b4b0a977f38571158f948cbd9dc7cec
ests/SurfaceTexture_test.cpp
042ecee2abf8584585f1f22f661ac6be9689edf4 01-Mar-2013 Eino-Ville Talvala <etalvala@google.com> CpuConsumer: Properly track acquired buffers

CpuConsumer cannot simply assume a slot's buffer is the same buffer
between acquire and release, and therefore it could be possible for
the same slot to get used for a second acquired buffer, if there's a
producer disconnect in between. This would cause a problem when the
first buffer is released by the consumer.

Instead, use an independent list of acquired buffers to properly track
their state.

Bug: 8291751
Change-Id: I0241ad8704e53d47318c7179b13daed8181b1fab
puConsumer.cpp
f082323c0dbd915d2ad7b6f4d9c732e230fcda46 05-Mar-2013 Igor Murashkin <iam@google.com> Merge "CpuConsumer_test: Extend test with new formats RGBA8888 and optional Y8/Y16" into jb-mr2-dev
29e2047cb4335234ddc0575be1bae66d4e2ff691 06-Feb-2013 Igor Murashkin <iam@google.com> CpuConsumer_test: Extend test with new formats RGBA8888 and optional Y8/Y16

Change-Id: I0a0f6ce73516883bf50c749a1759abbdb3748e08
ests/CpuConsumer_test.cpp
306f18c5fb15ac05db09ece7241af02b9713a23d 05-Mar-2013 Mathias Agopian <mathias@google.com> Merge "rework screenshot API and implementation" into jb-mr2-dev
006a601f22b275bcabf608f630b321df027d56d1 03-Mar-2013 Jesse Hall <jessehall@google.com> Fix reading NULL Surfaces from Parcels

Writing a NULL Surface was being read as a non-NULL Surface with NULL
mGraphicBufferProducer. Before the SurfaceTextureClient -> Surface
refactoring, you'd get a NULL Surface, and some code relies on that.

Bug: 8291161
Change-Id: I477bfe8882693e53a5f604a3d2c9e3cfe24473b4
urface.cpp
2a9fc493dfdba67108e4335bb1fe931bc1e2a025 01-Mar-2013 Mathias Agopian <mathias@google.com> rework screenshot API and implementation

- SurfaceFlinger now supports to take a screenshot
directly into an IGraphicBufferProducer

- reimplement the IMemoryHeap screenshot on top
of the above

- reimplement LayerScreenshot such that its
BufferQueue is directly used as the destination
of the screenshot. LayerScreenshot is now a thin
wrapper around Layer

Bug: 6940974

Change-Id: I69a2096b44b91acbb99eba16f83a9c78d94e0d10
SurfaceComposer.cpp
urfaceComposerClient.cpp
bbb57f3331c7182399ed82e9c4f93a965677dde3 01-Mar-2013 Dave Burke <daveburke@google.com> Revert "Change SurfaceControl setPosition to take floats"

Temporary, to fix weekend build, until we get Nvidia code drop.

This reverts commit 9a867a8798fa6ea21f6341db31e38ea64fde6c83

DO NOT MERGE

Change-Id: I7b5dbc4db46ef3d97dc8598057d5487d6971178b
urfaceControl.cpp
eb0d12963d271052c24abb025d698504df9e7573 28-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CpuConsumer: Add optional asynchronous mode

Bug: 8290146
Bug: 8291751

Change-Id: I9c8ac4bff38b0411e987a204e540d018dba6d0b4
puConsumer.cpp
64d8b1903e4b5f2838818eedcf4fef748b38709c 28-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CpuConsumer: Don't unlock buffers on producer disconnect

Bug: 8291751

Change-Id: I062a3d34b41183d07fb6b9109cdb6bf0c0c75672
puConsumer.cpp
993e14fe1085e78b5f5d8b759dd3c757b4327eb4 23-Feb-2013 Mathias Agopian <mathias@google.com> Added a test that checks the error behavior of ConsumerBase::abandon

We check that calling eglSwapBuffers() on an abandonned BufferQueue
return EGL_BAD_SURFACE -- this is to ensure consistancy between
drivers.

Change-Id: Ibb548e0cf767ceee69f2fc4a85811d15a6522277
ests/SurfaceTextureClient_test.cpp
9a867a8798fa6ea21f6341db31e38ea64fde6c83 22-Feb-2013 Michael Wright <michaelwr@google.com> Change SurfaceControl setPosition to take floats

Bug: 8153162
Change-Id: If3c4b7a3e124ace25999eb9a569dc9a806a1fbc2
urfaceControl.cpp
cf0b8c85fb0106751256dba7821f86b5ad03126c 20-Feb-2013 Mathias Agopian <mathias@google.com> get rid of Surface::getISurfaceTexture()

this was there just for legacy reasons.

Change-Id: I0a48d6e04d7efa65033f9f10c91bba557f16ae8b
ests/SurfaceTextureClient_test.cpp
e3c697fb929c856b59fa56a8e05a2a7eba187c3d 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
ndroid.mk
urface.cpp
urfaceComposerClient.cpp
urfaceControl.cpp
urfaceTextureClient.cpp
ests/CpuConsumer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
ac9fa427d4a86745e60a5f7fd8e3ea340c4db907 12-Feb-2013 Mathias Agopian <mathias@google.com> get rid of Surface identity and token

we use the IBinder instead.

Change-Id: I4aa0b58869ba43f19980013620051e5a261b062d
SurfaceComposerClient.cpp
ayerState.cpp
urface.cpp
urfaceComposerClient.cpp
1df8c345854155cbbcb9f80de9d12d66ea70ac08 20-Dec-2012 Jamie Gennis <jgennis@google.com> libgui: disallow NULL Fence pointers

This change eliminates the uses of a NULL sp<Fence> indicating that no waiting
is required. Instead we use a non-NULL but invalid Fence object for which the
wait methods will return immediately.

Bug: 7892871
Change-Id: I5360aebe3090422ef6920d56c99fc4eedc642e48
ufferItemConsumer.cpp
ufferQueue.cpp
onsumerBase.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
urfaceTextureClient.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTexture_test.cpp
466a192d2088f9238d34597d1aa28da41367c1ca 08-Jan-2013 Andy McFadden <fadden@android.com> Minor tweaks.

Change-Id: I9f82f574112141b6aa074c42303056cd52d5c478
GraphicBufferProducer.cpp
2adaf04fab35cf47c824d74d901b54094e01ccd3 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: Ia03e468888025b5cae3c0ee1995434515dbea387
ndroid.mk
ufferQueue.cpp
onsumerBase.cpp
LConsumer.cpp
GraphicBufferProducer.cpp
Surface.cpp
SurfaceComposer.cpp
SurfaceTexture.cpp
ayerState.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/BufferQueue_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
c911ea531830b9dd5d25cf6f0c03f2f93908c4d1 12-Dec-2012 Jamie Gennis <jgennis@google.com> stop using a deprecated SurfaceTextureClient ctor

Change-Id: I8c8282a0debd551db290dd6849faf272a88c704c
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
3c1ada982202d97ecd0a9a542b5373e2d78658fb 12-Dec-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTextureClient: remove a deprecated ctor"
4def8600305bc2b7f947c9fc0811095b7c17c8e2 12-Dec-2012 Jamie Gennis <jgennis@google.com> SurfaceTextureClient: remove a deprecated ctor

Change-Id: Ibf2746fdca26851677cd90199c60eab80f6d0c73
urfaceTextureClient.cpp
c6f04666c205a72add3c856455bf212f0c84d6fc 12-Dec-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: Move GraphicBufferAlloc to libgui"
392edd88cb63d71a21a86a02cf9c56ac97637128 30-Nov-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: Move GraphicBufferAlloc to libgui

This change moves the GraphicBufferAlloc class from SurfaceFlinger to libgui.

Change-Id: Idf31d2004efa2651b60590733f73c4a7b831e8a9
ndroid.mk
raphicBufferAlloc.cpp
97eba8904c2f221c42a9473407223a4c3a213f75 12-Dec-2012 Andy McFadden <fadden@android.com> Avoid unnecessary texture bind

In SurfaceFlingerConsumer, check to see if native fence sync is
enabled. If so, defer the texture binding step to Layer::onDraw.

Change-Id: I7d4034a31c0143207eea2509dfa13ef3820f9b8c
urfaceTexture.cpp
bf974abe92f7495529916fe0f483f3b56e7c30e3 05-Dec-2012 Andy McFadden <fadden@android.com> Refactor SurfaceTexture a bit.

Rearranges updateTexImage() so that the SurfaceFlinger-specific
behavior is in a new SurfaceFlingerConsumer subclass.

SurfaceTexture behavior should not be altered. Instead of
acquire-bind-release we now do acquire-release-bind, but since
it's all done with the lock held there shouldn't be any
externally-visible change.

Change-Id: Ia566e4727945e2cfb9359fc6d2a8f8af64d7b7b7
ufferQueue.cpp
urfaceTexture.cpp
a4367996681bae2612beebecb871961c5b361b2c 07-Dec-2012 Jamie Gennis <jgennis@google.com> am 50f8d285: am d4e70620: am 72c3f7d8: Revert "ConsumerBase: free buffers outside the lock"

* commit '50f8d2856b6644059b31684687842bf9c1f2e814':
Revert "ConsumerBase: free buffers outside the lock"
72c3f7d88160b7c279f90f0efe3c1cb12cd140ae 07-Dec-2012 Jamie Gennis <jgennis@google.com> Revert "ConsumerBase: free buffers outside the lock"

This reverts commit b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4.
onsumerBase.cpp
b5fe96b8130b5bacbc1762ba7f819a9f9b72bf59 07-Dec-2012 Jamie Gennis <jgennis@google.com> am 05989772: am 3ed2736c: am b21a4e3b: ConsumerBase: free buffers outside the lock

* commit '05989772d5b46cd5328e88d546f04deef39cc3c8':
ConsumerBase: free buffers outside the lock
b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4 07-Dec-2012 Jamie Gennis <jgennis@google.com> ConsumerBase: free buffers outside the lock

This change makes ConsumerBase::onBuffersReleased hold a reference to all its
gralloc buffers until after the mutex is unlocked. This prevents slow
gralloc::free calls from causing lock contention with rendering threads.

Bug: 7675940
Change-Id: I0ec805d1b612afeeecfffec03f982371d27d93be
onsumerBase.cpp
73d5662e4c1639e0aa462d420433fe7efa248245 20-Nov-2012 Mathias Agopian <mathias@google.com> fix typo that broke all the builds

cherry pick into master since auto-merger is blocked

Bug: 7584338
Change-Id: Ie7d7c238de1fd224b3b0bae9669a8dcb2f700a79
ufferQueue.cpp
764c197c6fc2bf10b038c33b320a4e95594d52d8 20-Nov-2012 Mathias Agopian <mathias@google.com> fix typo that broke all the builds

Bug: 7584338
Change-Id: Ieb8c27a544ac583af9aa1e0376e33a673d2d9673
ufferQueue.cpp
bd3e837ec726e5a1c7fca7173d8230ca60a3ba6d 20-Nov-2012 Mathias Agopian <mathias@google.com> am c208cdd4: am 1d3612f1: am 2a8c49eb: fix an out-of-bounds memory access

* commit 'c208cdd402d767228a34074d589c6368cc656b7d':
fix an out-of-bounds memory access
2a8c49eb5dd51b2e60c9a78bea00870867d91c03 16-Nov-2012 Mathias Agopian <mathias@google.com> fix an out-of-bounds memory access

in this particular case, this OOB is always harmless
(and that's why it didn't get fixed from MR1), however,
it interfers with valgrind debugging.

Change-Id: Ic977e03287e59c4b124a89146c9023bd0cb540a8
ufferQueue.cpp
74284b9467a753209054bfa769ba1e6d110e34f9 05-Nov-2012 Igor Murashkin <iam@google.com> Merge "Change ConsumerBase's FrameAvailableListener to be a weak pointer"
a4a3149a36bc69a06e4824aeae909ab910661070 29-Oct-2012 Igor Murashkin <iam@google.com> Change ConsumerBase's FrameAvailableListener to be a weak pointer

This prevents strong reference cycles when the listener implementation also
holds a strong pointer to the ConsumerBase

Bug: 7425644
Change-Id: I1514b13a32b18d421c902dddebec0765a989c55c
onsumerBase.cpp
f3f7db6346323ca3ec4ec449a2622adddc6306b4 31-Aug-2012 Jeff Brown <jeffbrown@google.com> Allow global transactions to nest.

This change fixes a number of small glitches that can occur when
multiple components in the same process are updating surfaces.
One would expect that updates to disjoint sets of surfaces would
not collide but this is not the case. The first component to
close the global transaction causes all pending updates to
be applied, including those that another component might not
have finished setting up if it also had an open transaction
at the same time.

Change-Id: I99345958581abbe0e1e325a5bcba37e8941a313a
urfaceComposerClient.cpp
dd3cb84cfbe8068790c6233b5829fae9c4a0ee93 20-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add support for secure displays

This change adds support for displays that are not allowed to display surfaces
with the eSecure flag set. All non-virtual displays are considered secure,
while virtual displays have their secure-ness specified at creation time.

Bug: 7368436
Change-Id: I81ad535d2d1e5a7ff78269017e85b111f0098500
SurfaceComposer.cpp
urfaceComposerClient.cpp
7f79a2bd5c92bc626890dc16ffb8cd2de934e5fb 17-Oct-2012 Jamie Gennis <jgennis@google.com> Merge "BufferQueue: alloc without holding the lock" into jb-mr1-dev
2d5e230292c27d59f4c096bc742a0a19abf811c1 16-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add animation transactions

This change adds a transaction flag for WindowManager to indicate that a
transaction is being used to animate windows around the screen. SurfaceFlinger
will not allow more than one of these transactions to be outstanding at a time
to prevent the animation "frames" from being dropped.

Bug: 7353840
Change-Id: I6488a6e0e1ed13d27356d2203c9dc766dc6b1759
urfaceComposerClient.cpp
1efe099a51e2231bd938a6afcf66e6584deec0f2 05-Oct-2012 Jamie Gennis <jgennis@google.com> BufferQueue: alloc without holding the lock

This change makes BufferQueue::dequeueBuffer release its mutex before
allocating new buffers. This should alleviate lock contention in
SurfaceFlinger where SF's main thread can get blocked waiting for an allocation
operation to complete.

Bug: 7335075
Change-Id: I1b000539cc616a695afab2e9c68507db69e57b13
ufferQueue.cpp
2a09bb321930e1f782599ec902bca1db58b9af77 09-Oct-2012 Jeff Brown <jeffbrown@google.com> Add blankDisplay/unblankDisplay to SurfaceComposerClient.

Bug: 7309812
Change-Id: Ia401d642094a46c62f0d26c65da1d11341e203a1
urfaceComposerClient.cpp
9504eb915c9628e130f45019bdefda0168089886 05-Oct-2012 Jesse Hall <jessehall@google.com> Fix race condition in ConsumerBase::addReleaseFence()

This needs the ConsumerBase mutex locked, but wasn't locking it. Two
of the four places that called it already held the lock so were fine.
Now addReleaseFence() takes the lock itself, and I added
addReleaseFenceLocked() for the two already-locked callers, since in
one of them dropping the lock would be inconvenient.

Bug: 7289269
Change-Id: I7a5628adb516f8eec782aa6c14128202f96d7b0a
ufferItemConsumer.cpp
onsumerBase.cpp
urfaceTexture.cpp
d920670f252d7984f8729cd578ce8c0befa77273 04-Oct-2012 Stephen Hines <srhines@google.com> Fix missing parens in CleanSpec.mk.

Change-Id: I0440a942d3e685d619ec9cc402d3293cb3f52df1
leanSpec.mk
3fbbd076ad571810d9107ed870cfce2e8c062d10 05-Oct-2012 Raph Levien <raph@google.com> Fix broken CleanSpec.mk in libs/gui

The CleanSpec is missing parens, which causes $P to be interpreted as a
single variable, and the following printed to the log:

Clean step: rm -rf RODUCT_OUT/obj/SHARED_LIBRARIES/libgui_intermediates

This patch adds parens as needed.

Change-Id: I587998fa67a4884418c286360a577cdbb6ea9a21
leanSpec.mk
a573945df7d21cfb73aa9cdba41561105e2ffb01 28-Sep-2012 Jamie Gennis <jgennis@google.com> libgui: enable fence support for exynos5

Change-Id: Iffc48412b8c951116a956a3ac7dab8d75eed13da
Bug: 7238122
ndroid.mk
leanSpec.mk
3fd12e41afcf323fdb99a4cf6bef0f904d72cc8b 03-Oct-2012 Jamie Gennis <jgennis@google.com> libgui: fix up compile options

This change adds debug info to SurfaceFlinger's dumpsys to indicate that the
USE_WAIT_SYNC compile option was enabled, and it removes the
ALLOW_DEQUEUE_CURRENT_BUFFER option.

Bug: 7238122
Change-Id: I70e08e34c2ef58aa6d2f88229e781a119f84b5a9
ndroid.mk
ufferQueue.cpp
uiConfig.cpp
urfaceTexture.cpp
ba607d53c6a94ea8c4c12571980c4ad159af308b 01-Oct-2012 Jesse Hall <jessehall@google.com> Add Fence::waitForever which logs a warning timeout, and use it

Bug: 7217641
Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
ufferItemConsumer.cpp
puConsumer.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
c01a79d77b829e7de86ef137694e8ad708470ca1 28-Sep-2012 Andy McFadden <fadden@android.com> Pass display arg to blank/unblank

This allows us to blank and unblank displays other than the built-in
display (e.g. HDMI).

Bug: 7240511
Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
SurfaceComposer.cpp
38b657265ccc5ae45bd7860a68b0d9373b47a2f3 28-Sep-2012 Iliyan Malchev <malchev@google.com> Revert "Compatibility work around for bad graphics driver dependency."

This reverts commit a50b51c03aca449920fc8581a738032a7bce7150

Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
urfaceComposerClient.cpp
4803b74e2a12a508f7bbfde6f6a962fe3299c61c 25-Sep-2012 Andy McFadden <fadden@android.com> Show build config in dumpsys SurfaceFlinger

This adds a line to the "dumpsys SurfaceFlinger" output that shows
build-time configuration values.

Example:
Build configuration: [sf HAS_CONTEXT_PRIORITY] [libui] \
[libgui USE_FENCE_SYNC]

Bug 7206633

Change-Id: Ibe1856b459d34a4be6ee83a4ebfd2807e6cc68a0
ndroid.mk
uiConfig.cpp
e96e9e1093b5700e9f403a6e2479da7dc36d3b71 25-Sep-2012 Mathias Agopian <mathias@google.com> fix a crasher in SurfaceTexture's setFilteringEnabled

bug: 7211067
Change-Id: Id8658a8df429d76c20ab9112858b38e52343dc9c
urfaceTexture.cpp
7aff4a5de47bf32b0934f5744cd1df4ce666d2d2 24-Sep-2012 Jamie Gennis <jgennis@google.com> ConsumerBase: make fence names meaningful

Change-Id: I3580120cb63c027c327e80ec70e68650b75395de
onsumerBase.cpp
d1b330de416adff0d178a5cb7271419d9ed7a89a 21-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix an out of bounds array write

This change fixes an issue causing the mEglContext member of a SurfaceTexture
to get incorrectly zeroed out. This would happen when a call to
ConsumerBase::releaseBufferLocked resulted in the current buffer being freed.
Freeing the current buffer would set SurfaceTexture::mCurrentTexture to -1,
which would then be used by SurfaceTexture::releaseBufferLocked to reset the
current slot's EGLSyncKHR to EGL_NO_SYNC_KHR (= 0). This would overwrite the
mEglContext field, resulting in context mismatch errors in
SurfaceTexture::doGLFenceWaitLocked.

The fix is to simply use the buffer slot that's passed in to
SurfaceTexture::releaseBufferLocked rather than mCurrentTexture.

Change-Id: I0e5e2bd88fcbb354c35a3744f317716fff3e0e41
urfaceTexture.cpp
42223f6fdd582dc4e87ad94c212adaed3341f154 10-Sep-2012 Jeff Boody <jboody@codeaurora.org> gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960

Change-Id: Ib7ad11597ef7c79162a0b0a49a1b8ae16d192c10
Signed-off-by: Iliyan Malchev <malchev@google.com>
ndroid.mk
leanSpec.mk
3941cb240d438bfdebe24920bb2ada86456a0bf9 18-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: default to doing GL sync

This change makes updateTexImage default to performing the necessary
synchronization and adds an argument for SurfaceFlinger to disable that
synchronization so that it can be performed lazily.

Change-Id: I7c20923cc786634126fbf7021c9d2541aa77be5d
Bug: 6991805
urfaceTexture.cpp
8dfa92fef9759a881e96ee58d59875d35023aab9 18-Sep-2012 Andy McFadden <fadden@android.com> Plumb display name into SurfaceFlinger

The Surface createDisplay() call takes a display name for debugging.
This change carries it through SurfaceFlinger and displays it in
the "dumpsys SurfaceFlinger" output.

Bug 7058158

Change-Id: I79f3474a8656ff1beb7b478e0dbf2c5de666118a
SurfaceComposer.cpp
urfaceComposerClient.cpp
71f683ac8d28e93928a9bb1744f43264b4846e8f 15-Sep-2012 Andy McFadden <fadden@android.com> New test

Added a test to confirm that the transform hint is being respected.

Bug: 7162482
Change-Id: I892fe962f8cf2759ff951b4f5065b9ac2732c3d1
ests/SurfaceTexture_test.cpp
6905205c8d130b6ea3a813c1b9283492ed183367 15-Sep-2012 Andy McFadden <fadden@android.com> Fix transform hints

The hints were being set a little too late, so the pre-rotation stuff
wasn't quite working.

Bug 7054997

Change-Id: Id8d5c626db7a76f768ba762a145b315878ee08e6
ufferQueue.cpp
c272430960047de4e9b2f169fb053bd0aedce3b1 12-Sep-2012 Andy McFadden <fadden@android.com> Merge "Watch for SurfaceFlinger death" into jb-mr1-dev
98ff0597bd9e57ba133d54f8f09841f96955cba1 10-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: eglDestroySync after duping its fd

This change adds a call to eglDestroySync after we've dup'd the fd for the
Android fence that the EGLSyncKHR object wraps.

Change-Id: I4fa6ece863260793630d70bb9a69d6284d05d99e
urfaceTexture.cpp
61e04b92bdeafc6fca89052d14dab1bd0c384a71 10-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: use eglWaitSync

This change adds a compile-option to use eglWaitSyncANDROID to ensure that
texturing operations that access the current buffer of a SurfaceTexture do not
occur until the buffer is completely written. It also moves this
synchronization into a new SurfaceTexture method called doGLFenceWait and
changes SurfaceFlinger's Layer class to use that method rather than performing
its own wait on the fence.

Change-Id: I70afa88086ca7ff49a80e3cd03d423767db7cb88
urfaceTexture.cpp
01dbf5539bff4bece3f9bbfa55046b04a8a45e99 06-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: use EGL-created native fences

This change adds support for using Android fences that come from EGLSyncKHR
objects as the release fence for a buffer.

Change-Id: Ice192ce2ec001020f909a2018afdf0f17b24dec9
urfaceTexture.cpp
6652b3edcb7ef5402c05db12f477ceb23c27d6ec 07-Sep-2012 Andy McFadden <fadden@android.com> Watch for SurfaceFlinger death

The ComposerService object wasn't watching for SurfaceFlinger
restarts, which doesn't usually matter because the app framework
restarts when SurfaceFlinger dies. However, mediaserver continues
to run, which means its ComposerService object was trying to use
a dead handle, and playback of DRM movies was failing.

This adds a DeathRecipient listener and some logic to re-establish
the SurfaceFlinger connection.

Bug 6645813

Change-Id: I07581b881d3835601aa57d5358c8259d93bc4515
urfaceComposerClient.cpp
b27254154642575dfb4bbfa79fbedde7d7ee23dd 06-Sep-2012 Jamie Gennis <jgennis@google.com> libgui: move fence handling into ConsumerBase

This change moves some common fence handling code into the base class for
BufferQueue consumer classes. It also makes the ConsumerBase class initialize
a buffer slot's fence with the acquire fence every time a buffer is acquired.

Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0
ufferItemConsumer.cpp
onsumerBase.cpp
puConsumer.cpp
urfaceTexture.cpp
00e8c7a88a5b9c4104a71013a713acd3e4d3b77b 05-Sep-2012 Mathias Agopian <mathias@google.com> display projection API now has a single function instead of 3

Change-Id: I9bf46d372b77d547486d4bbe6f1953ec8c65e98f
urfaceComposerClient.cpp
c68f2ecfa02037144d1a3856f637a77f523cf416 31-Aug-2012 Jamie Gennis <jgennis@google.com> BufferQueue: add a setMaxAcquiredBufferCount check

This change adds a check to verify the validity of the value passed to
setMaxAcquiredBufferCount.

Change-Id: I39730557aa58261e678bd6e4fce11bab78e98362
ufferQueue.cpp
ests/BufferQueue_test.cpp
9e75ddda93888755d0b14144b62e896cd9f78f3a 01-Sep-2012 Jamie Gennis <jgennis@google.com> libgui: add BufferQueue test infrastructure

This change adds some infrastructure for testing the BufferQueue class. It
also includes a test that tests the new check in BufferQueue::acquireBuffer
that prevents the consumer from acquiring more than one buffer beyond the max
acquired buffer count that was set.

Change-Id: I38554ad3f9a53d2ddeba7ef0deee35ec2e2f9775
ests/Android.mk
ests/BufferQueue_test.cpp
fdb6b49dfa9f1f71b2e564c9f423043f90f9346c 31-Aug-2012 Jamie Gennis <jgennis@google.com> libgui: disable CpuConsumer tests

This change disables the CpuConsumer tests because they require a Gralloc
format that is not supported on all devices.

Change-Id: Ifaa618062c1dae53d9fcb9e16ba92c480d3dbd0c
ests/CpuConsumer_test.cpp
4697528eac85d34b2b375ece1d4b40aebe3fa5dd 31-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a few tests

Change-Id: Ic74fe8791361f8fe91ad7149720fafd4cc154ac1
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
d69097f936d9780957a51ce77335ae409b32aaa3 30-Aug-2012 Jamie Gennis <jgennis@google.com> libgui: add some error checks

This change adds a few error checks both in the framework and in some tests.

Change-Id: I2baf2676942a0dc15866e75852a775a0091ed16d
GraphicBufferAlloc.cpp
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
5e5efde7874a9fab650fd4b724ceef46db850470 29-Aug-2012 Jamie Gennis <jgennis@google.com> BufferQueue: add a check for the max acquired bufs

This change adds an error check to ensure that consumers don't acquire more
buffers than the maximum that they set.

Change-Id: I026643564bde52732e4ee6146972b207ddbbba77
ufferQueue.cpp
72f096fb1ad0a0deadbfac5f88627461905d38e8 28-Aug-2012 Jamie Gennis <jgennis@google.com> BufferQueue: use max acquired buffer count

This change makes BufferQueue derive the min undequeued buffer count from a max
acquired buffer count that is set by the consumer. This value may be set at
any time that a producer is not connected to the BufferQueue rather than at
BufferQueue construction time.

Change-Id: Icf9f1d91ec612a079968ba0a4621deffe48f4e22
ufferItemConsumer.cpp
ufferQueue.cpp
puConsumer.cpp
1847f7fd799f92300b3786e49f5883eaa03f4507 31-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "BufferQueue: simplify max buffer count handling" into jb-mr1-dev
2b9776982360a234803665cb79e8abcfeb0e3c79 31-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "BufferQueue: clean up buffer counting" into jb-mr1-dev
94f261556cc5f4aa628cd5b71bf923b583f6e3c3 30-Aug-2012 Wink Saville <wink@google.com> Revert "A vendor ril depends on a native screen shot code."

This reverts commit 9b5782baf0a8a2d7afc7129453beb5df7abe7650.

A new ril for toro, hack no longer needed.
urfaceComposerClient.cpp
e191e6c34829aec406a9cfe3e95211f884a311ff 25-Aug-2012 Jamie Gennis <jgennis@google.com> BufferQueue: simplify max buffer count handling

This change reworks how the maximum buffer count is computed.

Change-Id: I7d3745814b9bd6f6f447f86bfea8eb7729914ebf
ufferQueue.cpp
31a353da225af5329735451c761b430d82dfda1b 25-Aug-2012 Jamie Gennis <jgennis@google.com> BufferQueue: clean up buffer counting

This change is a clean up of some of the handling of the maximum number of
buffers that are allowed at once. It mostly renames a few member variables and
methods, but it includes a couple small refactorings.

Change-Id: I9959310f563d09583548d4291e1050a7bbc7d87d
ufferQueue.cpp
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
9b5782baf0a8a2d7afc7129453beb5df7abe7650 29-Aug-2012 Wink Saville <wink@google.com> A vendor ril depends on a native screen shot code.

Add a temporary shim until the vendor fixes the ril.

Bug: 7073467
Change-Id: Ia95a58bd90677c03406c988d1c29ae785f8662f2
urfaceComposerClient.cpp
a50b51c03aca449920fc8581a738032a7bce7150 28-Aug-2012 Jeff Brown <jeffbrown@google.com> Compatibility work around for bad graphics driver dependency.

This is a compatibility shim for one product whose drivers
are depending on SurfaceComposerClient::getDisplayInfo(
int, DisplayInfo*) when it really shouldn't.

Revert this patch when the problem has been resolved.

Bug: 7065398
Change-Id: I6542691b81fd1b1e1d79500a62e82d40a3d51db7
urfaceComposerClient.cpp
380223bf1b340e7503177254a60d5982f95ab793 27-Aug-2012 Jeff Brown <jeffbrown@google.com> Remove unused "layer" argument from show().

Change-Id: I8944a9f4a27c330b11e5e837c69b88c8f84145ba
urface.cpp
urfaceComposerClient.cpp
9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd 25-Aug-2012 Jeff Brown <jeffbrown@google.com> Banish DisplayID from the SurfaceFlinger API.

Use only display tokens in the API to refer to new displays.

Don't require the caller to specify the display when creating
a surface (since in general a surface could be shown on
any display).

This is intended to be a minimum change just to update the API.
Note that SurfaceFlinger still uses DisplayID in a few places
internally that might cause some features not to work properly
when there are multiple displays (LayerScreenshot, for example).

Change-Id: I3d91eec2da406eefd97bcd53655d403ad865a7e6
SurfaceComposer.cpp
SurfaceComposerClient.cpp
urface.cpp
urfaceComposerClient.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
490aee0fc5012acf2bf0b1dfe9c09e6fcca606fc 24-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: inherit from ConsumerBase (try 2)" into jb-mr1-dev
04930445031c5f41707806182bb7a152e64ddede 22-Aug-2012 Eino-Ville Talvala <etalvala@google.com> Merge "Add BufferItemConsumer, a simple BufferQueue consumer." into jb-mr1-dev
9fea3421ffddf6480f57f55a25936a886043d909 08-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: inherit from ConsumerBase (try 2)

This change makes SurfaceTexture inherit from ConsumerBase. It removes all of
the functionality from SurfaceTexture that is now provided by the base class.
This includes fixes for two bugs that were found after checking this change in
the first time and then reverting it.

Change-Id: Ie2d9f4f27cfef26fdac341de3152e842b01a58d2
onsumerBase.cpp
urfaceTexture.cpp
e232fdca2a62dc5e81b550f5be8710e36174e7a6 21-Aug-2012 Eino-Ville Talvala <etalvala@google.com> Add BufferItemConsumer, a simple BufferQueue consumer.

BufferItemConsumer allows for acquiring BufferQueue's BufferItems,
which contain all the data and metadata the BufferQueue has for a
given graphics buffer.

This consumer is useful when direct access to the native buffer_handles
is needed by the client.

Also includes a minor cleanup of CpuConsumer's use of 'virtual'.

Bug: 6243944
Change-Id: If7dc4192b15ac499555f1eda42a85140f2434795
ndroid.mk
ufferItemConsumer.cpp
puConsumer.cpp
84a9a3c0ec35915d3cc40e9e889d4032e189894a 21-Aug-2012 Eino-Ville Talvala <etalvala@google.com> Merge "CpuConsumer: inherit from ConsumerBase" into jb-mr1-dev
f57e7540d4cf799f18fe87d3536c55f1e0064931 21-Aug-2012 Eino-Ville Talvala <etalvala@google.com> CpuConsumer: inherit from ConsumerBase

Change-Id: I55178b1d673ffa0fbc6e63ef47642c64d4d03228
puConsumer.cpp
729f48082e2c7660e94830e52006f7af4efb747a 20-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "Revert "SurfaceTexture: inherit from ConsumerBase"" into jb-mr1-dev
f7f6345068fe0644bf296b88a687b361eae0cc98 20-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "Revert "SurfaceTexture: call ConsumerBase::freeBufferLocked"" into jb-mr1-dev
ce7a6c0fc9d75b80da030d1790321e84475f956a 20-Aug-2012 Jamie Gennis <jgennis@google.com> Revert "SurfaceTexture: inherit from ConsumerBase"

This reverts commit ed059a8d754770c3cf28b78dba30f7a6ba475dbe

Change-Id: I72542c2595771a40c2c88251e0d6eb54e305b99b
onsumerBase.cpp
urfaceTexture.cpp
483bccd0d9f7e5e7aa452e9e3e53056387f4b25c 20-Aug-2012 Jamie Gennis <jgennis@google.com> Revert "SurfaceTexture: call ConsumerBase::freeBufferLocked"

This reverts commit f8d33c652b930abbfb0722f3a2928cbc2ea71078

Change-Id: I1ff2e1cc85824a8fac1051f573d2931db81af511
urfaceTexture.cpp
220ef10c5fe44df0ff3898de06028975995a34e4 20-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: call ConsumerBase::freeBufferLocked" into jb-mr1-dev
f8d33c652b930abbfb0722f3a2928cbc2ea71078 20-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: call ConsumerBase::freeBufferLocked

This change fixes SurfaceTexture::freeBufferLocked so that it calls the base
class implementation.

Change-Id: I45d76fb2eb02c1fa6e4e917823ead83e2086bd15
urfaceTexture.cpp
d3bbcaff6f0e08db0412d92f42562a2826a58bec 20-Aug-2012 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 21938749 to jb-mr1-dev

Change-Id: I17da10797736f3772a143e2015fe25df0bb3eb3f
2c7eb92b6394427bfe81962668d46194959bc722 18-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: inherit from ConsumerBase" into jb-mr1-dev
818b46058aa3006e1d3c178abd36d4f10823f5d9 17-Aug-2012 Mathias Agopian <mathias@google.com> display states can't share the dirty flags

Change-Id: Ifade9f2f1a0df9a36aede77a6cf5eee4be534f98
urfaceComposerClient.cpp
ed059a8d754770c3cf28b78dba30f7a6ba475dbe 08-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: inherit from ConsumerBase

This change makes SurfaceTexture inherit from ConsumerBase. It removes all of
the functionality from SurfaceTexture that is now provided by the base class.

Change-Id: I4a881df42810a14ee32d4ef7c8772a8f2510f4c7
onsumerBase.cpp
urfaceTexture.cpp
8683fca395d01734ec7946e9f0595ec5d7b754c6 13-Aug-2012 Mathias Agopian <mathias@google.com> improve [un]marshalling of non-binder objects

this change introduces a new class LightFlattenable<> which is
a protocol to flatten simple objects that don't require
binders or file descriptors; the benefit of this protocol is that
it doesn't require the objects to have a virtual table and give us
a consitant way of doing this.

we also introduce an implementation of this protocol for
POD structures, LightFlattenablePod<>.

Parcel has been update to handle this protocol automatically.

Sensor, Rect, Point and Region now use this new protocol.

Change-Id: Icb3ce7fa1d785249eb666f39c2129f2fc143ea4a
SensorServer.cpp
ayerState.cpp
ensor.cpp
e57f292595bec48f65c8088b00ff6beea01217e9 10-Aug-2012 Mathias Agopian <mathias@google.com> make multi-display more real

- displays are represented by a binder on the client side
- c++ clients can now create and modify displays

Change-Id: I203ea5b4beae0819d742ec5171c27568f4e8354b
SurfaceComposer.cpp
ayerState.cpp
urfaceComposerClient.cpp
3165cc21cfea781988407b19bd83292b19f05f55 09-Aug-2012 Mathias Agopian <mathias@google.com> libgui includes refactoring

Change-Id: I1d24ec17f5003ec2abab5f7472daaff4cc4cc2d3
urfaceComposerClient.cpp
3d1d09c0c116c42f7d083f87628b5f8377b1f275 09-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: Fix a fence fd leak.

Bug: 6949010
Change-Id: I289992c964504b4fe5458dbd19b248a841ef043f
urfaceTexture.cpp
45cb2ba1d52d81e20702b62610422fb09aaedeae 07-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix an out of bounds array access

Bug: 6879028
Change-Id: Ic3d35a9384c0a6dfa4000e7743a6f6859608b0bf
urfaceTexture.cpp
1a4d883dcc1725892bfb5c28dec255a233186524 03-Aug-2012 Jamie Gennis <jgennis@google.com> surfaceflinger: refactor FrambufferSurface

This change refactors the FramebufferSurface class to inherit from the new
ConsumerBase class.

Bug: 6620200
Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
ndroid.mk
ufferQueue.cpp
onsumerBase.cpp
72131d9ef13ffaf3af4ca2fe700426b82baac9fa 05-Aug-2012 Mathias Agopian <mathias@google.com> remove unneeded dependencies in libhardware

Change-Id: Ibb8d698d594216d0746b0e7270cf87d7e5acab2b
ndroid.mk
urfaceTexture.cpp
92efd84f37ce5a8aae74dc9086f825a67b6894e9 03-Aug-2012 Mathias Agopian <mathias@google.com> screen-off animation won't be handled by SF anymore

Change-Id: Idc41386804ae7d7eb981c36e1bc55c270870c8d0
SurfaceComposer.cpp
4f9c284de4b9159126f69eb1219c410f66cc872c 02-Aug-2012 Romain Guy <romainguy@google.com> Add missing break in switch statement

Change-Id: I6206cc9ca46c4e2f125d3d820256280586ad66a1
urfaceTexture.cpp
12bd497f280a69ae5fe7694ae3146008cacc0eb6 31-Jul-2012 Jamie Gennis <jgennis@google.com> libgui: enable EGL_fence_sync usage for exynos5

Bug: 6876502
Change-Id: I2ec2800881dcba9e4f6ff32ffa1341a2de01f0a2
ndroid.mk
c666cae2d5995097ec49a87e375e2afdd92802b7 26-Jul-2012 Mathias Agopian <mathias@google.com> get rid of the shared-memory control block

Change-Id: If814060aca1d2ff2619d4adcd57296983d207f7f
SurfaceComposer.cpp
urfaceComposerClient.cpp
8785578391eacd4192333d7b0ce3afedd7d163e6 25-Jul-2012 Mathias Agopian <mathias@google.com> add a layerStack attribute to Layers.

this attribute can be set through a regular transaction using
SurfaceComposerClient (just like any other attribute, eg: position or size)

Change-Id: I701a47c677ea6442ca713728a93335328cd2b172
urfaceComposerClient.cpp
8b33f032327f8de0dcc0e6d0d43ed80f834b51f6 25-Jul-2012 Mathias Agopian <mathias@google.com> update SF binder protocol to support setting display attributes

no change of functionality -- the old behavior is implemented
on top of this new protocol.
this new protocol will allow, eventually, to pass informations
about displays and layer stacks.

Change-Id: Ic6c2295e61ec8ecbc8ce01ab7664e35d928202fc
SurfaceComposer.cpp
ayerState.cpp
urfaceComposerClient.cpp
6501e9944df131b3b7e293007084735dfa217f24 17-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove freeze(), unfreeze() and setFreezeTint().

This is all dead code.

Change-Id: I646673aac793a6ec45021c370a2450f0ea4fbcce
urface.cpp
urfaceComposerClient.cpp
f9176a93a5c9061fe001c91bca50dd0a58d54f10 16-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove freezeDisplay(), which is no-op.

Change-Id: I2b70249a1545636fd6d98b58057b22f9529cad21
urfaceComposerClient.cpp
47ad361cee48a026c8c3695da04aab75e1e7b925 10-Jul-2012 Steve Critchlow <steve.critchlow@sonymobile.com> Fix error trap in SurfaceTexture Client

There was an issue in Surface::lock where failure to lock a surface
resulted in two bad things happening:
- success was returned to the caller (it was apparently locked).
- an uninitialised pointer was returned as the buffer.

Change-Id: I8b0df81400e0fa0542a8bb993d76923ac96b686e
urfaceTextureClient.cpp
e7db724bed5d1e5086801df7705d9b1f2a071785 03-Jul-2012 Jesse Hall <jessehall@google.com> Fix check for fence merge success

Change-Id: I9b16526ebfe4ffabf7c4372cca9b192ce046aa21
urfaceTexture.cpp
dc5b485f74edf2d2f31c62054eb6c180421a3ade 30-Jun-2012 Jesse Hall <jessehall@google.com> Pass fence to HWC on first use of buffer

Also do a CPU-wait on the fence before using it for GL composition.

Change-Id: I0f645a42a44803276cae11b904e5a26d65871562
urfaceTexture.cpp
b42b1ac1587aebda5e2f334d95b620271fafba4e 28-Jun-2012 Jesse Hall <jessehall@google.com> Return fence from acquireBuffer

Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
ufferQueue.cpp
puConsumer.cpp
urfaceTexture.cpp
c777b0b3b9b0ea5d8e378fccde6935765e28e329 28-Jun-2012 Jesse Hall <jessehall@google.com> Pass fences with buffers from SurfaceTextureClient

Change-Id: I09b49433788d01e8b2b3684bb4d0112be29538d3
ufferQueue.cpp
SurfaceTexture.cpp
urfaceTextureClient.cpp
02a7be74dd0c4eb47a522cb0f646736cb6d0de01 29-Jun-2012 Jesse Hall <jessehall@google.com> Merge "Clarify aborted updateTexImage use of fences"
962174da0303d94180af7648faf90e112b851192 29-Jun-2012 Jesse Hall <jessehall@google.com> Merge "Return fence to client in dequeuBuffer"
d58c304cc60be46a363fdcdce6da06e4ecb589b6 29-Jun-2012 Jesse Hall <jessehall@google.com> Clarify aborted updateTexImage use of fences

When updateTexImage acquires a buffer but then aborts (due to an error
or the buffer being rejected), it releases the newly-acquired buffer.
It was passing the buffer slot's fences to releaseBuffer, even though
they hadn't been created after the acquire yet. This wasn't a bug,
since the fences would be cleared just after the buffer slot was last
released, but explicitly passing null fences makes this clearer.

Change-Id: I087f2ec3fd02c40f57782c1fca24eb9567e2943d
urfaceTexture.cpp
f9783af225aa3b41ec0af36f90941a714269abb7 25-Jun-2012 Jesse Hall <jessehall@google.com> Return fence to client in dequeuBuffer

Change-Id: Ic19750793ad993f0e85391f3cabd743ba565d4c9
urfaceTextureClient.cpp
3094df359d1e6e2ae8ca4e935cc093f563804c96 19-Jun-2012 Mathias Agopian <mathias@google.com> First prototype atttempting to support an external display

both API and implementation will change, this is just a prototype
intended to show feasability.

SurfaceFlinger is passed an ISurfaceTexture through a new
callback, it is in turn used to create an EGLSurface which
surfaceflinger will draw into in addition to the main screen.

Change-Id: Id0bbb0b854bb7bae44d57246a90b65d4567f9a21
SurfaceComposer.cpp
f78575400977f644cf0b12beb2fa5fc278b6ed4c 15-Jun-2012 Jesse Hall <jessehall@google.com> Pass fences from BufferQueue to SurfaceTextureClient

ISurfaceTexture::dequeueBuffer now returns the buffer's fence for the
client to wait on. For BufferQueue, this means passing it through
Binder so it can be returned to the SurfaceTextureClient. Now
SurfaceTextureClient is responsible for waiting on the fence in
dequeueBuffer instead of BufferQueue: one step closer to the goal.

Change-Id: I677ae758bcd23acee2d784b8cec11b32cccc196d
ufferQueue.cpp
SurfaceTexture.cpp
urfaceTextureClient.cpp
ef19414bd8b77a26f5751f3845be79025a8263fe 14-Jun-2012 Jesse Hall <jessehall@google.com> Transfer HWC release fences to BufferQueue

After a HWC set, each SurfaceFlinger Layer retrieves the release fence
HWC returned and gives it to the layer's SurfaceTexture. The
SurfaceTexture accumulates the fences into a merged fence until the
next updateTexImage, then passes the merged fence to the BufferQueue
in releaseBuffer.

In a follow-on change, BufferQueue will return the fence along with
the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the
fence to signal before returning.

The releaseFence default value for BufferQueue::releaseBuffer() is
temporary to avoid transient build breaks with a multi-project
checkin. It'll disappear in the next change.

Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
ndroid.mk
ufferQueue.cpp
puConsumer.cpp
urfaceTexture.cpp
d8e812ce6fe9ae0388e98b08456e1d18b9498239 14-Jun-2012 Jamie Gennis <jgennis@google.com> Update ANativeWindow clients for sync

This change updates the uses of ANativeWindow to use the new ANW functions that
accept and return Sync HAL fence file descriptors.

Change-Id: I3ca648b6ac33f7360e86754f924aa072f95242f6
urfaceTextureClient.cpp
ests/Android.mk
ests/CpuConsumer_test.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
3e87601170141229d661df93e2f59e1ced73474b 08-Jun-2012 Mathias Agopian <mathias@google.com> Implement SurfaceFlinger's ANW on top of BufferQueue

SF now has its own implementation of ANW for the
framebuffer and it uses BufferQueue. FramebufferNativeWindow
is now only used by stand-alone apps.

Change-Id: Iddeb24087df62bd92b0f78e391dda9b97ddc859c
ufferQueue.cpp
8e533069e5721e55cb9768e140e16546c3a4a8b6 07-Jun-2012 Colin Cross <ccross@android.com> surfaceflinger: replace early suspend with binder call from PowerManager

SurfaceFlinger will no longer directly synchronize with early suspend.
Instead, PowerManagerService will synchronize with SurfaceFlinger to
ensure that a black frame has been drawn on the display, and then
trigger all early suspend handlers.

Change-Id: I07acdd628440d23fdb69db94319ec5d65d3f4919
SurfaceComposer.cpp
2466e402a054669ecda0d2b0dcb9cc08c4a9559a 30-May-2012 Mathias Agopian <mathias@google.com> am 584fcb32: am 2c8207e9: add the ability to reject buffers in SurfaceTexture::updateTexImage

* commit '584fcb3218e07d7b4cc0aeaef41faa4e891b45a4':
add the ability to reject buffers in SurfaceTexture::updateTexImage
2c8207e9627fe6c7a90e31fae8d71ae49df56845 24-May-2012 Mathias Agopian <mathias@google.com> add the ability to reject buffers in SurfaceTexture::updateTexImage

SurfaceFlinger is using this new feature to reject buffers that
don't have the right size.

Bug: 6498869
Change-Id: I8a7250a47db6c082a357b703feb3b9d0fc8d3443
urfaceTexture.cpp
c20bd43b8a376e40e82b398561739f1074196b13 23-May-2012 Jesse Hall <jessehall@google.com> am 138a8d75: am e1082496: Enable SurfaceTexture fence sync for the emulator

* commit '138a8d7510e6ba8a402ffacc38c7cc5bfaa5e571':
Enable SurfaceTexture fence sync for the emulator
e10824965c64663b8878b808206ee382c7ab6af8 21-May-2012 Jesse Hall <jessehall@google.com> Enable SurfaceTexture fence sync for the emulator

The host-accelerated GL ES driver doesn't do the implicit
synchronization required when fence sync isn't used.

Bug: 6515813
Change-Id: I6a667f2db6b519f3557b5abda78775f767841dae
ndroid.mk
69df645759da5c2be94a04d999b3161a307d2107 21-May-2012 Mathias Agopian <mathias@google.com> am 83f1d839: am 7e477bfe: make sure BufferQueue releases newly acquired buffers on failures

* commit '83f1d83975345bada9886e9ea0ef2b950d90cd77':
make sure BufferQueue releases newly acquired buffers on failures
49b97c857e699c36e1e8c6e448da1cc4df572225 21-May-2012 Mathias Agopian <mathias@google.com> am ac4a4825: am f899e411: Remove misleading and wrong ALOGW

* commit 'ac4a48251180a79ae19e3a7112537c3d0fa260c6':
Remove misleading and wrong ALOGW
f336014c8dd20223388dc7e00875b4fd5aebdcdd 21-May-2012 Jesse Hall <jessehall@google.com> am bd56aabb: am 515f19da: Merge "Recreate EGLImage for previously used slots" into jb-dev

* commit 'bd56aabb92097546073c8dd8949bb03161e72c56':
Recreate EGLImage for previously used slots
7e477bfe11f8bb31622353b64e85721df3cf9702 19-May-2012 Mathias Agopian <mathias@google.com> make sure BufferQueue releases newly acquired buffers on failures

this prevents SurfaceTexture producer to hang in dequeueBuffer()
when something goes wrong in the consumer.
only the consumer gets an error and the current frame is kept
instead of the new one. the producer is unaware of the problem.

Bug: 6476587
Change-Id: Ie6db5526632aabc3e60229b93dfe29c19491ade4
urfaceTexture.cpp
f899e4113a5b5545cd91b4625514d0ab0d33751c 19-May-2012 Mathias Agopian <mathias@google.com> Remove misleading and wrong ALOGW

Bug: 6476587
Change-Id: I4345f1100db02786bb50ad83ca7b559cad301706
ufferQueue.cpp
90ed8508ed89b4fdb5c21d621b29369d31dcb958 17-May-2012 Jesse Hall <jessehall@google.com> Recreate EGLImage for previously used slots

SurfaceTexture would only create an EGLImage for a buffer slot when
BufferQueue returns a GraphicBuffer, i.e. either the slot was acquired
for the first time ever, or the buffer for the slot was reallocated.
But the EGLImage may also need to be re-created for a
previously-acquired buffer if the slot's EGLImage was destroyed during
detachFromContext(); in this case BufferQueue won't return a
GraphicBuffer since SurfaceTexture already has a reference to the
correct buffer.

Bug: 6461693
Change-Id: Ib95d0d757192efe336c5fda0866f857481a6617d
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
a74eb25cbc42a9dde0df6b2303fda9027f77f393 15-May-2012 Jamie Gennis <jgennis@google.com> am dd739965: Merge changes I32fbc2b6,Ifd0ed05b into jb-dev

* commit 'dd73996552938ac5165a35f09d389abedcf421ef':
SurfaceFlinger: recompute visible regions less
libgui: remove setPostTransformCrop
e41b318bc4708e1dee9364e73215ff0d51fb76a1 17-Apr-2012 Eino-Ville Talvala <etalvala@google.com> Add a BufferQueue CPU consumer.

Aimed for use cases where gralloc buffers need to be consumed by CPU
users, such as camera image data streams.

The CpuConsumer is a synchronous queue, which exposes raw pointers to
the underlying graphics buffers to applications. Multiple buffers may
be acquired at once, up to the limit set at time of construction.

Change-Id: If1d99f12471438e95a69696e40685948778055fd
ndroid.mk
puConsumer.cpp
ests/Android.mk
ests/CpuConsumer_test.cpp
b7a6b96301c00c630610df4cb55a45d666200817 14-May-2012 Jamie Gennis <jgennis@google.com> libgui: remove setPostTransformCrop

This change removes the setPostTransformCrop function from
SurfaceTextureClient. It also includes a small logging fix in BufferQueue.

Bug: 6299171
Change-Id: Ifd0ed05b95dad6085e7a8267fda4d69b76ea3bad
ufferQueue.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
f15a83f5814219c167f87cb8aaea622fc8493499 11-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add a crop to the layer state

This change adds a crop rectangle specified in window coordinates to the layer
state. The all window pixels outside this crop rectangle are treated as though
they were fully transparent. This change also adds the plumbing necessary for
WindowManager to set that crop.

Change-Id: I582bc445dc8c97d4c943d4db8d582a6ef5a66081
urface.cpp
urfaceComposerClient.cpp
cd1806e210f2633423f0fb14d39fa00d03974223 10-May-2012 Jamie Gennis <jgennis@google.com> libgui: improve some logging and dumping

This change updates some of the SurfaceTextureClient and BufferQueue logging
and dumping to include the crop, transform and scaling mode. It also removes
the uses of the NO_SCALE_CROP scaling mode enum, which was added by accident in
a previous change.

Change-Id: I62912716a1e48885fb22f12b92678aa13f10fcd9
Bug: 6470541
ufferQueue.cpp
urfaceTextureClient.cpp
82c53806ada5c314124431ec0a49fa15a6b5f1d6 09-May-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: improve texture matrix computation" into jb-dev
cae7c0b955efba6986d9e1fe5a68e48e7a2f806b 09-May-2012 Jamie Gennis <jgennis@google.com> Merge "libgui: Add support for post-xform crops." into jb-dev
5c1139fea3cc0fd9847a6594d853a458152b2fbc 09-May-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: improve texture matrix computation

This change reduces the shrinking of the crop rectangle in some cases. It adds
a way to inform the SurfaceTexture that its texture will be used without
bilinear interpolation, and uses knowledge of the pixel format to avoid
shrinking unecessarily.

Change-Id: I72365f39f74ecb7fcc51b4cf42f2d0fa97727212
urfaceTexture.cpp
d72f233ffa125856a44976a50a66ceb669f49ab2 07-May-2012 Jamie Gennis <jgennis@google.com> libgui: Add support for post-xform crops.

This change adds support for specifying a crop rectangle to a
SurfaceTextureClient that is in post-transformed coordinate space.

Change-Id: I247901de343e71b32850f7ae3bac62dfa612ad3d
Bug: 6299171
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
29267fe8495a74893dfce1bd9eceb6448df7abea 08-May-2012 Mathias Agopian <mathias@google.com> return errors properly in BitTube and SensorEventQueue

Change-Id: Idf31179f9fcc666e287c7b01b2007431cb60127d
itTube.cpp
ensorEventQueue.cpp
2ebc4d6d947ef488198b8777d9190c93904b4b9a 05-May-2012 Mathias Agopian <mathias@google.com> set a Sensor's version properly

Bug: 6447433
Change-Id: Iaa5d074a8137d9543ea78c2c6f63a750774b3057
ensor.cpp
5c8a608497f12ecea4d6e8f1f286baf57c161ea3 02-May-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a memory leak

This change fixes a memory leak.

Bug: 6414806
Change-Id: I43536689b4219a042749aec2096a1d5c4e664ae3
urfaceTexture.cpp
efc7ab6dcea8c22ddd7c0259ef4ab4bbf1e93044 18-Apr-2012 Jamie Gennis <jgennis@google.com> libgui: Add plumbing for active rectangle

This change adds the plumbing to SurfaceTextureClient, BufferQueue, and
SurfaceTexture to get the active rectangle passed to the ANativeWindow to
the buffer consumer.

Change-Id: I35da0889b266327ebb079b6a7136fa3e2e8b00e6
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTexture_test.cpp
f4b322801d872b64f6c7dd2d2ffc1e4f8e993eef 19-Apr-2012 Daniel Lam <dalam@google.com> SurfaceTexture: detachFromContext fixed

Fixed AttachToContextSucceeds test SurfaceTexture test by
not deleting the current texture when cleaning up memory.

Bug: 6363186
Change-Id: Ib886bfe6bb86e25ea4825d18b5008afba6b33eae
urfaceTexture.cpp
2488b20aec097accb20a853d9876bb0a5dc04636 21-Apr-2012 Mathias Agopian <mathias@google.com> add a way to query whether an ANativeWindow consumer is running ahead of the producer

Change-Id: Ibccfa1feb56db2ab11f0c0934ce2d570a2b65ae2
ufferQueue.cpp
urfaceTextureClient.cpp
24202f5676c32edeef6544cf36e06b9fc970dbde 23-Apr-2012 Mathias Agopian <mathias@google.com> update the binder protocol for connect to match that of queueBuffer

indeed, connect and queueBuffer return the same data, so it's
easier to have them use the same protocol.

Change-Id: I4f9fa3be0a80c9ab0a7a4039b282ae843aab02e1
ufferQueue.cpp
SurfaceTexture.cpp
urfaceTextureClient.cpp
a0db308c3d62301ae41b2e2bcf295c4ee4c7b08e 23-Apr-2012 Mathias Agopian <mathias@google.com> remove SurfaceTexture::connect()

use BufferQueue::connect() instead

Change-Id: I04aab7cf11304bf962cde38470747f3b19ddba42
urfaceTexture.cpp
6c47034f5ec30041c54d8f0479b01bce566440df 18-Apr-2012 Eino-Ville Talvala <etalvala@google.com> Fix BufferQueue verbose log

Change-Id: Id80742b5c1fd2960cc2eda3a9ba2db1078df5320
ufferQueue.cpp
85b217668d6840c8e6a109adfb99461313676f8d 14-Apr-2012 Eino-Ville Talvala <etalvala@google.com> Remove fixed USAGE_HW_TEXTURE flag from BufferQueue.

USAGE_HW_TEXTURE applies to SurfaceTexture, not to all uses of
BufferQueue. Refactor accordingly.

Change-Id: Ic7add5e1f2bbec3d3e796ba7f15eaa0633945d8f
ufferQueue.cpp
urfaceTexture.cpp
9aa74dbc7070aa396bc425ea3feae3d26e5393f6 17-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a memory leak

This change fixes an issue where we were sometimes setting the SurfaceTexture's
EGLDisplay to EGL_NO_DISPLAY in detachFromContext, and then subsequently
abandoning the texture. Abandoning while in the detached state would result in
the eglDestroyImageKHR calls failing, which resulted in a memory leak.

Bug: 6302694
Change-Id: I24c1de0dac029a83c7508075fb8aaeaed96a14ea
urfaceTexture.cpp
2efa4b2bb0128cd65ea8ade46f46bacaf72c194f 18-Apr-2012 Jamie Gennis <jgennis@google.com> Merge changes Id79430f9,I541d3046

* changes:
BufferQueue: check before tracing buffer index
SurfaceTexture: shrink all sides when cropping
695e331f01b136155b1559b3c878b7c5bb631bc1 17-Apr-2012 Jamie Gennis <jgennis@google.com> BufferQueue: check before tracing buffer index

This change adds a check on ATRACE_ENABLED before calling snprintf to trace the
buffer index.

Change-Id: Id79430f9c69706393efd3d10780a4cc97055e9e0
ufferQueue.cpp
91a6826d6794c19cdedfa58c42f8820c5cf5fe2b 16-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: shrink all sides when cropping

This change makes SurfaceTexture include an offset for all sides of the crop
region when cropping. This keeps the image centered, to minimize the visual
changes when switching between the texture transform matrix-based cropping and
something that does proper cropping (e.g. HWComposer).

Change-Id: I541d3046fd92e49221b488444df36d490924d1c5
urfaceTexture.cpp
ests/SurfaceTextureClient_test.cpp
82ca93bf66e50dcae6f96dc78e88ff24df2b4f32 17-Apr-2012 Mathias Agopian <mathias@google.com> Merge "s/w rendered apps can now use n-buffering (n>2)"
172a62a224967beee9e35e02a5b2fb2705dd2cc0 16-Apr-2012 Mathias Agopian <mathias@google.com> make sure to pass the transform-hint on ANW.connect

this optimization was probably lost during ST refactoring.

Change-Id: I845978c4b718cb91941d15b30484837f19714abe
ufferQueue.cpp
ac6035a12aec38eeb14d0c13636ec980066d9a8f 13-Apr-2012 Mathias Agopian <mathias@google.com> s/w rendered apps can now use n-buffering (n>2)

Bug: 6311881
Change-Id: I6e52e281e8d432430aad011f6d9dcf35d7b4ac7d
urfaceTextureClient.cpp
b364be8e55a2ce0b0480e237cb9aac30bd215585 13-Apr-2012 Mathias Agopian <mathias@google.com> fix a typo causing pre-rotation to never work

Change-Id: I8d698ec52d53ef1a553b887c7329413e1f49cc72
ufferQueue.cpp
016c8cbce4dde21f2703b9865f52d16b8d5d5ae2 04-Apr-2012 Daniel Lam <dalam@google.com> Enabled cropping support in SurfaceTexture

SurfaceTexture will modify the crop rect so it matches
the desired output aspect ratio when the scaling
mode is NATIVE_WINDOW_SCALING_MODE_CROP. Added a test
for this new scaling mode.

Change-Id: I60f24dcbc294b65cd10a393d9e27d40f07d27bb6
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTexture_test.cpp
a96b6bdea3d5ece7b1f3bcae40e9fe632ebc8f22 12-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: work around a compiler bug

This change works around a compiler bug with the GCC 4.6 toolchain.

Bug: 6292211
Change-Id: I004c4750d92a29f193a37d8e605a28fdc3b7f076
ests/SurfaceTexture_test.cpp
c2c380259b2a3fbe7cee1dbd3f2e1e23e9ffd5da 12-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a test for user sizes & prerotation

This change adds 3 tests for:
- User-overridden buffer size
- Transform hint
- User-overridden buffer size with transform hint

Change-Id: Ib15ea354685e436822c506099613b2bffa7b68c9
ests/SurfaceTexture_test.cpp
55a701459de964ae3504264a6b8c4dc37f54a9e8 10-Apr-2012 Michael I. Gold <gold@nvidia.com> SurfaceTextureClient: support for application buffer dimensions

Add a new API native_window_set_buffers_user_dimensions to allow native
applications to override the native window size for the default buffer size.
This has lower precedence than the existing
native_window_set_buffers_dimensions and allows the two to co-exist.

Change-Id: Ie73590e1c94ef0dadbce500bd0941dfabbcace3c
urfaceTextureClient.cpp
f0bc2f1d8d37977bd3aef3d3326a70e9e69d4246 10-Apr-2012 Mathias Agopian <mathias@google.com> use in/out structures for queueBuffer() IPC

Change-Id: Ie125df2444b62a9a2200586a717dca268852afc9
ufferQueue.cpp
SurfaceTexture.cpp
urfaceTextureClient.cpp
fbcda930dd8b2823cfeb160fd0131f5897b7522f 10-Apr-2012 Daniel Lam <dalam@google.com> BufferQueue returns proper code on acquire

Also removed unnecessary debug messages from
SurfaceTextureClient.

Change-Id: I291897a44170142f9d42a007b008823fad4683e0
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
abe61bfda4938abd932465e27c29ba9e41aea606 27-Mar-2012 Daniel Lam <dalam@google.com> BufferQueue no longer hardcodes buffer counts

BufferQueue is now more flexible as it can be used
by SurfaceMediaSource in addition to SurfaceTexture.

Change-Id: I4222be8918d63372c44fcd412d9ad241c6a3eeb9
ufferQueue.cpp
8cce8a9a75d172e0077960223ac5f2d06df33892 06-Apr-2012 Jamie Gennis <jgennis@google.com> Merge "Fixed disconnect bug in SurfaceTexture"
7b5be95cb3903087742f1079fe89cddd8abe3696 03-Apr-2012 Mathias Agopian <mathias@google.com> use a socketpair instead of a pipe in BitTube

Bug: 6252830
Change-Id: Ia7a7b08409517214136261c05569dc5959a597ab
itTube.cpp
isplayEventReceiver.cpp
ensorEventQueue.cpp
9abe1ebc9575dc5a19bf1dfce6e9b02e03374457 27-Mar-2012 Daniel Lam <dalam@google.com> Fixed disconnect bug in SurfaceTexture

BufferQueue's disconnect could race with updateTexImage
where invalid buffers could be released. Additionally
fixed similar bug with setBufferCount. Tests were added
to stress the disconnect mechanism.

Change-Id: I9afa4c64f3e025984e8a9e8d924852a71d044716
ufferQueue.cpp
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
0e1080f887bcd80c75910cabe7b2eca224bf739c 02-Apr-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: add context attach & detach"
74bed55fff0132be319bcd1703970516ae28b3a9 29-Mar-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: add context attach & detach

This change adds the detachFromContext and attachToContext methods to
SurfaceTexture. These methods allow the SurfaceTexture to switch from
one consumer GLES context to another. This change also includes a few
cleanups to the error return codes in updateTexImage.

Change-Id: I0df1eb599aa7b6f58f07431f242f8f09269559ed
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
851ef8f1bfbb164d61b1528a529a464f0a60dbaf 30-Mar-2012 Mathias Agopian <mathias@google.com> reduce IPC with BufferQueue

collapse setCrop, setTransform and setScalingMode to queueBuffer()
this ends up simplifying things quite a bit and reducing the numnber
of IPC needed per frame.

Change-Id: I3a13c07603abe4e76b8251e6380b107fde22e6d9
ufferQueue.cpp
SurfaceTexture.cpp
urfaceTextureClient.cpp
9285a16450323d0e91513e2c270c2ac03c8b940c 29-Mar-2012 Jamie Gennis <jgennis@google.com> Merge "Refactored DummyConsumer"
9d61a28d72d85ac0460fb7fba9f85f8a955354c7 27-Mar-2012 Daniel Lam <dalam@google.com> Refactored DummyConsumer

DummyConsumer no longer uses a ProxyConsumerListener

Change-Id: I0a99428b3f9dae82cb47d5da3589de77653f3d7c
ummyConsumer.cpp
9e0b1f880bd790b6e4643387668c74729b891a10 27-Mar-2012 Colin Cross <ccross@android.com> remove libandroid.so from targets that don't need it

pdk builds don't have libandroid.so available. Remove it from
projects that aren't actually using it.

Change-Id: I100dc84aaf8160c1062a122ef6d5aec0534d73fa
ests/Android.mk
f71c4ae136f7749b9dfdaa2dd64d771868eeeb2d 24-Mar-2012 Daniel Lam <dalam@google.com> Added a DummyConsumer for use with BufferQueue.

The DummyConsumer is a consumer that can connect to BufferQueue
that does nothing. It is required as BufferQueue checks
if a consumer is connected. Also fixes a bug where SurfaceTexture
was reusing old texture slots.

Bug: 6172739
Change-Id: I5e7a118dd4d07807ba4c763200242b5ee7d3412b
ndroid.mk
ummyConsumer.cpp
urfaceTexture.cpp
b0e76f456afaada43ddb0968bb37145219f90cd3 23-Mar-2012 Mathias Agopian <mathias@google.com> remove dependency of EGL on ndk header

Change-Id: Ia6e489b5b4f028864bdf54923e81f604710dd8ad
urface.cpp
urfaceTextureClient.cpp
ce561372186c7549a8a5fe996ac5965cda087007 20-Mar-2012 Jamie Gennis <jgennis@google.com> libgui: have ST::updateTexImage check the GL ctx

This change adds a check to SurfaceTexture::updateTexImage to verify
that the current GL context is the same as the one that was used for
previous updateTexImage calls.

Change-Id: If02d2f787bcfdb528046dc9ddf6665f8a90e1bf4
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
fa5b40ebb8923133df12dc70591bfe35b3f1c9b3 15-Mar-2012 Jamie Gennis <jgennis@google.com> libgui: add BQ consumer buffer free notifications

This change adds a new callback for BufferQueue consumers to be notified
when the BufferQueue frees some or all of its buffers. This is needed
to retain SurfaceTexture behavior where all buffers would be freed when
the producer disconnects. This change also modifies the
SurfaceTextureGLToGLTest.EglDestroySurfaceUnrefsBuffers test to catch
when the buffers are not freed.

The implementation is a little complicated because it needs to avoid
circular sp<> references across what will be a binder interface (so wp<>
can't be used directly). It also needs to avoid the possibility of
locking the BufferQueue and consumer (e.g. SurfaceTexture) mutexes in
the wrong order.

This change also includes a few additional fixes and test cleanups.

Change-Id: I27b77d0af15cb4b135f4b63573f634f5f0da2182
ufferQueue.cpp
urfaceTexture.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
b267579ba8dfe3f47d2a481c5a3c2254e3d565a1 23-Feb-2012 Daniel Lam <dalam@google.com> SurfaceTexture: Fully refactored from BufferQueue

SurfaceTexture and BufferQueue are separate objects.

Change-Id: I230bc0ae6f78d0f9b2b5df902f40ab443ed5a055
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
74ff8c23f44f1546d0c7004302f4c7ba726ff4c0 13-Mar-2012 Dave Burke <daveburke@google.com> attempt to fix a deadlock in SurfaceTextureClient::disconnect

- condition wasn't signaled if an error happened between acquire and release
- also replace signal with broadcasts

Bug: 6109450
Change-Id: I8ac03c7eca35c9cc04a00ef7fad36bb9cb3fcef6
ufferQueue.cpp
c2c1f2f24cd70bdcf1958157bab38467bf0fdc71 07-Mar-2012 Daniel Lam <dalam@google.com> BufferQueue: fixed issues with buffer slots not available

Bug: 6120953
Change-Id: I61d97d650c8dee0a6d7c19f2f50aa92a5f159095
ufferQueue.cpp
757507e3a0a25fe83e60c354b6ac0e975662109a 06-Mar-2012 Mathias Agopian <mathias@google.com> Merge "Add ATRACEs for Buffer indices"
3fcee50ffaeb745819356e395408b4d7e3239c13 02-Mar-2012 Daniel Lam <dalam@google.com> BufferQueue: fixed acquire operation

Bug: 6082872
Change-Id: I897dc61eb84fed953e51f97871cd3ae6321505d4
ufferQueue.cpp
546ed2d7d98ce4f1415647913a231a6b4fc6ca66 02-Mar-2012 Mathias Agopian <mathias@google.com> Add ATRACEs for Buffer indices

Change-Id: I44d7a9a9bf03f418cab2a4854583aac9e533daee
ufferQueue.cpp
1c8e95cf86f2182986385bc1ee85f13f425f3a3a 24-Feb-2012 Jamie Gennis <jgennis@google.com> Add tracing to various graphics components.

This change adds ATRACE call tracing to BufferQueue,
SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL.

Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
ufferQueue.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
eae59d2ea77ef57aab203fb185a880ce37ac38d6 23-Jan-2012 Daniel Lam <dalam@google.com> Removed dependecies between BufferQueue and SurfaceTexture

Refactored SurfaceTexture and BufferQueue such that share
no protected members. Created an consumer facing interface
for BufferQueue in preparation of connecting SurfaceTexture
and BufferQueue through a binder.

Change-Id: I938e63e085128148c58d0e26c7213b30145c109f
ufferQueue.cpp
urfaceTexture.cpp
fbb16559168b88e30ffbe6d466f4c044366f503c 27-Feb-2012 Jamie Gennis <jgennis@google.com> Merge "Revert "Removed dependecies between BufferQueue and SurfaceTexture""
90ac799241f077a7b7e6c1875fd933864c8dd2a7 26-Feb-2012 Mathias Agopian <mathias@google.com> fix libgui header location

Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
ufferQueue.cpp
isplayEventReceiver.cpp
GraphicBufferAlloc.cpp
Surface.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
9b10c47e112afc3600380895046a4a56e34cf6a8 27-Feb-2012 Daniel Lam <dalam@google.com> Revert "Removed dependecies between BufferQueue and SurfaceTexture"

This reverts commit a631399f71dbc7659d2f241968f85d337726ae61
ufferQueue.cpp
urfaceTexture.cpp
333023884112259f145bb23c41a05211198d9792 23-Jan-2012 Daniel Lam <dalam@google.com> Removed dependecies between BufferQueue and SurfaceTexture

Refactored SurfaceTexture and BufferQueue such that share
no protected members. Created an consumer facing interface
for BufferQueue in preparation of connecting SurfaceTexture
and BufferQueue through a binder.

Change-Id: Iff55e740e36a7f70c9f7a17ee7a5af38e3d21f0f
ufferQueue.cpp
urfaceTexture.cpp
b856052c00dfef70d0957482c72c2979ffc4733a 31-Jan-2012 Daniel Lam <dalam@google.com> Refactored query function from SurfaceTexture into BufferQueue

Change-Id: Id1cb6cc38d01edb4fcfcad867c5a7693bdcc3ab1
ufferQueue.cpp
urfaceTexture.cpp
6b091c53000c843211c218ce40287a7edca9bc63 23-Jan-2012 Daniel Lam <dalam@google.com> Refactored ISurfaceTexture calls from SurfaceTexture into BufferQueue.

Change-Id: I514f6b802f6b49c9ae27bed37bf0b9d23da03c9a
ndroid.mk
ufferQueue.cpp
urfaceTexture.cpp
99fe3c6d3dcb6fb26bf283343f946d031b052dff 07-Feb-2012 Mathias Agopian <mathias@google.com> make sure to ignore SIGPIPE in the write side of BitTube

Change-Id: If4f037f4403d3ecbcd5f91248354765fc0fa13cb
itTube.cpp
99ce5cdeb383216dee95af4d90e47406b0948ea1 01-Feb-2012 Mathias Agopian <mathias@google.com> separate transactions from updates

with this changes, SF transactions are handled as soon as possible
but do not trigger updates. the update is delayed until the next
vsync.

this allows us to work much better without requiring triple-buffering.

Change-Id: I1fa10794d0cf742129f0877698b7b1e1f2ec7401
isplayEventReceiver.cpp
bff957f0bd0b7d4085dabaefb0852d428a807134 23-Jan-2012 Daniel Lam <dalam@google.com> SurfaceTexture: use fence sync on omap4 & s5pc110

This change enables the use of the EGL_KHR_fence_sync extension in
SurfaceTexture on omap4 and s5pc110 platforms.

Change-Id: Icad5245bab445413ffb8a7c823c296b678bf3250
ndroid.mk
1db13d79518f600d65a4fc006fe42900b890966e 19-Dec-2011 Glenn Kasten <gkasten@google.com> Get AID_GRAPHICS from right place

Change-Id: I97b1754dc7260fec083275c71a8f71ebfb2cefa8
SurfaceComposerClient.cpp
e6f43ddce78d6846af12550ff9193c5c6fe5844b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
itTube.cpp
isplayEventReceiver.cpp
SurfaceComposer.cpp
ensorEventQueue.cpp
ensorManager.cpp
urface.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
32397c1cd3327905173b36baa6fd1c579bc328ff 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
ensorManager.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
c267bab3d1c7980a03541283e88c0b6df378b826 05-Jan-2012 Steve Block <steveblock@google.com> Merge "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE"
2adea706d445e837053403a00286a21c00e22649 05-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use the standard CC_LIKELY and CC_UNLIKELY macros"
99ed22412db547c59d3da08114d9d5a586442b30 15-Dec-2011 Glenn Kasten <gkasten@google.com> Use the standard CC_LIKELY and CC_UNLIKELY macros

Several source files privately defined macros LIKELY and UNLIKELY in terms
of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and
CC_UNLIKELY which are intended for this purpose. So rename the private
uses to use the standard names.

In addition, AudioFlinger was relying on the macro expanding to extra ( ).

Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
SurfaceComposer.cpp
SurfaceComposerClient.cpp
a19954ab377b46dbcb9cbe8a6ab6d458f2e32bca 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
urfaceTexture.cpp
9d4536835248525f32f1504a3d28d5bbfa0a2910 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
urfaceTexture.cpp
urfaceTextureClient.cpp
ace62f2b79792222f964e2465821539da2813c06 13-Dec-2011 Jamie Gennis <jgennis@google.com> am 74e0fcae: am a1dee3f5: Merge "SurfaceTexture: fix a verbose-log compile error" into ics-mr1

* commit '74e0fcaed1cd20ae8632224ff5a5404ff1a6e497':
SurfaceTexture: fix a verbose-log compile error
988637e559cb76d53568b93571e41c728f2f1b1d 10-Dec-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a verbose-log compile error

Change-Id: I045231207e068d950bb0cb5085717af5d9454ed1
urfaceTexture.cpp
478ae5eb5a0047e1b2988c896cff6363b455ee50 07-Dec-2011 Mathias Agopian <mathias@google.com> Improve the VSYNC api a bit.

- add the ability to set the vsync delivery rate, when the rate is
set to N>1 (ie: receive every N vsync), SF process' is woken up for
all of vsync, but clients only see the every N events.

- add the concept of one-shot vsync events, with a call-back
to request the next one. currently the call-back is a binder IPC.

Change-Id: I09f71df0b0ba0d88ed997645e2e2497d553c9a1b
isplayEventReceiver.cpp
DisplayEventConnection.cpp
a4fbecd1198899a3a4e55795406a06e7c111b13e 30-Nov-2011 Mathias Agopian <mathias@google.com> am 55d3880e: am bb1e7d43: Merge changes I7e973a35,Ib3386fcc into ics-mr1

* commit '55d3880eed3450748eb7b97281e030902ee29c2a':
SurfaceTexture: add EGL_KHR_fence_sync option
SurfaceTexture: add a blit-to-FBO test
86edf4f6470ee0f108bf40d3c1d23bf0a78c9c38 14-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add EGL_KHR_fence_sync option

This change adds a compile-time option for SurfaceTexture to use the
EGL_KHR_fence_sync extension to synchronize access to Gralloc buffers.

Bug: 5122031
Change-Id: I7e973a358631fff5308acf377581b811911fe790
urfaceTexture.cpp
fe27e2f4688301629f38a06c34e3466c9889b3b1 12-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a blit-to-FBO test

This change adds a test for blitting (via GL rendering) from a
SurfaceTexture to an FBO.

Change-Id: Ib3386fcc3f37153277f3e37a26347441bb80ab58
ests/SurfaceTexture_test.cpp
d0566bc26fcf6ca396118701fa11900b627f2c09 18-Nov-2011 Mathias Agopian <mathias@google.com> Add support for sending VSYNC events to the framework

use gui/DisplayEvent to receive the events. Events are
dispatched through a unix pipe, so the API is compatible
with utils/Looper. see gui/DisplayEvent.h for more info.

Bug: 1475048
Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
ndroid.mk
isplayEventReceiver.cpp
DisplayEventConnection.cpp
SurfaceComposer.cpp
439cf8576d3b846c0aa0944d84372259bf075d51 29-Nov-2011 Mathias Agopian <mathias@google.com> Fix build.

Revert "Add support for sending VSYNC events to the framework"

This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.

Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
ndroid.mk
SurfaceComposer.cpp
461afeb9fde149f9455acbadf1257d08d33e8eb3 18-Nov-2011 Mathias Agopian <mathias@google.com> Add support for sending VSYNC events to the framework

use gui/DisplayEvent to receive the events. Events are
dispatched through a unix pipe, so the API is compatible
with utils/Looper. see gui/DisplayEvent.h for more info.

Bug: 1475048
Change-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794
ndroid.mk
SurfaceComposer.cpp
3ad3807a5c4039618175c042a1121c926c2c62e9 29-Nov-2011 Mathias Agopian <mathias@google.com> BitTube::read now handles EAGAIN

Change-Id: Iacda2386342ba0727bbf278f6c597488d5467bb8
itTube.cpp
41f673c9b3aac0d96e41c928845c39186d565212 18-Nov-2011 Mathias Agopian <mathias@google.com> split ComposerService out of SurfaceComposerClient.h

Change-Id: I1eb691f7ca263d5895d871ab675bb5826e0323c6
urfaceComposerClient.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/Surface_test.cpp
6b7c5da722128a89fb939bf3677d9cc04421e29f 22-Nov-2011 Mathias Agopian <mathias@google.com> am cc4d02e0: am 07a2d831: Merge "don\'t report an error when disconnecting from an abandoned surfacetexture" into ics-mr1

* commit 'cc4d02e0cbb99341a0508838c88eeef53180fdfd':
don't report an error when disconnecting from an abandoned surfacetexture
93a098fb6eb709aa404f1fb9febabddd2c35e785 22-Nov-2011 Mathias Agopian <mathias@google.com> am 8390cf39: am 8646cd42: Merge "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices" into ics-mr1

* commit '8390cf39f8a4f74f7baa91d23cba06894a3fb9b5':
enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices
185a0a0420f54f9588ec1c7230313023a7a2259b 22-Nov-2011 Jamie Gennis <jgennis@google.com> am c2597295: am 53cf2020: Merge changes I37fd43b5,I91eb29db,I0491ce35 into ics-mr1

* commit 'c25972950c2ea62fb085524dbe737c2bf0f08f4a':
SurfaceTexture: fix a couple tests
EGL: default to swap interval 1
SurfaceTexture: clean up some tests
7723773df352e413f30c8c49c188446c43f25cd3 22-Nov-2011 Mathias Agopian <mathias@google.com> Merge "don't report an error when disconnecting from an abandoned surfacetexture" into ics-mr1
75cf5a7480386856c76d40b301acf94eb329f5da 22-Nov-2011 Mathias Agopian <mathias@google.com> Merge "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices" into ics-mr1
e3603d7d090ba092c76f7e1c8ace3841154ab1a1 20-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a couple tests

This change fixes some robustness issues with the
EglDestroySurfaceUnrefsBuffers and
EglDestroySurfaceAfterAbandonUnrefsBuffers tests. The tests previously
depended upon GL implementation details that should not have been relied
upon.

Change-Id: I37fd43b56568efe1dbe69d85e892be8a1cf44d20
ests/SurfaceTexture_test.cpp
59769469e4b9b2d8b12c020eb44b030b3927a50b 20-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: default to swap interval 1

This change explicitly sets swap interval 1 on the window when an
EGLSurface is created to render to it.

Change-Id: I91eb29dbee3ae4a55076b921f084d503fbe94e03
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
6f4cdfe0dbe50d1cc0ce8c03451ab261e8ea3232 20-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: clean up some tests

This change cleans a few things up in the SurfaceTexture tests:
- Wraps a few long lines.
- Refactors the multithreading portions of SurfaceTextureGLToGLTest into
a new test fixture called SurfaceTextureGLThreadToGLTest.
- Changes some of the tests that were creating their own EGLSurface to
use the SurfaceTextureGLToGLTest fixture.
- Reorders the test functions so that they are immediately below to the
test fixture that they use.

Change-Id: I0491ce3528a7ff2b4f1e83602ba290269c087297
ests/SurfaceTexture_test.cpp
8bee68fac2dba0a72a58a243601d5d7d12e116e6 19-Nov-2011 Mathias Agopian <mathias@google.com> am d0df44b5: am 4d71053b: Merge "attempt to fix bug 5313580" into ics-mr1

* commit 'd0df44b5c979e00a19187cea35768ba26557e447':
attempt to fix bug 5313580
8b8a004148f2e6337dbf02ef8046d800bf300e89 18-Nov-2011 Mathias Agopian <mathias@google.com> don't report an error when disconnecting from an abandoned surfacetexture

this happens often with CPU Surfaces, which disconnect long
after their surfacetexture has been abandoned.

Change-Id: If49da03b72f99130e01b2b9bcbd444bb38f7ed4e
urfaceTexture.cpp
7c6eba666917308a64fadb0f0e08d7c041311976 15-Nov-2011 Mathias Agopian <mathias@google.com> enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices

this flag should be enabled for all targets, but currently
some have issues with it, so we're turning it on only for
tested targets.

this will hopefully resolve some performance issues.

Bug: 5553562, 5631630
Change-Id: I54c7a9e2068586898ab13e405d95534669260537
ndroid.mk
urfaceTexture.cpp
6285c6cf1076e15bef12da8800ed64e4bd6e2ec8 18-Nov-2011 Mathias Agopian <mathias@google.com> Merge "attempt to fix bug 5313580" into ics-mr1
b963e22ca29b5df1f527a5d4f35ba93788304e49 18-Nov-2011 Jamie Gennis <jgennis@google.com> am 9da22d2c: am 2ba13186: Merge "SurfaceTexture: fix a bug with buffer reallocation" into ics-mr1

* commit '9da22d2cc31069d86a92021d8540bb5a77c9591b':
SurfaceTexture: fix a bug with buffer reallocation
a36bcd53ac075054bb39ef506687f4daaf9bac6b 18-Nov-2011 Mathias Agopian <mathias@google.com> attempt to fix bug 5313580

the working theory here is that a Surface object has become non-promotable
because it lost its last reference; later Surface::readFromParcel is called
the previous surface is found in the cache, but can't be promoted. this causes
a new Surface object to be created which will promptly try to connect to the
CPU_API -- this in turn will fail because the previous (now dead) surface is
still connected.

To fix this, we make sure to disconnect from the SurfaceTexture when
Surface[TextureClient] is destroyed.

Change-Id: I422234868a05d7b7d283e9d5a85f7ab79e65d8a9
urfaceTextureClient.cpp
e984dd11c1c48bde7ce1054692db9a065f4df5f0 18-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: fix a bug with buffer reallocation" into ics-mr1
aaa3ecff4b49e0918c252e02b3aa18a3ad0d503d 18-Nov-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a bug with buffer reallocation

This change fixes an issue involving buffer reallocation and the
ALLOW_DEQUEUE_CURRENT_BUFFER mode in SurfaceTexture. The bug happened
when the buffer slot currently attached to the GL texture was selected
for dequeuing, but the dequeue operation caused the buffer to be
reallocated. Because the buffer is new, the image producer could fill
the buffer and queue it before an updateTexImage call, which would
result in the "slot %d is current" error in queueBuffer.

Bug: 5631630
Change-Id: Icdd8bc5cad3c7db43953446d9be2603aaea11a8d
urfaceTexture.cpp
1c46c42c165401566e037d3536480bd2c8c0f811 17-Nov-2011 Mathias Agopian <mathias@google.com> am abdade71: am 69c17a11: Merge "Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"" into ics-mr1

* commit 'abdade71bc17153696fe2abe281c5a3b0c2e5abe':
Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"
ccf5b9febc9486c67ace40fbfc53b49eadf2c159 17-Nov-2011 Jamie Gennis <jgennis@google.com> am 7765fc65: am fd6b64f6: Merge "SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call" into ics-mr1

* commit '7765fc651a9519dd2f0ac9d3374a50e9865c5c99':
SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call
c554d2b8ad94a367bc40d25666ab2c51ae95276f 17-Nov-2011 Mathias Agopian <mathias@google.com> Merge "Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"" into ics-mr1
c21180ee67d645ebe0a0f381e18790609016f6c6 17-Nov-2011 Mathias Agopian <mathias@google.com> Revert "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices"

This reverts commit e7758be6da85728df6b4215f413660c67c5a9740.

Seemed to cause failures un SurfaceTexture.

Bug: 5627450
ndroid.mk
urfaceTexture.cpp
c1ef3c4d7d008b04331c56490ec755f040b3e57a 16-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call" into ics-mr1
029f760674b90a1265249b0ea4c9d5d42e2b4454 15-Nov-2011 Mathias Agopian <mathias@google.com> am 556a406c: am 3aa684ec: Merge "enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices" into ics-mr1

* commit '556a406cf4dd8a7faa318e0d522d899f8b9da7dc':
enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices
a929748ddb67cbece3337c7fda7877fdeb973aa4 10-Nov-2011 Sunita Nadampalli <sunitan@ti.com> SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call

Surface Texture dequeue logic is modified to return the oldest of the
free buffers to Client on dequeue call.

Currently dequeue method is returning the first buffer index which is free.
The parsing is done in ascending order of the buffer slot indices.
This leads to returning the buffer which has been just queued to composer,
and hence display, and this defeats the purpose of having minimum dequeue count
as 2 in asynchrnouse mode.

This is fixed by checking all the free slots and returning the oldest buffer.

Change-Id: Ibbac10593c3994c278c601af0480b171635ecdd4
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
urfaceTexture.cpp
251ce852cc1f29808ed9537dae00a9ef7e58edcf 15-Nov-2011 Mathias Agopian <mathias@google.com> enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices

this flag should be enabled for all targets, but currently
some have issues with it, so we're turning it on only for
tested targets.

this will hopefully resolve some performance issues.

Bug: 5553562
Change-Id: I939992b4cd0debea980dec0127c72be2dff33af8
ndroid.mk
urfaceTexture.cpp
8c11963dda80d4add300520a8863bed39231825d 14-Nov-2011 Mathias Agopian <mathias@google.com> am 738d8cae: am c93a151f: Merge "Define, document, and test the behavior of very large SurfaceTextures" into ics-mr1

* commit '738d8cae2239d194429676f2889cfae3c8f7ba08':
Define, document, and test the behavior of very large SurfaceTextures
194c76c0477189700fda068e19b953b1d9af201a 10-Nov-2011 Mathias Agopian <mathias@google.com> Define, document, and test the behavior of very large SurfaceTextures

updateTexImage() now throws a runtime exception when its native
counterpart fails

Bug: 5506633

Change-Id: I151a6f685d465966e7df4df624412ab2da62e95f
ests/SurfaceTexture_test.cpp
eade85c60c8b2a199d45a02ea7496409d771b25d 03-Nov-2011 Jamie Gennis <jgennis@google.com> am c5ce130f: Merge "SurfaceTexture: various logging improvements" into ics-mr1

* commit 'c5ce130f658303299bf55091373951f7fd33ae36':
SurfaceTexture: various logging improvements
6ee96ad6a3da260f2473f78ea0582fd0970cf156 19-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: various logging improvements

Change-Id: I1f7216276547a1e9f9343c88c6cc1c24efcdcdbc
urfaceTexture.cpp
7796e962da502e0adaff0d407023f731a83a422f 26-Oct-2011 Mathias Agopian <mathias@google.com> Merge "Rename SensorChannel to BitTube"
6807e59e0ff943cc6225d46e3c33a8a7eae9b3d7 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTexture_test.cpp
5cae0d0699a169e468fff3e21165f35db12f2cde 21-Oct-2011 Mathias Agopian <mathias@google.com> Rename SensorChannel to BitTube
ndroid.mk
itTube.cpp
SensorEventConnection.cpp
ensorChannel.cpp
ensorEventQueue.cpp
83d3fa10d5d53308fafee8e702ac4dc86dc8383f 20-Oct-2011 Jesse Hall <jessehall@google.com> Merge "SurfaceTexture: add tests for buffer leaks"
79e3125d56cca5aba88097b5ccd4f1e128bc8141 20-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add tests for buffer leaks

This change adds two tests to ensure that eglDestroySurface does not
cause Gralloc buffers to be leaked.

Bug: 5472838
Change-Id: Id675d74e34b6479f2d68314d40de94aede69f142
ests/SurfaceTexture_test.cpp
baf0e06dea2300ed79fb5874b706eb4115fc2ad7 19-Oct-2011 Jamie Gennis <jgennis@google.com> am 827d069a: Merge "SurfaceTexture: free buffers when disconnect fails" into ics-mr0

* commit '827d069afb297b6d96c995c03da9d4ee17e60679':
SurfaceTexture: free buffers when disconnect fails
13c5ca3b5562ac673a08b17790d89460729c6e7d 19-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: free buffers when disconnect fails

This change makes SurfaceTextureClient free its references to all the
buffers even when the disconnect binder call to the SurfaceTexture
fails.

Bug: 5384823
Change-Id: Iad787fbae5fda4769546fd52276e4e4030c62be6
urfaceTextureClient.cpp
7731f4eb63a128b31484d4014c18e74c6a32c18a 18-Oct-2011 Mathias Agopian <mathias@google.com> am 9a0732af: Merge "SensorManager reconnects to sensor service when the later dies" into ics-mr0

* commit '9a0732af1bd96a7d8247dee124a7da389137a52f':
SensorManager reconnects to sensor service when the later dies
0ee55fd4e51bb340587730a68f4b52cce288d97b 18-Oct-2011 Mathias Agopian <mathias@google.com> Merge "SensorManager reconnects to sensor service when the later dies" into ics-mr0
31218730d4d3f36d897ba6020c629d6b29ad0d5d 17-Oct-2011 Jamie Gennis <jgennis@google.com> am 3a735078: Merge "SurfaceTexture: report binder transaction failures" into ics-mr0

* commit '3a73507801b56da83140fad14a1a3d4eced213d9':
SurfaceTexture: report binder transaction failures
2532077bb664860b7177b1e932af1448881574e5 17-Oct-2011 Mathias Agopian <mathias@google.com> am fefffc68: Merge "add logging and defensive code when initializing sensors" into ics-mr0

* commit 'fefffc685ab703b44f6e32b5ec45292b22d370a3':
add logging and defensive code when initializing sensors
8e42e48f4ea6bd8988a2ab5667601564d6f6b9ee 17-Oct-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: report binder transaction failures" into ics-mr0
1a2b83a17d3bdb2440b8b5b96136f7916a5528b5 17-Oct-2011 Mathias Agopian <mathias@google.com> SensorManager reconnects to sensor service when the later dies

if system process ever restarted, processes using a SensorManager
would loose the ability to use it, resulting to a crash.
we now listen for sensor service death and reconnected if necessary.

Bug: 5445240
Change-Id: Ia47f8b26cdcecb729fa22bf11d55e10fcaef8cfc
ensorManager.cpp
be58de0d627fa0ecb087eeff95da13c783bf2392 16-Oct-2011 Mathias Agopian <mathias@google.com> add logging and defensive code when initializing sensors

Bug: 5445240
Change-Id: I9dc7d27d3e8b4f15989488859831526d8c7ded3b
ensorManager.cpp
28378392fd5aa3e0a392c9eb64634055678c3987 13-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: make sync transactions explicit

This change enables a layer or orientation update transaction sent to
SurfaceFlinger to explicitly request a synchronous transaction.

Change-Id: I97cbba610c13679849f66114b216fa6dbf12f2a9
SurfaceComposer.cpp
urfaceComposerClient.cpp
8a29ff2a356816694c695db70460f93c7fb4ae6f 15-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: report binder transaction failures

This change fixes the ISurfaceTexture error reporting for the case where
the binder transaction fails.

Bug: 5082219
Change-Id: I6517532992e3a76dc9eb5e4a36af43a562391aaa
SurfaceTexture.cpp
c901ca0abc0a7b90deb8754ae48542de0bfd1567 12-Oct-2011 Jamie Gennis <jgennis@google.com> Surface: fix a protected buffer test

This change renames the ScreenshotsOfProtectedBuffersFail to
ScreenshotsOfProtectedBuffersSucceed and changes the test to verify that
the screenshot succeeds.

Change-Id: I960bb8eed4211578cb4dc446b08392937da064b6
ests/Surface_test.cpp
b8d69a55f1c187a35ac41e69de63251f5501b6f4 11-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: update orientation via transactions

This change merges the ISurfaceComposer::setOrientation functionality
into ISurfaceComposer::setTransactionState. It enables the window
manager to atomically update both the display orientation and the
position and size of the windows in a single transaction with
SurfaceFlinger.

Bug: 5439574
Change-Id: I18a8ccc564d7d760ef8afb2d015ccdb7a7963900
SurfaceComposer.cpp
urfaceComposerClient.cpp
fb1b5a2f333800574b0da435d1200cf9b13d723f 28-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: parameterize the texture target

This change adds a hack to allow Android Browser to use a SurfaceTexture
to stream RGBA images to a GL_TEXTURE_2D texture object.

Change-Id: Idb90064d5d4b920959ef3be7451362ac5012460e
urfaceTexture.cpp
fa28c35c21d1bf8b38f541758c291bc17a2d7270 17-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add name support

This change adds support for setting a string that can be used to
identify a SurfaceTexture object in log messages.

Change-Id: Ib4ee085f36c8830dc964c05ef1654f5a55dfcd60
urfaceTexture.cpp
06649fece4d97a89c6b197a570b6012e9ad9d228 16-Sep-2011 Mathias Agopian <mathias@google.com> cleanup: fix typos in logs

Change-Id: Ib5744564a873ea2b84100174673dc4d3ae109fcf
urfaceTexture.cpp
7f739ae68c57435964f69c397ec0cf344d0701a2 05-Sep-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: fix a test deadlock"
66378c63e6f1c51147f21d098a5568e0724c152d 03-Sep-2011 Pannag Sanketi <psanketi@google.com> Error check in queuebuffer in SurfaceTextureClient

In queuebuffer, if the surfacetexture returns an error,
surfacetextureclient should check for that and pass on the error.

Change-Id: Ie6d70e779fac0702f372eb4df5ecb655280875ee
urfaceTextureClient.cpp
bc82a96491d545b4a2a44ff536bd4f06b724372d 31-Aug-2011 Xia Wang <xiaw@google.com> Merge "Integreate surfacetexture test into our continuous test framework."
4c875166c8d186de29e254c28261ac576930ab98 31-Aug-2011 Xia Wang <xiaw@google.com> Integreate surfacetexture test into our continuous test framework.

Change-Id: Ic481f3a431166851947676d676749543c7afbbf7
ests/Android.mk
e68a52b0a2fbf239c23e622bda45ae50ee7e82ab 31-Aug-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a test deadlock

This change fixes a test issue that resulted in a deadlock.

Change-Id: I4729e8dd47c8f5fea49bfeff3cea58627ead6d04
Bug: 5174876
ests/SurfaceTexture_test.cpp
41b6aabf356d8a505da37b1d046bc9010028fe8b 31-Aug-2011 Mathias Agopian <mathias@google.com> fix Surface positions are not floats

Added Surface.setPosition(float, float) which allows to set a surface's
position in float.

Bug: 5239859
Change-Id: I903aef4ad5b5999142202fb8ea30fe216d805711
urfaceComposerClient.cpp
70e3f81d0fbc92394928c44fb0137787a8595665 26-Aug-2011 Mathias Agopian <mathias@google.com> make sure to re-initialize SurfaceTexture to its default state on disconnect

this caused problems where the NavigationBar would disapear or be
drawn in the wrong orientation.

Change-Id: I083c41338db83a4afd14f427caec2f31c180d734
urfaceTexture.cpp
urfaceTextureClient.cpp
87a96ea9eae3f998381735ec65496e256f871c3c 24-Aug-2011 Mathias Agopian <mathias@google.com> Fix an issue where Surface::lock() would never update the output region

this bug was introduced recently. in some situations Surface::lock()
is not able to preserve the content of the back buffer and needs
to tell the caller to redraw everything.

Bug: 5186460
Change-Id: I14e03939ddfc1b7ad2a8b99ad79435314c60e78e
urface.cpp
7f7e85898f6dd9325418a2d2a30a8df48e52b66d 18-Aug-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: fix queues-to-composer"
582270d69db94286a248bd829f1ae6f910d45124 18-Aug-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix queues-to-composer

This change fixes the NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER query of
Surface and SurfaceTextureClient. Surface now uses the inherited
SurfaceTextureClient implementation of this query. SurfaceTextureClient
now queries SurfaceFlinger to determine whether buffers that are queued
to its ISurfaceTexture will be sent to SurfaceFlinger (as opposed to
some other process).

Change-Id: Iff187e72f30d454229f07f896b438198978270a8
SurfaceComposer.cpp
urface.cpp
urfaceTextureClient.cpp
29b5762efc359022168e5099c1d17925444d3147 18-Aug-2011 Mathias Agopian <mathias@google.com> don't return the current buffer from dequeueBuffer

we were not reseting mCurrentTexture in some situations
which in turn caused dequeueBuffers() return a
"FREE" buffer that was also current.
Very often it was harmless, but it created a race with
updateTexImage() which could cause the following
queueBuffers() to fail.

Bug: 5156325
Change-Id: If15a31dc869117543d220d6e5562c57116cbabdb
urfaceTexture.cpp
3902be629bd94de62db0039004d0b25556227cbf 17-Aug-2011 Mathias Agopian <mathias@google.com> fix a small race condition when returning the default width/height of a SurfaceTexture

Change-Id: I581bf609505dfb5d4ec5957b2ef2c77df6cfb15f
urfaceTexture.cpp
4925ee11f980cdeba1166fe07a6b59ff88b25d5c 11-Aug-2011 Dave Burke <daveburke@google.com> Revert "error out when SurfaceTexture APIs are called while not connected"

This reverts commit a04cda9986366ab480ad8008c4d923271b05d78e.

Conflicts:

include/gui/SurfaceTexture.h
libs/gui/SurfaceTexture.cpp

Change-Id: Ib655016462c496ee2a27f7cb33a6e8b18cfe684a
urfaceTexture.cpp
3477588d13a8dfb4fefe01a8c81c0c74f8f5c72f 11-Aug-2011 Mathias Agopian <mathias@google.com> Merge "Read leftover parcel data when a parceled Surface is found in the cache."
8e19c2e97e11505ee2ecf336275fd956f2ccfa22 11-Aug-2011 Mathias Agopian <mathias@google.com> fix a crasher in SurfaceTexture::updateTexImage()

we now make sure to drain the buffer queue on disconnect.
this happens only when in synchrnous mode. in async mode
we clear all buffers except the head of the queue.

for extra safety we also catch the null pointer
in updateTexImage (which should never happen) and return
an error.

Bug: 5111008

Change-Id: I5174a6ecbb0de641c6510ef56a611cbb4e9e1f59
urfaceTexture.cpp
2560d14ce8e38984032d999e3fdf8da9a47baf3c 11-Aug-2011 Mathias Agopian <mathias@google.com> rework dequeueBuffer()'s main loop.

this simplifies the code a bit and also makes sure
we reevaluate mAbandoned and mConnectedApi each time
we come back from waiting on mDequeueCondition

Change-Id: I1f8538b62ad321b51ed79d953b700036daba796d
urfaceTexture.cpp
ef51b992192adf4fc432686ab346f5fc7a13bc95 11-Aug-2011 Mathias Agopian <mathias@google.com> error out when SurfaceTexture APIs are called while not connected

- also log a warning when freeAllBuffers is called with a non empty buffer queue
- rename freeAllBuffers to freeAllBuffersLocked

Change-Id: Idb71fdcf233b9ccae62d5a2a7c3c4bad2501d877
urfaceTexture.cpp
e5d6eb81e29e0fb914ce8fdaae17190b0dbae1a1 10-Aug-2011 Ted Bonkenburg <tedbo@google.com> Read leftover parcel data when a parceled Surface is found in the cache.

This fixes an issue where the Surface readFromParcel code was leaving
unread parcel data in the case where the Surface was re-used from the
sCachedSurfaces cache. On a cache miss the code is creating a new
Surface from the remainder of the parcel data. On a hit that data was
being left unread, so anything that parcels a Surface followed by
additional arguments may end up reading the wrong values.

Change-Id: I25365159d945c125bd1fcc9f17e39a4f00aece55
urface.cpp
2db6f0a40b7f4d903f546e94af762f141953ebb2 10-Aug-2011 Mathias Agopian <mathias@google.com> fix a crasher in dumpsys

Bug: 5141729
Change-Id: Ib104d49c8660621180966be099198fe29c5bebf5
urfaceTexture.cpp
b0c15c9908d9e61554b04c7469b62618e7778167 09-Aug-2011 Mathias Agopian <mathias@google.com> free all buffers when ANativeWindow::disconnect is called

Change-Id: Ie06e73e5b44398cda9e99876f78175b5eef765dc
urfaceTexture.cpp
5bfc24515bb5c8ea7975f72d538df37753733a2f 09-Aug-2011 Mathias Agopian <mathias@google.com> return correct value from query after connecting a surface

the first time a surface was connected, the values returned
by query NATIVE_WINDOW_DEFAULT_{WIDTH|HEIGHT} and
NATIVE_WINDOW_TRANSFORM_HINT were wrong until a call
to queueBuffer was performed.

Bug: 5137366, 5121607
Change-Id: I7ac6b5b0daa876638f6bed7c20f286a6e6d984f6
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
af08d8ab6dd2188544ca4f038f33c1c4ed8447cf 09-Aug-2011 Mathias Agopian <mathias@google.com> Merge "improve dumpsys SurfaceFlinger output"
e47498f8f258967ff62d070f08ff2dadd4ae2b56 09-Aug-2011 Mathias Agopian <mathias@google.com> add some logs to track a crash in eglCreateImageKHR

Bug: 5111008

Change-Id: I3e7f5b986151e80cbded39e0dec057770da52fc1
urfaceTexture.cpp
ad795baecccf239621cbffa0249c8e855296cae6 09-Aug-2011 Mathias Agopian <mathias@google.com> improve dumpsys SurfaceFlinger output

we now output the handle and size of all buffers of each layer.

Change-Id: I8d011ee4ae9199f4198bd07bed770ec3bcf02986
urfaceTexture.cpp
97a9884edcc6fbb311386ecfcd6e3045437f0df0 04-Aug-2011 Mathias Agopian <mathias@google.com> Add a 'release' method to the SurfaceTexture public Java API

Bug: 5063618
Change-Id: I689cb0c01c14e597ccfb4eb0972e64fa570bd4e8
urfaceTexture.cpp
d05b34a07940f3d6009b90b3eda067a2d0a35d2c 02-Aug-2011 Mathias Agopian <mathias@google.com> Merge "connect/disconnect is now called from our EGL wrapper"
81a63350527cafce6929309533c58586878f10b5 30-Jul-2011 Mathias Agopian <mathias@google.com> connect/disconnect is now called from our EGL wrapper

the original connect/disconnect hooks are deprecated
and replace by api_connect/api_disconnect. the original
hooks are no no-ops.
api_connect/api_disconnect is now only called from the
android framework.

Bug: 5057915
Change-Id: I8ca64cd1acd6cabf915bf54689ec2e5f6dfa495a
urfaceTextureClient.cpp
1c121f68fc6ac4abff17203b55253d6aeee64bc5 31-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: allow set_buffer_count(2)

This change relaxes an error check in SurfaceTexture::setBufferCount to
allow clients to explicitly set a buffer count of 2. The clients that
will do this are camera and video decode. Previously it was thought
that for those clients we would always use async mode, which requires a
minimum of 3 buffers. However, we now believe that for some devices it
may make sense to use synchronous mode (with 2 buffers) to reduce memory
usage.

Bug: 5088418
Change-Id: I620a0ef75075745be9d6c8219e0246aaf33ba950
urfaceTexture.cpp
96e108271bb5da44a130c8b5976fc63879403735 26-Jul-2011 Mathias Agopian <mathias@google.com> Merge "remove dead code and member variables."
3fbce7c56082e4e0d23f1c1c89983d3841853ed7 26-Jul-2011 Mathias Agopian <mathias@google.com> remove dead code and member variables.

also fix some comments and improve debugging logs.

Change-Id: I83e55309f306332b59e1ec46104c4a7fffbf3c97
urfaceTexture.cpp
urfaceTextureClient.cpp
fa1e002cec5dc33ebe52685dc81d644f783811a8 25-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: enable RGB external textures"
8d14330bd7c8ce855efb2284b306a314759ac4df 25-Jul-2011 Ted Bonkenburg <tedbo@google.com> Merge "Add support for creating a Surface from a a SurfaceTexture."
bd050ab2af1421d527d1a80ce59dd8d9940a838c 16-Jul-2011 Ted Bonkenburg <tedbo@google.com> Add support for creating a Surface from a a SurfaceTexture.

The Surface is already using SurfaceTexture internally and it is parcelable. This
is intended to replace and phase out ParcelSurfaceTexture in favor of creating a
new Surface.java object from an existing SurfaceTexture.

Change-Id: I8e2dd86614523da6abed6403e1d705a68fa19fdf
urface.cpp
1f8e09f40d16ae377164d86e91385ad3d8e78e82 20-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: enable RGB external textures

This change removes support for conditionally using the GL_TEXTURE_2D
target for SurfaceTexture textures with RGB buffers. It also enables
and fixes the RGB-based SurfaceTexture tests.

Change-Id: I9a251a981cf66af6b048b2e4c3fe7231e4774f4d
urfaceTexture.cpp
ests/SurfaceTexture_test.cpp
7b305fffc39d0fe0926e7fd2d7f6a524fbce62b7 19-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add the abandon method.

This change adds the 'abandon' method to the SurfaceTexture C++ class.
This method may be used to put the SurfaceTexture in an abandoned state,
causing all ISurfaceTexture methods to fail.

Change-Id: Ibd261f7b73f44e2bec36a8508bf92113cfb7cf95
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTexture_test.cpp
6e50219aee68ae6e76943f969374dae1b27154b3 21-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a deadlock scenario test

This change adds a test to ensure that a GL driver that's blocking on a
call to dequeueBuffer does not block other GL threads from rendering and
queueing buffers.

Change-Id: Ifdd234effc534b6a9cf8522ca87f64da5bb0bbd6
ests/SurfaceTexture_test.cpp
1259e9d6ac474f3e9dec8569fb694c61eeeef4d3 22-Jul-2011 Jamie Gennis <jgennis@google.com> Merge changes I799532f7,I5cffa6eb

* changes:
SurfaceTexture: fix a comment
SurfaceTexture: remove getAllocator
bb66c9b5a9c16dee93559eb738746a2d0a9b2db3 21-Jul-2011 Mathias Agopian <mathias@google.com> Fix a few issues with NATIVE_WINDOW_TRANSFORM_HINT

- fixed uninitialized variable
- set hint to indentity when transform is too complex
- make sure FrameBufferNativeWindow doesn't fail on needed perform commands

Bug: 4487161
Change-Id: I7cb2b0869b72404732eca7cb2d145ff669e2ed9b
urfaceTextureClient.cpp
976f494d53cb239307fd810ce592b5b5de1cbc41 19-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: remove getAllocator

This change removes the SurfaceTexture::getAllocator method, as it's no
longer needed. Proper refcounting of the Gralloc buffers is now handled
by the IGraphicBufferAlloc binder marshalling code.

Change-Id: I5cffa6ebfc1bc5828fb7ce0e0a5b2f55cd8479da
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
c10d9d90b2088a3304076e0dc4bf05cdbb5d45ab 21-Jul-2011 Mathias Agopian <mathias@google.com> clean-up. get rid ofunused code and members in Surface[Control].cpp

Change-Id: Ia7790ae28af2c2ac99eae01c2c5044ace4a490a4
SurfaceComposerClient.cpp
urface.cpp
urfaceComposerClient.cpp
ests/SurfaceTextureClient_test.cpp
97c602c5af5f3ffd69009bf496d86347b71a2b4c 20-Jul-2011 Mathias Agopian <mathias@google.com> implement: "Add an ANativeWindow API for SurfaceFlinger to suggest an optimal buffer orientation"

Bug: 4487161
Change-Id: I883f34efe542c2a566d04966f873374f40c50092
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
933389f75814bb62e8153528f9cff2cb329b77df 19-Jul-2011 Mathias Agopian <mathias@google.com> use SurfaceTexture new scaling mode in SF

SF now obeys SurfaceTexture's scaling mode instead
of inferring it from the buffer's size

Change-Id: I4d50e9851abedd7e64bfcfc8af9eefb9fb668529
urfaceTexture.cpp
urfaceTextureClient.cpp
7734ebfe47f42f980c1b44c1f284a91d8ad1d6c7 14-Jul-2011 Mathias Agopian <mathias@google.com> Add set_scaling_mode() to ANativeWindow.

This allows to specify the scaling mode independently from
the buffer size.

Change-Id: Iaa2baa660445531a97d3fac192e580f4929c5d3b
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
a2f3b90d986936b6584331efd766b4996ff74b5a 19-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: add a multi-SurfaceTexture test"
8f9dbf9e13b927de2524116c30544f7dfbbbf56c 14-Jul-2011 Mathias Agopian <mathias@google.com> move lock/unlock implementaion outside of Surface into SurfaceTextureClient

This makes ANativeWindow_lock/ANativeWindow_unlockAndPost work
with ANativeWindows implemented by Surface and SurfaceTextureClient.

Also, Surface now inherits directly from SurfaceTextureClient.

Bug: 5003724
Change-Id: I9f285877c7bae9a262e9a7af91c2bae78804b2ef
urface.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
0b7c4953a1995e22932ee93a7f494a79547e19c8 15-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: fix SurfaceTextureGLToGLTest"
2773004a83624ed41cf3f94f2b11878cd8521812 15-Jul-2011 Mathias Agopian <mathias@google.com> fix a typo in ISurfaceTexture IPC code

Change-Id: Ied1d9ddb0d849b17219d0ea3d333ce12be849419
SurfaceTexture.cpp
677517ae3f380e701a47abe4738b748fb3ca161d 15-Jul-2011 Jamie Gennis <jgennis@google.com> Merge changes Id9aa1003,I8c154189

* changes:
SurfaceTexture: make (dis)connect into an IPC
SurfaceTexture: add support for new connect values
fe0a87b54654a1392650e7f1862df473287d8332 14-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: make (dis)connect into an IPC

This change makes the ANativeWindow connect and disconnect calls result
in an IPC to the SurfaceTexture object. This will allow us to prevent
multiple simultaneous connections from different processes.

Change-Id: Id9aa1003b1335b96ca6bd4a1f5a67aa433d42efb
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
2640bfd1680b1be023aae091503ffbda707e3234 15-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix SurfaceTextureGLToGLTest

This change fixes a couple different issues in the
SurfaceTextureGLToGLTest test fixture:
- incorrect use of conditions
- move logging after the locks are acquired
- call the parent class's TearDown method
- clean up the SurfaceTexture before eglTerminate gets called

Change-Id: I6960e5ab7f144225f01a2089d3f849c99fed0b38
ests/SurfaceTexture_test.cpp
3e646d62e5b99bf479c775e88fa8324229a0670f 13-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add support for new connect values

This change adds support to SurfaceTextureClient for the new enum values
that can be passed to the ANativeWindow connect call.

Change-Id: I8c15418909e43a15673a9b22a5eb40df6923b273
urfaceTextureClient.cpp
71753982479b9a68e36d43fbb58de0331ea5797c 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Remove the simulator target from all makefiles. Bug: 5010576"
baa44b89ec159fd65230cbb8ebab62d63a513b0b 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
ests/Android.mk
c8251a06df70de70d45ac477af816dcee7580205 12-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a multi-SurfaceTexture test

This change adds a test that does simple, unverified GL rendering to
multiple SurfaceTextures.

Change-Id: I51a41d68ae5a27e01ae93842242897b0d3558ca6
ests/SurfaceTextureClient_test.cpp
bee205fd58a27c10a0895de5339e76025d429d2b 01-Jul-2011 Jamie Gennis <jgennis@google.com> EGL: fix the ANativeWindow size/fmt override

This change fixes how the Android EGL layer overrides the size and
format of an ANativeWindow in eglCreateWindowSurface. The new behavior
is to leave the size untouched when overriding the format. The previous
behavior was to reset the ANativeWindow to use the default size set by
the ANativeWindow implementation.

It also adds two new 'perform' methods to the ANativeWindow interface:
set_buffers_dimensions and set_buffers_format, and redefines the
behavior of set_buffers_geometry to be the combination of these two new
methods.

Additionally, this change adds an error check for the return value of
the new native_window_set_buffers_format call, which required adding a
(stub) handler for to FramebufferNativeWindow.

Change-Id: I805c7ccd8d4730dfb132d10d8bc3fb058a0b9df1
urfaceTextureClient.cpp
798ff739a1da6bea3f5f3ff13b580062e1a3a03a 07-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: enable newly passing tests."
47dd726460e3a02ec80f14e300bb3a42884fc1e5 06-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: enable newly passing tests.

This change enables the following four SurfaceTextures tests:
UpdateTexImageBeforeFrameFinishedWorks
UpdateTexImageAfterFrameFinishedWorks
RepeatedUpdateTexImageBeforeFrameFinishedWorks
RepeatedUpdateTexImageAfterFrameFinishedWorks

Change-Id: I7632630bc97873e50d4a765ffc44a86f16ae62f1
ests/SurfaceTexture_test.cpp
9303eee7dcfc340b2aa598b617e02cd361baa5cc 02-Jul-2011 Mathias Agopian <mathias@google.com> fix ScreenshotsOfProtectedBuffersFail

- put the test window at the front most screen position
- use RGBA_8888 which is a mandatory format
- handle devices that don't support the protected usage flags

Bug: 4950464

Change-Id: I0005fb667cfe094e5978816e2924b294c5ef817e
ests/Surface_test.cpp
d9e8c64c3dce1612eb948a5c16ba4ff62202b423 01-Jul-2011 Mathias Agopian <mathias@google.com> return an error code with gralloc buffer allocation failures

Change-Id: I471e5d37ea7a42fc8a0f93446ee3b4229da37807
GraphicBufferAlloc.cpp
urfaceTexture.cpp
19e0a8bfe9a15543b0bd7991cce08e5362e9f5cd 01-Jul-2011 Pannag Sanketi <psanketi@google.com> Merge "Minor fix in SurfaceTexture"
292a31a4c2ae2f6faf134e8e4a726583017dad06 24-Jun-2011 Pannag Sanketi <psanketi@google.com> Minor fix in SurfaceTexture

Change-Id: Ic859715becf3e6d5107bd8beb8c577034d00ec52
urfaceTexture.cpp
698c0873cf2e07bdc7fd1e72169aee2a19fa40d7 29-Jun-2011 Mathias Agopian <mathias@google.com> SF transactions are now O(1) wrt IPC instead of O(N).

Change-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
urfaceComposerClient.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
dfcff4b4ef8b602ba485848b394b16d14847821e 17-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a CPU -> GL sync test.

This change adds a test to verify that proper synchronization is done
when using SurfaceTexture to use CPU generated images as OpenGL ES
textures in 'synchronous mode'. Synchronous mode is particularly tricky
because SurfaceTexture will allow the buffer that's currently bound to
the GL texture to be dequeued. We rely on Gralloc's lock function to
block until this buffer is no longer being used by the OpenGL ES.

Change-Id: I1c4e37f3e9d60ab9a0905a90a1f5060fda8e485c
ests/SurfaceTexture_test.cpp
50c4efc2a44fd312febeda76c8d1a6dc42cee8f8 28-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: consume buffers after err checks

This change moves the point at which queued buffers get consumed to
after any error checks that could cause updateTexImage to fail. This
way, if updateTexImage returns an error the buffer remains queued.
urfaceTexture.cpp
3d8063b02e06020c8062addcc9ec49048d3bdb9a 27-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: change onFrameAvailable behavior

This change alters the conditions under which the onFrameAvailable
callback gets called by the C++ SurfaceTexture class. The new behavior
is to call the callback whenever a frame gets queued that will be
visible to the buffer consumer. This means that buffers queued in
synchronous mode always trigger the callback, as those buffers will
remain pending until they are consumed. Buffers queued in asynchronous
mode will only trigger the callback if there was not previously an
unconsumed buffer pending.

The new behavior means that a consumer should perform a draw operation
exactly once for every onFrameAvailable call that it recieves. This
change also modifies SurfaceFlinger and the SurfaceTexture JNI to
support of the new behavior.

Change-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40
urfaceTexture.cpp
14a0e58074f2698829b6554f578e6762c377caa3 24-Jun-2011 Grace Kloba <klobag@google.com> Add allowSynchronousMode to SurfaceTexture constructor.

Change-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304
urfaceTexture.cpp
1e7fa9e945d98eab76ff92f37c25040429a6c0a0 23-Jun-2011 tedbo <tedbo@google.com> Add method to create a ParcelSurfaceTexture from android.view.Surface.

Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
urface.cpp
c8c5152b19e20abe76dbc63b782700ae01aa4116 15-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: make tests use a large framebuffer.

This change makes the SurfaceTexture GL tests use a large (512x512)
framebuffer. The tests now use glViewport to render to a region of the
framebuffer with a size matching that of the texture being drawn. The
Npot test pixel checks must be changed because now the rendered region
is the same size as the texture.

Change-Id: Icc41803189c25e33ba1da7d2470720f0a11f3e4b
ests/SurfaceTexture_test.cpp
b36bb97ae37a0fbcb6a35770eb86ac5931409d0d 21-Jun-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: fix a NULL ptr dereference."
1c4414091cfb93206067fb64eba445653739d40f 20-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a NULL ptr dereference.

This change adds a NULL check when searching the slot list in
SurfaceTextureClient for the slot corresponding to a buffer being
queued or canceled.

Bug: 4645023
Change-Id: I806cbc1e34da118ea33a83c4f25ce8193ba1c3ad
urfaceTextureClient.cpp
07ed1a94bcad9b78b20f74f890d4271099da3a97 15-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: enable a test that now passes.

This change enables the QueryFormatAfterSettingWorks.

Change-Id: Ic868011a36a6c86c8646880246cd5b6960a13364
ests/SurfaceTextureClient_test.cpp
d05bb2ed4c99894965134994cf23c9e47274f56e 15-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: enable a test that is now passing.

This change enables the TexturingFromCpuFilledYV12BufferPow2 test.

Change-Id: Ib356ee3d2f8979f34f849fd4090f598295e2e92e
ests/SurfaceTexture_test.cpp
5dd0c4fd7efcb99bdd346ed01f1a8f1d2baa8ef1 14-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: increase the test's Surface layer.

This change increases the Surface layer used for displaying the test
results so that the tests will be visible over other windows in the
system.

Change-Id: I47f147f8743ff2a39d57d551811668371202bd31
ests/SurfaceTexture_test.cpp
1876d13e45ae044d4c1f6f2ee176f52f22d8a26c 18-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add some RGBA_8888 tests.

Change-Id: Id09915c98a00eca1209b7dab32039a06d260908e
ests/SurfaceTexture_test.cpp
8b69defa2fe2cf6a34b00e322a557d8a4dddea41 07-Apr-2011 Jamie Gennis <jgennis@google.com> SurfaceTextureClient: minor test refactoring.

Change-Id: Iabc6d27ca35d30d896c6aef65c4f1b5a1eed47b8
ests/SurfaceTextureClient_test.cpp
135abde4c24db77915407e3d9d2478c237638684 14-Jun-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: add a format querying test."
80728d87c9db75d07fafc80e8d5c5f8dd6a58359 14-Jun-2011 Mathias Agopian <mathias@google.com> Merge changes I9b8e1962,I7bb843ca

* changes:
Temporarily don't return the current buffer in synchronous mode
unify SurfaceTexture and Surface
e122079be632b849a71181d83a6d38b701f642f5 05-May-2011 Mathias Agopian <mathias@google.com> Temporarily don't return the current buffer in synchronous mode

activate synchronous mode by default.
urfaceTexture.cpp
ests/SurfaceTextureClient_test.cpp
a67932fe6864ac346e7f78b86df11cf6c5344137 20-Apr-2011 Mathias Agopian <mathias@google.com> unify SurfaceTexture and Surface

Add the concept of synchronous dequeueBuffer in SurfaceTexture
Implement {Surface|SurfaceTextureClient}::setSwapInterval()
Add SurfaceTexture logging
fix onFrameAvailable
ndroid.mk
Surface.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
haredBufferStack.cpp
urface.cpp
urfaceComposerClient.cpp
urfaceTextureClient.cpp
a6f35dd36e974c67976c6b4411c31b61f30a3853 12-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a format querying test.

This change adds a test to verify that querying the format of a
SurfaceTextureClient immediately after setting it returns the correct
result. The test is currently disabled because it does not pass.

Change-Id: I5bddb39c5bf96d6104624094383d410ed913e9f3
ests/SurfaceTextureClient_test.cpp
2510d9576ff2c529d584082aa1098480a73079e4 13-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: disable a deadlocking test.

This change disables the UpdateTexImageAfterFrameFinishedWorks test
because it's currently causing deadlocks on some devices.

Change-Id: Ic9186db207e8d656f3af5d86fa138c7d96393c55
ests/SurfaceTexture_test.cpp
824efa74e7ff0a8dd95302daf73c23a056da0d07 13-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add a pixel tolerance to the tests.

This change adds a default tolerance of 2 to all the pixel value checks
in the SurfaceTexture tests.

Change-Id: Id5a7cdffdfae16076e2daf4964a3326105b5ae2c
ests/SurfaceTexture_test.cpp
5451d15ee209f29d64beea87583f7058dee69911 08-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add some GL->GL tests.

This change adds some tests to verify streaming images from one GL
thread to another via SurfaceTexture. Currently the tests do not
validate the correctness of the streamed images, but rather simply
verify that this streaming does not cause a deadlock. 3 of the 4 tests
are currently disabled because they do cause deadlocks on some devices.

Change-Id: I5677942053190063b97f370dba96c116711bc3bb
ests/SurfaceTexture_test.cpp
52226048095c2eb27ede0c3389626df270a0abff 08-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add getTransformMatrix tests.

This change adds a test verifying that with no transform set on the
SurfaceTextureClient, the SurfaceTexture will return an identity
transform matrix. It also verifies this same effect in the presence of
an additional call to native_window_set_buffer_count just before the
call to getTransformMatrix.

Bug: 4490420
Change-Id: Ic5adfa29b5696cc2b451433834e3758ef20c5edd
ests/SurfaceTextureClient_test.cpp
736aa9573bb7b78f9c315f396c104491b3639426 13-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix a getTransformMatrix crash.

This change moves the computation of the transform matrix out of
getTransformMatrix and instead performs the computation when
updateTexImage gets called. This is needed in order for
getTransformMatrix to succeed even if the buffers have been freed (e.g.
by changing the buffer count) because the computation depends upon the
properties of the current GraphicBuffer.

Change-Id: Ied541ab8747b7ad604f862717135f9a16a816be9
Bug: 4490420
urfaceTexture.cpp
b62013f6aafee08cfad25a2712dc32264e44f783 18-May-2011 Mathias Agopian <mathias@google.com> 9-axis sensor fusion with Kalman filter

Add support for 9-axis gravity and linear-acceleration sensors
virtual orientation sensor using 9-axis fusion

Change-Id: I6717539373fce781c10e97b6fa59f68a831a592f
ensor.cpp
8dda6b7bf8f6e30cee286a6c048f1cc2adfa3a94 25-May-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: disable a failing test.

The SurfaceTextureSyncModeWaitRetire test was disabled. It is failing
because of the synchronization hacks that were added to SurfaceTexture
to work around bugs in vendor device drivers.

Change-Id: I09a74538bfe14a04833acb6847471e00826cc7fc
ests/SurfaceTextureClient_test.cpp
c2c8dfd71b84598f01074416e57cc3469d5b8ed2 24-May-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix an error check in dequeueBuffer.

This change fixes the MIN_UNDEQUEUED_BUFFERS error check in
dequeueBuffer. The check should only be performed if a buffer has been
queued since the last time the buffer count was changed by the client.
The check must be applied conditionally because video decoders require
all the bufferes to be dequeued and registered before beginning the
decode.

Change-Id: I08d96b380544e395c2fcf0f3983a199bfd695b09
urfaceTexture.cpp
ests/SurfaceTextureClient_test.cpp
8cd5ba4b7f01d3a54a8f8bc6d1793aa5fc8e09ef 19-May-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: clean up some comments, tests, etc.

This change fixes up some stale comments, member variable names, log
messages and disables a failing test.

Change-Id: Ic1d3344b18066cf710e4a42838b2417c6b1f2f6c
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
d7e291fecd2e6a104c713b4e45860734d02833c6 18-May-2011 Teng-Hui Zhu <ztenghui@google.com> Disable error report temporarily to enable inline video

bug:4435022

Change-Id: I06f05a4781ad432ab71db93f0815eb89cd2e7a69
urfaceTexture.cpp
cf46eb9817dfbfc020720d1e45b5c085252500fb 12-May-2011 Mathias Agopian <mathias@google.com> fix onFrameAvailable

Change-Id: I391fe9f6684ac9fd4f91416ce18b583f7087d966
urfaceTexture.cpp
68c7794183a7dbfe3b20d4ce832f8eb79c2c619a 10-May-2011 Mathias Agopian <mathias@google.com> Add SurfaceTexture logging

Change-Id: If1b74be5230813fb76429935d88b9d4a7c41700c
urfaceTexture.cpp
8072711307aa98ee5ee6f7369860ae38c3e19656 03-May-2011 Mathias Agopian <mathias@google.com> Implement {Surface|SurfaceTextureClient}::setSwapInterval()

Change-Id: I8382e346ddaa2c4c8ff56ac3ffd7f0109572f188
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
7a5b22c4e33928f81c2e8a3d85050c35bd44b1e0 26-Apr-2011 Mathias Agopian <mathias@google.com> new tests for SurfaceTexture synchronous mode

Change-Id: Icfdaa625238246f8d0224efe28fdf2c1c24203f8
ests/SurfaceTextureClient_test.cpp
b3e518c820c7dbe35587bd45c510e4e5e7cfd9c9 22-Apr-2011 Mathias Agopian <mathias@google.com> Add the concept of synchronous dequeueBuffer in SurfaceTexture

Change-Id: Ic94cbab092953243a0746e04bbe1b2eb0cc930ef
urfaceTexture.cpp
eafabcdc1639fb96062d9e3c39b0ae27b0238ae1 20-Apr-2011 Mathias Agopian <mathias@google.com> unify SurfaceTexture and Surface

Change-Id: I49da2f5d8408e4cd7e148cfb777bb4ff68cd8f37
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
c04f153353cdb0d291297d10452239f791d3fd2b 26-Apr-2011 Mathias Agopian <mathias@google.com> Fix a bug where setgeometry couldn't be undone

This change the binder protocol between SurfaceTextureClient
and SurfaceTexture. dequeueBuffer() now takes the requested
parameters for the buffer. SurfaceTexture decides if the
buffer needs to be reallocated and does the allocation
if needed. In that case it returns BUFFER_NEEDS_REALLOCATION
to tell SurfaceTextureClient that it needs to call
requestBuffer (which all parameters have been removed) to
acquire a pointer to the buffer.

dequeueBuffer and requestBuffer could be folded into a single
IPC call, but we chose to optimize the case where buffers are
not created and avoid some complexity in the marshalling code.

Change-Id: I097a7f6f40a3491e10f3f3742eab33999286c304
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
697526bc9e44ce61c88614f98387ae8bbf0a187e 01-May-2011 Iliyan Malchev <malchev@google.com> frameworks/base: android_native_buffer_t -> ANativeWindowBuffer

Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417
Signed-off-by: Iliyan Malchev <malchev@google.com>
urface.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
41abd67302b52aefadc2b3dea42226f16bf6d9ba 15-Apr-2011 Iliyan Malchev <malchev@google.com> frameworks/base: make the ANativeWindow query() method const

query() does not modify the object's data, so it needs to be a const method

Change-Id: I67c40a3c865461e6f1cc2193fd2d74286ff6ac8f
Signed-off-by: Iliyan Malchev <malchev@google.com>
urface.cpp
urfaceTextureClient.cpp
39a01c66947cd56c80ff406c277d9debc0efa7cc 29-Apr-2011 Jamie Gennis <jgennis@google.com> Merge "libgui: enable tests in the 'tests' build."
cc57d6f8830e533734925f102307df2e6cff6de7 28-Apr-2011 Mathias Agopian <mathias@google.com> Fix uninitialized variable in SurfaceTexture

Change-Id: Ie77cdad481fc0522ff5ea3b7e14ce94e07150793
urfaceTexture.cpp
7fcb077c5522c56e266947e073c8750019e5a98a 27-Apr-2011 Jamie Gennis <jgennis@google.com> libgui: enable tests in the 'tests' build.

This change makes the libgui makefile recurse into the tests directory
so that the tests get built by a top-level make when
TARGET_BUILD_VARIANT=tests.

Change-Id: I6f623cc4b86dfeb00b9d21823316dbd9def23110
ndroid.mk
ests/Android.mk
3cd5a117083e6a53b9946e8c316377658ab79b3d 26-Apr-2011 Mathias Agopian <mathias@google.com> Report errors when eglCreateImageKHR fails

Change-Id: Ica39b72ac2505675e619ef4994bd67b98bf6e7da
urfaceTexture.cpp
1b528fb9d818044973abf656c9d2d3c1192bcfdc 26-Apr-2011 Jamie Gennis <jgennis@google.com> EGL: Allow creating a SurfaceTexture EGLSurface.

This change removes the check that disallowed the creation of an
EGLSurface that would send frames to a SurfaceTexture.

Change-Id: I44c6d5df503cc676a88144d72d39b414692ce4c9
ests/SurfaceTextureClient_test.cpp
fc850124b35abd00a31e9bcf57e14e0fa74f4cd7 26-Apr-2011 Jamie Gennis <jgennis@google.com> libgui: Fix the tests so they build.

Change-Id: I7205b0819e5801ac549109ff562c3ab1b113d176
ests/SurfaceTexture_test.cpp
ests/Surface_test.cpp
0ef4e15a6c12778daf464a4953d7e15e651f49ac 20-Apr-2011 Mathias Agopian <mathias@google.com> Get rid of the "pid" parameter from createSurface

Change-Id: I28635e3f803e6abe965d79998e305f54a202465d
SurfaceComposerClient.cpp
urfaceComposerClient.cpp
7e3d7f341ab3789fe25064670374159a35e35ed3 19-Apr-2011 Mathias Agopian <mathias@google.com> Merge "changes to SurfaceTexture needed for unification with SF"
7a042bf324fe3f3d5d4085fda21fe50dc0c362b4 12-Apr-2011 Mathias Agopian <mathias@google.com> changes to SurfaceTexture needed for unification with SF

- implement connect/disconnect
- implement missing query
- handle texture_2d in addition to texture_external_oes

Change-Id: I971a70821f00f22b01f5337de4a7d451177fec4d
urfaceTexture.cpp
urfaceTextureClient.cpp
4cb18881b55b82a24873ccd8e298bc2d5a9c17e5 09-Apr-2011 Mathias Agopian <mathias@google.com> Fix a GraphicBuffer leak in SurfaceTexture

This leak was intentional, it was there to deal with the fact that
some gralloc implementations don't track buffer handles with
file-descriptors so buffers needed to stay alive until there were
registered, which is not guaranteed by binder transactions.

In this new implementation, we use a small BBinder holding a
reference to the buffer, which with tuck into the parcel. This forces
the reference to stay alive until the parcel is destroyed, which
is guaranteed (by construction) to happen after the buffer is
registered.

this allows the public facing API to not expose the previous hack.

Change-Id: I1dd6cd83679a2b7457ad628169e2851acc027143
GraphicBufferAlloc.cpp
urfaceTexture.cpp
47d8730a2463f38a695ab95b533b0d9728f266a3 06-Apr-2011 Mathias Agopian <mathias@google.com> remove more unused references to ISurface

Change-Id: I2201f1ca2bb8f203a081d94a0134f798778dfbef
urface.cpp
a5c75c01620179ce00812354778a29a80d76e71f 01-Apr-2011 Mathias Agopian <mathias@google.com> SurfaceTexture can now force the client to request a buffer

SurfaceTexture now has the concept of default size a new method,
setDefaultBufferSize() to set it. When the default size is
changed, dequeueBuffer() will return a value telling the
client that it must ask for a new buffer.

The above only applies if the client has not
overriden the buffer size with setGeometry.

Change-Id: I520dc40363054b7e37fdb67d6a2e7bce70326e81
urfaceTexture.cpp
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
d87f162026454f5a3e6437ed0c9ef51651a6b939 26-Mar-2011 Mathias Agopian <mathias@google.com> merge libsurfaceflinger_client into libgui

this is the first step in unifying surfacetexture and surface.
for this reason the header files were not moved, as most of them
will eventually go away.

NOTE: currently we keep libsurfaceflinger_client.so as an empty
library to workaround prebuilt binaries wrongly linking against
it.

Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
ndroid.mk
GraphicBufferAlloc.cpp
Surface.cpp
SurfaceComposer.cpp
SurfaceComposerClient.cpp
ayerState.cpp
haredBufferStack.cpp
urface.cpp
urfaceComposerClient.cpp
ests/Android.mk
ests/Surface_test.cpp
1d01a12e7150be569557b64da9b8663c62c13594 18-Feb-2011 Eino-Ville Talvala <etalvala@google.com> Add support for timestamps into SurfaceTexture.

API addition: The timestamps are represented as nanoseconds from some
arbitrary time point. Like the SurfaceTexture transform matrix, the
timestamp retrieved by getTimestamp is for the last frame sent to the
GL texture using updateTexImage().

Camera HAL change: Expect vendors to set these timestamps using
native_window_set_buffers_timestamp(). For now, they are
autogenerated by SurfaceTextureClient if set_buffers_timestamp() is
never called, but such timing is likely not accurate enough to pass a
CTS test.

bug:3300707

Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
5c0c93a8c49b4053744efb8953b915fa7f0923a5 14-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: disallow unsupported uses.

This change makes the ANativeWindow_lock NDK function error out if it is
passed an ANativeWindow with a concrete type that is not Surface. It
also makes eglCreateWindowSurface fail if it is passed a
SurfaceTextureClient as its 'window' argument.

Bug: 4087277
Change-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c
ests/SurfaceTextureClient_test.cpp
bae774eb20bebd409441b93386b51bccda75f546 14-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceTextureClient: Add ISurfaceTexture getter.

This change adds a getter method to SurfaceTextureClient to get the
ISurfaceTexture object with which the SurfaceTextureClient is
communicating.

Bug: 4086509
Change-Id: Ifec621e0fe5392a5be56b2348fdc54067cbebcdd
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
391bbe2246a7547dbf3460c231b3c5ba691d4eb1 14-Mar-2011 Jamie Gennis <jgennis@google.com> ANativeWindow: add query for the concrete type.

This change adds a query to the ANativeWindow interface for getting the
concrete type of the ANativeWindow.

Bug: 4086509
Change-Id: I64aa86d72fbca3b52a98e1fc35608737781a3178
urfaceTextureClient.cpp
ests/SurfaceTextureClient_test.cpp
d99c088f35960b7f0ef948c3bb948a99a800eba1 11-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix transform matrix computation.

This change fixes the transform matrix computation in SurfaceTexture
when a crop rectangle is specified by the image producer. It also adds
a test for this case as well as a basic test for the uncropped case.

Bug: 4070775
Change-Id: I1481c9ce9d08fe7f2bff86d3afdeab7d4002b157
urfaceTexture.cpp
ests/Android.mk
ests/SurfaceTexture_test.cpp
134f0422866e8985188ed10dfbdcb8e6c34b87f7 08-Mar-2011 Jamie Gennis <jgennis@google.com> ANativeWindow: add queues-to-window-composer check.

This change adds a new 'method' to the ANativeWindow interface to check
whether buffers queued to the window will be sent directly to the system
window compositor.

Change-Id: I4d4b199e328c110b68b250029aea650f03c8724d
Bug: 3495535
urfaceTextureClient.cpp
ests/Android.mk
ests/SurfaceTextureClient_test.cpp
9d4d6c101d90d4a1d1ca9413cf3eb89d1f1898d6 27-Feb-2011 Jamie Gennis <jgennis@google.com> Add the MIN_UNDEQUEUED_BUFFERS query to ANW.

This change adds a new query to ANativeWindow for getting the minimum
number of buffers that must be left un-dequeued during the steady-state
operation of the ANativeWindow.

Change-Id: Ie8c461fc26b02ecde02ddb4f95bf763662cf1551
Related-Bug: 3356050
urfaceTexture.cpp
urfaceTextureClient.cpp
e839fdad46c1474368de63626cc07b4ed46cd350 07-Feb-2011 Jamie Gennis <jgennis@google.com> am c7839751: am c2efcd2c: Merge "Initialize the SurfaceTexture transform fields." into honeycomb

* commit 'c7839751aa1de52e0c3aab7dd1518b0fc8f2ee0a':
Initialize the SurfaceTexture transform fields.
f73935bb0da395f5126b67837e815d237dcae5ac 04-Feb-2011 Jamie Gennis <jgennis@google.com> Initialize the SurfaceTexture transform fields.

Change-Id: I2c25f15949253a1dbe493fef440e5ef118c40e71
related-bug: 3426067
urfaceTexture.cpp
08b4ea31a8e265025066ed94b02f08819fac46e5 03-Feb-2011 Jamie Gennis <jgennis@google.com> am 421d94c2: am ecb4b3f0: Merge "Pass the IGraphicBufferAlloc to SurfaceTextureClient." into honeycomb

* commit '421d94c20321e1de528416b279bf148baba47b39':
Pass the IGraphicBufferAlloc to SurfaceTextureClient.
1b20cde313b5ef8acdace742328df867956d24cb 03-Feb-2011 Jamie Gennis <jgennis@google.com> Pass the IGraphicBufferAlloc to SurfaceTextureClient.

This change passes a reference to the IGraphicBufferAlloc binder object
to SurfaceTextureClient objects. When STC objects are created they
query their associated ISurfaceTexture object for the
IGraphicBufferAlloc that the SurfaceTexture uses to allocate buffers.
Having the SurfaceTextureClient hold this reference prevents the
GraphicBufferAlloc in SurfaceFlinger from freeing the allocated buffers
before the SurfaceTextureClient is done with them.

Change-Id: Ib8e30e8b37fdd60438cbb4cb7e9174d0ba6d661c
related-bug: 3362519
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
0eb8851e8cc35f443646000220e42dba3adfab8b 26-Jan-2011 Jamie Gennis <jgennis@google.com> Clear GL errors before updating a SurfaceTexture.

Change-Id: Ibdac657ae9e9ccae53c63abed9caf1f1513915c2
urfaceTexture.cpp
68f9127e88ca6fd849d0f28bcd8776e04aab22e6 29-Jan-2011 Jamie Gennis <jgennis@google.com> Reset ANativeWindow crop on buffer geometry changes.

This changes the ANativeWindow API and the two implementations to reset
the window's crop rectangle to be uncropped when the window's buffer
geometry is changed.

Bug: 3359604
Change-Id: I64283dc8382ae687787ec0bebe6a5d5b4a0dcd6b
urfaceTextureClient.cpp
749172269ac6b6f7a430e64f604e7f040524e0a1 28-Jan-2011 Jamie Gennis <jgennis@google.com> Quiet the SurfaceFlingerClient dequeueBuffer error.

This is a temporary WAR for the case where dequeueBuffer is called when
all the buffers owned by a SurfaceTexture are not available - either
they're the current texture buffer or the next one. Currently, an error
is returned in that case, and this change just prevents that error from
being logged. In the future this will be fixed to not return an error
in that case.

Bug: 3356050
Change-Id: Ic6cc304881a63ce134cfd0bcb4265e3e3fa94b6a
urfaceTextureClient.cpp
c4d4aeab52435c177ded6abdd578fec8191f0f5d 13-Jan-2011 Jamie Gennis <jgennis@google.com> Implement SurfaceTexture frame-available callback.

This change implements the onFrameAvailable callback for the
SurfaceTexture java class. It includes the C++ SurfaceTexture code as
well as the JNI and Java code to enable the callback.

Change-Id: Ifd8b8e7ad46ee70cba6da1c2e96dab8045d1ea30
urfaceTexture.cpp
a214c64d7fb3baf9138cc5314f2111ecf5056c6c 14-Jan-2011 Jamie Gennis <jgennis@google.com> Fix SurfaceTexture transform matrix.

Change-Id: I31520c547cafa5cc85cd0f73883ab3a9ff4648e2
urfaceTexture.cpp
73e8b9e52411785189a35640e3ccb18574e38263 15-Jan-2011 Jamie Gennis <jgennis@google.com> Compare GraphicBuffers using handles.

This change fixes a bug in SurfaceTextureClient where GraphicBuffers
were being compared using pointer comparison rather than handles.

Change-Id: Ib8989af94be32d4efd86e020a732f5143088a863
urfaceTextureClient.cpp
9a78c90cd46b2a3bd637b056873149d3b94384b4 13-Jan-2011 Jamie Gennis <jgennis@google.com> Fix remote GraphicBuffer allocation in SurfaceFlinger.

This change fixes a horrible hack that I did to allow application
processes to create GraphicBuffer objects by making a binder call to
SurfaceFlinger. This change introduces a new binder interface
specifically for doing this, and does it in such a way that
SurfaceFlinger will maintain a reference to the buffers until the app is
done with them.

Change-Id: Icb240397c6c206d7f69124c1497a829f051cb49b
urfaceTexture.cpp
e5366c567a49e587879929ed4e5c98425ea17740 13-Jan-2011 Jamie Gennis <jgennis@google.com> Add logging to SurfaceTextureClient.

Change-Id: I984c3b9c88f8af613a50138188ff1b770e2de6b4
urfaceTextureClient.cpp
235c424c9a2e3cc5c24aae8bd9cc6f9db0808b42 12-Jan-2011 Jamie Gennis <jgennis@google.com> Fix a bug in SurfaceTexture::dequeueBuffer.

This change fixes a bug that allowed the most recently queued buffer to
be returned by dequeueBuffer. At the next updateTexImage call, the
dequeued buffer would be set as the contents of the texture even though
the client could be writing to it.

Change-Id: I53dc14eed13262475627d5551337df57fd78fe00
urfaceTexture.cpp
f238e28500ca756fbd9e323f728ce7c8dda59475 10-Jan-2011 Jamie Gennis <jgennis@google.com> Implement crop & transform for SurfaceTexture.

This change adds support for the setCrop and setTransform methods of the
SurfaceTexture C++ class. The crop and transform for the current
texture will be accessed by applications as a single texture coordinate
transform matrix.

Change-Id: I6482bf96f680e5c175364e848936db3908d6c8f8
urfaceTexture.cpp
67eedd74ab78c2bfed9fcdc74947b97289254ca4 09-Jan-2011 Jamie Gennis <jgennis@google.com> Fix a bug in SurfaceTexture::setBufferCount.

We need to reset mCurrentTexture and mLastQueued in setBufferCount
because it frees all of the buffers associated with the buffer slots.

Change-Id: Ie2f834ec1c07ce7a4ab9b2b5fc5fe8c294010c60
urfaceTexture.cpp
e70d8b43938e17beebcc0c97a9373a1906f6f2bf 09-Jan-2011 Jamie Gennis <jgennis@google.com> Add method logging to the SurfaceTexture C++ class.

Change-Id: Ic05b05428d34c04634ce9fc3f924ff3322bb2da2
urfaceTexture.cpp
3461e0fadff06f77874676a90d4ea12c0405a925 08-Jan-2011 Jamie Gennis <jgennis@google.com> Initialize the SurfaceTexture buffer slots.

Change-Id: I81a562ad897173f33cd6a2127737718a7db610eb
urfaceTexture.cpp
8ba32fade11abb73f3fd47ea0953c9528eb5b91f 20-Dec-2010 Jamie Gennis <jgennis@google.com> Add the SurfaceTexture C++ implementation.

This change adds the C++ implementation of SurfaceTexture and related
classes. The goal of this is for a SurfaceTexture to be passed to
camera service or Stagefright in place of a Surface to allow camera
preview or decoded video frames to be streamed to an OpenGL ES texture
that an application can use.

Change-Id: I55c83a7017f1ecb81c9c9e3252cbd118b914296c
ndroid.mk
SurfaceTexture.cpp
urfaceTexture.cpp
urfaceTextureClient.cpp
2ffb24799e579c47a73c992ab567f05c4bf0c962 17-Sep-2010 Mathias Agopian <mathias@google.com> Fix typo which causes sensors to fail miserably

Change-Id: Ieca18fc089e2bdf7d049f213836971b54d11cd76
ensorEventQueue.cpp
aeda9afdba5c28d4d152e3ec3bce74be42949065 17-Sep-2010 Mathias Agopian <mathias@google.com> part of fix for [3004226] Cannot end the call - Proximity sensor doesn't work

- In SensorEventQueue, only bail on errors from Looper::loopOnce
- Improve sensor error logging

Change-Id: Ib3cf8d5d9fdac8513a3d753155827e0feeda1662
ensorEventQueue.cpp
59abe7e0909bf4b7bf7b9601e1e40a05f6d4fd8a 14-Sep-2010 Jeff Brown <jeffbrown@google.com> Replace epoll() with poll() and rename PollLoop to Looper.

As part of this change, consolidated and cleaned up the Looper API so
that there are fewer distinctions between the NDK and non-NDK declarations
(no need for two callback types, etc.).

Removed the dependence on specific constants from sys/poll.h such as
POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for
the events that it supports. That should help make any future
under-the-hood implementation changes easier.

Fixed a couple of compiler warnings along the way.

Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
ensorEventQueue.cpp
45e0acb41acf30a1b7592ea7e695d96aca3ccd3b 08-Sep-2010 Dianne Hackborn <hackbod@google.com> Modify native ALooper to take an explicit ident.

The ALooper API now uses an explicit "identifier" for the integer
that is returned rather than implicitly using the fd. This allows
the APIs that had the fd to be a little more sane.

Change-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0
ensorEventQueue.cpp
a48bcf62b6a26f24a0bdd2b44bb39fadce499e92 30-Jul-2010 Mathias Agopian <mathias@google.com> Added SensorManager.getMinDelay()

Exposed the new "min delay" sensor property through native and
java sensor apis. This allows the caller to know what is the
maximum rate at which a sensor can return events, or, if a sensor
works in "update" mode (events returned only when the value changes).

Also augmented SensorManager.regusterSensorEvent() so that it can
accept a value in microsecond in addition to the 4 constants already
defined.

Change-Id: If425e9979892666df8c989d7de3c362230fa19e0
ensor.cpp
ensorEventQueue.cpp
d03d9ced3fe0c115bd7af5537cdb57e94e165005 23-Jul-2010 Mathias Agopian <mathias@google.com> Fix a memory corruption when writting Sensor into a parcel

Change-Id: I03f703ae2224f43924031bfea4c68aa979bb9f05
ensor.cpp
e3c8234765050023b8a588607f819e8cc41a6363 22-Jul-2010 Mathias Agopian <mathias@google.com> propagate sensor event rate properly

Change-Id: I32e67d30e4295285a6827956cc8161b2025d70bc
ensorEventQueue.cpp
a7352c9f4a6e642c29782b19db5bc0bd98feddc8 15-Jul-2010 Mathias Agopian <mathias@google.com> new SensorService

remove old sensor service and implement SensorManager
on top of the new (native) SensorManger API.

Change-Id: Iddb77d498755da3e11646473a44d651f12f40281
SensorEventConnection.cpp
SensorServer.cpp
ensor.cpp
ensorEventQueue.cpp
ensorManager.cpp
589ce85ee4174829cfedce91b6b2509d2a4002eb 14-Jul-2010 Mathias Agopian <mathias@google.com> first step at implementing the native sensor support

in this commit:
- implemented the C stub
- implemented the binder interfaces involved
- implemented most of the C++ client side

missing:
- SensorManager cannot connect to the SensorServer yet
(because there is no SensorServer yet)

Change-Id: I75010cbeef31c98d6fa62fd5d388dcef87c2636b
ndroid.mk
SensorEventConnection.cpp
SensorServer.cpp
ensor.cpp
ensorChannel.cpp
ensorEventQueue.cpp
ensorManager.cpp