• Home
  • History
  • Annotate
  • only in /frameworks/native/services/surfaceflinger/
History log of /frameworks/native/services/surfaceflinger/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9640da6f89e18e095ff4e1d21feb812a24fd1a32 27-Jun-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Last minute log removal.

Whoops.

Test: Log removed!
Change-Id: I4593352cf565603a4507c6ef13504b167d882eec
(cherry picked from commit 4e10a52dc5da22b5617069999c9986c59357e2a7)
ayer.cpp
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)
urfaceFlingerConsumer.cpp
801ad647015810abc856f93ff1e90bb930714ec9 22-Jun-2017 Chia-I Wu <olv@google.com> surfaceflinger: discard stale commands

When we skip validate, we may have stale commands on the command
buffer. They should be discarded.

Bug: 62906801
Test: manual
Change-Id: Ie7921ba75ab2252b834cda6924e1fcfdf236f759
(cherry picked from commit 0c6ce4608fc022608537162dd919e7f729b9cb77)
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
c6bf49a946d93d4c2f8e693fb974024ba6bbe9c0 22-Jun-2017 Fabien Sanglard <sanglardf@google.com> Disable skip Validate on client composition

SurfaceFlinger should not skip validate when GLComposition is
needed. This can happen when SF decides to force GLComposition
(like when a screen rotation occurs).

Bug: 62906801
Test: Manual
Change-Id: I248146eade395a124cb149773287abd88ae36511
(cherry picked from commit 269c2361096cb8a17ea5fedbd20f800cd1b65d05)
isplayHardware/HWComposer.cpp
249c0ae80a6e5690d091294c4447cb3facafbc37 20-Jun-2017 Fabien Sanglard <sanglardf@google.com> Skip Validate

b/37474580
b/62806392

Test: marlin, ryu

Change-Id: I09e0c52cb7c914dcd883dc771d97a365c89f7037
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
fae51c438827ae0a55c1b83c0e9be348254bfbd4 15-Jun-2017 Chia-I Wu <olv@google.com> surfaceflinger: fix a potential child layer leak

We should not remove a child layer from its already removed parent.
Call p->removeChild only after we've checked that the ancestor is
alive.

Apply e6b63e1ae12692327f7e46d5f10d6ade5a7bf192 and this fix to
SurfaceFlinger_hwc1.cpp as well.

Bug: 37121786
Test: manual stress test
Change-Id: I7b811450a998acc4ad9690bd4eda058ce6588e14
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
515dc9c538b8206b746eeb4906ac0b8aed1fb497 15-Jun-2017 Chia-I Wu <olv@google.com> surfaceflinger: Layer::getParent requires state lock held

We rely on mStateLock to synchronize accesses to
Layer::mCurrentParent.

Bug: 38505866
Test: manual stress test
Change-Id: I5f8ec358ed7e35df28f8c6aec31ae6ee51cb5b93
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
e41dbe6ab1d412efd67fdc8344be8da8b19426d2 13-Jun-2017 Chia-I Wu <olv@google.com> surfaceflinger: distinguish mCurrentParent/mDrawingParent

Updates to wp<> is not atomic. We cannot use/update it at the same
time from the main thread and a binder thread. With this change,
binder threads use mCurrentParent with the external state lock held.
The main thread uses mDrawingParent.

This is also an alternative fix to bug 62099658 and allows us to
revert "SurfaceFlinger: Update parent pointer while performing
transaction."

Bug: 38505866
Bug: 62099658
Test: boots and no repro (but I can never repro)
Change-Id: Id286a437537daaeec5eee5de62b1d9df245ece53
ayer.cpp
ayer.h
f456f32e0f9292d71b57b3255cde416b677faac2 15-Jun-2017 Chia-I Wu <olv@google.com> surfaceflinger: protect Client::mParentLayer with a lock

Updates to wp<> is not atomic. Use Client::mLock to protect
mParentLayer.

Bug: 38505866
Test: camera and youtube work
Change-Id: I2739382d5bb99961a47c1011963b6f676d34eec6
lient.cpp
lient.h
c175253b6d0738aec6235ef1c2e723ad36fcd346 08-Jun-2017 Alistair Strachan <alistair.strachan@imgtec.com> Fix getDisplayInfo() for SurfaceFlinger in HWC2 mode.

When HWC2 mode is enabled in SurfaceFlinger, the getDisplayInfo()
function would fail to return the correct active mode in some cases.

This bug was only noticable if you had more than one mode registered
by the HWC2 backend.

The SurfaceComposerClient::getDisplayInfo() function works by calling
getDisplayConfigs(), and de-referencing the config at the index
returned by getActiveConfig(). The active config returned was correct,
but the getDisplayConfigs() array was not properly sorted.

Tracing this back, this problem occurs because the configId is stored
alongside the config in an unordered_map, so when this is converted
to a vector and the configId is discarded, the conversion must be
sorted correctly; it can't just be the hash order returned from
the unordered_map.

There are a few ways to fix this problem, but the easiest was to nip
the problem in the bud by not allowing an unsorted list of configs
to exist on the base HWC2 class. It may be better still to just get
rid of the map and go back to a vector, as this data is more often
used as an array than it is indexed by configId, so the use of an
unordered_map was probably overkill.

Change-Id: Ibfb015a6d9b49c870f37a1c892f15f90abbd1e2c
Bug: 62617569
Test: ./cts-tradefed run cts -m CtsViewTestCases -t android.view.cts.DisplayRefreshRateTest#testRefreshRate
isplayHardware/HWC2.h
aaef0983baf38bd59b4129dd37e4cd21b73d92ad 09-Jun-2017 Jorim Jaggi <jjaggi@google.com> Fix build

Test: builds
Bug: 36631902
Change-Id: Iec23f8ab2b16c923f07d1857aa3471cfefc057dd
urfaceFlinger_hwc1.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
urfaceFlinger.cpp
urfaceFlinger.h
e6b63e1ae12692327f7e46d5f10d6ade5a7bf192 30-May-2017 Chia-I Wu <olv@google.com> surfaceflinger: fix layer count

When a layer is removed, mLayerCount is always decremented by 1 even
though the layer has children. This commit fixes that by making
sure mLayerCount is properly decremented, and makes sure that a
parent layer must be a valid layer in mCurrentState.

Bug: 37121786
Test: manually open and close Camera app
Change-Id: I5a3e18be41646b167b4d361dfe08db4d06e1c2d0
(cherry picked from commit 98f1c108b016dda77c808f3d099e7a45bdd70768)
ayer.cpp
ayer.h
urfaceFlinger.cpp
41b08b5e97b04d726fb8bbacddbce563a1c890f9 02-Jun-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Fix final cropping of child layers.

Straightforward mistake documented by the test case. Not sure how it
made it this long.

Test: Included in Transaction_test.cpp. Manual from bug. go/wm-smoke.
Bug: 37511473
Change-Id: I87a57825cca879c5519fe72fef199168f7c23479
ayer.cpp
ests/Transaction_test.cpp
98b0fd5fc28b07b6b488bc599a3448ebcacb6acc 01-Jun-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Update parent pointer while performing transaction.

To understand the change at a high level, notice that all the usage
of getParent() is assosciated with the drawing state. We see in this way
that the parent is a part of the drawing state and should only be updated
when transactions occurs.

More specifically we can consider the following scenario:

1. Imagine that we have a visible surface, with a visible child surface
2. Now imagine we create a new surface, which is hidden, and post a buffer to it.
It is configured such that it would be visible if it were not hidden.
3. We open a transaction
4. We reparent the child from the old surface to the new one
5. We show the new surface
6. We close the transaction

At this point we would expect the child to remain visible, as it is atomically
reparented with the visibility change of the parent. However prior to this CL
we see a flash, as the sequence can continue as follows:

7. Closing the transaction triggers setClientState, causing Layer::reparentChildren
which would call setParent updating the parent pointer.
8. setClientState updates the current but not drawing visibility of the new parent and marks
a transaction to occur.
9. We return to the main thread, MESSAGE_REFRESH occurs before MESSAGE_TRANSACTION
and we render a frame
10. We observe the child window as invisible, as it has the new parent
but it's new parent is not yet visible.

We simply have to ensure the parent pointer is updated at transaction time.
I chose a location in commitChildList where mDrawingChildren was copied
from mCurrentChildren as it seemed to express the intent well.

Test: Difficult to automatically test. Manually try resizing Chrome/Youtube/etc in docked stack before flicker should be ~1/10 after flicker should be <1/100 (I haven't seen one yet)
Bug: 62099658
Change-Id: I3721d16361b53128146510d3fda43e1c12f93223
ayer.cpp
d8ac4fd17a71b8b523121186b8a03212cd5122fe 25-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete SurfaceFlinger BYPASS codepath" into oc-dev
5b3cf0576d91358cb850945d89382938ff8dc5ed 04-May-2017 Fabien Sanglard <sanglardf@google.com> Delete SurfaceFlinger BYPASS codepath

Test: AUPT, Manual
Change-Id: I8d6139fbb8a3ec113d7cb973420a5874d3e31030
Merged-Id: I8d6139fbb8a3ec113d7cb973420a5874d3e31030
ndroid.mk
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposerBufferCache.cpp
e2fad8108e8b266efc446a9a348b6cb5d8eaebe8 23-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes." into oc-dev
df8ca52d130dcaa3b2c586570a525ae54622f9f6 19-May-2017 Logan Chien <loganchien@google.com> Merge changes from topic 'move-hwc2on1' into oc-dev

* changes:
libhwc2on1adapter: Move to vendor partition
Remove stale dependency to libhwc2on1adaptor.so.
7bf247e2db180da661b18084d50e0b389686fc0c 18-May-2017 Robert Carr <racarr@google.com> SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes.

The same sort of thing we had with setPosition...not sure why I didn't
realize we would need the fixes here too! In particular we need to ensure
the following scenarios work:

1. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize
state are eventually applied.
2. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize
state are not immediately applied.
3. In LayerRejector.cpp we have to be sure we are not just latching a buffer
at the old size, which we still allow. This is the correct time to latch
the transparentRegion as it is content dependent, but doesn't represent
a size changing.

The difference between this and the original CL which was reverted has to do with
point 3. The original CL tried to solve point 3 by moving the latching logic from
the LayerRejecter in to Layer::doTransaction. However, in general doTransaction
will not be called in between Latching the buffer and drawing the frame, so this
introduced errors. The new test "FinalCropLatchingBufferOldSize" encapsulates this.

Bug: 37621737
Bug: 37531386
Test: Included in Transaction_test.cpp
Change-Id: I14bd09d01ac6b85895caa1b707d6fa7dac962074
ayer.cpp
ayer.h
ayerRejecter.cpp
ayerRejecter.h
ests/Transaction_test.cpp
3851225fddb6f1755a8034aa7a9f9ae7397b56a9 17-May-2017 Chia-I Wu <olv@google.com> surfaceflinger: clear HWC layers in Layer::onRemoved v2

Explicitly destroy HWC layers in Layer::onRemoved rather than doing
that implicitly in the destructor. The layer may be destructed by
any thread that holds a sp<Layer>, but only the main thread should
talk to the composer.

v2 fixes build breakage for non-HWC2 targets.

Bug: 38151478
Bug: 37978067
Test: manual
Change-Id: I8858fc46de1fc6facded219740b931c6486e317e
ayer.cpp
fb8cedea2730603d6bf95dd10466b2f2660ade9d 18-May-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Merge "Revert "surfaceflinger: clear HWC layers in Layer::onRemoved"" into oc-dev
900e6fc9b9c7353ad919e44e1a45a67426d115c4 18-May-2017 Przemyslaw Szczepaniak <pszczepaniak@google.com> Revert "surfaceflinger: clear HWC layers in Layer::onRemoved"

Causing failures due to lack of clearHwcLayers in git_master and few
other branches/builds. Looks like clearHwcLayers needs USE_HWC2
to be defined, seems to be not defined in few branches/builds?

This reverts commit 06837418fe9fb0c6deeab7d62ac5bf65c7bb2b98.

Change-Id: Ic0e3a99b45543503d5fa8a90f3569764ebe922e3
ayer.cpp
23429778c41bb54cbbc0067f2151049488554bcf 16-May-2017 Logan Chien <loganchien@google.com> Remove stale dependency to libhwc2on1adaptor.so.

This commit removes stale dependency to libhwc2on1adaptor. Since commit
831d48ed, mAdapter has become an unused private member. In addition,
this unused unique_ptr leads to an unnecessary symbol reference to the
destructor of HWC2on1Adaptor. This commit removes them completely.

Bug: 38302528
Test: Sailfish builds and boots.
Change-Id: I0208d7fb21ff2f5d59d367162bc5f982f1515982
Merged-In: I479f12ddbae91282a13464159f00513aa7cb3208
ndroid.mk
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
e256ecb511720a81870aee3cee8d4c4a6135bf47 18-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "surfaceflinger: clear HWC layers in Layer::onRemoved" into oc-dev
5c580eaeb6510fee596825d2435182cf9895ae10 18-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "surfaceflinger: fix a release fence leak" into oc-dev
06837418fe9fb0c6deeab7d62ac5bf65c7bb2b98 17-May-2017 Chia-I Wu <olv@google.com> surfaceflinger: clear HWC layers in Layer::onRemoved

Explicitly destroy HWC layers in Layer::onRemoved rather than doing
that implicitly in the destructor. The layer may be destructed by
any thread that holds a sp<Layer>, but only the main thread should
talk to the composer.

Bug: 38151478
Bug: 37978067
Test: manual
Change-Id: If6fcfaa5a70d247b751f2b4d9aec9eca890e3aa5
ayer.cpp
5e74c65a55e2297228e1c8cf7885420d6a946e80 17-May-2017 Chia-I Wu <olv@google.com> surfaceflinger: fix a release fence leak

We leak release fence fds when we believe hwcomposer2 gives us any
invalid layer and return early.

Bug: 38151478
Test: boots
Change-Id: I299721eca8bc7927052170fe87ee51e9b91006aa
isplayHardware/HWC2.cpp
6ad20f7271c05bfa1e7bb4b67a8fa72f4a08756a 17-May-2017 Steven Moreland <smoreland@google.com> Add displayservice.

This hidl service provides information about vsync and hotplug
to vendor services which is required by at least some camera
hal implementations.

Test: VtsFwkDisplayServiceV1_0TargetTest
Bug: 38311538
Change-Id: Ifc344c11ca4b3c8cebc6f0145f506d1aa774506d
ndroid.mk
ain_surfaceflinger.cpp
cbcefae07ad1c13f771054dcd769e923ee88a88f 16-May-2017 Rob Carr <racarr@google.com> Merge "Revert "SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes."" into oc-dev
a3ed032256c475ce13c52b0261da6a5e2ffa77be 16-May-2017 Rob Carr <racarr@google.com> Revert "SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes."

This reverts commit 1e079c2804edfae77925150280fe79418e58750b.

Bug: 38331032
Change-Id: Ib703b7b80a940550487a80d8ad62947e4becae93
ayer.cpp
ayer.h
ayerRejecter.cpp
ayerRejecter.h
ests/Transaction_test.cpp
83c9468c809cb0460e4d3de49973265eaabf0a4f 16-May-2017 Rob Carr <racarr@google.com> Merge "SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes." into oc-dev
1e079c2804edfae77925150280fe79418e58750b 09-May-2017 Robert Carr <racarr@google.com> SurfaceFlinger: setGeometryAppliesWithResize crop latching fixes.

The same sort of thing we had with setPosition...not sure why I didn't
realize we would need the fixes here too! In particular we need to ensure
the following scenarios work:

1. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize
state are eventually applied.
2. Additional calls to set(Final)Crop while in the setGeometryAppliesWithResize
state are not immediately applied.
3. When we latch the buffer completing the resize...current hasn't been swapped
to drawing...which means our location in LayerRejector.cpp was the wrong
place to update the crop. This raises questions about whether the
Transparent region latching works.

Bug: 37531386
Test: Included in Transaction_test.
Change-Id: I5140d44fd5e591a4afe5bddc201db45f7bcb5674
ayer.cpp
ayer.h
ayerRejecter.cpp
ayerRejecter.h
ests/Transaction_test.cpp
15b27e0e63dc1528ab2ddf1875f4d5a029059e5a 12-May-2017 Chia-I Wu <olv@google.com> Revert "surfaceflinger: work around dumpsys lockup"

This reverts commit 843460d1d8ced54ed224cff2b3fad703b6ea98c4.

Bug: 38183197
Test: manual while running dumpDebugInfo continuously in the
background
Change-Id: Ife3fb2970f58b8c8049bbe878c6a7728d1299d57
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
252e52aa06df85fd93804aa2b7b3e24702b47205 11-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Apply correct SELinux labels to PDX endpoint and channel sockets." into oc-dev
4ba6f990703f6bd83c5e8557951b9f01c77e0fd8 11-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Surfaceflinger: Propagate type & UID from parent layers" into oc-dev
2a58963cd96546bc645d05c3d1421a506f42bb64 04-May-2017 Albert Chaulk <achaulk@google.com> Surfaceflinger: Propagate type & UID from parent layers

Bug: 36589137
Test: Launch chrome in VR (surfaceview has a parent)
Change-Id: I9320a8df249d1d5790323b22f0ba88a792f9468f
ayer.cpp
2e252c93ac02ec7a6bfeab69ac2c200c53f35486 10-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SF: Use last call time to rate limit resyncs" into oc-dev
4a7762afb4fa8495e711fcc2da322fc388e700bc 02-May-2017 Alex Vakulenko <avakulenko@google.com> Apply correct SELinux labels to PDX endpoint and channel sockets.

Bug: 37646189
Test: Compiled for sailfish-eng
Device booted, normal 2D UI works as before
Was able to run Daydream app and CubeSea (before O1 VR rendering
path was disabled by recent change in HW composer).

Change-Id: I1f7040324992d3c784f072ea6b64a65fa7ed0589
urfaceflinger.rc
95d4e522448618edb42701f755e0ed768c13fa76 09-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Prevent buggy display orientation when exiting vr" into oc-dev
57164302da664fc58c3fd3c1ed9980bc1c9bdf1f 08-May-2017 Dan Stoza <stoza@google.com> SF: Use last call time to rate limit resyncs

SurfaceFlinger has a method which tells it to resync to hardware vsync
as long as it hasn't resynced too recently. This is used when we
receive a request for a Choreographer wakeup since if it has been a
while since we animated, we have likely drifted.

To determine whether we should actually resync or whether we should
instead rate-limit the call, we compare the current time to the last
time we drew, but this is problematic. When we first start animating
after a period of inactivity, this triggers a resync every time the
method is called until we receive the first frame and draw it, even if
we are already mid-resync, which delays the time until we can lock onto
the hardware vsync phase and has the side-effect of causing weird wakeup
times in both Choreographer and SurfaceFlinger.

This change instead keeps a local timestamp which is updated every time
the method is called and therefore effectively rate limits even before
the first frame is received.

Bug: 38117777
Test: ApiDemos/ListView + manual inspection of systraces
Change-Id: I7210594f9ed6ed5397bb0f3f14a8966503454643
urfaceFlinger.cpp
0e04fe47130add878c12ee4db3c8cf1931efdda8 05-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'o-compositor-unification' into oc-dev

* changes:
Remove the VR compositor from the framework.
Remove unnecessary clients and rename files.
Support multiple consumer queues.
Return pdx::Status<T> from BufferHubQueue::Dequeue.
Add support for consumer queue initial import and hangup.
2251d822dac2a96aad4184a6fdc2690f0a58af7c 21-Apr-2017 Corey Tabaka <eieio@google.com> Remove the VR compositor from the framework.

Remove the VR compositor framework and enable out-of-process VR composition
in VrCore.

This CL seems large due to the ripple effect of changing the VrFlinger
API and protocol types. There are three major modules that require
concurrent changes:
1. Protocol definitions and low-level VrFlinger API in libdisplay.
* Additional changes needed to keep old interfaces working for
a short time while replacing the dependent code (dvrGraphics*).
2. VrFlinger service implementation changes to support VrCore compositor
and the removal of the internal compositor.
3. Changes to libdvr platform library API due to changes in #1 and #2.

Because of the nature of the interdependence of types and other defs it is
difficult to break this CL into smaller chunks. However, review of the three
major modules (libdisplay, libdvr, and libvrflinger) may be done separately
to ease the mental burden on reviewers.

Change Summary:
- Remove obsolete screenshot service. VR screenshots will be implemented
by VrCore.
- Update display protocol definitions for changes in VrFlinger service
requirements. The majority of the changes in libdisplay are a
consequence of these protocol and service changes.
- Update VrFlinger to support two kinds of surfaces:
1. Application - use by VR apps.
2. Direct - used by VrCore (protected by permission check).
- Remove VrFlinger internal compositor and GL context.
- Remove obsolete debug console.
- Update VrFlinger hardware composer interface to handle direct
surfaces only, removing the concept of GPU (compositor) layers.
- Update display manager to expose access to application surface info
to VrCore (protected by permission check).
- Update libdvr platform library interfaces for changes to VrFlinger
API / protocol.
- Clean up libdvr API struct setup using a common include.
- Add C++ header-only helpers for DVR platform library opaque types.

Bug: 36401174
Test: Build; run VrFlinger display test tool.
Change-Id: I15abfde5f72dbb3725a3f58621486afba6b64902
urfaceFlinger.cpp
urfaceflinger.rc
22752851180b26f8d797b3fe5f7e99ad0eeaf7ee 04-May-2017 Tim Murray <timmurray@google.com> surfaceflinger: make EventThread FIFO

Jitter in EventThread scheduling was contributing to SystemUI jank.

Test: thread is FIFO
bug 36631902

Change-Id: I930c729b27403ef8941e9a1e0ef8ec57a3d323a0
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
412903fce3a93f411c85c54375a1851bfb370400 27-Apr-2017 Dan Stoza <stoza@google.com> SurfaceFlinger: Select which layer state to visit

Modifies the traverseIn[Reverse]ZOrder methods to also take an enum
value specifying whether to traverse the current state or the drawing
state.

This has the effect of fixing a bug where we weren't performing
transactions on a child layer because its parent was only visiting its
drawing layers (rather than its current layers) and was thus skipping
the child, which had not yet been moved from current to drawing.

Bug: 36858924
Test: ChildLayerTest.Bug36858924 doesn't hang
Change-Id: I1959f40bc07e77864ba024511d429592a398a67a
ayer.cpp
ayer.h
ayerVector.cpp
ayerVector.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
urfaceInterceptor.cpp
ests/Transaction_test.cpp
949c9ce51adbcbdb25d78ee700fd731aa941d577 01-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Call validateDisplay() when skipping frames" into oc-dev
1725eeeb7db8a2c933dcc9d01cce14e17c76c6e6 27-Apr-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Correct extra parent scaling with buffer transforms.

We need to account for the buffer transform when calculating the extra
parent scaling.

Bug: 37673612
Test: Regression test included in Transaction_test
Change-Id: Ice21f1ecf3789358646d95c753ee361f50c0d246
ayer.cpp
ests/Transaction_test.cpp
0af4b9f88a48a6ecc705b4a8cec3d3ba24c53ead 26-Apr-2017 Steven Thomas <steventhomas@google.com> Call validateDisplay() when skipping frames

Layer management was getting screwed up in vr flinger in the following
scenario:

1. In frame X, post a new buffer to layer L.

2. Decide to skip frame X (e.g. because we're behind our target
schedule).

3. In frame X+1, delete layer L.

When we skip the frame in step 2, we weren't calling validateDisplay()
or presentDisplay() on the hardware composer, so the composer's internal
command queue wasn't being flushed. When we called validateDisplay() for
frame X+1 the update buffer call from frame X would be run, referencing
the deleted layer L, causing a crash.

Now we always call validateDisplay() when we change the layer state,
even if we decide to skip the frame.

I also added code to explicitly clear the Composer object's internal
command buffer when we transfer control from surface flinger to vr
flinger and back. There were certain cases where there could be commands
left in the command buffer after the display handoff.

Bug: 37159844

Test: I used an app switcher script that quickly switches vr apps, which
would consistently trigger the setLayerBuffer crash. I confirmed with
this CL applied I can run the app switcher until surface flinger runs
out of file descriptors (that's a separate bug), and I never see the
setLayerBuffer crash. I also confirmed from the log output there are no
additional hardware composer errors.

Change-Id: I85832b87f393754dc6b034eb38f2937d7b58ed74
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
edcc0c28f4a6bd342e090ab808d841efc2d016da 25-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SurfaceFlinger: Fix destruction of relatively Z-ordered layers." into oc-dev
5edb1add8b35c0d63645cb53fb175d459a689da5 25-Apr-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Fix destruction of relatively Z-ordered layers.

We need to explicitly remove a layer from it's Z-order relative when
the layer is removed from compositing, and not rely on being the last
reference. In particular, at the time we are generating the list
of visible layers by traversing, any layer which had just been removed
will still be alive (but abandoned) with a ref in the previous list
of visible layers. So we will succeed in promotion, and copy it to the new
list. This way the layer achieves eternal life even after onRemoved is called.

Bug: 36693738
Test: Manual from BR
Change-Id: Ic6c3f64ceb0f603e7c0e51b136c23839858aa639
ayer.cpp
0e9dcf6657a9101b02e1e1182f6fe3d652679a9a 25-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Enable access to display/manager socket in surfaceflinger" into oc-dev
0cd7619bce422d46a5f2c45ca97734ae467a1b01 20-Apr-2017 Mike Stroyan <stroyan@google.com> Defer surfaceflinger composition until data latch

If layer data is not yet ready, latchBuffer will return an empty region.
SurfaceFlinger::handlePageFlip will now check if any layer has a queued
frame which succeeded in latching data.
If no new frame is latched, handlePageFlip will return false.
That will defer refresh until the next vsync.
That reduces HWC and GPU load, improving framerates.
It prevents dEQP tests from timing out on some devices.

Test: dEQP-VK.wsi.android.incremental_present.scale_down.fifo.reference
Bug: 37439915
Change-Id: Id46c82f79953f3a147af77bb0e8e81a395c606b3
urfaceFlinger.cpp
e42e6832662b44b2e927270e12a2975046b26f3c 20-Apr-2017 Alex Vakulenko <avakulenko@google.com> Enable access to display/manager socket in surfaceflinger

DisplayManager interface is needed by VrCore. Currently the entry
point for that service is not accessible outside of `graphics` user
group which VrCore is not part of. We need to allow access to that
socket (and subsequently use selinux to fine-tune access rights
in the future).

Bug: 37486608
Test: `lunch sailfish-eng && m -j32` works and device boots
Change-Id: I1d1b545ba85aa6700b409fbbdacc330b8302049b
urfaceflinger.rc
9b429f41cbd5964f96f9fb746af3b6932e4acc66 17-Apr-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Inherit non-transform Scaling from parent.

When a Layer is fixed-size, we may apply additional scaling
to the buffer not accounted for in the transform. This means
that if the WindowManager calls setSize we will scale the parent
surface but not the child surfaces, breaking the contract that
the WM can treat the child surfaces as pixels in the parent.

Test: Included test in Transaction_test.
Bug: 36820947
Bug: 37344435
Change-Id: I5478bad176388fe8e5407379bc36cdfd6600ab97
ayer.cpp
ests/Transaction_test.cpp
b87e75de6192643ee6abbf87619ff04ce3f4cafd 15-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Avoid a potential race condition on mDisplays" into oc-dev
82386cd4eb194a9bf4b8688cb02317909ba346e0 14-Apr-2017 Stephen Kiazyk <skiazyk@google.com> Prevent buggy display orientation when exiting vr

The underlying issue is that the viewport settings were being re-set to
(0,0,-1,-1) on every transition to VR. I've instead extracted the vsync
period updates, and only apply those, as that was really all we wanted
out of it.

Bug: 37093920
Test: Compile and run Vr application. The 2d scene is now no longer in
the weird landscape viewport with portrait orientation if the phone is
in landscape when exiting VR mode.

Change-Id: I2bab6e4d834e15f477d1b56991375d1a18a77b8c
urfaceFlinger.cpp
5d6d98a1dff7a6de2ea89f5098af0b77e1d5c36a 14-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Release virtual display hwcId during vr mode transition." into oc-dev
7d3dcb9235ec149af2f5139a8a9c6eac859d92e2 06-Apr-2017 Stephen Kiazyk <skiazyk@google.com> Avoid a potential race condition on mDisplays

I've now run this on a HWC1 and HWC2 build. Both appear to be running
correctly.

Original Message:

The race could occur when transitioning in/out of VR flinger mode.
It is now avoided by ensuring that the primary |DisplayDevice| is always
created once |mStateLock| is released, and ensuring that all accesses
to the primary |DisplayDevice| are guarded by |mStateLock|.

Bug: 36194616
Bug: 37249613
Bug: 37288476

Test: Compiled, installed, and ran with both HWC1 and HWC2 variants.
HWC1 was tested on Nexus 6P. Was able to boot, install apps, run apps,
turn screen on/off, and reboot phone.
HWC2 was tested on sailfish. Was able to boot, install apps, run apps,
run VR apps using both N path, and O1 path, turn screen on/off, and
reboot phone.

Change-Id: I0e80c2553f40cce2116b718bbb0d2566679f794a
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
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
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
c90e469393493ff2dbb96a60abf1c828d9da2012 13-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Avoid a potential race condition on mDisplays"" into oc-dev
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
8722a310c00557195a0703e95564f31d908ab2d5 13-Apr-2017 Tomasz Wasilczyk <twasilczyk@google.com> Revert "Avoid a potential race condition on mDisplays"

This reverts commit 8d6c16dc3dc8b88a0046f53668a4e3be074507ff.

Bug: b/37282502
Change-Id: Ibf64607f9e14ede201510e2c1b502c49a31e9f2a
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
430f8eae67ff20c53dd834695fc3259b7eca9093 13-Apr-2017 Ian Elliott <ianelliott@google.com> Merge "Only enumerate display_timing when present timestamp supported" into oc-dev
7dcda8011de1753b0d9f4bf640733f83db601cec 13-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SurfaceFlinger: Add parent-less relative layering." into oc-dev
7da46d06f078922c9883adc609ed1c1b83ef3e5f 13-Apr-2017 Iliyan Malchev <malchev@google.com> Merge "surfaceflinger: start grahpics allocator when requested" into oc-dev
5c34de2c12ab2638fd6b16f1b77dedd0ffa3ab27 10-Apr-2017 Ian Elliott <ianelliott@google.com> Only enumerate display_timing when present timestamp supported

Test: CTS and cube demo.
Bug: 36887025

Vulkan should only enumerate the VK_GOOGLE_display_timing extension if
the device supports reliably returning the present timestamp. Vulkan
will determine this by reading a property that SurfaceFlinger will set
(based on the HWC2::Capability::PresentFenceIsNotReliable capability).

Change-Id: I6025be5f9120a8f02f228b8437b64be4ff8cfb17
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
21d072ac4a4f67b89c465121ace7a9764872aef0 12-Apr-2017 Brian C. Anderson <brianderson@google.com> Merge changes from topic 'presentFenceNotReliable' into oc-dev

* changes:
egl: Use reserved values for eglGetFrameTimestamps
egl: Differentiate pending vs invalid timestamps.
egl: Avoid use of retire as present
da8490da6221ba2a8762fa04f863bddb4088d587 12-Apr-2017 Alex Sakhartchouk <alexst@google.com> Release virtual display hwcId during vr mode transition.

When we recreate the display state during VR mode transition, we were not
previously releasing hwcId with vr hardware composer. That resulted in VR
using the only VirtualDisplay provided by vr_hwc during the first run.
Every subsequent run failed to allocate a new hwcId id.

This manifested itself when DON (device on) flow quickly kicked the device
into and out of VR mode. Normally the binding is cleaned up when java
frameworks destroy the VD upon exiting VR mode, but it does so with a
short delay to account for rapid in/out transition, during which the
hwcId was getting left behind.

Bug: 34281731
Test: Run VR app, launch 2D app in VirtualDisplay, see it on the screen.
Close VR app, exit to 2D mode, repeat and observe 2D app in VR again.

Change-Id: I8faabdcd3516190ad88d1361c468f7f472ead588
urfaceFlinger.cpp
b278404c8766f04648b38a5f4da8872748f78a00 30-Mar-2017 Chia-I Wu <olv@google.com> surfaceflinger: start grahpics allocator when requested

When ISurfaceFlingerConfigs::startGraphicsAllocatorService returns
true, start graphics allocator service.

Bug: 36462585
Test: YouTube, Play Movies
Change-Id: Iac177e96ec89465398ec3eef46208bdb817934e3
ndroid.mk
ain_surfaceflinger.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
ayer.cpp
ayer.h
ayerVector.cpp
urfaceFlinger.cpp
ests/Transaction_test.cpp
6d957ec3732dd1c30b00e738ebb38d01118f9fd6 12-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes Ia1fa4a32,I2a4c3d9f into oc-dev

* changes:
hwc2: Remove Display::{mIsVirtual,setVirtual}
hwc2: Cache display type at construction
1636e003355d9dc6c04d4f9701241f3ab364be32 12-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "VR: Update VR HWC to use buffer metadata passed by SurfaceFlinger" into oc-dev
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
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ceb67d1f8f61e15e2c752d15c4077e5194118d1c 11-Apr-2017 Chris Forbes <chrisforbes@google.com> hwc2: Remove Display::{mIsVirtual,setVirtual}

Trivial cleanup.

Now that mType is available, we don't need a separate flag for whether
the display is virtual. The remaining effect of setVirtual was to set
the display connected, so just use setConnected.

Bug: b/36597125
Test: build
Change-Id: Ia1fa4a324cc07b0d6c124f4f50966c8b0cbe4827
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
016d73c2d8f8fae544f09a6eebe827791f499470 11-Apr-2017 Chris Forbes <chrisforbes@google.com> hwc2: Cache display type at construction

The display type is constant for the life of the display. Query it
upfront to avoid the binder transaction later.

V2: fixup HWC1 path

Test: boot to launcher on bullhead; build on fugu for HWC1 path
Bug: b/36597125
Change-Id: I2a4c3d9ff449960957376afef78f424261fcc282
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
8d6c16dc3dc8b88a0046f53668a4e3be074507ff 06-Apr-2017 Stephen Kiazyk <skiazyk@google.com> Avoid a potential race condition on mDisplays

Update: The HWC1 path needed to be updated in light of a change to
SurfaceFlinger.h. The build now works for both paths.

Original Message:

The race could occur when transitioning in/out of VR flinger mode.
It is now avoided by ensuring that the primary |DisplayDevice| is always
created once |mStateLock| is released, and ensuring that all accesses
to the primary |DisplayDevice| are guarded by |mStateLock|.

Bug: 36194616
Bug: 37249613
Test: Compiled for both HWC1 and HWC2 surface flinger builds.
Normal behavior is unchanged. Explicitly testing the race
condition required instrumenting code with sleep statements.

Change-Id: I0b00e857a3b2fd01948a888db2f0715d2a8204c1
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
1f42e3a02c4f9a1ba1916a2f0e47082bedb73e41 10-Apr-2017 Daniel Nicoara <dnicoara@google.com> VR: Update VR HWC to use buffer metadata passed by SurfaceFlinger

Without gralloc1 support, need to pass buffer metadata in order to
import native buffers and used them as graphic buffers.

Bug: 36481301
Test: Compiled and ran on device; Verified VR Window Manager properly
displays SurfaceFlinger buffers.

Change-Id: I8426be1d79dcc2fbd631c399427ae03cb2afc21d
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
ayer.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
urfaceFlingerConsumer.cpp
80c02320c49f5f6e1cb2651620fa31de551502a7 10-Apr-2017 Polina Bondarenko <pbond@google.com> Revert "Avoid a potential race condition on mDisplays"

This reverts commit 5576a555a14edd8c76addce2cee37b9b9ced2c3f.

Change-Id: I5d5889fccd94acacfbfef29847e4b65ef2543c75
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
5576a555a14edd8c76addce2cee37b9b9ced2c3f 06-Apr-2017 Stephen Kiazyk <skiazyk@google.com> Avoid a potential race condition on mDisplays

The race could occur when transitioning in/out of VR flinger mode.
It is now avoided by ensuring that the primary |DisplayDevice| is always
created once |mStateLock| is released, and ensuring that all accesses
to the primary |DisplayDevice| are guarded by |mStateLock|.

Bug: 36194616
Test: Normal behavior is unchanged. Explicitly testing the race
condition required instrumenting code with sleep statements.

Change-Id: I1f8fcf23982c311d47267beca8127b6c29562ce5
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
42b5469646974552d2de5b0e89c04ccda0d48159 06-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I2f531131,Ibaaca2a1,Ib0cba4c7,I5ea748b8,I046e3f07, ... into oc-dev

* changes:
libgui: Make IDisplayEventConn... a SafeInterface
libgui: Remove RefBase from BitTube
libgui: Make BitTube Parcelable and use unique_fd
libgui: Format BitTube and move into gui namespace
libgui: Move BitTube out of system include dir
libgui: Normalize IDisplayEventConnection methods
libgui: Format IDisplayEventConnection
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
ventThread.cpp
ventThread.h
essageQueue.cpp
essageQueue.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
ventThread.cpp
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
ventThread.cpp
ventThread.h
essageQueue.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
ventThread.cpp
ventThread.h
essageQueue.cpp
4f20f9cf3268dad96d9064dcb0e4a11aae96f6f3 06-Apr-2017 Courtney Goeltzenleuchter <courtneygo@google.com> ifdef HWC2 functionality

Fix build issue for devices that are not using HWC2.
Test: lunch hikey-userdebug; make

Change-Id: I47e9aa09b8db3f0dca6d733e2c8f3b59c45547b2
isplayDevice.cpp
enderEngine/GLES20RenderEngine.cpp
urfaceFlinger_hwc1.cpp
f0f8a81d06d129f92dd593812a03eaefdefeb6b2 06-Apr-2017 Marco Nelissen <marcone@google.com> Merge "Make sure all HWC2 functionality is ifdef'd" into oc-dev
ebeed4917b6a341a6287141f3755a750ab4431cb 06-Apr-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Make sure all HWC2 functionality is ifdef'd

Fix build issue for devices that are not using HWC2.
Test: lunch bat_land, make

Change-Id: If94222cd00f2c8b0b1f7a464ad0378224fc059e7
isplayDevice.cpp
b324457171474f02e793d3a669b14c8c24e23008 06-Apr-2017 Daniel Nicoara <dnicoara@google.com> Merge "VR: Remove HIDL VR Composer from service/vr/vr_window_manager" into oc-dev
62dc1344e05b1a5d4d1e4979bfbf255a3dbb7961 06-Apr-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Merge changes I9da985a7,I2bd642aa,I9358b3c9,I9d3c60b1 into oc-dev

* changes:
Add test for FP16 surface support
Dump info about wide-color
Add wide-color support to SurfaceFlinger
Add debug string functions for graphics.h enums
409c6eecdca80e95a110d63bc70b1c2dfcf49100 24-Mar-2017 Alex Vakulenko <avakulenko@google.com> Make init process create PDX sockets for services

To help us control the creation of PDX sockets and properly labeling
them for SELinux, let the init process create sockets for us based on
the settings specified in .rc files for service processes.

For (test) services that are meant to be started manually from command
line (e.g. test services), keep the old functionality as an option so
that UDS endpoint can be created in a way that it automatically creates
the socket in the service itself.

Bug: 35220925
Test: `m -j32` succeeds. Ran sailfish in VR mode and made sure all the
services (surfaceflinger, performanced, sensord, bufferhub).
`m -j32 checkbuild` succeeds as well.

Change-Id: Ief733b41b534cea19b1bea31de76b06051aa50ab
urfaceflinger.rc
f3b2de10caa2a96e65f3e8ebecb2730ff28aeeb1 27-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Dump info about wide-color

Test: adb shell dumpsys SurfaceFlinger
Look for section titled "Wide-Color information:"
Bug: 29940137

Change-Id: I2bd642aa026b49bbb9effd5cb1687c7a36dae684
enderEngine/GLES20RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger.h
5d94389241cc651e6bd327ab80eba3ad476f3724 22-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Add wide-color support to SurfaceFlinger

Test: manual testing
Bug: 29940137

Change-Id: I9358b3c982e0205e598fd20cbf8d2e956591b3ac
isplayDevice.cpp
isplayDevice.h
ayer.cpp
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
585e32faccaf80cf51e8148959abfbee49624b97 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: I44b0f6a69e267f670380e18a37a519bb2ef1ee84
ndroid.mk
95a99a1d3cdbd19343d0d27271098c9c01a63e78 21-Mar-2017 Daniel Nicoara <dnicoara@google.com> VR: Remove HIDL VR Composer from service/vr/vr_window_manager

Moved into frameworks/hardware/interfaces

Bug: 35570958
Test: Compiled and ran on device
Change-Id: I735096935a06e4dd6a8fc1d719c73ad11e9c1583
ndroid.mk
isplayHardware/ComposerHal.cpp
f60ab4119e64c642f519ef7994482e72bd11f0cb 04-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "add surfaceflinger and servicemanager to animation class" into oc-dev
c3bae03442d8e7e9f46b3cf754d51a738a40f4a9 02-Apr-2017 Cody Northrop <cnorthrop@google.com> Merge "surfaceflinger: Generate unique layer names" into oc-dev
bc7552874052ee33f1b35b4474e20c003d216391 31-Mar-2017 Cody Northrop <cnorthrop@google.com> surfaceflinger: Generate unique layer names

Add a counter to layer names to make it clear when there are duplicates.

layer foo#0
layer foo#1
layer bar#0
layer bar#1
layer bar#2

Bug: b/32543755
Test: Build, install, run game with duplicate layers, see unique names.

Change-Id: I915531d7adbdc506c429b86a685665fb6c56d25e
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
dac30b4bbfba384148a906d0b973500ce5c78882 23-Mar-2017 Keun-young Park <keunyoung@google.com> add surfaceflinger and servicemanager to animation class

- necessary for running shutdown animation

bug: 36526187
Test: many reboots

Change-Id: Id26f5747a8903e91db8499093a489409dcafa129
urfaceflinger.rc
5cee136dd4f9ee18ea600f0dc6e6f45f786cd097 26-Mar-2017 Alex Sakhartchouk <alexst@google.com> Allow VirtualDisplay's to use hardware composer when in VR mode even if
physical composer does not support them.

Bug: 36071574
Test: Applied remaining wip patches, launched 2D activity while in
persistent VR mode. Observed 2D activity rendered in VR in VirtualDisplay.
Further, instrumented SurfaceFlinger code to ensure DisplayDevice's are
created and destroyed with proper composers during VR mode transition.

Change-Id: I12b09f1209fcf33f97abfd77e14c6ce61f45a5e9
(cherry picked from commit d38ec4e294eadd4f655476fc90b675c78c1c8740)
urfaceFlinger.cpp
34ca5f2ab8cc891957567915def5bc32a36e6d82 30-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add alpha channel for the EGLConfig" into oc-dev
2b2c710d3abf18883fff9d972f8884a898899292 21-Mar-2017 neo.he <neo.he@mstarsemi.com> Add alpha channel for the EGLConfig

If the alpha channel is not assigned,the framebuffer will be Opaque.
And it will mask the underlying video and make the video invisible
when play video width mediaplayer

cherry-picked from AOSP master

Issue: b/36025630
Test: clean build and boot PixelC
Change-Id: If756ad2aaa789f6ddb178333b3e8854f52c8eac3
enderEngine/RenderEngine.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
lient.cpp
lient.h
ayer.cpp
e96afe6e91efd036089a6b6c42a855bdec4308ec 24-Mar-2017 Daniel Nicoara <dnicoara@google.com> VR: Rename HIDL service name from vr_hwcomposer to vr

This is part of an effort to simplify service names.

Bug: 36564122
Test: Ran on device and verified SurfaceFlinger connects to vr_wm
Change-Id: I3e2a2b778f3f0d2066bf5b756263de4b238b2f83
isplayHardware/ComposerHal.cpp
6fb9ca7b3c40b0f75ccd40a9d49b63d7051424f2 23-Mar-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Missed changes in HWC1. Fix build error.

Apparently HWC1 isn't in presubmit anymore.

Test: Manual
Change-Id: Id173d71be62b8a3c888943c57c0ae0ec511bc94b
urfaceFlinger_hwc1.cpp
6452f12c95e855a96ab8f690f28914cd37de762b 21-Mar-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Inherit Alpha for child surfaces.

Necessary for various animations to work correctly and
for the general goal of treating child surfaces like
pixels in the parent surface.

Test: Includes new test in SurfaceFlinger_test
Bug: None yet ;)
Change-Id: Ic8309518bd327bbba6ad2f79f265e24cf37898e7
ayer.cpp
ayer.h
ests/Transaction_test.cpp
8b71dc3c7e57c2cbed47934c00bb440ac43f3832 21-Mar-2017 Robert Carr <racarr@google.com> Add SurfaceFlinger test filter for presubmit.

HWC2 tests and SurfaceInterceptor tests aren't yet passing. See
second attached bug for more context on test filters for pre-submit.

Test: Verify Surfaceflinger_test.filter appears in output folder after build.
Bug: 36117490
Bug: 36359778
Change-Id: If3199d7c005722c235f065766f2961e2ed2d6e0d
ests/Android.mk
ests/SurfaceFlinger_test.filter
8d5227b8416b099c884429312daf2d60496fa484 16-Mar-2017 Robert Carr <racarr@google.com> Include finalCrop in setGeometryAppliesWithResize.

A refresher on this archaic function. Normally window crop and
position apply immediately. This is so the window manager can always
crop surfaces (e.g. while docked resizing) even if the app is lagging
behind. In some cases though the apps position or cropping may depend
on whether the resize has occured or not. For example when an app
gains shadows, we need to move expand the Surface and move it by a
negative offset for the content to remain in the same place. This
movement needs to be synchronized with the buffer latching for the
expansion.

We implemented setGeometryAppliesWithResize to take care of this. At
the time it wasn't clear if it was needed for finalCrop so we let it
be. Now that we are exclusively using final crop in the pinned stack
however it is required. The same way we have an issue with position
and shadows, we have an issue with expanding the crop rect (we may
have actually been cropping out part of a larger surface that is now
supposed to be shadows).

Also includes a test suite for setGeometryAppliesWithResize behavior
which was previously untested.

Bug: 35396882
Test: SurfaceFlinger_test
Change-Id: Ie4d32162eb21154496bb231161692d18341a1e1e
ayer.cpp
ayer.h
ayerRejecter.cpp
urfaceFlinger.cpp
ests/Transaction_test.cpp
1971b63aa4d82db37794f19e0eb01feb1826e422 10-Mar-2017 Fabien Sanglard <sanglardf@google.com> Use max acquired buffer setting to configStore

Change-Id: I48454243bcac12f5a83d080cd9115686f9f728ca
ndroid.mk
isplayDevice.cpp
isplayHardware/FramebufferSurface.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
4d8f53906fa71ab3850e0fbdb62573b7b1f90deb 21-Mar-2017 Steven Thomas <steventhomas@google.com> Merge "Revert "Revert "Tie vr flinger to persistent vr mode"""
d8ab4396a858a9c929a1bb3cadf7705fb8061574 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "egl: Remove retire event."
050b2c83304bd16ec3a838da08b6ba6acf6a3af4 06-Mar-2017 Steven Thomas <steventhomas@google.com> Revert "Revert "Tie vr flinger to persistent vr mode""

This reverts commit 7480c060cb3466d97ec3125d61bbace153f534c8.

Transfer display control to vr flinger when persistent vr mode is
entered, rather than when vr mode is entered. This allows cardboard
apps, which will invoke vr mode but not persistent vr mode, to work as
in N.

This activates vr flinger at device boot for Daydream ready devices,
which fixes an issue where an app would attempt to create a surface
before vr flinger was running, which would hang indefinitely.

The VrManager listener for persistent vr mode is put in vr flinger
instead of surface flinger. This is cleaner since the vr interaction
with the rest of the device is now consolidated in vr flinger.

While testing I encountered a problem where vr flinger was given control
of the display but vsync was turned off, causing vr flinger's post
thread to hang. I changed the vr flinger logic to give control over
vsync and other display settings to the post thread, and took the
opportunity to further simplify and improve vr flinger's thread
interactions.

Bug: 35885165

Test: Manually confirmed that when persistent vr mode is not invoked we
get the N-based render implementation, and when persistent vr mode is
invoked we get vr flinger.

Change-Id: I3b5ad599cc0748e38b861c714c4cc3118f854acf
ndroid.mk
urfaceFlinger.cpp
urfaceFlinger.h
rStateCallbacks.cpp
rStateCallbacks.h
7480c060cb3466d97ec3125d61bbace153f534c8 21-Mar-2017 Jin Qian <jinqian@google.com> Revert "Tie vr flinger to persistent vr mode"

This reverts commit f43d13e4e35ae7d3cdafc4b97c819669d42cef78.

Change-Id: Ib67db8e51b7ea2dbbe6faccce36962bf5b44a6e2
ndroid.mk
urfaceFlinger.cpp
urfaceFlinger.h
rStateCallbacks.cpp
rStateCallbacks.h
f43d13e4e35ae7d3cdafc4b97c819669d42cef78 06-Mar-2017 Steven Thomas <steventhomas@google.com> Tie vr flinger to persistent vr mode

Transfer display control to vr flinger when persistent vr mode is
entered, rather than when vr mode is entered. This allows cardboard
apps, which will invoke vr mode but not persistent vr mode, to work as
in N.

This activates vr flinger at device boot for Daydream ready devices,
which fixes an issue where an app would attempt to create a surface
before vr flinger was running, which would hang indefinitely.

The VrManager listener for persistent vr mode is put in vr flinger
instead of surface flinger. This is cleaner since the vr interaction
with the rest of the device is now consolidated in vr flinger.

While testing I encountered a problem where vr flinger was given control
of the display but vsync was turned off, causing vr flinger's post
thread to hang. I changed the vr flinger logic to give control over
vsync and other display settings to the post thread, and took the
opportunity to further simplify and improve vr flinger's thread
interactions.

Bug: 35885165

Test: Manually confirmed that when persistent vr mode is not invoked we
get the N-based render implementation, and when persistent vr mode is
invoked we get vr flinger.

Change-Id: Ieeb8dabc19e799e3179e52971f3b63f5a8f54b3b
ndroid.mk
urfaceFlinger.cpp
urfaceFlinger.h
rStateCallbacks.cpp
rStateCallbacks.h
757b4ec4b453cd8e58b4d67d8ac79a73a1046bbd 18-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix getFrameTimestamp test flakes."
03c73d0fe5215aebf0f4596b811a51f92dd19c1d 18-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Use hasSyncFramework value from configStore"
cbf153bedf2eafc1443bbc97c4e74f97e7973edd 11-Mar-2017 Fabien Sanglard <sanglardf@google.com> Use hasSyncFramework value from configStore

Change-Id: I41c6b1a26001eb6ba08cbc419dc8a683f5722aa3
ndroid.mk
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
9551fd3acc2b0bbdfed02ed2bf97c5e560933abe 21-Oct-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Add getDataSpace to layer class

Test: TBD
Change-Id: I1d583bc6dae4cfb1569f053b2480e94b6ca9cc6f
ayer.cpp
ayer.h
62caf7cf7620d89a80247abc786b437597fbcbfb 14-Mar-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Set default color mode to trigger update

Start with invalid color mode so that we are sure
to call downstream for any setColorMode.

Test: manually verify display is in sRGB mode
Change-Id: Iaf511fac1e4cd8acef149528877188708c96856f
isplayDevice.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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
c8e387edfcead55b6e6fb1d05db279c264b644fa 10-Mar-2017 Fabien Sanglard <sanglardf@google.com> Use configStore for maxVirtualDisplay Size

Test: Manual and AUPT
Change-Id: I17ec13f782a7c7c693d84d11c9b5e87624ee71d0
ndroid.mk
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
8c02341c732956b282f11744501cc6a97ac165dc 17-Mar-2017 Fabien Sanglard <sanglardf@google.com> Revert "Use configStore for maxVirtualDisplay Size"

This reverts commit 56a5dbd3b050cbfd324308d224c7d12f4aec3320.

Change-Id: I66224bb48d3146846200ff7f2d5a66d1d8ff5cf7
ndroid.mk
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
56a5dbd3b050cbfd324308d224c7d12f4aec3320 10-Mar-2017 Fabien Sanglard <sanglardf@google.com> Use configStore for maxVirtualDisplay Size

Test: Manual and AUPT
Change-Id: Iefc09b06ab473c4029756279920135761547dd65
ndroid.mk
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
a34ed639c3057b99da0fb703beb12827e30aa508 14-Mar-2017 Fabien Sanglard <sanglardf@google.com> Use forceHwcCopyForVirtualDisplay in configStore

Test: Manual
Change-Id: Ie6f816cf8f48b1cca41d51f40e9f0ae49aef2908
ndroid.mk
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.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
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
f9e6033ea896e43d962a81c13d2b65d952955450 16-Mar-2017 Romain Guy <romainguy@google.com> Merge "Revert "Get rid of IGraphicBufferAlloc""
f8b4ca51111cd2e566d1774ac464da859db78976 16-Mar-2017 Romain Guy <romainguy@google.com> Revert "Get rid of IGraphicBufferAlloc"

This reverts commit 78491c9f694cb0767996503c629776a8eda950d7.

Change-Id: I78d5c0a30ab80265f697f681387872b6763b2d1e
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
d4639b1eae0d934ad47b260315416fb7b8026a50 16-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Get rid of IGraphicBufferAlloc"
78491c9f694cb0767996503c629776a8eda950d7 15-Mar-2017 Mathias Agopian <mathias@google.com> Get rid of IGraphicBufferAlloc

This reverts commit 527747dce1ab4714bd424e5c1a25ebad3506c2cb.

selinux policy allowing this change fixed.

Test: took a screenshot
Test: ran ImageReaderTest CTS
Bug: 36194109
Change-Id: I72ac17b6c252750aa2a66cd1d94bd8b4e21b5e9d
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
373a0800cec4258a1bc77a6e1e556af830cb2879 16-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "[SF] Use presentTimeOffset from configStore"
9f3283a11aa74e2afdcde38d290f08323c537456 16-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add a simple SurfaceFlinger stress test."
c45a7d9dfdefa07512c5acc07bcbee5362b34e3d 14-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SF] Use presentTimeOffset from configStore

Change-Id: If9c872c565e68e8abe552ee11d2c7d48f44aec4b
ndroid.mk
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlinger_hwc1.cpp
eb8939942d917c8f4b200a4cdafdf8c39aacff82 10-Mar-2017 Robert Carr <racarr@google.com> Add a simple SurfaceFlinger stress test.

Obviously such tests are always a little arbitrary but this one
seems pretty useful. It runs in ~2 seconds, I got 10 passes in a row with
the fix for 36117490 applied, and 3 system restarts in a row (before giving up)
without the fix applied. Clean up the other tests in preparation for presubmit enabling.

Test: Quis custodiet ipsos custodes?
Bug: 36117490
Change-Id: Ifef2ff4e51aa9af193ddf003fe4aba053b28738f
ndroid.mk
ests/Android.mk
ests/Stress_test.cpp
ests/SurfaceInterceptor_test.cpp
f25db04cd8b2a840afae31d1f310298f8bbb65b0 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Make IGraphicBufferProducer a hybrid interface."
c1cef847e1dcaa0619ebb4daf12dd3a3112c0634 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "[SF] Delete unused NEVER_DEFAULT_TO_ASYNC_MODE"
db910d4906667019de79eec44b1873bd8c2f2437 15-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SF] Delete unused NEVER_DEFAULT_TO_ASYNC_MODE

Test: AUPT
Change-Id: I0abbbdcbd2a7ccb2b60514b54e600eb9489dc6a4
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
bb68dcc8af3833e8d15102d898909563778bee85 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "test-hwc2: fix build error from ui/mat4.h include"
ff4bc528be20936c496d4fbf006c97f7972dc8ff 15-Mar-2017 Marissa Wall <marissaw@google.com> Merge "test-hwc2: fix build errors on other branches" am: ea8d46f1ab am: acfd2a846b
am: 96074086df

Change-Id: Iac974deaf0c4a0df9512ff666ff382a18ad270b6
acfd2a846b54e9d630ed3d34cca9ad8cbd9f1f09 15-Mar-2017 Marissa Wall <marissaw@google.com> Merge "test-hwc2: fix build errors on other branches"
am: ea8d46f1ab

Change-Id: I15fb43deec4eac3bb2867fa4dd101606cb593389
bd7ba140b3898f2a3a671311744600fb60b40053 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "[SurfaceFlinger]Use configStore useContextPriority"
dde19448624ca514e0598f0343029c1ca4960c05 14-Mar-2017 Marissa Wall <marissaw@google.com> test-hwc2: fix build error from ui/mat4.h include

ui/mat4.h is located at math/mat4.h on internal master. Change
test cases to reflect that.

Test: run the test-hwc2 tests

Change-Id: I1d2fb59efc2fcea40dc901664dc43841c5454353
ests/hwc2/Android.mk
ests/hwc2/Hwc2TestBuffer.cpp
0fa8676f2f301bc2a071a2ded35e21fcb9323212 14-Mar-2017 Marissa Wall <marissaw@google.com> test-hwc2: fix build errors on other branches

Currently, test-hwc2 does not build on other branches due to
differences in GraphicBufferAlloc. Switch to directly allocating
graphic buffers.

Test: run the test-hwc2 tests

Change-Id: I63a058a9b0bf48d1e3236f5e124ecaa1dfb4593a
ests/hwc2/Hwc2TestBuffer.cpp
ests/hwc2/Hwc2TestBuffer.h
c93afd54a05497c4ae42db99ea0310ee69cca492 13-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SurfaceFlinger]Use configStore useContextPriority

Change-Id: I329b5da0e92822eb0878c8866c8ab87ea13f7e07
ndroid.mk
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
2676e92d321ad7ad5c16ecbd1313505c7396511f 14-Mar-2017 Rob Carr <racarr@google.com> Merge "Revert "Add a simple SurfaceFlinger stress test.""
b7fbaf2c2e11f62f273059955730e7f24f0d7be5 14-Mar-2017 Rob Carr <racarr@google.com> Revert "Add a simple SurfaceFlinger stress test."

This reverts commit 2d906b41c0720ba90fab20fe4ddae2400f9bbbd7.

Reason for revert: Semantic conflict introduced build break...

Change-Id: I3dbd11a8f73ab2636a732693639edcf869be8033
ndroid.mk
ests/Android.mk
ests/Stress_test.cpp
ests/SurfaceInterceptor_test.cpp
57f7d10741b0a9f67d0f615d901825ea9547b962 13-Mar-2017 Rob Carr <racarr@google.com> Merge "Add a simple SurfaceFlinger stress test."
975e49a2ae848ef7d2b9d9ad8ea1afad656f037b 13-Mar-2017 Chia-I Wu <olv@google.com> Merge "Revert "get rid of IGraphicBufferAlloc""
527747dce1ab4714bd424e5c1a25ebad3506c2cb 13-Mar-2017 Chia-I Wu <olv@google.com> Revert "get rid of IGraphicBufferAlloc"

This reverts commit 1da94dfed674e94edc37cdc8ef68530520edf169.

Bug: 36176799
Bug: 36175706
Change-Id: I6dd5fe8df564f0efa4392a800fb316e27a05076e
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
a96d2f1d7e27b307dbc6eed6eef53f36bdb28ce2 13-Mar-2017 Marissa Wall <marissaw@google.com> Merge changes from topic 'test-hwc2' am: 29943c1971 am: 92360b14a0
am: d47b3c13da

Change-Id: I616fe5646001c45933d466ee77824dc435819c5b
92360b14a0f81b4562361546a763c83ddee3c4e6 13-Mar-2017 Marissa Wall <marissaw@google.com> Merge changes from topic 'test-hwc2'
am: 29943c1971

Change-Id: I69fdf5bf2ff8f2c454e2e1a455e4d8d73b330aa3
64899fa75bac8f82bc1db5131fa51bffe0ee7957 11-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete SurfaceFlinger CFlags (phase offset)"
2d906b41c0720ba90fab20fe4ddae2400f9bbbd7 10-Mar-2017 Robert Carr <racarr@google.com> Add a simple SurfaceFlinger stress test.

Obviously such tests are always a little arbitrary but this one
seems pretty useful. It runs in ~2 seconds, I got 10 passes in a row with
the fix for 36117490 applied, and 3 system restarts in a row (before giving up)
without the fix applied. Clean up the other tests in preparation for presubmit enabling.

Test: Quis custodiet ipsos custodes?
Bug: 36117490
Change-Id: Ieb9a113f5b21ffb4b8ccd933069ab44e0a2b7a9d
ndroid.mk
ests/Android.mk
ests/Stress_test.cpp
ests/SurfaceInterceptor_test.cpp
cb765401a080a2c80eb562478263129a4f2483df 10-Mar-2017 Chia-I Wu <olv@google.com> Merge "surfaceflinger: simplify HWC buffer cache clean up"
bcfc105c17c3991f46f4ee9cc7a2c628d8e453a6 10-Mar-2017 Fabien Sanglard <sanglardf@google.com> Delete SurfaceFlinger CFlags (phase offset)

These config values are now coming from configStore.

Test: Manual
Change-Id: I7128e926dbeaf5763749131b328bcf51576f9bee
ndroid.mk
3e3474eaadc5a1ed345bb866f1469e5a4658327e 10-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Re-add mistakenly removed lock in SurfaceFlinger::removeLayer."
4e67f0f8c13c4777bccbcd527ff18584c3ccc93a 10-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "[SurfaceFlinger] Use sf phase offset from CS"
7f9b899c33c5d69597bc676c0bee828819c97a0f 10-Mar-2017 Robert Carr <racarr@google.com> Re-add mistakenly removed lock in SurfaceFlinger::removeLayer.

Lock was mistakenly removed with "Add detachChildren transaction"
when refactoring the weak-pointer to a strong-pointer.

Test: I will try and follow up with a stress-test in Transaction_test.
Bug: 36117490
Change-Id: I94171c86334bb52b974392186e1c3ebbf9f33a05
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
aaff73f92a2fcadda8c765eb9b02f2849418a873 13-Feb-2017 Chia-I Wu <olv@google.com> surfaceflinger: simplify HWC buffer cache clean up

When a Layer is no longer connected, we destroy the associated HWC
layers on next call to SurfaceFlinger::rebuildLayerStacks or when
the Layer is destroyed. There is no need to listen to
onBuffersReleased. Besides, we need to perform the cleanup from the
main thread as we only talk to HWC process from the main thread.

While at it, move HWComposerBufferCache to its own files.

Bug: 35320590
Test: manual
Change-Id: Ifa32f24076b094c8fa9cda8572b03d5bfb8e0b93
ndroid.mk
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposerBufferCache.cpp
isplayHardware/HWComposerBufferCache.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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.mk
1da94dfed674e94edc37cdc8ef68530520edf169 28-Feb-2017 Mathias Agopian <mathias@google.com> get rid of IGraphicBufferAlloc

buffers can now be allocated in-process.

Test: compile & run
Bug: cleanup
Change-Id: I3d4317a9bed20a6d8be2b7ac8fbb85738efb3657
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
4b5287e06e75838d548f6672b69d8f321792b6a3 09-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Create libhwc2on1adapter"
e29055f5fe4a2bc0f3f75d952ff417462dc607cc 08-Mar-2017 Fabien Sanglard <sanglardf@google.com> Create libhwc2on1adapter

Extract the adapter out of SurfaceFlinger library to allow code
behind HAL to use it.

Test: Manual
Change-Id: I415aa2674564eccb2c38f76086807f834177f80f
ndroid.mk
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
isplayHardware/HWComposer.cpp
isplayHardware/MiniFence.cpp
isplayHardware/MiniFence.h
ae7d324fcad6d561bc0ee460f296ff2ad8306b00 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: dump

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I0215fea464fd126b5f9041435bef7e00b46c6ac8
ests/hwc2/Hwc2Test.cpp
bad1bc78ef50648fadbe725a1fe1c28d62097351 21-Feb-2017 Marissa Wall <marissaw@google.com> test-hwc2: virtual displays

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ia10ec761712ee03f56782e3df2d6eabf7fb77760
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
ests/hwc2/Hwc2TestVirtualDisplay.cpp
ests/hwc2/Hwc2TestVirtualDisplay.h
35040c559d26d00d6123c894cfc9573b0a5aa860 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: color and hdr requests

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Id515de0fac7e842724ae8f27e865fad4933256e6
ests/hwc2/Hwc2Test.cpp
563030b4402f4b9aa08cece732f2a4a756a0f72c 21-Feb-2017 Marissa Wall <marissaw@google.com> test-hwc2: present display

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I845320afdf635d1716310d1183bcb10515615517
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
ests/hwc2/Hwc2TestProperties.h
4afbf41da18937466ed87da5ccdcb6cf13622709 08-Mar-2017 Fabien Sanglard <sanglardf@google.com> Delete typo in SurfaceFlinger documentation

Test: None (this is a comment)
Change-Id: I0876a40697fe5bb5245513520bc1f9a4bf1139f7
ayer.h
f18cfb0a780c69f12439457ccc3f5272db767fdd 21-Feb-2017 Marissa Wall <marissaw@google.com> test-hwc2: add client target support

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I94c86795b2e334df0570c6c5a3cbbcb5a8ca2826
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestBuffer.cpp
ests/hwc2/Hwc2TestBuffer.h
ests/hwc2/Hwc2TestClientTarget.cpp
ests/hwc2/Hwc2TestClientTarget.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
706178db2a89e2bf44e95bfad74dc4451a277b3d 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: get and accept display changes

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ia1d1a0ee5fce43e7904ee49f13a86df0e7adc428
ests/hwc2/Hwc2Test.cpp
1cd789cd2b300427467586f4ec721a8123f118b7 27-Jan-2017 Marissa Wall <marissaw@google.com> test-hwc2: validate display

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I9a9df2902213d99d4f043e3bdea1e5e2fc77b01d
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
f7618ed1b4d806e06c872c0fccce57163cf93b6a 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer visible region

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I0e620fa6763d258d7875da9bf85d41c182e015d2
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
5a240aaf0e3a1dd52be6a8d0811ec727369a210d 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer buffer

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ie42d1fd4c2d0248c4a3ecf09a9b5871d501f6172
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestBuffer.cpp
ests/hwc2/Hwc2TestBuffer.h
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
ad761818a4426b4e6a0696ba90e05056aa35553c 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer surface damage

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ie30032c7285d76d26e51b36b0cfded909f4c3480
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
2a0aaf9f5a3daeb0525249eda40242bb63f56468 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set cursor position

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I4b265826befcf33c3f71b52bfabc076c48efed5f
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ee24278db26505369c0e917d2a83e7e9fda36e4c 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer color

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ic280f91189a4d6ddd67a33901244714f3c0a46dd
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
c57468f1f6dfc870bea10e814a686793e64f6cf3 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer source crop

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: If3079efd7a035d1d182f04c56dc55300cdcedc47
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
600a73b6110d6fdcebe072a9d8e2dbbe6de1c6b7 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer display frame

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I4431ad0d207924b9fcde2c4c2f34382ec8ddc4d8
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
273b1dfa05287a0016ae1fc230cd3a5b1b7433fa 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer z order

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I2c51df36d62f9d809583003b81c24dbd7a744301
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestLayers.cpp
ests/hwc2/Hwc2TestLayers.h
ac10819373b1ed4901f26c822484a789a7ca4be0 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer transform

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I55e318cbddf957d1728435488c6283f8ce77a3d6
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
2b1f53060ea8587a428f826cf7890354ff124722 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer plane alpha

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I48146953f745dc650ead5a6e9d6f456cf5a9d7ef
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
b72b5c9ef4a6235c5bc2c4a3cceb23baf963815b 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer dataspace

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ia5bc9e53815d519e2016f3db12d69c6cc70a9b26
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
ffc67daf8b834ff2206d221ce15809cd5f21be55 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer blend mode

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Id5a7a568fb81ac9aff388d04077a12765cc135a3
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
6bd8bfde4a965b743d3d4ebff5fdaa3db03a4bbc 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: set layer composition type

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I9e71d0c01daa70f28031dd8310f2a40d7162a68e
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
ests/hwc2/Hwc2TestLayer.cpp
ests/hwc2/Hwc2TestLayer.h
ests/hwc2/Hwc2TestProperties.cpp
ests/hwc2/Hwc2TestProperties.h
dd4087f4eab87607662b7ee87e9e7b1298f7a3fc 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: get display name

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I935329c0c572368f25aeefdbc913a7044f655aa5
ests/hwc2/Hwc2Test.cpp
572a1eedae1d15a8544c95f0284e5b1216a187d2 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: enable vsync

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I704fcf0ef097602440835981a47dc6c3785e332d
ests/hwc2/Hwc2Test.cpp
03c917316507dd1c12cdb15a84f5e41576ab4bde 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: power mode support

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I4439f8215bb8d0652e6f5ad40f0c4625f7e97f9b
ests/hwc2/Hwc2Test.cpp
93dc04fda8de625d780bcd9b3cef15ad7a4932a8 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: get and set active config

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I2ac012a27b31e34886e3ec7f04a8bfc3fd1b83c4
ests/hwc2/Hwc2Test.cpp
cf935cbfa66ec65a71485e91e63a5929dc2922a1 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: get display configs and attributes

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I7aa1200057d9fa3cc7988554e8efcf6db2674584
ests/hwc2/Hwc2Test.cpp
1db2e37295cd89946ec5280c1db2dc11bba45ee2 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: create and destroy layers

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I508174a871a74d4c4d2843fc0ded84c517553bce
ests/hwc2/Hwc2Test.cpp
cfb9a07ff9bcc36afc08cef5874344aec03f18fa 18-Feb-2017 Marissa Wall <marissaw@google.com> test-hwc2: display type support

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: I0b1be456e360ac5a218ca0cd0e9f297e178c8727
ests/hwc2/Hwc2Test.cpp
a4b01488e852c0c16df89d04914e6f060dd862e3 18-Feb-2017 Marissa Wall <marissaw@google.com> test-hwc2: register callback functions

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ic48431a830115f40e9e851bca8f7c730b06f6529
ests/hwc2/Hwc2Test.cpp
4d600057db0c977e75c5d6e2d5f01fa69d30b364 15-Dec-2016 Marissa Wall <marissaw@google.com> test-hwc2: open and close hwc2 device

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
frameworks/native/libs/gui/BufferQueueCore.cpp.
Recompile and flash.
Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
Push test-hwc2 to device.
Run "adb root && adb shell stop".
Run test case. Ex: "./test-hwc2"

Change-Id: Ie7d3963540b0c96db8251bd745f37beab8dd340b
ests/hwc2/Android.mk
ests/hwc2/Hwc2Test.cpp
0cc1938871edd6659d6783404a3523abc6b98d92 06-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SurfaceFlinger] Use sf phase offset from CS

If present, use sf phase offset from the config Store.

Test: Manual
Change-Id: I2dd7ecf984b7484f6b447699680f54c7c8e221a0
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlinger_hwc1.cpp
077f132c19e731d25973bbab1c6dc319beb3f460 08-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add MiniFence to drop HWC2on1Adapter libui dep"
10012f0ce0c06ad56459a41aabef682d0b1b06d0 07-Mar-2017 Fabien Sanglard <sanglardf@google.com> Merge "[SurfaceFlinger] Comment SurfaceFlinger HWC2"
c859147db5e9d5aa8a5043c0111e2799e1db042b 07-Mar-2017 Fabien Sanglard <sanglardf@google.com> Add MiniFence to drop HWC2on1Adapter libui dep

This class will soon become a library used by devices with no support
for HWC2. They will link against libhwc2on1adapter. Drivers should have
no depedencies on libui.

Test:Manual
Change-Id: Iabd2aa89fc3b737a999632a16c4f6c30464787c4
ndroid.mk
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
isplayHardware/MiniFence.cpp
isplayHardware/MiniFence.h
56a8f942731ad34a8e85a9a0fb84f1be2ead5541 07-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "split libsensor our of libgui "
801ea093b0e923a61b832f2adba698a273479880 07-Mar-2017 Mathias Agopian <mathias@google.com> split libsensor our of libgui

Test: compile & run
Bug: treble cleanup
Change-Id: I5b2c2a14f7d3b364d25695cf0901c5b08cfb0fc9
ventThread.cpp
essageQueue.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
f0c53d6e864abc284b267e866817b3d006944a60 04-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SurfaceFlinger] Document layerStack

Test: None, these are only comments.
Change-Id: Id5d45a5847d253bf92263091e5b322a1577fabe1
isplayDevice.h
ayer.h
8226051f627aa976700885cda28c26c5a5b8bc7b 03-Mar-2017 Fabien Sanglard <sanglardf@google.com> [SurfaceFlinger] Comment SurfaceFlinger HWC2

Document decision to clear SurfaceFlinger HWC2 state upon sleep and
awake.

Test: This is just a comment.
Change-Id: I0034d8d79e6e0d5b6287579d23f941e291c89bc0
urfaceFlinger.cpp
0ed7c2af60cac6468c235eb6e02d043ae453f191 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "[surfaceflinger] Set blend mode correctly when using HWC2."
e9c0475b74553a9d478a3ff14bc849f8312fe457 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix black screen upon awake (reused after free)"
8f35e15dd65b92bc35116a025bd5f31299fe87c2 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete unused variable in setUpHWComposer"
06a76c022fcb87602e160ffa97b26a27cc1a5481 03-Mar-2017 Fabien Sanglard <sanglardf@google.com> Fix black screen upon awake (reused after free)

Under a specific timing, the state of the HWC can be left populated
with "old" layers. If a Refresh Message comes before the WM sends
a Transaction resetting the layer, the old layers are sent to the
HWC. These old layers features buffer_handle which had been freed,
resulting in a frame never signaling and a locked screen due to
backpressure triggering constantly.

Detailed explanation:

When the device power off is pressed, the WM plays the fadeout
animation, set the layer "fadeOut" to displayId -1 and calls
setPowerMode(Off). This sequence of events leads to a state where
no layers are deemed visible in surface flinger but the HWC2 still
has one.

Upon awakening the device, if a Refresh message is received before
the WM has the time to reset fadeOut layer displayId to its original
value, the HWC2 will use its last known state.

Sequence of events (with and without crash):

Put device to sleep.
Awake device.
PowerOn
Refresh <- crash

Put device to sleep.
Awake device.
PowerOn
Transac
Refresh <- Ok

Bug: 35712353
Test: AUPT (100 cycles sleep/awake without black screen lock)
Change-Id: If9177ccc0627f3b733030ed5e462dc465e63e963
urfaceFlinger.cpp
67a98056133b6930261ffd8b8826b1d1d8154403 03-Mar-2017 Fabien Sanglard <sanglardf@google.com> Delete unused variable in setUpHWComposer

Test: AUPT and Manual
Change-Id: I53fbd7f9fa83b8729554a021be526a5fb71e2b13
urfaceFlinger.cpp
4deacd4dd3df625aee6210cf0d303e3c03c5ef43 03-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Tie VR mode support to a property"
ecf0fa5340c54757870881c5d24eb331c517d78c 03-Mar-2017 David Reveman <reveman@google.com> [surfaceflinger] Set blend mode correctly when using HWC2.

HWC1 code will reset blend mode to None using setDefaultState() but
HWC2 just leaves the layer in the previous state. The result is that
once blend mode is set to something other than HWC2::BlendMode::None
we can never go back to HWC2::BlendMode::None and HWC2 implementations
are forced to use blending when not necessary.

Bug: 35915184
Test: manually verified using overdraw feedback on arc enabled chromebook
Change-Id: I86957439bad0a1be9faa56df491d8415c4cdd2c2
ayer.cpp
3a8f794471815e6419caefe254adf2bbb19a8a53 03-Mar-2017 Mark Urbanus <urbanus@google.com> Tie VR mode support to a property

Bug: 35854545
Test:
- Validate VR mode is not supported when ro.boot.vr is unset
- Validate VR mode is supported when ro.boot.vr is set

Change-Id: I26f7e851766eab0d8a5a2f9fb4d72bfcee0c42f3
urfaceFlinger.cpp
urfaceFlinger.h
0ee1d0ed5fe4439dfcc8859938c1273274448de2 02-Mar-2017 Chia-I Wu <olv@google.com> Merge "surfaceflinger: work around dumpsys lockup"
843460d1d8ced54ed224cff2b3fad703b6ea98c4 02-Mar-2017 Chia-I Wu <olv@google.com> surfaceflinger: work around dumpsys lockup

Bug: 35806047
Test: manual
Change-Id: I047ddf0ef9eacd4df7da3c9d91118c3f1592a9eb
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
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."
3b14c2ac6af21b4d37788001908796fc0a1748d8 01-Mar-2017 Rob Carr <racarr@google.com> Merge "SurfaceFlinger: Trivial Transaction_test refactoring."
6961b6bc1f6f172745deee98e7dcb34a3668e4e6 01-Mar-2017 Mathias Agopian <mathias@google.com> Remove unneeded references to IMemory

Test: compiled & run
Bug: cleanup
Change-Id: Ifef6695275f244a420df574b3bc49adb99c93fbf
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ests/Transaction_test.cpp
46e6929b409eacc28177a19fb6f06a52749eb726 28-Feb-2017 Jaesoo Lee <jaesoo@google.com> Merge "configstore: import configstore-utils as a header library"
764881145a75987d3e832aa0b850d8ed381e7cca 27-Feb-2017 Jeff Sharkey <jsharkey@android.com> Revert "Refactor SurfaceFlinger::rebuildLayerStacks"

This reverts commit 3beb7117d247c64c5d9d3a7e6df7eecdd9523711.

Bug: 35801498
Change-Id: Ife431b19f3aef21cbe07863ca2964b2a40677dbd
urfaceFlinger.cpp
b665cd388c787d750e5b9282c64208d77fbceaf2 27-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adjust traces to diagnostic of HWC2on1Adapter"
554a96f92e8796be95f215bbd8f1a1d1fb359da9 27-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix error code check in releaseBuffer"
5c3c77623b9841998ad418ab54043d34e10b9748 27-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor SurfaceFlinger::rebuildLayerStacks"
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
lient.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ests/Transaction_test.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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
urfaceInterceptor.cpp
urfaceInterceptor.h
6c9875dd54b10cd2fe137fb303307d1b5c1f50e7 27-Feb-2017 Jaesoo Lee <jaesoo@google.com> configstore: import configstore-utils as a header library

The android.hardware.configstore-utils library is no more built as a
static library but as a header only library.

This change applies this in building SurfaceFlinger.

Design doc: go/design-confighal
Bug: 35397068
Test: build, run on sailfish

Change-Id: I7d7abf3c87861bf7daa293af4e9d6841f854711e
ndroid.mk
3beb7117d247c64c5d9d3a7e6df7eecdd9523711 25-Feb-2017 Fabien Sanglard <sanglardf@google.com> Refactor SurfaceFlinger::rebuildLayerStacks

Reduce indentation with early return

Change-Id: Ic3a16bf45a0c1792b0fcbd5d9d1cd9f1e239ae32
urfaceFlinger.cpp
af5b6b814119151985d27d6edde7917cfb1e8d45 23-Feb-2017 Fabien Sanglard <sanglardf@google.com> Adjust traces to diagnostic of HWC2on1Adapter

Change-Id: I0110fac372791bec657521522de3e08907f465f7
isplayHardware/HWC2On1Adapter.cpp
urfaceFlinger.cpp
3a156e11abc86f0fb7f3f503ca534140ea2a9a56 24-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix error code check in releaseBuffer

BufferQueueConsumer can occasionaly return STALE_BUFFER_SLOT which
does not indicate an error but that there is no more to be done.
SurfaceFlingerConsumer should report and error only with a status
code inferior to zero.

Test: AUPT
Change-Id: Ie0624358301e1e3b090adf35facd6eac79c214db
urfaceFlingerConsumer.cpp
68620d4b87954ff83f6f7cd2adbaf698be2a522e 23-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Create VR HWComposer without locks held"
209beca0f051ff56654c2027f2e281c8a73d1686 23-Feb-2017 Mark Urbanus <urbanus@google.com> Create VR HWComposer without locks held

Problem:
Surfaceflinger is occassionally deadlocking when switching to VR Mode.

Root-cause:
During the creation of the VR HWComposer through hwbinder,
hwservicemanager notifies surfaceflinger the service is available through a
binder callback. Because Surfaceflinger holds the state-lock during the
HWComposer creation, its possible all of SurfaceFlinger's binder threads are
handling other transactions waiting for the state-lock to be released.
This prevents the hwservicemanager callback ever to be handled resulting in
a deadlock.

Solution:
Don't hold the state-lock when instantiating the VR HWComposer.

Test: Validated deadlocks no longer occur when switching to VR mode.
Bug: 35680107
Change-Id: I932c81fce293a8b57983f4242432b87522ce964c
urfaceFlinger.cpp
f5eb5e62777e03551af611e799f9b24e473dd065 24-Jan-2017 Chris Phoenix <cphoenix@google.com> hwcomposer HAL uses "default" service name

The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.

Test: builds

Bug: 33844934
Change-Id: I6befd081add61e355bc25dd0c630ac07ea0103c4
isplayHardware/ComposerHal.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
ayer.cpp
2b91c826ac5fc1d0f9370d02fd8c2373e5ca85d3 22-Feb-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Trivial Transaction_test refactoring.

Make consistent use of the assertBG/FG color helpers
introduced in a past CL.

Test: Existing test passes.
Change-Id: Ic793c195e9ff8a99a3b6fbcfc9995b522c252c9a
ests/Transaction_test.cpp
136e2f6570d68e86dca1b2bfa23fc61abcee149e 09-Feb-2017 Robert Carr <racarr@google.com> Remove erroneous log message

It seems we always get a duplicate remove from the layer-cleaner
so this was showing up any time any layer was removed. We didn't have
this message before the child layers CL so lets get rid of it quickly.

Test: Deleting a line of logging code. It builds!
Change-Id: I16cc0c0b325e43d36cae684b06a93c099baa1aa6
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
1614c1e9ceca8ce5bb183c3f96274b0c8a9e355b 21-Feb-2017 Isaac Chen <ycchen@google.com> Merge "Removed build time variable ENABLE_CPUSETS." am: 52a60e08fb am: 33f4b64f23
am: eb8be8f5e9

Change-Id: I9624618aae00134414e946e3f6df97e89c5b7495
33f4b64f23978b99088a0afeee662bc211cc9f17 21-Feb-2017 Isaac Chen <ycchen@google.com> Merge "Removed build time variable ENABLE_CPUSETS."
am: 52a60e08fb

Change-Id: Ic5d351f18a0c839212987c5fcbb803a7c07ac5cb
158f9a34c714b850f92f66ca9a5c61b96b224fe1 18-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "move vector math out of libui"
391ab069b114d5012b1fa0a48c9bc2b841974970 16-Feb-2017 Isaac Chen <ycchen@google.com> Removed build time variable ENABLE_CPUSETS.

Use runtime check, cpuset_enabled(), instead of build time varianble
usually set in BoardConfog.mk.

Bug: 34726944

Test: Tested on Sailfish
without cpuset mounted
with cpuset mounted, but without schedtune
with cpuset mounted and with schedtune

Change-Id: I00153628db62abfbaa0ba75d571ba1bda0611ff3
ndroid.mk
ain_surfaceflinger.cpp
1d77b719d51a01cbd6954a048fb64e79d50a950e 18-Feb-2017 Mathias Agopian <mathias@google.com> move vector math out of libui

created a new header-only static libmath lib

Test: built & ran
Bug: n/a
Change-Id: Ic63ef5f54d9a0de07a9ab9e4d67be01ab6169fc0
isplayHardware/HWC2.h
ffects/Daltonizer.cpp
ffects/Daltonizer.h
enderEngine/RenderEngine.h
enderEngine/Texture.h
urfaceFlinger.h
ransform.h
06e908a69177e5b2cfe2625f58cae9da9f29e78f 12-Feb-2017 Fabien Sanglard <sanglardf@google.com> Refactor HWC2on1Adapter

- Simply memory allocation with a single, consolidated calloc().
- Remove latch system which did not prove useful.
- Converted { to be before \n.

Change-Id: Id1daec2343225598160395bfecddc86955e2b610
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
310ac5e48a758482273b22b7aa03ef2509248df1 18-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Discard surfaceDamage for HWC1 v < 1.5"
356bcd4144e87f570fe412e2bd31b1af796b429f 18-Feb-2017 Fabien Sanglard <sanglardf@google.com> Discard surfaceDamage for HWC1 v < 1.5

Test: Manual
Change-Id: Ia9193a88dc6df206c8f197adf144466f164afa1c
isplayHardware/HWC2On1Adapter.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.
873e2eee781f323a8aa0283cab5924fa4cd7ecfe 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Move FloatRect from libgfx to libui"
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
ndroid.mk
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
ayerRejecter.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
0ed70ddebe2a392c32b010e00229b9f0e2fd2e09 17-Feb-2017 Romain Guy <romainguy@google.com> Merge "Add RGBA 10:10:10:2 format for surfaces"
5a423eaa86f4c990afcef8c55e3949d0872068b4 16-Feb-2017 Dan Stoza <stoza@google.com> Move FloatRect from libgfx to libui

Moves FloatRect from libgfx (which is being disintegrated) to libui

Test: Builds and sailfish boots
Change-Id: I68c1b7d86a363066fe4d6f0c038ca9d92d7ab9c7
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
ayer.cpp
ayer.h
5297807559ce3e5f217d3aba988a240aa4f25f57 16-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "surfaceflinger: disable VR mode while SELinux issues are resolved."
125c3ae33e284b09dede27a7e01b0b51d0653227 16-Feb-2017 Jaesoo Lee <jaesoo@google.com> Merge changes from topic 'cfg_nsfbuf'

* changes:
configstore: removing BoardConfig variables (NUM_FRAMEBUFFER_SURFACE_BUFFERS)
configstore: use utility functions defined in ConfigStoreUtils.h
ce2c1983bb6b272b4b1377dedddc429b78249226 16-Feb-2017 Corey Tabaka <eieio@google.com> surfaceflinger: disable VR mode while SELinux issues are resolved.

Temporarily disable VR mode support while SELinux policy issues are
rectified.

Bug: 35319396
Test: build; flash; run
Change-Id: I218afb6f9bff21980de184596471f8ec673af2e6
urfaceFlinger.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
isplayHardware/HWComposer_hwc1.cpp
ayer.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
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
b04c6f03a2334b03ae0105ec005aeecfa61f4a90 21-Oct-2016 Brian Anderson <brianderson@google.com> Change GL references to GPU for getFrameTimestamps.

Test: Rename only.

Change-Id: Idaf7ab38f78f58aa8387823f47dac084e21eb1f0
urfaceFlinger.cpp
urfaceFlinger_hwc1.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
ayer.cpp
720a72479292406b821cbb17b93e6e1659ce0c3e 31-Jan-2017 Jaesoo Lee <jaesoo@google.com> configstore: removing BoardConfig variables (NUM_FRAMEBUFFER_SURFACE_BUFFERS)

This change removes the use of NUM_FRAMEBUFFER_SURFACE_BUFFERS from
SurfaceFlinger.

Instead of using it, the implementation is changed so that it retrieves
corresponding configuration value (useTripleFramebuffer) from
configstore.

Design doc: go/design-confighal
Bug: 34723491
Test: build, run, log message "SurfaceFlinger FrameBuffer: ?" should be seen.

Change-Id: If6f6d13738d894b4880f42576f4ce8220b4a8bef
isplayDevice.cpp
4351857c9de86df9f418b3df28aebb1239ca35dd 23-Jan-2017 Jaesoo Lee <jaesoo@google.com> configstore: use utility functions defined in ConfigStoreUtils.h

This change modifies existing implementation to get config values via
configstore by using utility functions defined in ConfigStoreUtils.h.

Specifically, as an example, the utility function getInt64() is used
for vsyncEventPhaseoffsetNs defined in ISurfaceFlingerConfigs.

Design doc: go/design-confighal
Bug: 34724435
Test: build, run

Change-Id: I82a9371a84902c1e185d619d77e4c2e3272f84db
ndroid.mk
urfaceFlinger.cpp
9f02435fd44c0651c85e9bd4dc7307bc6b1a85fa 15-Feb-2017 Brian C. Anderson <brianderson@google.com> Merge "EGL: Add eglGetCompositorTimingANDROID."
abc64f0d096f61f8150dc6f8398a829281fd4dd0 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "surfaceflinger: skip buffer cache when BYPASS_IHWC"
3b70dffaa2fee64161ec0445ff9a96a2cb64324e 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix unitialized field in HWC2on1Adapter"
0e9b20c2d1fae2a01dc50df98be04cf0f5d8eeff 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove magic number usage in SurfaceFlinger"
2bd6f5f365d13770b96804a3d9a1c4e930dac25c 13-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix unitialized field in HWC2on1Adapter

Bug: 33487853
Test: AUPT
Change-Id: If271eb6b9d357047b41fed19a2079325970132a7
isplayHardware/HWC2On1Adapter.cpp
406acb8c012f74a881daafaf370b19dec7ecda46 14-Feb-2017 Chia-I Wu <olv@google.com> surfaceflinger: skip buffer cache when BYPASS_IHWC

When SF talks to hwcomposer2 directly, we should skip HWC buffer
cache. The cache works somehow similar to
IGraphicBufferConsumer::acquireBuffer, where buffer is set to
nullptr when it is already seen previously. That confuses
hwcomposer2.

Bug: 35325794
Test: manual
Change-Id: I5306ecc9e7290bc6734091a9884024bf38667628
isplayHardware/HWComposer.cpp
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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
3cfac28462910d3f976aebac54ac7301aca7e434 06-Feb-2017 Steven Thomas <steventhomas@google.com> Ignore callbacks from the non-active hardware composer

Ignore callbacks from the non-active hardware composer so we don't get
e.g. duplicate vsync callbacks, one from each composer.

Bug: None

Test: Manually confirmed with logs we're now ignoring callbacks on the
non-active composer.

Change-Id: I8b475d6283d86c64ff96b41e78528bce8c6ff1d3
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
7382ed7f54a253b958a9d24f6d7eff2a94f47660 12-Feb-2017 Fabien Sanglard <sanglardf@google.com> Remove magic number usage in SurfaceFlinger

Test: Manual
Change-Id: I9d4c7e4ec8546314864e0625a832e9a0bb49e95b
isplayHardware/HWC2On1Adapter.cpp
748a163bf020d9eb53ce610fad90241fc52940af 10-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix small child layer transparent region error"
fe37b77efae4dc10c1a5bdaec4127cdf8d182bfb 10-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix boolean logic in SurfaceFlinger property read"
bb5afada05e597b8a74e3888863319c319c3c944 10-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Disable Virtual Display by default in SF"
87670ffe26079eb50b62f698eb0f7bfa8ee51deb 01-Feb-2017 Hendrik Wagenaar <hendrikw@google.com> Allow surfaceflinger to run vrflinger

* Allows surface flinger to switch in and out of vr mode

Bug: None
Test: Manually ran various vr test programs.
Change-Id: I15fbba0eb67cbcffeef41be31429550448a1db9c
ndroid.mk
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
rStateCallbacks.cpp
rStateCallbacks.h
642b23d70f7b513e88680c1d8400c1c1cfe6edd3 09-Feb-2017 Fabien Sanglard <sanglardf@google.com> Disable Virtual Display by default in SF

These should be enabled by default once b/30022738 is resolved.

Change-Id: I70a48a0bcf98ca984a28aa130170270d16e708bf
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
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
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
de9ec44905aca4f0ef4f473065b0e7d93d7e1cfe 09-Feb-2017 Robert Carr <racarr@google.com> Fix small child layer transparent region error

Just turned transparent region back on in my SurfaceView port
and saw things were pretty broken.

Test: Manual
Change-Id: I3ab5520ecd226c86ef903767f6a562af7d7eb16d
ayer.cpp
c65dafa95467f52e7f65350b38e94ab217c008da 07-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix boolean logic in SurfaceFlinger property read

Test: AUPT
Change-Id: Ib1db9198f470d62db1efa77193bf9e5f47b8a4b8
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
e8b5536c591ee74709f87e46cc98dee21cc0b03e 07-Feb-2017 Fabien Sanglard <sanglardf@google.com> Merge "Revert "Enable TripleBuffering on SF by default""
4e06b00ae85155117f4456c0beaa17175670f501 07-Feb-2017 Fabien Sanglard <sanglardf@google.com> Revert "Enable TripleBuffering on SF by default"

This reverts commit f222b2e6f4a3c26d6d2d9e3dd9056e5c95d7bc9c.

Change-Id: I300e46c9e93840fde85471eed4e5f7d10dde9b43
urfaceFlinger.cpp
97a83762413be0d255841d6abaf6c1f474ce5364 07-Feb-2017 wyau <wyau@google.com> Merge "SurfaceFlinger supports ClearClientTarget for Sideband" am: 6560727f37 am: adde06b9e8 am: 1f94c41f83
am: d7a4a56b37

Change-Id: I6be4ced0d5779f319976f8f24fc446c3473d0428
d7a4a56b37915de79659345c77949993814259a4 07-Feb-2017 wyau <wyau@google.com> Merge "SurfaceFlinger supports ClearClientTarget for Sideband" am: 6560727f37 am: adde06b9e8
am: 1f94c41f83

Change-Id: I4a1819a3aa9f4c5aa7233225bdae29435272cade
1f94c41f8332c1ff51e6531bae01dc5880529d09 07-Feb-2017 wyau <wyau@google.com> Merge "SurfaceFlinger supports ClearClientTarget for Sideband" am: 6560727f37
am: adde06b9e8

Change-Id: I68e33ab1173bbae30e8d22ae86397ec081051f7f
39fe1d879cc2e55d4d3c3f7445977c674b97c472 06-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Enable TripleBuffering on SF by default"
267ab79b22f9d0b995ff787e36aca9c39497c489 11-Jan-2017 Gray Huang <gray.huang@mediatek.com> SurfaceFlinger supports ClearClientTarget for Sideband

When clearing the layer's intersection with the dirty region,
HWC2::Composition::Sideband layer needs to be cleared as well.

Bug: 33443134
Test: manual - enter PIP mode with Live Channel
Change-Id: I4fecc7b5db8a2bf220b681bd087264290d1a2443
urfaceFlinger.cpp
f222b2e6f4a3c26d6d2d9e3dd9056e5c95d7bc9c 06-Feb-2017 Fabien Sanglard <sanglardf@google.com> Enable TripleBuffering on SF by default

Change-Id: I5958534133799419fa77c00536c68cacd1ccb6a9
urfaceFlinger.cpp
553891a392d26a0d08dc0b3738d1171149e89015 04-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix protected content playback via HWC2on1Adapter"
999a7fdad2a48d0517f515cc6ea6c7324aa28228 03-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix protected content playback via HWC2on1Adapter

The adapter marked unsupported dataspace layer with HWC_SKIP_LAYER
which prevented HWC to mark protected content with HWC_OVERLAY.

Test: AUPT
Change-Id: Id8c05c7e575ffcc4160cdd8d23b151c4901b4c5c
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
eb7d088b07d8e4bb63e4f37b9a430209b0b4cbdf 03-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I9f2ea67c,I34588df1,I88a56236

* changes:
Use generic libpdx event bits facility in libvrflinger and bufferhubd.
Add libvrflinger for use in SurfaceFlinger
Export surface flinger includes
e73f6bbec418918fec3cd566beeb80dec437289b 03-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SurfaceFlinger: Set property in separate thread in init"
06a763423835ec977db0fe38d1bbf438dbbf1e66 02-Feb-2017 Alex Vakulenko <avakulenko@google.com> Export surface flinger includes

* Before we start using libvrflinger, we need to export the
surface flinger includes.

Bug: None
Test: Compile surfaceflinger and libvrflinger together
Change-Id: I88a56236f297eb58397fcda5ff28bfecbd4e0971
ndroid.bp
1e4d3496a0fcf29d46c33551c5af604d40eee110 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 45b202513b am: 8778a131c2 am: 18a5e5f607 am: f91ee50667 am: 41ab86fb1f
am: 9451234907

Change-Id: Ie90de6ee888c2a90a835bfb06cfd9c1eeadba100
9451234907050176bd183f48cd2783d03a06ec48 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 45b202513b am: 8778a131c2 am: 18a5e5f607 am: f91ee50667
am: 41ab86fb1f

Change-Id: I49c6fa4e733d05804495de9f5986d3430178d0f9
b6fa70b9fb4e38f7e2a7013888d6c7a46102f158 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 45b202513b am: 8778a131c2 am: 18a5e5f607
am: f91ee50667

Change-Id: I703ffd6b2a4ee5a7726bd7426f83256ad990835f
41ab86fb1fefe77fb48dda744eb621e4b77085de 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 45b202513b am: 8778a131c2 am: 18a5e5f607
am: f91ee50667

Change-Id: Ib4fad8fa8a393bc6233b842f0550db03708a65b1
18a5e5f607511195376d5a11fa75b1b1d807daa0 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 45b202513b
am: 8778a131c2

Change-Id: Ic9300f2597702d6e83d80222dbc5ca7d2642f621
8778a131c2f639f1ed490d7847cf544cddc33e80 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability
am: 45b202513b

Change-Id: Ifaf692c814e2562332914854dc95c7715d37a5c0
b254fa3a9eccd5ad7d853d687cf50a68dd8ee41c 01-Feb-2017 Wei Wang <wvw@google.com> SurfaceFlinger: Set property in separate thread in init

By setting property in a separate thread, the CL aims to
avoid slow initilization in SurfaceFlinger::init where
SurfaceFlinger is waiting on property_service.

Bug: 34499826
Test: on marlin
Change-Id: I91afad3cbc9a2b31aa89ae9cc752ad491cc9d8e4
ndroid.mk
ventControlThread.h
tartBootAnimThread.cpp
tartBootAnimThread.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
cb11135f1df815b822eb3fe1571a1536618289dd 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54 am: ded5521871 am: 0e0a258771 am: 6a5a220b48 am: 30ab1434c3 am: f6868443ef
am: 53ed9c6c7e

Change-Id: I8f312459a57431221201c1fae8bfd6c178bf07c4
53ed9c6c7ec1da60031abac81f03b52568353af7 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54 am: ded5521871 am: 0e0a258771 am: 6a5a220b48 am: 30ab1434c3
am: f6868443ef

Change-Id: I8faa4d9bc29bb2c8a9bae1f94f57e89e52a4b229
81e84ad0721cda5a160bb13a0380a732622a590d 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54 am: ded5521871 am: 0e0a258771 am: 6a5a220b48
am: 30ab1434c3

Change-Id: I4e08855d038ae114c6c6230288c6158115fe2f7f
f6868443ef7ff3465b87c615b3519f945d9224ef 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54 am: ded5521871 am: 0e0a258771 am: 6a5a220b48
am: 30ab1434c3

Change-Id: Iaa4ffc3bca279f294a36df31823ec9a30a728fe7
6a5a220b481d2014f2c0c523a41a57ee1b4374fa 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54 am: ded5521871
am: 0e0a258771

Change-Id: I4479a276592fc9d5d25378a5abee12473a2104ae
0e0a25877137154a5da927c6c0924d96b57fdee8 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e am: 40cd915a54
am: ded5521871

Change-Id: Ibf93b2a73caab87ee6c0b27234a8cdc05c0aa61e
ded55218716612e979b3194ce33d5aa05ac4c5ed 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a am: 5ba227f96e
am: 40cd915a54

Change-Id: Ib34c9d0e90e77565ab6d0d7fb805bb425964b5aa
40cd915a54dc23c539fd420cdb5cfa7aaf9b872c 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b am: cca3b79c32 am: ebbf8a6b5a
am: 5ba227f96e

Change-Id: I9fc225ba640b4391d60380d7c588015c3e5516a7
ebbf8a6b5ab37ba7e51ce159db33d7b1fa170f72 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24 am: c7892d9d0b
am: cca3b79c32

Change-Id: I2e5da5ee33eb2757f360881e6ecc7dfd9fb67938
cca3b79c3259eee98f27e7b5f1634de6b49cc902 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f am: 132d0f2aef am: 3995674f24
am: c7892d9d0b

Change-Id: Ic59ba49542b907591f3e514ae0417ed82a5be7aa
3995674f2457c457839cea8aeabc14432512e8e6 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834 am: ac2b87ac0f
am: 132d0f2aef

Change-Id: If2aa999ec1f261ea34a6aa725241ea50226083ad
132d0f2aefb36a0a83fc77460ed24383d0e3202a 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62 am: 11ab583834
am: ac2b87ac0f

Change-Id: I3b249a9ec1820917dc015c72bd093535927c9ed6
ac2b87ac0f613f9995b938a9157544cdd2dbe646 02-Feb-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability am: 2ae83f4f62
am: 11ab583834

Change-Id: I09ec85b9f83e1f4458940415cd07f6fca725c552
cdb6b9e8b3489e29150537f021986657b7daf3fc 01-Feb-2017 Jiyong Park <jiyong@google.com> Merge "configstore: remove build flags from surfaceflinger"
6c97ea6eeff53838fc5e11559946ce3933ed74b2 01-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set cache dirty on layer creation/destruction"
08025e35d519758917342bdcba6d3ca1c19af3bb 01-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor how layer metadata for use by VR is propagated from WindowManager based on feedback in frameworks/base."
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
lient.cpp
lient.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
03be681d485ec5e86052e764a1120a5953e86cdf 31-Jan-2017 Fabien Sanglard <sanglardf@google.com> Set cache dirty on layer creation/destruction

The adapter misses an edge cases where a transaction both destroys and
creates a layer. Under these conditions, assignHwc1LayerIds() is not
called. mHwc1LayerMap contains reference to destroyed layers
and ultimately lead to segfault.

Test: Angler eng device and AUPT.
Change-Id: I96bcbabf74a80cc87df796c0bc84b84e2bda8614
isplayHardware/HWC2On1Adapter.cpp
16ab8191fee19ed977daf31cf5b460851162fb6d 31-Jan-2017 Fabien Sanglard <sanglardf@google.com> Fix unitialized field in HWC2on1Adapter

Layer acquire fence file descriptor was not always initialized. In
the case of a SolidColor layer, the file descriptor was left set to
value 0 (stdin) which after call to set would be closed by the
adapter leading to system unstability.

Test: Angler eng devices and AUPT

Change-Id: Ic931d8cf9b0c6ca8d56c7a0ed7a7f586bf072505
isplayHardware/HWC2On1Adapter.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
lient.cpp
lient.h
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
2f5f8a51f5994cf14837030d4b3b252a9d1b950b 20-Dec-2016 Daniel Nicoara <dnicoara@google.com> VR: Add ability to pass layer info through SurfaceFlinger

Updates SurfaceFlinger to connect to the VR HWC service and pass
additional layer information.

For now VR mode is enabled at build time.

Bug: 33297385
Test: Ran on device and verified the IVrComposerClient::setLayerInfo()
call is done successfully.

Change-Id: I9dea2451a3a2aa1919395d3785ae00446ba51f26
ndroid.mk
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
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
lient.cpp
lient.h
ayer.cpp
ayer.h
ayerDim.cpp
ayerVector.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
urfaceInterceptor.cpp
ests/Android.mk
ests/Transaction_test.cpp
2047fae0cfed99c425dc7333f31d309e5b8ee1ba 28-Nov-2016 Robert Carr <racarr@google.com> SurfaceFlinger: Use traversal functions to iterate LayerList.

In preparation for the Layer hierarchy. There we will need
to use such a style to traverse the tree of layers.

Test: Just a refactoring. SurfaceFlinger still works.
Change-Id: I84dcd82e713f1bdbe911658793ce11460267a956
ndroid.mk
ayer.cpp
ayerVector.cpp
ayerVector.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
146abf38c2442b77dc78a0565ad010376c9d1b69 24-Jan-2017 Courtney Goeltzenleuchter <courtneygo@google.com> Merge "Make dataspace accessible to surface flinger"
1214c9895f6a81cf7904d9da496e019016ca1412 23-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Update CommandWriter to CommandWriterBase"
4b20c2ee8e51006db51bbe1391f9173230bb73d2 14-Jan-2017 Jiyong Park <jiyong@google.com> configstore: remove build flags from surfaceflinger

This change removes build flags used in building surfaceflinger.
Instead, surfaceflinger uses android.hardware.configstore HAL to get
values for the build flags at runtime.

As a first attempt, a build flag VSYNC_VENT_PHASE_OFFSET_NS is converted
to a hwbinder call to vsyncEventPhaseoffsetNs() function in
android.hardware.configstore@1.0 package.

Note that VSYNC_EVENT_PHASE_OFFSET_NS still remains in Android.mk
for non-treble targets.

Design doc: go/design-confighal
Bug: 34314793
Test: build, run, log message "Phase offset NS: ..." should be seen.

Change-Id: I43862d4df5abd3e9275ec9c0e2e0b568d8b48347
ndroid.mk
urfaceFlinger.cpp
2ae83f4f628d4da96f363d0668380ba1f753b867 19-Jan-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability

Test: hammerhead
Bug: 32628763
Change-Id: I19a81b63fffee8f323a5925c7e8633fbd640b91c
urfaceFlinger.cpp
45b202513ba7440beaefbf9928f73fb6683dcfbd 19-Jan-2017 Fabien Sanglard <sanglardf@google.com> Fix security vulnerability

Change-Id: I4c9ea3a3177131fa29d2561da71ef18bec3af108
Test: angler, marlin
Bug: 32628763
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
3c9cbd48a678542f6832168f3f6371c4f717f709 17-Jan-2017 Daniel Nicoara <dnicoara@google.com> Update CommandWriter to CommandWriterBase

Updates dependencies after rename.

Bug: 33297385
Test: Compiled
Change-Id: I99bb972dc591ba8cef4ec5ab7cab07120a9ca739
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
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."
4dad9ce0a50a34f491ecc3ff95ea3e05ca95b724 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
- coding standard for header order
- include headers that are side effect of others.

Test: compile
Bug: 34250038
Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd
urfaceInterceptor.cpp
urfaceInterceptor.h
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
urfaceFlinger.cpp
urfaceFlinger_hwc1.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
olorizer.h
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
ayer.cpp
ayer.h
urfaceFlinger.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
a2c2d11f98b692401be56c8f285c570bae47ddda 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
am: fbc9758151

Change-Id: I911936217c6b47f48092319ff66edafaf0f7c395
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
dmConnection.cpp
ispSync.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer_hwc1.cpp
enderEngine/Program.cpp
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
83756055ff9d897621bf61883c212e3b96b342de 09-Jan-2017 Fabien Sanglard <sanglardf@google.com> Fix syntax error in appendSfConfigString (#endif)

Change-Id: I1ff05e34e4d8d9f73bb5cb090c96011497132947
urfaceFlinger.cpp
51185338800b7e1f024ec1b533134afc4cb473d5 09-Jan-2017 Fabien Sanglard <sanglardf@google.com> Merge "Move TARGET_DISABLE_TRIPLE_BUFFERING to property"
32872923ea72b7edc4fbf962fb4481f4a50d6633 09-Jan-2017 Fabien Sanglard <sanglardf@google.com> Merge "Document crop and finalCrop"
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
ayer.cpp
ayer.h
847650b5d89a1667f78fa0fa67429377cd3bf37a 17-Jun-2016 Naseer Ahmed <naseer@codeaurora.org> HWC2: Initialize retire fence to -1

Initializing to zero will cause us to inadvertently close fd 0.
While fd 0 (stdout) isn't used in the surfaceflinger process,
if we close it, the fd becomes available for other usages, such
as fences and ion buffers. Using it becomes problematic for some
drivers which may treat it as an invalid value.

Bug: 28640429
Test: Fixes GPU driver seeing fd of 0 and erroring
Change-Id: Ifa06472d24476edb27a4306d946eb616a15aee7a
isplayHardware/HWC2.cpp
63a5fcd2aa55c8eb0ccba621517a4215d8504df6 30-Dec-2016 Fabien Sanglard <sanglardf@google.com> Move TARGET_DISABLE_TRIPLE_BUFFERING to property

As part of the migration to Soong, Android.mk environment variables
must be moved to property which are checked at runtime.

Tests: Angler and Sailfish
Change-Id: I7c620656c6778b36fea78c3087fbd5d33cea96f8
ndroid.mk
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
c8e4c3d7d9f987b84ed307cb78732a34d21d3b5a 05-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Create libgfx, starting with FloatRect"
9d02100650605c62b66ec45d212d6428f42761fe 04-Jan-2017 Steven Moreland <smoreland@google.com> Return<*> getStatus().isOk() -> isOk()

Bug: 31348667
Test: compiles
Change-Id: I8f1fb98732b6e48fc7ef099d5ca85f6e91014921
isplayHardware/ComposerHal.cpp
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
isplayHardware/FloatRect.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
ayer.cpp
ayer.h
c03d283e8b3f830d76dd94822b2a13872c05c730 28-Dec-2016 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of 525a5f2 to master

Test: build
Change-Id: Id1c6d3d9dd158fb086b0d8ab74f7838ef0a51af1
525a5f2da844d1acc9e405fc4935d8a1cb2ece67 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
am: 430f62090c

Change-Id: I8bbed9204718da324f0bdeceb7b8156cb315e900
064670efc4ce0fc7dcbe943b91d6d85b31025736 23-Dec-2016 Chia-I Wu <olv@google.com> Merge "Replace non-const references by pointers"
67e376d6564f8b9f996a347c9402bdc9da789321 19-Dec-2016 Chia-I Wu <olv@google.com> Replace non-const references by pointers

Use pointers for outputs to be consistent with the rest of
libui/libsurfaceflinger.

Remove assignFromHidlVec now that hidl_vec can be casted to std::vector.

Test: builds and boots
Change-Id: I656367028302e7b877a766eaf6aa2431fe07643b
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
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
dmConnection.cpp
ispSync.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/PowerHAL.cpp
ventLog/EventLog.cpp
rameTracker.cpp
enderEngine/Program.cpp
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
c0b1577538390f75de137e030bc22ff415e07683 20-Dec-2016 Jesse Hall <jessehall@google.com> GpuService: fix shellCommand result protocol

The "cmd" shell command at some point separated transport vs. command
results: transport errors should be returned as the Binder transaction
result, but in the absence of a transport error, the command result
(success or failure) should be sent to a IResultReceiver object
provided as a command parameter.

GpuService wasn't doing this, returning the command result from the
Binder transaction and never sending anything to the IResultReceiver.
This caused cmd to wait forever for an IResultReceiver result to
become available. This change properly handles transport errors vs.
command results.

Test: for cmd in "" help vkjson foo; do adb shell cmd gpu $cmd; done
Change-Id: Id2f78593a27d35a88ffa96182de0ef75c3e33599
puService.cpp
3e26b1363ff8b39a472fc2d4fe9ee59ee818b977 20-Dec-2016 Jesse Hall <jessehall@google.com> GpuService: handle null shell command

Test: for cmd in "" help vkjson foo; do adb shell cmd gpu $cmd; done
Bug: 33747292
Change-Id: Iaed396cc5157e17bf72b53566fb3e38c64182c44
puService.cpp
c4c286f30a60ef9ebfc959ea4869d87ceeb831dc 17-Dec-2016 Romain Guy <romainguy@google.com> Merge "Remove RGBX_FP16 format"
8018f22c2ceb97536828787d0a49c320cb9a18e5 17-Dec-2016 Chia-I Wu <olv@google.com> Merge "surfaceflinger: update for IComposer changes"
d3e08d4811e13aefd656e3376e7d56e2d37bb388 16-Dec-2016 Romain Guy <romainguy@google.com> Remove RGBX_FP16 format

Bug: 32984164
Test: compile
Change-Id: I4e0eadc3066717d4644d71cf2684a617bae34a1f
isplayHardware/HWComposer_hwc1.cpp
e2caadca83c8842bbfe74e21f11b9e2b5aeb4e13 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add fp16 pixel and window formats"
cd8d7f08fe26645f74e540365b1a8a38e602088d 16-Nov-2016 Chia-I Wu <olv@google.com> surfaceflinger: update for IComposer changes

The new IComposer introduces IComposerClient to manage resources and
replaces most state changing functions by a "command buffer" to batch
calls.

Test: builds and boots
Change-Id: Idd1060f83fab28330e7119ff0f5a5bda5429811a
ndroid.mk
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
9698c2f193666ab506a6edf113c5a77d0d0acb3b 15-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Use FenceTime to share fence times and reduce open fds."
100a437706d5a2750ab384d79588411f875a13be 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Document HWC2to1Adapter"
b8155eda3456ce5f639b7240aef78886c78b20cd 14-Dec-2016 Kalle Raita <kraita@google.com> Merge "Do not drop MonitoredProducer in binder calls"
339607072fbc0ca39e6e13ce197cb720ef971d91 30-Nov-2016 Fabien Sanglard <sanglardf@google.com> Document HWC2to1Adapter

Change-Id: I1ba60143b74e886f132136c7ecc13fd89c349dd4
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.h
ff415149dc5a83a4eb5960daf2cb2c310ef89847 14-Dec-2016 Romain Guy <romainguy@google.com> Add fp16 pixel and window formats

Bug: 32984164
Test: compile
Change-Id: I8303afbf857796295a280c0d9438a3c403a11437
isplayHardware/HWComposer_hwc1.cpp
ayer.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
onitoredProducer.cpp
onitoredProducer.h
4ed383cec76494a529abbd167109759d9e40cdd9 13-Dec-2016 Fabien Sanglard <sanglardf@google.com> Document crop and finalCrop

The difference between crop and finalCrop is not documented anywhere.
"finalCrop" is not a very good name either and it would also be a
good thing to rename it to windowSpaceClip and propagate this to
framework API.

Change-Id: I7542cdb7e2430b873b30e63f06a8d39de3fa2b6d
ayer.h
d7818abc914a3ce0bff6dca2c86c5677ef0159db 13-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix memory leak in HWC2to1Adapter"
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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
rameTracker.cpp
rameTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ec0a9565d866c69efa6d347a76a78add141de57d 13-Dec-2016 Fabien Sanglard <sanglardf@google.com> Fix memory leak in HWC2to1Adapter

SurfaceDamage regions were not freed after receiving response
from HWC1.

Change-Id: Ibcfd3d598874b433e0cd5a4dbe38227fe51b1524
isplayHardware/HWC2On1Adapter.cpp
873228ef930efe2f37ec15a5dc8ae15240cd81d1 13-Dec-2016 Fabien Sanglard <sanglardf@google.com> Merge "Delete unused clip parameter in drawWithOpenGL"
7dbd305c7c0bebadc84d9a38012642f94ab4743f 10-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Reduce indentation with early return"
28e98084bdadcf3001a3e24034c5c98057dd2398 05-Dec-2016 Fabien Sanglard <sanglardf@google.com> Reduce indentation with early return

Change-Id: Ib2e7236b3fedf219db933085d26c6ea9b762f649
ayer.cpp
8c9ba46eb3a2e382f2911eaf9d19af49f60a65a1 09-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete unused dirtyRegion local variable"
e685bb48f7b0650286f6f1c87f466d2a67a132d2 08-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete unused mask eTransactionMask parameter"
c4b2ae377a90b8189c92c23e07a3cc9dbca14f9d 07-Dec-2016 Fabien Sanglard <sanglardf@google.com> Delete unused dirtyRegion local variable

Change-Id: Ibcaf7c52ee9a80e86e51985a3af0e63bebf338fe
urfaceFlinger.cpp
c8251eb7a6ecfdd16b3e4cfbfb442aa4c789c039 07-Dec-2016 Fabien Sanglard <sanglardf@google.com> Delete unused mask eTransactionMask parameter

Change-Id: I1f9dafb014bb3090186443ef1049b7dd53a9a697
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
1748719ea1b69cc7ad111d8c6149d692b9f056f8 07-Dec-2016 Fabien Sanglard <sanglardf@google.com> Delete unused clip parameter in clearWithOpenGL

Change-Id: Idc31d6cfe0c804fd6c5528432e1179f920e231b3
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
8578980f7dd775d7044780de85ac3103989ba7d7 07-Dec-2016 Fabien Sanglard <sanglardf@google.com> Delete unused clip parameter in drawWithOpenGL

Change-Id: Ia4662ccf9b5544c1a8c5252b4c8485fddd09e713
ayer.cpp
ayer.h
b52cfec8ded83ebb36a41851c01f0e5666a25a39 05-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Rename hw to displayDevice for consistency"
830b84704b0f33030d0e391a0ea2e7faa5646e2e 01-Dec-2016 Fabien Sanglard <sanglardf@google.com> Rename hw to displayDevice for consistency

Change-Id: I8bdb9be9c0e024d74a5aacc1f78c553cc1bc5ab4
urfaceFlinger.cpp
urfaceFlinger.h
11d0fc38ad8d2e5bb5bc0a282336cabe28dbf9d6 02-Dec-2016 Fabien Sanglard <sanglardf@google.com> Rename "retire" to "present" for consistency

The HWC2 model has no concept of retire fence beyond HWC2to1Adapter
All references to "retire" fence should be called "present"

Change-Id: I26540aad9e65f138a4df60a34eaee030f1c17567
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
urfaceFlinger.cpp
426f9bcfcc17e23ac9ae04aaee3766e299169139 04-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Update producer's cache of frame events in de/queue"
49670c84019d58f6c95aadf168db677f85b46a88 03-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Cache frame event history producer-side."
3e5af2d242a5b73a76be9742d23da20ed28e06e0 02-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Track frame events incrementally and per layer."
f7dfa47683c4810c2955affe26db0e9454614cf7 02-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Fix FenceTracker releaseFence"
4a1f8a53aa0d51486f47ca3d2699e600e540a12a 01-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Rename "commit" to use "present" nomenclature"
e89987affd9a40f9616a696a3c0bfbb94274603e 01-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Rename variable disp to displayId for consistency"
a87aa7bb5e44fd4b352e34d3cd745aa7e038d19f 01-Dec-2016 Fabien Sanglard <sanglardf@google.com> Rename "commit" to use "present" nomenclature

We use "present" down the HWC2, commit is a confusing name.

Change-Id: I7b23edaf4aeab807bc523e31dfcb8e716166d849
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
df0b7059646db0734f614e0dd651e0ac6ce82211 01-Dec-2016 Fabien Sanglard <sanglardf@google.com> Rename variable disp to displayId for consistency

Change-Id: I5c0dc977e637a76eba44f8a27dac416c98a961d8
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
834bccb1f58780d51367ae39598ae68407986252 01-Dec-2016 Brian C. Anderson <brianderson@google.com> Merge "Add displayPresentTime to getFrameTimestamps"
10ec9947b83cfc7c04a4a30a4ade2900ce73842a 30-Nov-2016 Brian C. Anderson <brianderson@google.com> Merge "BQ: Make QueueBufferOutput implement Flattenable"
5c59c452aa5247de8a09b693a61b7b6b35ea5d38 30-Nov-2016 Brian C. Anderson <brianderson@google.com> Merge "Rename posted to requestedPresent for getFrameTimestamps"
8650c6fe8282a08f10672c917f3facf1398b0928 30-Nov-2016 Jinguang Dong <dongjinguang@huawei.com> Merge "surfaceflinger:Fix potential crash issue when do AIDL FUZZ test" am: 2792ff4527 am: 83f8bba2a5 am: 60f8850e70
am: f3fe700dc2

Change-Id: I13ae45fde822c625cd70b60db6fdbd1e1236a462
f3fe700dc25d8a93a36bf1f6bcf4f973349f0c6e 30-Nov-2016 Jinguang Dong <dongjinguang@huawei.com> Merge "surfaceflinger:Fix potential crash issue when do AIDL FUZZ test" am: 2792ff4527 am: 83f8bba2a5
am: 60f8850e70

Change-Id: I5baca403532b095c89838dd0733439c09c430c16
83f8bba2a5b64e453404d5609c49ba31d5ec5b38 30-Nov-2016 Jinguang Dong <dongjinguang@huawei.com> Merge "surfaceflinger:Fix potential crash issue when do AIDL FUZZ test"
am: 2792ff4527

Change-Id: Ia8c1ac3f9eff3680ed64235cb01043d0b7c434b9
4143295750e185cd415a4159f6ffbe686471e1f6 30-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete HWC2to1Adapter unused code."
601938c35aa5162ac669004aff8c44d8c25345f0 29-Nov-2016 Fabien Sanglard <sanglardf@google.com> Delete HWC2to1Adapter unused code.

HWC2to1Adapter supports forwarding Display requests from device
to client. However hwc1 does not support the request.

Change-Id: Id2e77b18823d319721473b3a8c8838aa20b7daec
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
27efbdb5df135ef6f09f66bf93e4fef31d28dd54 29-Nov-2016 Fabien Sanglard <sanglardf@google.com> Delete unused mutex in HWC2to1Adapter

Change-Id: I2fe5b8b6d35c07fc2243c88d5739a25be5c61686
isplayHardware/HWC2On1Adapter.h
9f8b9ae2a95eec78e676a11a719deafea4952190 29-Nov-2016 Jinguang Dong <dongjinguang@huawei.com> surfaceflinger:Fix potential crash issue when do AIDL FUZZ
test

There will be trigger exception when we provide invalid
inputs parameter for surfaceflinger JNI interface

Test: 1.Run adb shell and open AIDLer tools;
2.change to Dir /sdcard/elong.AIDLer
3.run commond service list > service_list.txt
4.Rerun AIDL FUZZ test

Change-Id: I0a63adc1e8ae5d9c9e43cb6df6aa13503c40a0c5
urfaceFlinger.cpp
3828399b9d1d8c4004ef26e82784604cab841be4 23-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix 5x and 6P crash when using HWC2to1adapter"
eb3db61f914a2469fe632c48b46a0ce60c84c9d9 19-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix 5x and 6P crash when using HWC2to1adapter

Angler and Bullhead crash when a SolidColor layer is used in
combination with HWC2to1Adapter. This is due to assumptions in
the HWC1 code (non-null handle field = valid pointer). This
assumption is incorrect with a background layer because it will
set the field backgroundcolor...which occupies the same location
as handle field in hwc_layer_1_t.
This patch detects whether the HWC supports BACKGROUND layer and
sets backgroundcolor/handle accordingly to HWC assumption.

Test: Manual on Angler and Bullhead.

Change-Id: Ic5c3366a4a8989f3a82b6367258bad8af25d3990
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
7c5a92fc5d4d62027f09537df978f2c90c9719c5 21-Nov-2016 Martijn Coenen <maco@google.com> Use hidl_handle instead of native_handle_t*.

To ensure 32/64 compatibility.

Bug: 32089785
Test: builds
Change-Id: Ie86e5734c4a66db7dddd9e93f6dd26990f245d71
isplayHardware/ComposerHal.cpp
526fd4a4e24c448e1436a89521336e35c22bef15 21-Nov-2016 Chia-I Wu <olv@google.com> Merge "Use android.hardware.graphics.common@1.0"
67a4762ed3ece97c4d3a7329a8733a77a73f7584 17-Nov-2016 Yifan Hong <elsk@google.com> Split libhidl into base and transport.

Bug: 32756130

Test: mma
Change-Id: I878e0e8f94e01695f633bc80ef163dbe18c8f622
ndroid.mk
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
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
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
5901fda2c112390f0877ed1a916fe824d36b222b 17-Nov-2016 Chia-I Wu <olv@google.com> Use android.hardware.graphics.common@1.0

Some types in composer@2.1 and allocator@2.0 are now in common@1.0.

Test: builds and boots
Change-Id: Ied8e5d1b555cd6bfd2c0381cec537293900d3ffe
isplayHardware/ComposerHal.h
b7432cc57cd957fb18f68d7976c5829b3a3a7751 11-Nov-2016 Fabien Sanglard <sanglardf@google.com> Fix HWC2to1Adapter crashing dragon at startup

Some devices such a dragon(ryu) do not start with a valid active
configuration id (e.g: -1). This is unexpected from HWC2to1Adapter
and resulted in crash at startup when switching the device from HWC1
to HWC2 with adapter.

This patch detects this at startup and put the device in an expected
configutation using the first configuration index (0).

Test: Tested on ryu
Change-Id: If2bb258d12636f1b2ebe8c7b167708dbf572fbe8
ndroid.mk
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWComposer.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.mk
enceTracker.cpp
enceTracker.h
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.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
enceTracker.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
enceTracker.cpp
enceTracker.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.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
isplayHardware/VirtualDisplaySurface.cpp
dbd0ea80021cbc61c578385f534f41a33338085b 22-Jul-2016 Brian Anderson <brianderson@google.com> Rename posted to requestedPresent for getFrameTimestamps

Test: Just a rename.

Change-Id: I63aa5b1b84715de2bebffb25f92bd826323a9acb
enceTracker.cpp
enceTracker.h
ayer.cpp
ayer.h
dda9bb00cd466b859f35c767944607bd851494b3 14-Nov-2016 Evgenii Stepanov <eugenis@google.com> Merge "Revert "Workaround alloc-dealloc-mismatch error on ASan device boot."" am: 5c58020c00 am: 22d12a89e6 am: df48bcff26
am: 1852c5564d

Change-Id: Ibb34264848e1e4c7b800b35a7a4dd61e551b42ee
1852c5564dd9181e83b289c6bfe0515c8c048018 14-Nov-2016 Evgenii Stepanov <eugenis@google.com> Merge "Revert "Workaround alloc-dealloc-mismatch error on ASan device boot."" am: 5c58020c00 am: 22d12a89e6
am: df48bcff26

Change-Id: If0ede202f577d8e1452c7905a4a06e7d36bce761
df48bcff26971a805c04f04e3b80ba8f1713bc3b 14-Nov-2016 Evgenii Stepanov <eugenis@google.com> Merge "Revert "Workaround alloc-dealloc-mismatch error on ASan device boot."" am: 5c58020c00
am: 22d12a89e6

Change-Id: Ie392d157a320fba28e91214af4486d09d671a23a
22d12a89e62890315104112636b71f7be9c95fb1 14-Nov-2016 Evgenii Stepanov <eugenis@google.com> Merge "Revert "Workaround alloc-dealloc-mismatch error on ASan device boot.""
am: 5c58020c00

Change-Id: I107ce2043fd261b08413418825daf6c35f808228
b56eda82414d4ea7d5e909c341a80ca50ef30e26 14-Sep-2016 Evgenii Stepanov <eugenis@google.com> Revert "Workaround alloc-dealloc-mismatch error on ASan device boot."

This reverts commit 22819276b147e34a80e8ca696be5b3fda68764b9.

Test: SANITIZE_TARGET=address build should keep working
Change-Id: I84f7868482b2ba3c8fc5ad5250b17b576cb7f392
urfaceFlinger_hwc1.cpp
3ed78e47009f4918c4a904c52bd774c93e24c8c1 14-Sep-2016 Evgenii Stepanov <eugenis@google.com> Revert "Workaround alloc-dealloc-mismatch error on ASan device boot."

This reverts commit 22819276b147e34a80e8ca696be5b3fda68764b9.

The underlying kernel bug has been fixed.

Test: SANITIZE_TARGET=address build should continue working

Change-Id: I6f3938047d9f60357e7bd9bccd3ef36d7686c73b
urfaceFlinger.cpp
e773265edc75bbe042840f69696dd03b1bdacfd9 08-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Delete surfacefinger Layer::latchBuffer code"
bc01dccc455ace377eec9058e65764114b2b780c 13-Oct-2016 Fabien Sanglard <sanglardf@google.com> Delete surfacefinger Layer::latchBuffer code

Delete unreachable code.

Change-Id: I6d895838cc4e0b84642f2c67d44306ba23696329
ayer.cpp
cd6fd5463d2e9b87504e29a39ac5f2395010805b 13-Oct-2016 Fabien Sanglard <sanglardf@google.com> Refactor surfacefinger latchBuffer: Create method

Shortens latchBuffer method, extracting transaction
credential verification to dedicated function.

Test: On device
Change-Id: Ia7c2f977a85d1c1afd87425588c07eb756b00f15
ayer.cpp
ayer.h
7b1563a0e8e742315a16c9a7b27537dbcd13d09a 13-Oct-2016 Fabien Sanglard <sanglardf@google.com> Refactor surfacefinger Layer::latchBuffer

Take out Rejecter class declaration out of the method. This
increases readability and shortens latchBuffer method by 200 lines.

Change-Id: I8b07c63f8ed6408e68d5696d0666e65a3b14bd4c
ndroid.mk
ayer.cpp
ayerRejecter.cpp
ayerRejecter.h
c00aecf67a987f0263ef39300997acbdadc025c0 03-Nov-2016 Dan Stoza <stoza@google.com> SF: Request SF wakeup for pending transactions
am: d9d1817e9a

Change-Id: I9d84ef9636acd4359dad908241bac0a5a560cd00
d9d1817e9a2772239bbe2424fa747ec84b6030ff 03-Nov-2016 Dan Stoza <stoza@google.com> SF: Request SF wakeup for pending transactions

When a Layer receives a pending transaction, it sets a flag on itself
that it needs a transaction to be handled, but it doesn't notify
SurfaceFlinger to iterate through the layers and check for that flag.
In some cases, this led to transactions never being processed, which
can hang an application trying to push buffers that are part of a
synchronized transaction. This change pokes SurfaceFlinger when setting
the Layer flag so that it doesn't slip through the cracks.

Bug: 32541494
Bug: 32629397
Test: Two successful monkey runs
Change-Id: I4b906eee8004fad1938aa94a1aa0a0c7ea289102
ayer.cpp
d8c67ac656a87d30d2cea27ad0866352d51eb03f 03-Nov-2016 Dan Stoza <stoza@google.com> Merge "SF: Request SF wakeup for pending transactions"
f5702ff8b1919e0a5d342ad04ac486bbcde41461 03-Nov-2016 Dan Stoza <stoza@google.com> SF: Request SF wakeup for pending transactions

When a Layer receives a pending transaction, it sets a flag on itself
that it needs a transaction to be handled, but it doesn't notify
SurfaceFlinger to iterate through the layers and check for that flag.
In some cases, this led to transactions never being processed, which
can hang an application trying to push buffers that are part of a
synchronized transaction. This change pokes SurfaceFlinger when setting
the Layer flag so that it doesn't slip through the cracks.

Bug: 32541494
Test: Two successful monkey runs
Change-Id: I4b906eee8004fad1938aa94a1aa0a0c7ea289102
ayer.cpp
f1019e29686c29c8c3fc2d71b92bc30897fbafb3 02-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor SurfaceFlinger::onTransact"
6e8e98a23592c2522396b673145814a4bbee69db 28-Oct-2016 Fabien Sanglard <sanglardf@google.com> Refactor SurfaceFlinger::onTransact

Reduce length of SurfaceFlinger::onTransact by moving credential
code to dedicated function.

Change-Id: I0fa30439443295b4a807e0eeae4f113d7b0534c4
urfaceFlinger.cpp
urfaceFlinger.h
a3d6565aec327d7a83e86dd36a80cfcb3cef5d96 28-Oct-2016 Fabien Sanglard <sanglardf@google.com> Merge "Surfaceflinger: Document DdmConnection usage"
60a2eb0b4b939babc44e073c79f51326db0344bf 27-Oct-2016 Colin Cross <ccross@android.com> Merge "Replace surfaceflinger protobufs with protobuf-lite"
4e475cf0946deff0e5a773c8768e3de54bf89ce3 27-Oct-2016 Fabien Sanglard <sanglardf@google.com> Surfaceflinger: Document DdmConnection usage

Change-Id: Iebb1448ea8421b6bc8e5aedff64dddc50dbb012a
dmConnection.h
635493810ef89f476490d60115fed9ba74e9d704 26-Oct-2016 Colin Cross <ccross@android.com> Replace surfaceflinger protobufs with protobuf-lite

Use lite protobufs for surfaceflinger to remove dependency on
libprotobuf-cpp-full, which will be removed from the platform.

Bug: 32417805
Test: builds
Change-Id: Ie27b253a2f6c1b296c4ae7c7cb056cd3c4c0dde6
ndroid.mk
urfaceInterceptor.cpp
94ef1fda8ddd761b2ced012a7a43ce1481f76dc9 26-Oct-2016 Steve Pfetsch <spfetsch@google.com> Revert "services: surfaceflinger: ASAN fix" am: 598f6d5429 am: d5156b70ff am: 12924419de
am: 6d2eb659a5

Change-Id: I609bac956dff460334942bd348c0eedc53a42123
6d2eb659a5c70648ef9f67bbd6272c90b42bab85 26-Oct-2016 Steve Pfetsch <spfetsch@google.com> Revert "services: surfaceflinger: ASAN fix" am: 598f6d5429 am: d5156b70ff
am: 12924419de

Change-Id: I520fff2e1cc9b3a49478cbc9e783df081defc75d
598f6d5429b290f33107ef678328914b99c8312e 25-Oct-2016 Steve Pfetsch <spfetsch@google.com> Revert "services: surfaceflinger: ASAN fix"

This reverts commit 1d3df546d5ee4dcc9e7cae6f8b8b790f741539af.

Original patch may have caused a stability issue caught in monkey testing.

Bug: 32312240
Change-Id: Ie8d291679590e624b8b90c4786b1c25c76cb2c9f
urfaceFlinger.cpp
08dc2ef81e73d2f17f5e679cbdbee911e9d98b98 20-Oct-2016 Fabien Sanglard <sanglardf@google.com> Merge "Delete RenderEngine path for OpenGL ES 1.0/1.1"
f29cd52bd2dec2e3053fa41d852ba5708133daa7 19-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default."
f4ddfacffd96267ee43cf2cf3b7cacf9374b4135 19-Oct-2016 Steve Pfetsch <spfetsch@google.com> services: surfaceflinger: ASAN fix am: 1d3df546d5 am: ff06017cfe
am: 409c087ffe

Change-Id: Ia0a821a314c9bc5582cef8f434a77115599263e2
409c087ffe6aa79d943e0ed18593df19967f81d5 19-Oct-2016 Steve Pfetsch <spfetsch@google.com> services: surfaceflinger: ASAN fix am: 1d3df546d5
am: ff06017cfe

Change-Id: Ie1f5418312cffc6b1a1ec9a7fd0194babaf9d6d9
1d3df546d5ee4dcc9e7cae6f8b8b790f741539af 30-Sep-2016 Steve Pfetsch <spfetsch@google.com> services: surfaceflinger: ASAN fix

Move layer removal to the main thread, while the display is on.

Bug: 30281222
Change-Id: Id9f956c1e626819734868340e7fa12abf257b702
urfaceFlinger.cpp
ba03e655d1327e5e165c854ec2b8284529eefff9 18-Oct-2016 Fabien Sanglard <sanglardf@google.com> Merge "Fix surfaceflinger file descriptor leak" am: af2fbb0ccc am: ee87482e6d
am: 735d32406d

Change-Id: Iadc2fdb10b6648e36d304dd22fd1119a3b03d728
ee87482e6d9437f0a8690f32791120e8fd43d799 18-Oct-2016 Fabien Sanglard <sanglardf@google.com> Merge "Fix surfaceflinger file descriptor leak"
am: af2fbb0ccc

Change-Id: If21d062e144dd13064c0c3e8021523a8bf20b864
a22f06483b0846867c64779e7a22dfa3f1c91539 18-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor Surfaceflinger Layer::latchBuffer"
0a4b26ecb6a9f772502c770fbe4c9fc661578cb7 15-Oct-2016 Fabien Sanglard <sanglardf@google.com> Fix surfaceflinger file descriptor leak

If a producer queues a buffer after a screen resize, the buffer
will not be removed from the buffer queue, resulting in a leak of
file descriptor.

Test: Fix was tested by the bug reporter (ARM).
Bug: 32012717

Change-Id: I3b7b0745d5fbdee97fc8df2db399c1a2fcdeb375
urfaceFlingerConsumer.cpp
4f89564970a9e8187a1eaa37000bcb50d6dfadc4 14-Oct-2016 Elliott Hughes <enh@google.com> Rely on the platform -std default.

Bug: http://b/32019064
Test: builds
Change-Id: I03f8e660cfff247e061c838d74761a4e61ae15e8
ests/Android.mk
aab99f576b205114eaa5399c8f97b9e175a1c698 04-Oct-2016 Chia-I Wu <olv@google.com> surfaceflinger: add support for android.hardware.graphics

This adds a new path to HWC2 to use
android.hardware.graphics.composer@2.1::IComposer instead of hwcomposer2.
Which path to use is determined by whether BYPASS_IHWC is set at compile
time. When it is set, the old path, kept for HWC2On1Adapter, is used.
When it is not set, the new path is taken.

BYPASS_IHWC2 is set when TARGET_USES_HWC2 is not.

Test: Maps, Camera, YouTube, etc.
Change-Id: I37aceafd1733fa9f76e7f7db4f59ad4776415306
ndroid.mk
isplayHardware/ComposerHal.cpp
isplayHardware/ComposerHal.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
efb93455b3a95458d68897c3b38f7f98046c697e 04-Oct-2016 Fabien Sanglard <sanglardf@google.com> Delete RenderEngine path for OpenGL ES 1.0/1.1

Change-Id: Ibf9e80866a38d09a025ff5031590beb11f4c2b72
ndroid.mk
enderEngine/GLES10RenderEngine.cpp
enderEngine/GLES10RenderEngine.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/RenderEngine.cpp
223eb91c416f4acb3e635f1dccf5e5ba74c0d866 13-Oct-2016 Fabien Sanglard <sanglardf@google.com> Refactor Surfaceflinger Layer::latchBuffer

Reduces indentation of 300 lines via an early return if no work
is detected.

Change-Id: I08fe2a3e2808ae58e3da28a1c2f7d28e7a4a98af
ayer.cpp
2207efc446715f8274fdfa082b139ce05cd711d3 12-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "PowerHAL: Make powerHAL calls compatible with HIDL"
857a891096efd6d0c8de42e6088fc067be3584da 11-Oct-2016 Fabien Sanglard <sanglardf@google.com> Merge "Revert "Delete HWC1""
9d96de49673cb6c916bfb797aad4f4e024ea73ca 11-Oct-2016 Fabien Sanglard <sanglardf@google.com> Revert "Delete HWC1"

This reverts commit 90f923493fa053655a203c34ea491086aeb07602.

Change-Id: If9da49e3bc85f8ff21ac1bd22a6bab97e9aa3103
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ventControlThread.cpp
enceTracker.cpp
ayer.cpp
ayer.h
enderEngine/GLES10RenderEngine.cpp
enderEngine/GLES10RenderEngine.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
9d1ee208d6bd07c8de15b4ec8b29bbba30343ea7 11-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 53b6fc5ddc am: 0ef01bab39 am: b48bc88b75
am: a16f14f826

Change-Id: Idadc8d71628f57e8c50abc6dd1a928dc42590fbc
a16f14f826bb64185ccaf0b6e872d2d5facc0a33 11-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 53b6fc5ddc am: 0ef01bab39
am: b48bc88b75

Change-Id: I948f14c73030d6d0f0cae8b9e374962ad119f7f6
b48bc88b75dbba55d77543bf6c87f4909366a61a 11-Oct-2016 Elliott Hughes <enh@google.com> Merge "Rely on the platform -std default." am: 53b6fc5ddc
am: 0ef01bab39

Change-Id: I11137b0f1327691fa88acee67d9270fe509aa353
90f923493fa053655a203c34ea491086aeb07602 03-Oct-2016 Fabien Sanglard <sanglardf@google.com> Delete HWC1

After 10 years of good service, HWC1 is not needed anymore since HWC2
is now mandatory.

Change-Id: I5768b50c89854688ba31032f01ea231699393e5b
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ventControlThread.cpp
enceTracker.cpp
ayer.cpp
ayer.h
enderEngine/GLES10RenderEngine.cpp
enderEngine/GLES10RenderEngine.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
e390826e3871b68c6a282eef71d8f92bc7758378 08-Oct-2016 Elliott Hughes <enh@google.com> Rely on the platform -std default.

Bug: http://b/32019064
Test: builds
Change-Id: Ie2df259641889b3ce95648bd2be48d061108162c
ndroid.mk
b5ee1789189b52d0dbb96c42d8ff36397b3011b2 05-Oct-2016 Ruchi Kandoi <kandoiruchi@google.com> PowerHAL: Make powerHAL calls compatible with HIDL

Bug: 31177288
Change-Id: Ibce75c770996aa32385dab388baf32abb27792cb
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
ndroid.mk
isplayHardware/PowerHAL.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)
isplayHardware/FramebufferSurface.cpp
ayer.cpp
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
isplayHardware/FramebufferSurface.cpp
ayer.cpp
6ce2ad43106580efe13ce133fe579e4efcab51ce 30-Sep-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues am: de84eb6b82
am: 1ce7c1d3aa

Change-Id: I2ff87a50409fcc244b2cb59286990f98affdedbc
180297052560896e7f8411cfd2e104318f3edbab 30-Sep-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed am: f9f7f6931f
am: 58719ff766

Change-Id: I559a674184a0a08829b49dd90d85e75478385021
af63992893c5493f605a2c653091694f378bf411 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Clear transform for SolidColor layers am: f1098abecf
am: 21200d1887

Change-Id: I1039e2ddcbc139e5234f996be343e4ba88c0e75d
f12431879e4f465d3a81103c07b8d7d0c5f0d1e5 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Use SolidColor composition for DimLayer am: 0183f7acac
am: b4365b8d0b

Change-Id: I89241809c69af21aa62a5af7562d8f3e6bb8dbd7
860ff9c846df2dc0ce833e8ff20c5d1e7cfac869 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Kill logspam for non-HWC virtual displays am: 179533d107
am: 9853a795ab

Change-Id: I68c6c6a0bdefb7b196eacd95e486f275c21377df
aa23ebe03e33d6e8a02afb99a47f719e4786e56c 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Fix virtual displays am: 5450fe5268
am: d6fb6ea07b

Change-Id: I11166b2d968bf8a4ba23b5ba86bf307a457e8ba9
64e18c2bfe1e19a69135449f574206dc8cfbc1fd 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Don't set null handle for client layers am: 6be002845f
am: 0fac961a58

Change-Id: I259c37bd7ba6cf57f07f494cce4bfda7f837d76c
607bb29a98afce2deba19563f35969ad25190c93 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Hook up to BoardConfig variable am: 8beb15f220
am: 608852e318

Change-Id: I91252f79de7035b958329a68e4172edb5b2c302a
ebec74a2152a7d6e378c35ef5ddbe939210f3918 30-Sep-2016 Dan Stoza <stoza@google.com> HWC2: Skip validate/present if display is off am: 00ac359a3b
am: de79392408

Change-Id: I36810f4c2623591942bac447b2b118edc3104f9d
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
isplayHardware/FramebufferSurface.cpp
ayer.cpp
de84eb6b823ff143f3465ce8f291f1100ce42168 09-Aug-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues

This is an attempt at fixing two reference counting issues for Layers.

The first issue is that since we were holding an sp<IBinder> (really a
reference to a LayerCleaner) inside the layer state for deferred
transactions, there was a possibility that it could end up being the
last strong reference to the LayerCleaner such that when it was
destroyed while applying a non-deferred transaction, it would attempt
to grab the SurfaceFlinger main lock to destroy its Layer. Since this
occurred in the main SurfaceFlinger loop, which was already holding
the lock to process transactions, this would cause a deadlock.

To fix this, the sp<IBinder> inside the layer state was changed to a
wp<IBinder>, only being promoted when it actually needs to be accessed
(i.e., when the deferred transaction is created).

The second issue is that we were promoting and holding a strong
reference to a Layer before calling into SurfaceFlinger to destroy it
on the onLayerDestroyed path (triggered when a LayerCleaner is
destroyed). After returning from the attempt to grab the SurfaceFlinger
main lock, it was possible that this strong reference was the last one
keeping the Layer alive, and destroying it at this point could cause
the HWC2 version of the layer to be destroyed at effectively any point,
even between validate/present.

To fix this, the promotion of the weak Layer reference was moved inside
the critical section where the SurfaceFlinger main lock is held.

Test: Cherry-pick from internal branch
Bug: 30503916
Bug: 30281222
Change-Id: I1c6a271f9a7b5d6eea9a9db61d971f262d0cfe84
lient.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
f9f7f6931f521ddcab6f1f47294cc26326c4be1a 28-Jul-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed

The SurfaceFlinger executable wasn't picking up the USE_HWC2 flag when
enabled by the TARGET_USES_HWC2 BoardConfig, causing a mismatch in the
size of the SurfaceFlinger object. This fixes that by also passing
USE_HWC2 when building the executable.

Test: Cherry-pick from internal branch
Bug: 30302693
Change-Id: I1e41e5f548d4b8329590a082d9b69155ba365be9
ndroid.mk
f1098abecf28185256a4df8b9f207e90400af675 27-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Clear transform for SolidColor layers

Clears the transform for SolidColor layers, since it doesn't make sense
to transform layers without a buffer.

Test: Cherry-pick from internal branch
Bug: 30429522
Change-Id: Ib2f4889531556c7ab00e3b270319c321e9f32c84
ayer.cpp
0183f7acac82abd358c61d8b735b5ed79c8c81e4 20-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Use SolidColor composition for DimLayer

Switches SurfaceFlinger to try to use SolidColor HWC device
composition for DimLayers instead of always falling back to client
composition.

Test: Cherry-pick from internal branch
Bug: 30216498
Change-Id: Ia8af95d214ba72b5657f32f7827a1e6278629f17
ayer.cpp
179533d10781a5f71980e07c64e389c8828507fe 21-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Kill logspam for non-HWC virtual displays

Removes some logspam and fixes some non-errors which were reported as
errors when running a virtual display that is not backed by hardware
composer.

Test: Cherry-pick from internal branch
Bug: 30022738
Change-Id: Ie966e37d95f53bcc050eef064d24bbe26748b7fd
isplayHardware/HWComposer.cpp
ayer.cpp
5450fe526801ff9f5b05487995745a146dc5150b 14-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Fix virtual displays

Close the output buffer release fence per the contract in
hwcomposer2.h.

Also changes the HWC2 device to hold a weak pointer to the display,
which allows it to properly remove it when it gets torn down.

Test: Cherry-pick from internal branch
Bug: 29945684
Change-Id: Ib1b5d81e42a63d0e65b189f7c6c62e661e0ab6ae
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
6be002845f9dd310679f8cb11fa9d9217f650e3b 22-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Don't set null handle for client layers

Removes the code that explicitly set a null buffer handle for client
layers.

Test: Cherry-pick from internal branch
Bug: 29463310
Change-Id: I570e6041ba72d64971bb6c364e8e7b6f84eeff08
ayer.cpp
8beb15f220fa7bb6a64235b509c818ecf1d45d81 21-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Hook up to BoardConfig variable

Uses TARGET_USES_HWC2 to enable the HWC2 code path in SurfaceFlinger

Test: Cherry-pick from internal branch
Bug: 27211042
Change-Id: I7b7e3e3f7a918e74df0be27418196c81b4332564
ndroid.mk
00ac359a3b69670824ceab8d1dd5a1d5ad0ac5bd 17-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Skip validate/present if display is off

Adds checks to ensure that the display is still on before attempting
to call into prepareFrame/commit (which in turn call into
validate/present).

Test: Cherry-pick from internal branch
Bug: 28596387
Change-Id: Iad87f02c3e44e86db43a15c258ee66b0cde14faa
urfaceFlinger.cpp
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
6cc1933af9c0cf656f9a511155f6613f8dbba667 22-Sep-2016 Rob Carr <racarr@google.com> Merge "Surface: Add force disconnection method." into nyc-mr1-dev
1bd88fc3350640c028a0f301e6903a2a480f9397 16-Sep-2016 Dan Stoza <stoza@google.com> HWC2On1: Fall back to GLES for SolidColor am: 5df47cb648 am: d946ae67c2
am: 9e718be5fb

Change-Id: I9644bee3005e9d819fa375c41ee36b6f0e04287e
9e718be5fbf6bd89cd734be635fc67c8e631e2f6 16-Sep-2016 Dan Stoza <stoza@google.com> HWC2On1: Fall back to GLES for SolidColor am: 5df47cb648
am: d946ae67c2

Change-Id: I9c866a4cbf23f4e8dcdaf922063c4a26f7da7c51
5df47cb648a6911dd62527901bb209fd65c73bed 16-Sep-2016 Dan Stoza <stoza@google.com> HWC2On1: Fall back to GLES for SolidColor

Even though SolidColor layers map cleanly to HWC_BACKGROUND composition
in HWC1, SurfaceFlinger never used HWC_BACKGROUND, so we can't trust
that HWC1 devices implemented it correctly. To preserve backwards
compatibility, this changes the behavior to fall back to client
composition to minimize incompatibilities with existing devices.

Bug: 30479781
Change-Id: I638339062e03f2c057b3e1624e7157587ddee7ec
isplayHardware/HWC2On1Adapter.cpp
b2c838b7add20c4515966a80de809b0a1d315001 04-Aug-2016 Season Li <seasonl@nvidia.com> SF: Call makeCurrent after presenting each display

HWC can change EGLContext in each present. Restore to
default EGLContext after commiting each display.

Change-Id: I4abc84fb3d4b74964fabcad5a2568ff01a6c5dbb
urfaceFlinger.cpp
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
071b0a64c6dad8eaa1449827e44faae57dba851b 12-Sep-2016 Chih-Hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in surfaceflinger." am: 5e703a6ad0 am: 101b4cc9d7 am: 32db2f3c9f
am: 9a9816ad3f

Change-Id: I5766b8b9adb236795cc7c8449d97b6c300512623
9a9816ad3f3e2ee0d52a21e742d9bbdc3ddf25ff 12-Sep-2016 Chih-Hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in surfaceflinger." am: 5e703a6ad0 am: 101b4cc9d7
am: 32db2f3c9f

Change-Id: Ie75a9e21c634691243d4f5c972f2f2879c48a76e
32db2f3c9f71da6da5fb5a25623a8dfdbd5e8d49 12-Sep-2016 Chih-Hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings in surfaceflinger." am: 5e703a6ad0
am: 101b4cc9d7

Change-Id: I02a49f1207899cf0153e1aa9649e105372117e25
5094374db6e048a623c86f55b0304d2895cd6562 12-Sep-2016 Dan Stoza <stoza@google.com> Update default DispSync offsets am: 28ffe198bf am: e826b1c2c4
am: 8be61c5565

Change-Id: Iaf8c573182d69b7fde97e6a1a834caebf41913bb
8be61c5565c7444b4dd89b32bd2f84bc4c18a211 12-Sep-2016 Dan Stoza <stoza@google.com> Update default DispSync offsets am: 28ffe198bf
am: e826b1c2c4

Change-Id: I3acb2aadf64e1ea19af4e675088c67f3145e03a0
e826b1c2c42e41a06e66420624630c8770286091 12-Sep-2016 Dan Stoza <stoza@google.com> Update default DispSync offsets
am: 28ffe198bf

Change-Id: Id3d014c7a289890c97ca91980407e060e993bd46
0c083d43f275382b25ed01baf57c6ee72532e7ea 12-Sep-2016 Dan Stoza <stoza@google.com> Merge "Update default DispSync offsets" into nyc-mr1-dev
28ffe198bfab3761f97ce2f74ef479bafc5bbd99 09-Sep-2016 Dan Stoza <stoza@google.com> Update default DispSync offsets

Updates the default DispSync offsets to 1ms/1ms to avoid SurfaceFlinger
racing against hardware vsync on untuned video-mode panels, which can
result in a significant number of dropped frames. Also moves and
updates the documentation of the offsets, which used to live in
build/target/board/generic/BoardConfig.mk.

Bug: 30801895
Change-Id: I4cb09d840e2f16fb3d05df4d7abf58d9ba36f83b
ndroid.mk
75b1868620b63f772a93cbc9a67dec5a62cc6182 08-Sep-2016 Tim Murray <timmurray@google.com> Boost priority of short-running SF FIFO threads slightly. am: 35520634e2 am: 584fb9544f
am: 7a7de48b25

Change-Id: I23f953ba137f7958e77733fc516cfa5c351290f8
7a7de48b2559d024a463e15cd4627b3ca0978800 08-Sep-2016 Tim Murray <timmurray@google.com> Boost priority of short-running SF FIFO threads slightly. am: 35520634e2
am: 584fb9544f

Change-Id: Ib10bc21d1166df03704fcc2b67b99ed3c1a92464
584fb9544f2ce5fab38691b88bac42359de6c51b 08-Sep-2016 Tim Murray <timmurray@google.com> Boost priority of short-running SF FIFO threads slightly.
am: 35520634e2

Change-Id: Ic4a53cc1399dff489414ac1c891a041c2500b8e2
4df766b00ac6801f2e4462b20b6dd6f195051afb 08-Sep-2016 Tim Murray <timmurray@google.com> Merge "Boost priority of short-running SF FIFO threads slightly." into nyc-mr1-dev
58a64714126bf3d34566d56cb535e2ae78d1c5ef 08-Sep-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add a layer minidump am: e22aec741f am: a9f976b50f
am: 11e9bd2b48

Change-Id: I14a22fe1dde3e93107834516ad826ddadcd6781a
11e9bd2b4861cc8e878fd7da3e65e66167b3d001 08-Sep-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add a layer minidump am: e22aec741f
am: a9f976b50f

Change-Id: Ia04d91da4cc6fc6e2962c7dc6421882c2e4874b6
a9f976b50f03890e7b1cb6c182f7608360b2bdbc 08-Sep-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add a layer minidump
am: e22aec741f

Change-Id: Ib97254ebbf2e914c965b529e7d1e59a01db48214
a020f00bc156ebdf6ea1f3c2de8af049dac9d5e6 08-Sep-2016 Dan Stoza <stoza@google.com> Merge "SF/HWC2: Add a layer minidump" into nyc-mr1-dev
35520634e298f53bd8433825640d6999760f25b3 07-Sep-2016 Tim Murray <timmurray@google.com> Boost priority of short-running SF FIFO threads slightly.

The short-running FIFO threads should preempt the SurfaceFlinger main
thread in order to prevent deadlock.

bug 31223682

Change-Id: I29e7b4b8439bb876998a8aeeb2b8d6ee5b6b7d36
ispSync.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
342b760763300593cd20b01dac8cef61e7b25b86 01-Sep-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in surfaceflinger.

* Add explicit keyword to conversion constructors,
or use NOLINT for implicit converters.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: I94f511c3be31dc22022db6466ee9ed0c6be2bc8e
lient.h
olorizer.h
ispSync.h
isplayHardware/FloatRect.h
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.h
ventControlThread.h
ventLog/EventLog.h
ventThread.h
ayer.h
essageQueue.h
3017c615cff999fbdbd205e60eaa76e03a8265da 10-Aug-2016 Irvel <irvel@google.com> SF: Change wp usage for deferred transactions in the interceptor to sp

Change-Id: Iebee77d30f0b49dc94c3b23e56683efcb2133993
urfaceInterceptor.cpp
urfaceInterceptor.h
22851c3ba2cf5ccb0c3a0aa6c5b94ae123a5616a 09-Aug-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues

This is an attempt at fixing two reference counting issues for Layers.

The first issue is that since we were holding an sp<IBinder> (really a
reference to a LayerCleaner) inside the layer state for deferred
transactions, there was a possibility that it could end up being the
last strong reference to the LayerCleaner such that when it was
destroyed while applying a non-deferred transaction, it would attempt
to grab the SurfaceFlinger main lock to destroy its Layer. Since this
occurred in the main SurfaceFlinger loop, which was already holding
the lock to process transactions, this would cause a deadlock.

To fix this, the sp<IBinder> inside the layer state was changed to a
wp<IBinder>, only being promoted when it actually needs to be accessed
(i.e., when the deferred transaction is created).

The second issue is that we were promoting and holding a strong
reference to a Layer before calling into SurfaceFlinger to destroy it
on the onLayerDestroyed path (triggered when a LayerCleaner is
destroyed). After returning from the attempt to grab the SurfaceFlinger
main lock, it was possible that this strong reference was the last one
keeping the Layer alive, and destroying it at this point could cause
the HWC2 version of the layer to be destroyed at effectively any point,
even between validate/present.

To fix this, the promotion of the weak Layer reference was moved inside
the critical section where the SurfaceFlinger main lock is held.

Bug: 30503916
Bug: 30281222
Change-Id: I1c6a271f9a7b5d6eea9a9db61d971f262d0cfe84
lient.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ab04685578b254c2eaf43bf5da85e5e922787825 28-Jul-2016 Irvel <irvel@google.com> Fix duplicated VSync tracing in SurfaceInterceptor

Change-Id: Id02bb2916d0c53dc11d7106c4aec6954a1acc035
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ffc9efc4b55df38ac524f20cdd1a2fca8e259fae 28-Jul-2016 Irvel <irvel@google.com> Add display tracing to SurfaceInterceptor

Change-Id: Iaae5a840ca7dca7a9a70dde1ccab0fa3944cd863
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
urfaceInterceptor.cpp
urfaceInterceptor.h
ests/SurfaceInterceptor_test.cpp
a807cd502e3e8e78095efd8ac5bd2a087a934d20 12-Aug-2016 Dan Stoza <stoza@google.com> DO NOT MERGE SF: Add property to disable HWC virtual displays am: 3cf4bfe236
am: cce24b398c

Change-Id: I0eb9092b3f09b607bb4d2da5d5533867d6ef1ebd
cce24b398ce24f7deeac4f92560766c330717c63 12-Aug-2016 Dan Stoza <stoza@google.com> DO NOT MERGE SF: Add property to disable HWC virtual displays
am: 3cf4bfe236

Change-Id: I615cdf9466cbb37d32890f126dc0be1fecf9a50a
e26ce9f612d3afe54b9806beee3fd0a3dc1638be 12-Aug-2016 Dan Stoza <stoza@google.com> Merge "DO NOT MERGE SF: Add property to disable HWC virtual displays" into nyc-mr1-dev
3cf4bfe2368020b50a3e22360910b6af6590c5be 02-Aug-2016 Dan Stoza <stoza@google.com> DO NOT MERGE SF: Add property to disable HWC virtual displays

Adds the property debug.sf.disable_hwc_vds, which will disable the use
of Hardware Composer virtual displays inside SurfaceFlinger (falling
back to SurfaceFlinger management and client composition of such
displays).

Also adds a Binder debug interface for controlling this behavior.

Bug: 30510632
Change-Id: I2c1a199213a24195b144bfa0c0f1679f2dfd0668
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
8cf150a0341768133b37cd9c6f2369bf6f79a943 02-Aug-2016 Dan Stoza <stoza@google.com> SF: Add property to disable HWC virtual displays

Adds the property debug.sf.disable_hwc_vds, which will disable the use
of Hardware Composer virtual displays inside SurfaceFlinger (falling
back to SurfaceFlinger management and client composition of such
displays).

Also adds a Binder debug interface for controlling this behavior.

Bug: 30510632
Change-Id: I2c1a199213a24195b144bfa0c0f1679f2dfd0668
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ae56a32be71278b77e82fe56bcfbdc9589f7e1dc 10-Aug-2016 Dan Stoza <stoza@google.com> Revert "SF: Fix a couple of Layer ref count issues"

This reverts commit 92cd24e5f648175944deef5899258981807a9ca4.

Change-Id: I551c292d8151d39bd34f2667eda384273f7cfd87
lient.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
dd03e70fd620a7a305c1a271583e0da07d6c1ac4 10-Aug-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues am: 92cd24e5f6 am: 56e16bb1ca
am: 263910d00a

Change-Id: I76564ea2195d2de9aaf00ebd4c50db1d36dafeff
263910d00ac40a5787a414a79df94d3459139e87 10-Aug-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues am: 92cd24e5f6
am: 56e16bb1ca

Change-Id: I64cac41e0f6e6412a3334cf17c15c9b754f8dd07
92cd24e5f648175944deef5899258981807a9ca4 09-Aug-2016 Dan Stoza <stoza@google.com> SF: Fix a couple of Layer ref count issues

This is an attempt at fixing two reference counting issues for Layers.

The first issue is that since we were holding an sp<IBinder> (really a
reference to a LayerCleaner) inside the layer state for deferred
transactions, there was a possibility that it could end up being the
last strong reference to the LayerCleaner such that when it was
destroyed while applying a non-deferred transaction, it would attempt
to grab the SurfaceFlinger main lock to destroy its Layer. Since this
occurred in the main SurfaceFlinger loop, which was already holding
the lock to process transactions, this would cause a deadlock.

To fix this, the sp<IBinder> inside the layer state was changed to a
wp<IBinder>, only being promoted when it actually needs to be accessed
(i.e., when the deferred transaction is created).

The second issue is that we were promoting and holding a strong
reference to a Layer before calling into SurfaceFlinger to destroy it
on the onLayerDestroyed path (triggered when a LayerCleaner is
destroyed). After returning from the attempt to grab the SurfaceFlinger
main lock, it was possible that this strong reference was the last one
keeping the Layer alive, and destroying it at this point could cause
the HWC2 version of the layer to be destroyed at effectively any point,
even between validate/present.

To fix this, the promotion of the weak Layer reference was moved inside
the critical section where the SurfaceFlinger main lock is held.

Bug: 30503916
Bug: 30281222
Change-Id: I1c6a271f9a7b5d6eea9a9db61d971f262d0cfe84
lient.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
d140bf8cce87d4b6315616377401f575722a0460 05-Aug-2016 Pablo Ceballos <pceballos@google.com> SF: Change rounding behavior in setGeometry am: 51450039e2 am: fe341317d8
am: 6d9171c77d

Change-Id: I949262c1d530f10393e7044ee2751021fc7da61c
6d9171c77d7a0309ff55d3dcbd79b42c8ecdd49c 05-Aug-2016 Pablo Ceballos <pceballos@google.com> SF: Change rounding behavior in setGeometry am: 51450039e2
am: fe341317d8

Change-Id: I084385b24f0817ece6989c83cc682129001daa8d
fe341317d858309245c79eab42483ad5f20afeb8 05-Aug-2016 Pablo Ceballos <pceballos@google.com> SF: Change rounding behavior in setGeometry
am: 51450039e2

Change-Id: I51c03c80fce5cb949e652d21069f5ae50e6588d3
6d7d099b8e33ceeabb9749b1a3fdef36dfa25e05 05-Aug-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Change rounding behavior in setGeometry" into nyc-mr1-dev
51450039e2fd266b31f33dfd1b4353bc1b0b145a 03-Aug-2016 Pablo Ceballos <pceballos@google.com> SF: Change rounding behavior in setGeometry

- Add an option for a transform to round outwards instead of to the
nearest pixel.
- Use this new rounding behavior when converting the crop rectangle
from display-space to layer-space. Otherwise a pixel that will
partially be on the screen might be marked as transparent.

Bug 30510632

Change-Id: I1aece177cc29c54ee0d4a2c919e47442eb455f30
ayer.cpp
ransform.cpp
ransform.h
43d4e6a7b9eae63e66c0fdfd8c514ba678f0cfb5 03-Aug-2016 Tim Murray <timmurray@google.com> Disable SCHED_FIFO when turning off the display. am: f9d4e44fff am: d406094fe9
am: 53b2a9f89f

Change-Id: I46a698104605c50d595023118346a656b31fb29a
53b2a9f89f6e2b4c0eda9a2f1516ee3d14287430 03-Aug-2016 Tim Murray <timmurray@google.com> Disable SCHED_FIFO when turning off the display. am: f9d4e44fff
am: d406094fe9

Change-Id: Ia5020b7e8c2e09524e8801068c2863af933c7714
f9d4e44fff4f9c0a09e5820a5596c6dec34ee4da 03-Aug-2016 Tim Murray <timmurray@google.com> Disable SCHED_FIFO when turning off the display.

There can be long SF runtimes when turning the display on or off. Only
use SCHED_FIFO when we are actively going to be rendering frames, not
when turning the display on or off.

bug 30375418

Change-Id: Ibef8e5f3bba0bafc36f92f9f1b299f015fc335f9
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
c1ba5c4649554e744844b07cfe402b42fbe12ff3 08-Jun-2016 Sahil Dhanju <sahildhanju@google.com> Multithreaded Surface Replayer that replays traces

Change-Id: Id8d17f74e00d4796e1ea266bdaf9e8dd0af6475b
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
a05cafa14c2699cac45e6d1f411f061bf52ff9a5 29-Jul-2016 Sahil Dhanju <sahildhanju@google.com> Renamed folder holding trace protobuf and updated
Updated SurfaceInterceptor include path for protobuf

Change-Id: Iad613857ccdb876621f6fc067bcdc5083e9557f3
urfaceInterceptor.h
13beaf9e0100dcad515763e0c4607719ab4e2fc7 02-Aug-2016 Dimitry Ivanov <dimitry@google.com> Merge "libsigchain: intercept bsd_signal on lp32" am: 1c59b4b4e8 am: 759d63a2f4 am: fb4a57b5c4
am: 401723958d

Change-Id: Iea4a21264332b455b4eadcda99acc55eaef9496e
e22aec741f1530cde86c38989bcc2f87626b93b0 01-Aug-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add a layer minidump

Adds a brief dump of visible HWC layers to replace functionality that
was lost when moving from HWC1 to HWC2.

Bug: 30242002
Change-Id: I7331517c7d1eb515b33d5db85cdaf23d8b9ae9d9
ayer.cpp
ayer.h
urfaceFlinger.cpp
401723958d23d049b96b44eaddb78b0547128c5e 02-Aug-2016 Dimitry Ivanov <dimitry@google.com> Merge "libsigchain: intercept bsd_signal on lp32" am: 1c59b4b4e8 am: 759d63a2f4
am: fb4a57b5c4

Change-Id: Ieb930794c7a91c6392e349a02cbebcbfffe61aa4
fb4a57b5c4c0195358364d955050218936599c7b 02-Aug-2016 Dimitry Ivanov <dimitry@google.com> Merge "libsigchain: intercept bsd_signal on lp32" am: 1c59b4b4e8
am: 759d63a2f4

Change-Id: I53158e2be6716ee5db2c995822e735fb255adc9c
759d63a2f418734d11a25dab122d470675fd9359 02-Aug-2016 Dimitry Ivanov <dimitry@google.com> Merge "libsigchain: intercept bsd_signal on lp32"
am: 1c59b4b4e8

Change-Id: Ib0b9789d7a75928f7433557936b9fac81c53b049
de4883bab707e2699350d561c5e6382d0bad34ba 02-Aug-2016 Tim Murray <timmurray@google.com> Update SurfaceFlinger FIFO configuration. am: acff43dca6 am: 4d818bf221
am: 618f8aba21

Change-Id: Ie003b648afb3b63abf8335d4332c22fcdd98c1d5
f06248fa21d9b5a84d9aa65712f0ebc52c8384b1 01-Aug-2016 Dimitry Ivanov <dimitry@google.com> libsigchain: intercept bsd_signal on lp32

bsd_signal is a deprecated synonym for the signal. Nevertheless
there are apps and libraries calling this function.

libsigchain needs to intercept these calls and handle them the same
way it handles signal() call.

Bug: http://b/30562229
Test: readelf --dyn-sym surfaceflinger and check that bsd_signal is exported for lp32
and is not exported for lp64 binary version
Change-Id: If80e45502275b26c3ee4026ab12cadd77f8fbd3b
ndroid.mk
618f8aba211c60ee5f4a48e1ff38e13b4c20a542 31-Jul-2016 Tim Murray <timmurray@google.com> Update SurfaceFlinger FIFO configuration. am: acff43dca6
am: 4d818bf221

Change-Id: Ic21edd708e48ef535afc927e821451b3fbb20c66
1f81e804013dec130252cda03b3b4f37f548a304 30-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unused variable"
426ab7b1b42ad0f67b9eccd4e068973fc6266ff7 30-Jul-2016 Mukul Sati <msati@google.com> Remove unused variable

Remove an unused local variable in surfaceflinger tests
Change-Id: I30bc41094bb3487bc1d90586eda8d1a87ccae35a
ests/Transaction_test.cpp
acff43dca6a3c8a29f449706967d4de21c373d26 29-Jul-2016 Tim Murray <timmurray@google.com> Update SurfaceFlinger FIFO configuration.

- move SurfaceFlinger main thread to prio 2
- drop EventThread from FIFO but not SFEventThread, which is still FIFO
prio 1
- make DispSyncThread FIFO, prio 1

bug 30481949

Change-Id: Ifedccfbf3cf144ffad030109849a924dddae8d09
ispSync.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ain_surfaceflinger.cpp
5043c3b32c7a7cec264ac89c767b26e101d7f034 29-Jul-2016 Dan Stoza <stoza@google.com> SF: Prime shader cache before boot animation am: 4e63777f75 am: fa37ad521a
am: 85c57eb151

Change-Id: I2ef501e59efd2a510db07df998f11f05b563df14
85c57eb151ac673eb869f57add64819afdea9bcc 29-Jul-2016 Dan Stoza <stoza@google.com> SF: Prime shader cache before boot animation am: 4e63777f75
am: fa37ad521a

Change-Id: I5a0b3152dab5f7d6813220a5f53581a5563d7bad
4e63777f75e9756c74352e62e79dfa8a994de2b3 28-Jul-2016 Dan Stoza <stoza@google.com> SF: Prime shader cache before boot animation

Primes the shader cache before launching boot animation to avoid
janking when we eventually fall into GLES composition.

Bug: 30040263
Change-Id: I76ba66e92c5e6bb05930c325f384f3b774e91101
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
03003aa55a7c27319c96b32430d9e7b2da5ff782 28-Jul-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed am: 10d3fb2360 am: 81451c036d
am: b9f30594c7

Change-Id: I9f903148a50a5fee26bc081a69d9329ae0ef5b87
b9f30594c7deed45bce3950eb14363aa359ef5cc 28-Jul-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed am: 10d3fb2360
am: 81451c036d

Change-Id: Ic261e108736232f805fa1da120784225d7781451
81451c036d90311c1b4e5be15d0d8c94c9998c21 28-Jul-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed
am: 10d3fb2360

Change-Id: I8c97bd2ac61eaba8237c1792f1ab7f739bdbd30e
b203e3cf262df06248d52797593678a756aba094 28-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Clear transform for SolidColor layers am: c6c8954b42 am: bc028a8e49
am: cb585c99a9

Change-Id: Ibb250079d4149f6fd78489f1b949733875921618
98650f0e33f39627d66feee73f03346e1055157a 28-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Build SF executable with USE_HWC2 when needed" into nyc-mr1-dev
cb585c99a9e0eb3f8386efb2f09483919f393291 28-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Clear transform for SolidColor layers am: c6c8954b42
am: bc028a8e49

Change-Id: Ia0677c2fc2bab208cff34841c740949d2a5aedda
10d3fb2360ae1a31d98a16c63952109825e09e55 28-Jul-2016 Dan Stoza <stoza@google.com> Build SF executable with USE_HWC2 when needed

The SurfaceFlinger executable wasn't picking up the USE_HWC2 flag when
enabled by the TARGET_USES_HWC2 BoardConfig, causing a mismatch in the
size of the SurfaceFlinger object. This fixes that by also passing
USE_HWC2 when building the executable.

Bug: 30302693
Change-Id: I1e41e5f548d4b8329590a082d9b69155ba365be9
ndroid.mk
c6c8954b4258ed61790dcc95ff1d049be3e8422d 27-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Clear transform for SolidColor layers

Clears the transform for SolidColor layers, since it doesn't make sense
to transform layers without a buffer.

Bug: 30429522
Change-Id: Ib2f4889531556c7ab00e3b270319c321e9f32c84
ayer.cpp
f10620fb579d61b8ec503bdd02d3026cff42f9bc 26-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Use SolidColor composition for DimLayer am: 0a21df7838
am: 257b657893

Change-Id: Ie353a1dc8a644f8e9e5003a8f1b8f6943cd41a9e
257b6578930fd93814bcb34cd7541796bf9ca5d0 26-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Use SolidColor composition for DimLayer
am: 0a21df7838

Change-Id: Ia387db5ce9efa85f9a0d55d4795e3e66a4caa21c
0a21df783892acc5cff0c39c79b0aa602074af7e 20-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Use SolidColor composition for DimLayer

Switches SurfaceFlinger to try to use SolidColor HWC device
composition for DimLayers instead of always falling back to client
composition.

Bug: 30216498
Change-Id: Ia8af95d214ba72b5657f32f7827a1e6278629f17
ayer.cpp
cf268f197c75832aa29fbfbdbadde34e4587ca2c 22-Jul-2016 Pablo Ceballos <pceballos@google.com> SF: Make screenshot surface async am: 605d15afbb
am: 6d4164bc9a

Change-Id: I88547ffedb80ee500ff508e1e788852c8806f52d
08da1d85771ba237033e90b201a3350f3381188a 22-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Check all displays for client composition am: bfbffeb4d1
am: 638708adee

Change-Id: I0ededbfa206b58a5eeaae3de36bdb91745f899c7
665490affbfb14d9a15923d2757d133f0089b498 22-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Kill logspam for non-HWC virtual displays am: ec0f717dfd
am: 38f86bcab0

Change-Id: I5234ed58634ef92ec7bb3d194222f6ccd0c98c97
6d4164bc9a78cf7766fb9cb87ef5ed6401609b52 22-Jul-2016 Pablo Ceballos <pceballos@google.com> SF: Make screenshot surface async
am: 605d15afbb

Change-Id: Id24c7ccb275dcad914bda83b825c71af90aac637
638708adeee347a3c7ed104cb59b01d449a9d297 22-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Check all displays for client composition
am: bfbffeb4d1

Change-Id: I96d86695d1553cfd57dfca6e007d3137a4b73843
38f86bcab04ac9ced86ce2826097bde6ce147016 22-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Kill logspam for non-HWC virtual displays
am: ec0f717dfd

Change-Id: Ib2eab1e0dfd44063f7840bcd900c9dad783635f9
3dd1045c27a7c49ad9d2295566fb0ca13713c977 22-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Make screenshot surface async" into nyc-mr1-dev
c1dc91d957dac282e202f7203a4f97a7ff6d2f97 22-Jul-2016 Irvel Nduva Matias Vega <irvel@google.com> Merge "Add SurfaceInterceptor initial implementation"
468051e20be19130572231266db306396a56402b 14-Jun-2016 Irvel <irvel@google.com> Integrate SurfaceInterceptor into SurfaceFlinger

Change-Id: If18d967f2b69ed219f17a9afedb61884ad5f1dc8
ventThread.cpp
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
bfbffeb4d15b8a783e2f8aa21daee5fff755913f 21-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Check all displays for client composition

SurfaceFlinger currently only checks whether the primary display
performed client composition when considering whether to propagate
backpressure back to apps. This change expands that check to all
displays so that if an external or virtual display is using client
composition it disables backpressure propagation as well.

Bug: 30022738
Change-Id: I7f7d4e0a1ea7d27ef1f280e2b4ebd5e5bd3bd911
urfaceFlinger.cpp
605d15afbb801ddeee173a3f430006bd25c07d2e 21-Jul-2016 Pablo Ceballos <pceballos@google.com> SF: Make screenshot surface async

It will only ever have one frame pushed to it and this guarantees that
the late-latching logic will always latch it immediately.

Bug 30209608

Change-Id: I875cb5ea258ebb0afae5d1af4ad946475c2240bc
urfaceFlinger.cpp
ec0f717dfd3821cbc648198c6d3b98fcc3b53369 21-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Kill logspam for non-HWC virtual displays

Removes some logspam and fixes some non-errors which were reported as
errors when running a virtual display that is not backed by hardware
composer.

Bug: 30022738
Change-Id: Ie966e37d95f53bcc050eef064d24bbe26748b7fd
isplayHardware/HWComposer.cpp
ayer.cpp
c353f015c3e52339811cb83c991daa59663971aa 21-Jul-2016 Dan Stoza <stoza@google.com> Merge \\"HWC2: Add properties to revert latching changes\\" into nyc-mr1-dev am: d16f6ae2bd
am: 3569f1fe4e

Change-Id: I430c5609590d2c5f04bf6a07ff509430a2bcdf9f
3569f1fe4e7faf64720c6e023bfdf76347f5b2b6 21-Jul-2016 Dan Stoza <stoza@google.com> Merge \"HWC2: Add properties to revert latching changes\" into nyc-mr1-dev
am: d16f6ae2bd

Change-Id: I27f8bd2c5e3756ffa809dfeed4887ea849e4eb3c
d16f6ae2bd1083ee29717829a39e93908bba2bf5 21-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "HWC2: Add properties to revert latching changes" into nyc-mr1-dev
c5da271eec001da9e11a2786f2618a45257439c3 21-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Add properties to revert latching changes

Adds two properties:

debug.sf.latch_unsignaled - This causes SurfaceFlinger to latch
buffers even if their fences haven't signaled
debug.sf.disable_backpressure - This causes SurfaceFlinger to skip
propagating backpressure back to apps by not running when it
detects that a prior composition missed hardware vsync

Bug: 30216498
Change-Id: Idd70f472ec567a4bc03352f30f201f434cf5d660
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
c75ca51da3b41618c9633ca66f06b05daa98f276 20-Jul-2016 Michael Wright <michaelwr@google.com> Initialize HWC2On1Adapter with android_mode_t

Change-Id: I38726b5930927f9fe55e1433b74a6790f8813ec3
isplayHardware/HWC2On1Adapter.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
c274c6313bee6044208a46137c40fb05f7f6e485 14-Jun-2016 Irvel <irvel@google.com> Add SurfaceInterceptor initial implementation

SurfaceInterceptor allows capturing streams of surface updates
that come into SurfaceFlinger. It captures the creation and
deletion of surfaces, changes to a surface like size or position,
buffer updates, and hw vsync updates (for a complete list of what
is captured see
/frameworks/native/cmds/surfacecapturereplay/proto/src/trace.proto)
SurfaceInterceptor uses a protocol buffer object to store each
trace. This allows for the produced trace to be either played back
into SurfaceFlinger or manually inspected.

To enable the interceptor: service call SurfaceFlinger 1020 i32 1
To disable the interceptor: service call SurfaceFlinger 1020 i32 0

Each trace file will be saved to /data/SurfaceTrace.dat
For SurfaceInterceptor to work SELinux must be set to permissive.

Change-Id: I5adff9dcd19456d86cfd5b1f51096dff9990e086
ndroid.mk
urfaceInterceptor.cpp
urfaceInterceptor.h
ests/Android.mk
ests/SurfaceInterceptor_test.cpp
441cf01dcf41862a64d794f845b53a398094cbee 19-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge "Make sure constructors initialize all members"
1b747d607e2c27cc5e1ceed851ed4225326254b8 19-Jul-2016 Jesse Hall <jessehall@google.com> Merge "GpuService: Dump all instance info, not just devices"
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
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
615e573cae9eca90ffc7f6527393a97914107cdf 15-Jul-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add support for color transforms am: 9f26a9c8be
am: 840dae503c

Change-Id: I64e2d133031c010aa12c5e8c764f4845357b6c42
840dae503c00ad207ab4f1396347817dbb68ed3c 15-Jul-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add support for color transforms
am: 9f26a9c8be

Change-Id: I0622633dd37d3695458deb94f8ca7c7c337a73e7
9f26a9c8be6f00f55cbc30b93adf4895c6a093aa 22-Jun-2016 Dan Stoza <stoza@google.com> SF/HWC2: Add support for color transforms

Adds support for color transforms using the setColorTransform method
of HWC2.

This means that instead of always falling back to client composition
when applying a transform, SurfaceFlinger will allow the device to
make that decision. If all layers fall back to client composition, the
SKIP_CLIENT_COLOR_TRANSFORM capability allows the device greater
control over whether SF should apply the transform or whether it
should allow the device to apply it to the client target buffer.

Bug: 19539930
Change-Id: I47a3d5453a3c47a8dd105ab77cce7f9c9687e925
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ffects/Daltonizer.cpp
ffects/Daltonizer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
9a33f76219690a8991428361acf9751bb655be92 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Merge \\\\"Workaround alloc-dealloc-mismatch error on ASan device boot.\\\\" am: 7d8f246415 am: 23d1d10872 am: 316c5165bc
am: e96d025385

Change-Id: Id15ed9fe2e651647a6ab8990f82fc38f4ef05bf8
e96d025385e742f8d9a571f5713227b141d79eba 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Merge \\\"Workaround alloc-dealloc-mismatch error on ASan device boot.\\\" am: 7d8f246415 am: 23d1d10872
am: 316c5165bc

Change-Id: I585c6737d3811110bd519b5cc375f0219fee7927
316c5165bc9a2a58789e386c99e470793d6c4299 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Merge \\"Workaround alloc-dealloc-mismatch error on ASan device boot.\\" am: 7d8f246415
am: 23d1d10872

Change-Id: I5b8baa53812fa991cc7fa45c64e620045f2687ca
23d1d108720beff1f37e6e8aecaea9045f1968f7 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Merge \"Workaround alloc-dealloc-mismatch error on ASan device boot.\"
am: 7d8f246415

Change-Id: Ic34e6263619b98739f935e0aa05bf50aa7399829
b49bcbf4056fee7fdb54ffe21e05621cba200058 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Merge "Workaround for b/30067360."
22819276b147e34a80e8ca696be5b3fda68764b9 14-Jul-2016 Evgenii Stepanov <eugenis@google.com> Workaround alloc-dealloc-mismatch error on ASan device boot.

/proc/self/environ inaccessible in SurfaceFlinger
=> ASan fails to read ASAN_OPTIONS => alloc-dealloc-mismatch bug is not
suppressed and prevents the device from booting.

This is not perfect because, by enabling it in asan build only, the first several attempts to start
surfaceflinger fail while the /data partition is being encrypted. On the other hand, this does not affect
user builds, and device eventually gets up anyway.

BUG=b/30067360

Change-Id: Ieaa37ff7768a11450ea33fee1f7d70a41b246c6a
urfaceFlinger.cpp
444230acb5c1207c658e84ddccd2c5672d8c8771 14-Jul-2016 Dan Stoza <stoza@google.com> Merge \\"HWC2: Fix virtual displays\\" into nyc-mr1-dev am: d47c07fe33
am: 8abbfbcd69

Change-Id: I62e9ae529c6c9bacaf89ae6ee40e21656ca09933
8abbfbcd6941093d22eb9c3334008fbc2f8fc326 14-Jul-2016 Dan Stoza <stoza@google.com> Merge \"HWC2: Fix virtual displays\" into nyc-mr1-dev
am: d47c07fe33

Change-Id: I0df53741a24eb65d56060651c11f0417d608399e
d47c07fe3368a4c916475361120c638ead988ffd 14-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "HWC2: Fix virtual displays" into nyc-mr1-dev
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
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
38628986f2bb3b392dd4b519aacb9354320e409f 14-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Fix virtual displays

Close the output buffer release fence per the contract in
hwcomposer2.h.

Also changes the HWC2 device to hold a weak pointer to the display,
which allows it to properly remove it when it gets torn down.

Bug: 29945684
Change-Id: Ib1b5d81e42a63d0e65b189f7c6c62e661e0ab6ae
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
6732a8f3e5ca73f51274643962805eee69f5322e 13-Jul-2016 Evgenii Stepanov <eugenis@google.com> Workaround for b/30067360.

/proc/self/environ inaccessible in SurfaceFlinger
=> ASan fails to read ASAN_OPTIONS => alloc-dealloc-mismatch bug is not
suppressed and prevents the device from booting.

This is not perfect because, by enabling it in asan build only, the first several attempts to start
surfaceflinger fail while the /data partition is being encrypted. On the other hand, this does not affect
user builds, and device eventually gets up anyway.

Change-Id: I5803a1688c2218cd1c36e04473f588ca28f9689f
urfaceFlinger_hwc1.cpp
8305f25b66773e914a3fe1df19d8aa7783df03af 13-Jul-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Merge changes Iea048eaa,I5c246571 into nyc-mr1-dev am: 72d1772eca
am: 340680891a

Change-Id: If71c96930270a5290e066c29477305686e3b1d2d
340680891a2508482e2a55951e31e96df6770ef6 13-Jul-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Merge changes Iea048eaa,I5c246571 into nyc-mr1-dev
am: 72d1772eca

Change-Id: Ia541dde020c6e2ad8674bb7759aa5975111616c8
72d1772eca21cd1d109a7fe6ee927cbda4df64bc 13-Jul-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Merge changes Iea048eaa,I5c246571 into nyc-mr1-dev

* changes:
Add support for multiple color modes
Remove unused DisplayInfo structure
787d72b601fbfa1f410dc8e1bc396cfdf236da95 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge \\"BQ: Remove getNextFrameNumber Binder call\\" into nyc-mr1-dev am: f9de6e0d7e
am: 45bb23ad43

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

Change-Id: I8ac76ca4bc0ed97deca8823ed8d4a75f594f7add
f9de6e0d7e7a12f4d70bb4828863efb035fc133b 12-Jul-2016 Pablo Ceballos <pceballos@google.com> Merge "BQ: Remove getNextFrameNumber Binder call" into nyc-mr1-dev
fad9d8cd070e94749d8eb5be8f92011c9567a44c 23-Jun-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Add support for multiple color modes

Bug: 29044347
Change-Id: Iea048eaa62f072a9bbefc4f3a6c29a9e593eab69
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
1d6c0e979e7e2a490d7403acd7e966da0e642973 22-Jun-2016 Courtney Goeltzenleuchter <courtneygo@google.com> Remove unused DisplayInfo structure

Bug: 29044347
Change-Id: I5c2465719050c8727b0b48ef515ee79a24e3d65d
isplayHardware/HWComposer.h
1485624fa9ed071368e8b89452a25971e68dd456 08-Jul-2016 Dan Stoza <stoza@google.com> Merge \\"HWC2: Backpressure on transactions as well\\" into nyc-mr1-dev am: e365c9945e
am: 895b177c4d

Change-Id: Id4c5ec2af8cf5dffee50f91ce302e8a559e8c39c
895b177c4d07ead68ab87d4d8573aba321a9624e 08-Jul-2016 Dan Stoza <stoza@google.com> Merge \"HWC2: Backpressure on transactions as well\" into nyc-mr1-dev
am: e365c9945e

Change-Id: Ib264c65f26fe1d81699a63c1ebb24989ee16392d
5018288a44ca53b64fce17b3bfb9656a79cc3465 08-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Backpressure on transactions as well

Modifies the backpressure detection to skip transactions as well as
buffer updates.

Bug: 29413700
Change-Id: I97cda920e7fc1cd7151f0a4df1b00f96b84f4145
urfaceFlinger.cpp
f31493efd6e105238497647f2749ba60644e24f9 07-Jul-2016 Tim Murray <timmurray@google.com> surfaceflinger: make critical threads SCHED_FIFO am: 41a3853cea
am: ce680f8b2c

Change-Id: I9122dc6982467943af4801e52b191809b4192625
ce680f8b2c0f75c7d09e1edded572b510d6100f6 07-Jul-2016 Tim Murray <timmurray@google.com> surfaceflinger: make critical threads SCHED_FIFO
am: 41a3853cea

Change-Id: I06eaa71412abb10e6149fb0fed8ab1824f48e09f
41a3853cea0cffede422fc2692b9c8e1674fc5eb 22-Jun-2016 Tim Murray <timmurray@google.com> surfaceflinger: make critical threads SCHED_FIFO

Sets the main thread, EventThread, and SFEventThread to SCHED_FIFO to
minimize jitter.

bug 24503801

Change-Id: I3751c00c79482842f5c0bdaec92b6cbfe62328a0
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ain_surfaceflinger.cpp
e11eead86164a3bfc96f6226fc23a1f5c1f92067 07-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Backpressure missed vsyncs into apps am: 05dacfb68a
am: d5193eb9a4

Change-Id: I059c90695cdaef5cb57531d53215baf9856bce56
0fdb0158b8550419433d270d523f0270993c7061 07-Jul-2016 Dan Stoza <stoza@google.com> SF: Only latch buffers after fence signals am: 1ce6581ac7
am: 2605348b41

Change-Id: If4e93e858f0d7c7d7db8fe2a6030e91cbcfe18fe
d5193eb9a483a1b64a2fb2dedab1ba66b28d472a 07-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Backpressure missed vsyncs into apps
am: 05dacfb68a

Change-Id: Ida8034e40f75be3063f06e66f3c8b4b870c2d2cd
2605348b41d63fe34c941b6963158d559b30f792 07-Jul-2016 Dan Stoza <stoza@google.com> SF: Only latch buffers after fence signals
am: 1ce6581ac7

Change-Id: Iee9f7e4199539775c6097c73bd6f25bc36a92753
05dacfb68af895fce3cc8ebb0b4aa06c6c336e26 01-Jul-2016 Dan Stoza <stoza@google.com> HWC2: Backpressure missed vsyncs into apps

Adds a mechanism to detect whether the prior frame SurfaceFlinger
presented to hardware composer was actually picked up or not. We then
use this mechanism to avoid pushing two frames in the same vsync.
This backpressure is passed back to applications by not latching any
buffers, which will manifest as dequeueBuffer stalling until
SurfaceFlinger releases a buffer on the following vsync.

Also makes the former INVALIDATE_ON_VSYNC behavior the only behavior
so that this functionality works correctly.

Bug: 29413700
Change-Id: Ibde358e45423ee6fea7b5e09ff65e49c4ad67baa
essageQueue.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
1ce6581ac788eaad58fd3329c2154af7dd74aa3d 16-Jun-2016 Dan Stoza <stoza@google.com> SF: Only latch buffers after fence signals

Changes SurfaceFlinger to only latch a buffer after its corresponding
acquire fence has signaled. This will enable us to move
SurfaceFlinger closer to vsync since there is no risk of fence waits
blocking composition.

Bug: 29413700
Change-Id: I26f4fd600c1611b8d736ec654d1f0f02cf69ae5f
ayer.cpp
ayer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
56b8c6418703bc941c415deb668ff610217d82c8 01-Jul-2016 Pablo Ceballos <pceballos@google.com> resolve merge conflicts of 7467665 to nyc-mr1-dev-plus-aosp
am: 6155b40830

Change-Id: If8e7c75a76e410e13424d1a9c173e9cfbedb17bd
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
8e3e92b906db431c4fa822f21242977d4ee99942 28-Jun-2016 Pablo Ceballos <pceballos@google.com> BQ: Add and expose a unique id

Bug 29422927

Change-Id: I80eab94f073ebc378302f00fa86a740c3643657e
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
689fa1e78a3d1a2bfcef08defe34533eba0284c9 22-Jun-2016 Robert Carr <racarr@google.com> Merge changes from topic \\'seamless-rotation\\' into nyc-mr1-dev am: 4bfbe1f7ef
am: d99daf4fe6

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

Change-Id: I05be2795f7b09b92f79627f991c01d7e32840121
4bfbe1f7eff1782ad1f9874954fa2703207317df 22-Jun-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'seamless-rotation' into nyc-mr1-dev

* changes:
Reset mFreezePositionUpdates earlier.
SurfaceControl: Add getTransformToDisplayInverse
Change setPositionAppliesWithResize to apply to all geometry.
0ef587956000df0a974effb33bba350c6491c273 22-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Don\\'t set null handle for client layers am: e24da966b1
am: 7920c657c6

Change-Id: I2cf2057d23a7c9d58acf6b025513c69a472c3192
7920c657c62278dbceeb38838b4955101dd75b2c 22-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Don\'t set null handle for client layers
am: e24da966b1

Change-Id: Ib572bf53756351bce11a20c28dca2362c7433562
a392073ff99c39b52bee88578c37d6a12235faf5 21-Jun-2016 Robert Carr <racarr@google.com> Reset mFreezePositionUpdates earlier.

We are resetting mFreezePositionUpdates
too late, in the case that the state changes during
latch buffer, we will return to recompute the visible regions
before updating mActiveBuffer.

Bug: 28823590
Change-Id: I17afc32d55d092ea0814b560846b922dd9e24c43
ayer.cpp
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
lient.cpp
lient.h
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
e24da966b14e5b952ee11a7d13bb1539be2a5c8e 22-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Don't set null handle for client layers

Removes the code that explicitly set a null buffer handle for client
layers.

Bug: 29463310
Change-Id: I570e6041ba72d64971bb6c364e8e7b6f84eeff08
ayer.cpp
f1f798a77c795cf8249a98b253e7dd1b638e2edb 21-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Hook up to BoardConfig variable am: f9d7e1a0aa
am: 2c0d316056

Change-Id: I5981d25805a7c6d32a24a57f0d9c3916a6ceeedf
2c0d316056093086b103a9d24d0aa1de6d74e86b 21-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Hook up to BoardConfig variable
am: f9d7e1a0aa

Change-Id: If27dd2b17bdd5ab596ef4eba413993987edfc913
f9d7e1a0aa05bb47527f054b85a36f16e7955088 21-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Hook up to BoardConfig variable

Uses TARGET_USES_HWC2 to enable the HWC2 code path in SurfaceFlinger

Bug: 27211042
Change-Id: I7b7e3e3f7a918e74df0be27418196c81b4332564
ndroid.mk
25207934b4936b796db8604df42d90bbb4cfd00b 20-Jun-2016 Dan Stoza <stoza@google.com> Merge \\"HWC2: Skip validate/present if display is off\\" into nyc-mr1-dev am: 9409a53b45
am: 495a15491f

Change-Id: If771408108db1ded2b2fae404e98c439aa4ce911
495a15491f851862c187ab9bfb6a6655e9344f4e 20-Jun-2016 Dan Stoza <stoza@google.com> Merge \"HWC2: Skip validate/present if display is off\" into nyc-mr1-dev
am: 9409a53b45

Change-Id: I6f5226370c58c5f1304ab1b46f1c7753bcc11fda
7bdf55aacf84715fae7dcd495756d9606e900a86 17-Jun-2016 Dan Stoza <stoza@google.com> HWC2: Skip validate/present if display is off

Adds checks to ensure that the display is still on before attempting
to call into prepareFrame/commit (which in turn call into
validate/present).

Bug: 28596387
Change-Id: Iad87f02c3e44e86db43a15c258ee66b0cde14faa
urfaceFlinger.cpp
d2b093aa60168b98e337262fd27f7f20962b9926 16-Jun-2016 Dan Stoza <stoza@google.com> Merge \\"HWC2On1Adapter: populateCapabilities: fix virtual display query\\" into nyc-mr1-dev am: 91476a0c20
am: abb745c556

Change-Id: I0f22a1e84655b79319d9e480b3dc1a951ab43e1d
abb745c55669e483800fe64f9d8ccca2a7e4ca31 16-Jun-2016 Fred Fettinger <fettinge@motorola.com> Merge \"HWC2On1Adapter: populateCapabilities: fix virtual display query\" into nyc-mr1-dev
am: 91476a0c20

Change-Id: Ic1806500ba732a756ea1f95b0fc023b544c39ecc
3841bf4482d33285f343162639df316237a38b1d 13-Jun-2016 Jesse Hall <jessehall@google.com> GpuService: Dump all instance info, not just devices

Change-Id: Iebb5126f0258c3aaa6c15d342c3554b7d632fa41
puService.cpp
c50c01e0b8a1ef3bac59477cb9ecf946a363c9f8 15-Jun-2016 Fred Fettinger <fettinge@motorola.com> HWC2On1Adapter: populateCapabilities: fix virtual display query

To determine whether a HWComposer implementation supports virtual
displays, HWC2On1Adapter::populateCapabilities() calls
query(HWC_DISPLAY_TYPES_SUPPORTED). However, it incorrectly uses
HWC_DISPLAY_VIRTUAL instead of HWC_DISPLAY_VIRTUAL_BIT. Update the
check to use the correct bitmask.

Change-Id: I1ad95d5222a0353816ee65936cf033e5244c80cc
isplayHardware/HWC2On1Adapter.cpp
5627661eae3a0a43122a416ef9f8e243b0edd1fb 14-Jun-2016 Pablo Ceballos <pceballos@google.com> SF: Fix HWC2 build break am: 8fc10c310e
am: 30f7787017

Change-Id: If6b486b27f4963142d05f70a7d1c2de3be6281f2
30f77870174d305fef2bff378cca1a1536c75268 14-Jun-2016 Pablo Ceballos <pceballos@google.com> SF: Fix HWC2 build break
am: 8fc10c310e

Change-Id: Iadbd3566cc92c4a46af51ce04b6b4657ba7c1dba
8fc10c310ec3fe66d68ea2a90702ee31b329750a 13-Jun-2016 Pablo Ceballos <pceballos@google.com> SF: Fix HWC2 build break

Bug 29330291

Change-Id: Ifd9993ac0321c7436a17c3e64925d415ec993003
enceTracker.cpp
2eca129e15a3ad95e9df2f7032ecc9c46a4c0e10 09-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge \\"Plumbing for getting FenceTracker timestamps\\" into nyc-mr1-dev am: 9e8143ec78
am: a26e661886

Change-Id: I91220ec2367d97104e0e2f37852fe7679912180a
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
enceTracker.cpp
enceTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
8a95daddd965fff9d7bb7c86e227f97c6adc5efc 07-Jun-2016 Robert Carr <racarr@google.com> Merge "SurfaceFlinger: Add mode to apply position with resize." into nyc-dev am: c3da482bb8 am: 3fee6ca1d9
am: f7b6b5d956

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

Change-Id: Ib4476cc6aff4b4f39093a5047182f3f30ac57a77
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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
285c0fb692f8a33a5cd4b8ae95534425305efe4b 06-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Also edit currentState in doTransaction" into nyc-dev am: d224e6111b am: 12863b2a1d
am: a9f4721620

* commit 'a9f472162084aa7e78e684d86914a21e1a234317':
SF: Also edit currentState in doTransaction

Change-Id: Ifefc3a57f9df3bc26c4fd8476041d17f619cf9a0
a9f472162084aa7e78e684d86914a21e1a234317 06-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Also edit currentState in doTransaction" into nyc-dev am: d224e6111b
am: 12863b2a1d

* commit '12863b2a1d7c97e99b7201ae6209f5c861fd46a7':
SF: Also edit currentState in doTransaction

Change-Id: Ia1367baa3da6415e46caccc1ec75c8ac9026d131
d21cb6d2d9a5819c3427df1be4470bcc8baf3c6a 06-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Also edit currentState in doTransaction" into nyc-dev
am: d224e6111b

* commit 'd224e6111bf4532fb1c1fc021c20285b38bc80ec':
SF: Also edit currentState in doTransaction

Change-Id: I6bcd675d033cc1ef46d3498174b2bc52a0072f99
12863b2a1d7c97e99b7201ae6209f5c861fd46a7 06-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Also edit currentState in doTransaction" into nyc-dev
am: d224e6111b

* commit 'd224e6111bf4532fb1c1fc021c20285b38bc80ec':
SF: Also edit currentState in doTransaction

Change-Id: I30b6170c8f41a7e330511ad70abd2257a34bdee2
d224e6111bf4532fb1c1fc021c20285b38bc80ec 06-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Also edit currentState in doTransaction" into nyc-dev
7d05257585918bd578bc0bc18f32571a48a7304a 03-Jun-2016 Pablo Ceballos <pceballos@google.com> SF: Also edit currentState in doTransaction

Bug 28899837

Change-Id: I46c8301549c627c5d1c7efa661055aba787a33d6
ayer.cpp
be515e1f4c232fec9a555076fac43b97400d71e1 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Re-enable fence tracker by default" into nyc-mr1-dev am: 30689c9e4c
am: 22fa825ebb

* commit '22fa825ebbf318dc7942c18a057791a54c7b9bff':
SF: Re-enable fence tracker by default

Change-Id: If988c4a07b5fd20c2fae16e29a9a5cb699329716
22fa825ebbf318dc7942c18a057791a54c7b9bff 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Re-enable fence tracker by default" into nyc-mr1-dev
am: 30689c9e4c

* commit '30689c9e4c7cbcfb1f537f224ab1b50f5fe0efa6':
SF: Re-enable fence tracker by default

Change-Id: I503b5724f8362df99305f9ca9f622a61b329826d
2f65a53871e5c9ad12dca4d7ff832b5960319624 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "Push empty sync transaction before taking screenshot in tests" into nyc-dev am: 08588dd760 am: 161a5bac18
am: 04f1ece83e

* commit '04f1ece83e0ec477172ac8aaf449d6b9d15fd379':
Push empty sync transaction before taking screenshot in tests

Change-Id: I447698d52b25b93fcd93f0f3e8a5abdb0d22bc2a
04f1ece83e0ec477172ac8aaf449d6b9d15fd379 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "Push empty sync transaction before taking screenshot in tests" into nyc-dev am: 08588dd760
am: 161a5bac18

* commit '161a5bac18d7eca64b639f51cd9c78c51c2bf1a4':
Push empty sync transaction before taking screenshot in tests

Change-Id: Id8707fae4898b0108cf370949899aee4bf42fa97
30689c9e4c7cbcfb1f537f224ab1b50f5fe0efa6 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Re-enable fence tracker by default" into nyc-mr1-dev
161a5bac18d7eca64b639f51cd9c78c51c2bf1a4 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "Push empty sync transaction before taking screenshot in tests" into nyc-dev
am: 08588dd760

* commit '08588dd76073a8635aa4175d5b98fc5db86afec4':
Push empty sync transaction before taking screenshot in tests

Change-Id: Id7648a55288f3f8962e6e314584c9690c3f27854
46e5b6507587ef5223d3a108275a69a533abed64 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Merge "Push empty sync transaction before taking screenshot in tests" into nyc-dev
am: 08588dd760

* commit '08588dd76073a8635aa4175d5b98fc5db86afec4':
Push empty sync transaction before taking screenshot in tests

Change-Id: Iad404364ca17d6a23ceca928d342d3931b2418f2
15311bd8a5e8a8b74e7abe6314c764e02491a12d 02-Jun-2016 Pablo Ceballos <pceballos@google.com> Push empty sync transaction before taking screenshot in tests

Because of ag/1043009 it's now necessary to push an empty sync
transaction before taking a screenshot to ensure that all transactions
have been applied.

Bug 29074285

Change-Id: I9f1b4a5b6b1f39e1ff26d536817aef6f40865177
ests/Transaction_test.cpp
5045ab2bb14110f577e3cfff8acfae906dc29935 18-May-2016 Pablo Ceballos <pceballos@google.com> SF: Re-enable fence tracker by default

- Don't check whether the fences have completed or not unless the data
has been requested.

Bug 22431447

Change-Id: Id4cb8bfba38547884849ef23c9b6f42f0d4d0750
ndroid.mk
enceTracker.cpp
enceTracker.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
b871b7afa1202d6622432e6164903d5156e6257b 25-May-2016 Dan Stoza <stoza@google.com> Merge "BufferQueue/SF: Add OccupancyTracker" into nyc-mr1-dev am: faa71321b0
am: 3bfd2e196d

* commit '3bfd2e196d248536207bf1e0acfe86bd4d786d1d':
BufferQueue/SF: Add OccupancyTracker

Change-Id: I0afeef4817c982bff0c0034b162aff91d5cd5bb1
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
faa71321b0862fac97ad1f7825860fb740cc8507 25-May-2016 Dan Stoza <stoza@google.com> Merge "BufferQueue/SF: Add OccupancyTracker" into nyc-mr1-dev
83630f285013d0dc69b616264ccd79cdabf2f11b 25-May-2016 Robert Carr <racarr@google.com> Merge "SF: Force empty sync transactions to apply anyway" into nyc-dev am: 7443c1f253 am: 2d10b6df79
am: 864652f92f

* commit '864652f92f498b867b593acce5c7a79a55075f40':
SF: Force empty sync transactions to apply anyway

Change-Id: Ib26d08538b9d9fbe953a601208c90ece61126e12
864652f92f498b867b593acce5c7a79a55075f40 25-May-2016 Robert Carr <racarr@google.com> Merge "SF: Force empty sync transactions to apply anyway" into nyc-dev am: 7443c1f253
am: 2d10b6df79

* commit '2d10b6df7935022c3d1483e284adb6bcb03d0d2b':
SF: Force empty sync transactions to apply anyway

Change-Id: I3cb8c29467fd5d882a2bb1ff664cbb340cfb98be
424d8325fe0b26665631782e2f47321d0ced8595 25-May-2016 Robert Carr <racarr@google.com> Merge "SF: Force empty sync transactions to apply anyway" into nyc-dev
am: 7443c1f253

* commit '7443c1f253008acd868af1e35449dd5eb3139c8d':
SF: Force empty sync transactions to apply anyway

Change-Id: Iaa91350ba6e499d145e7adfcc1874601fff33775
2d10b6df7935022c3d1483e284adb6bcb03d0d2b 25-May-2016 Robert Carr <racarr@google.com> Merge "SF: Force empty sync transactions to apply anyway" into nyc-dev
am: 7443c1f253

* commit '7443c1f253008acd868af1e35449dd5eb3139c8d':
SF: Force empty sync transactions to apply anyway

Change-Id: Ic5b1f24f75027800429641eb3c2879a5742e130d
7443c1f253008acd868af1e35449dd5eb3139c8d 25-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SF: Force empty sync transactions to apply anyway" into nyc-dev
2a7dbb4135976b01015d237ac95d5eeb3ed7a85c 24-May-2016 Robert Carr <racarr@google.com> SF: Force empty sync transactions to apply anyway

Following the change to not flush transactions in the screen shot
path, this enables the use of empty synchronous transactions as a
flush mechanism for previous asynchronous transactions.

Bug: 27098060
Change-Id: I282fdfffb72db148edcbf1ded65b15816fc714a2
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
f0e0f93d3d634d0fc02b51d72071b63c8cd2989a 24-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Remove forced transaction on screenshot" into nyc-dev am: 854071a38f am: 7c1e3865a9
am: 4a8ac7cb46

* commit '4a8ac7cb46500538b964bc8247ff3159fb65d9f5':
SF: Remove forced transaction on screenshot

Change-Id: Id3378fca35a988b475ec06e4888c5883cbeacac4
4a8ac7cb46500538b964bc8247ff3159fb65d9f5 24-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Remove forced transaction on screenshot" into nyc-dev am: 854071a38f
am: 7c1e3865a9

* commit '7c1e3865a90084ae2a3efc089e4499e73d3858e7':
SF: Remove forced transaction on screenshot

Change-Id: I5d38586de3bf2d0bb7236383cd27f04fdbf75ae1
7c1e3865a90084ae2a3efc089e4499e73d3858e7 24-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Remove forced transaction on screenshot" into nyc-dev
am: 854071a38f

* commit '854071a38f250bd0638f1dfdb99b9ccc0010e7d0':
SF: Remove forced transaction on screenshot

Change-Id: I79297918957661befdec24345bdfff2720433188
c51e7ff96d97cdcdd420f54df2c3171c1016b14b 24-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Remove forced transaction on screenshot" into nyc-dev
am: 854071a38f

* commit '854071a38f250bd0638f1dfdb99b9ccc0010e7d0':
SF: Remove forced transaction on screenshot

Change-Id: I2a321e5ddef0fd8b4dd5b3cb3a1e409c6998cd5e
854071a38f250bd0638f1dfdb99b9ccc0010e7d0 24-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Remove forced transaction on screenshot" into nyc-dev
6b5d740d54fd3cf9f0f57098e981141ca0c02d9f 24-May-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Fix breakage from header change" into nyc-dev am: 80bc52aefa am: fce9f9cfce
am: 8827b8a75e

* commit '8827b8a75eb858ae3778fb491b136a4a029107a4':
HWC2: Fix breakage from header change

Change-Id: I282f18bdaccc9c792ec967775bf4779f6d91ed2c
8827b8a75eb858ae3778fb491b136a4a029107a4 24-May-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Fix breakage from header change" into nyc-dev am: 80bc52aefa
am: fce9f9cfce

* commit 'fce9f9cfce0549703e3ee79bc143ce6736b520a3':
HWC2: Fix breakage from header change

Change-Id: Ia891a07108bbefc8bd2782e74a86e41cf164124d
b66ee0e7d1553fc1e99abe72407914c18590490c 24-May-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Fix breakage from header change" into nyc-dev
am: 80bc52aefa

* commit '80bc52aefa56e590f05bc30ff0182d860f00b128':
HWC2: Fix breakage from header change

Change-Id: I02f8b45ded3d00dc2d34689f5b902d77ee74ca1e
fce9f9cfce0549703e3ee79bc143ce6736b520a3 24-May-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Fix breakage from header change" into nyc-dev
am: 80bc52aefa

* commit '80bc52aefa56e590f05bc30ff0182d860f00b128':
HWC2: Fix breakage from header change

Change-Id: I05e5ac7285d232074ac336611cbc14643aac9f6e
80bc52aefa56e590f05bc30ff0182d860f00b128 24-May-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Fix breakage from header change" into nyc-dev
921e9c9e5014ad09b0923a93c5c88884027fc496 21-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13 am: 2676338dd6 am: ba01df4adf
am: 5270f67f34

* commit '5270f67f343bf34f113e013eee49bff2e9f5be4e':
vulkan: Update vulkan.h to 1.0.13

Change-Id: I0d7db17319ecfaac58a6bc2ed6f507c0353a1399
5270f67f343bf34f113e013eee49bff2e9f5be4e 20-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13 am: 2676338dd6
am: ba01df4adf

* commit 'ba01df4adf84d0c7f382034d165c35c80dd24934':
vulkan: Update vulkan.h to 1.0.13

Change-Id: I2c0bef1717ee1b0b9e12d04ae58ece0dbecfabad
ba01df4adf84d0c7f382034d165c35c80dd24934 20-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13
am: 2676338dd6

* commit '2676338dd692b7d1e1c276d82e6b0492db53ab2e':
vulkan: Update vulkan.h to 1.0.13

Change-Id: I7dce6307edb8d04a5706da465b5de8457d7d236a
17347b2749a32bcb4348c0c518d075a2cd3248a7 20-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13
am: 2676338dd6

* commit '2676338dd692b7d1e1c276d82e6b0492db53ab2e':
vulkan: Update vulkan.h to 1.0.13

Change-Id: I25fd0770f0ff6d45851ea924bf86adbd0d1ecb50
5cf424bc129f01ee12c7a4fbea1664276d29f970 20-May-2016 Dan Stoza <stoza@google.com> HWC2: Fix breakage from header change

Updates the shim and adapter to handle the header changes introduced
by "HWC2: Add format to VD create, surface damage" in libhardware.

Bug: 22767098
Change-Id: I8142301c121d9b5602a4455f3fbadefefd685cf0
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
2676338dd692b7d1e1c276d82e6b0492db53ab2e 20-May-2016 Jesse Hall <jessehall@google.com> vulkan: Update vulkan.h to 1.0.13

vulkan.h and vk_platform.h imported from
github.com:KhronosGroup/Vulkan-Docs @ 2656f459333b3a1dc63619a9ebd83490eea22e93

Updated vulkan.api to reflect the changes in vulkan.h. There were no
changes to any of the code we generate. I didn't update the
vulkan_h.tmpl, since we're not currently using it and it was already
out of date.

Bug: 28878216
Change-Id: I71676683148fae7ad8799bd39386a931319aa395
puService.cpp
32734bb21918dcca3a6654709790edbf420de53a 18-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix arbitrary rotation with inverse display transform" into nyc-dev am: 885ac76b90 am: d3e7cc010b
am: e88a886de3

* commit 'e88a886de313ff115575b2213b98c8adc5f2aab9':
SF: Fix arbitrary rotation with inverse display transform

Change-Id: I89b0819b0970daa20352928677064d0c5d8e2cc1
5f90cfe4f223d1347eeff5e899dfe52fc3a8839a 18-May-2016 Dan Stoza <stoza@google.com> HWC2: Set composition type before setting buffer am: 0f67b3f01f am: 20829ec6f4
am: d8c2909d0b

* commit 'd8c2909d0b2c4631a6ae86136e74807fdda70db3':
HWC2: Set composition type before setting buffer

Change-Id: I8338c8a5be92fde418be0ccb21b1acaf484acabd
e88a886de313ff115575b2213b98c8adc5f2aab9 18-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix arbitrary rotation with inverse display transform" into nyc-dev am: 885ac76b90
am: d3e7cc010b

* commit 'd3e7cc010b361958a14f007d7ea23a892fd05df2':
SF: Fix arbitrary rotation with inverse display transform

Change-Id: I56924e0304e6086886f8ae45a4ab40c423e6a2ed
d8c2909d0b2c4631a6ae86136e74807fdda70db3 18-May-2016 Dan Stoza <stoza@google.com> HWC2: Set composition type before setting buffer am: 0f67b3f01f
am: 20829ec6f4

* commit '20829ec6f4defb154ce0c92eb356b75b1bfa26e9':
HWC2: Set composition type before setting buffer

Change-Id: I0f28878147fc702310582b4a4f26406efe741d80
d3e7cc010b361958a14f007d7ea23a892fd05df2 18-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix arbitrary rotation with inverse display transform" into nyc-dev
am: 885ac76b90

* commit '885ac76b90e2f3e5cfaec7bbc8ff2e1de8d62435':
SF: Fix arbitrary rotation with inverse display transform

Change-Id: I1d67ba1dd7589d35d8a23bda701896b802c38a79
20829ec6f4defb154ce0c92eb356b75b1bfa26e9 18-May-2016 Dan Stoza <stoza@google.com> HWC2: Set composition type before setting buffer
am: 0f67b3f01f

* commit '0f67b3f01fc74bbd8cf4be24fce4a1e42f102282':
HWC2: Set composition type before setting buffer

Change-Id: Id90777e83c0455cd95c28acb94d1ed791222851c
19e51855bd884981b01f5d6d0958d7e391c5d352 18-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix arbitrary rotation with inverse display transform" into nyc-dev
am: 885ac76b90

* commit '885ac76b90e2f3e5cfaec7bbc8ff2e1de8d62435':
SF: Fix arbitrary rotation with inverse display transform

Change-Id: Idceb5782ac8e71e7f4e4833946a32b85df59fc69
7af047d29cf823a83142b91113de0933f15eeaec 18-May-2016 Dan Stoza <stoza@google.com> HWC2: Set composition type before setting buffer
am: 0f67b3f01f

* commit '0f67b3f01fc74bbd8cf4be24fce4a1e42f102282':
HWC2: Set composition type before setting buffer

Change-Id: I41f3215b2950b55d3a86b3cb01c12056371b3802
885ac76b90e2f3e5cfaec7bbc8ff2e1de8d62435 18-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix arbitrary rotation with inverse display transform" into nyc-dev
0f5131fe72f3e7ca599946536d1f6028bb93398d 17-May-2016 Pablo Ceballos <pceballos@google.com> SF: Fix arbitrary rotation with inverse display transform

Bug 28043535

Change-Id: I8b939e17f91cf7e5b617bbcceb9df4efcc9d0161
ayer.cpp
0f67b3f01fc74bbd8cf4be24fce4a1e42f102282 17-May-2016 Dan Stoza <stoza@google.com> HWC2: Set composition type before setting buffer

SurfaceFlinger was incorrectly setting the buffer handle before
setting the composition type. This led to cases where the layer was
initially marked as Invalid or Client, allowing HWC2 to ignore the
buffer handle, even though the layer was later changed to Device
before presentation.

Bug: 28814745
Change-Id: I41189495dcb254f04e6b2b329c044301c5cff97c
ayer.cpp
14e54ba747942312f5cd143a27e603eacd7573f7 16-May-2016 Dan Stoza <stoza@google.com> SF: Remove forced transaction on screenshot

Removes the forced transaction that screenshots used to perform
before capturing the screen. This was initially added to prevent
screenshot capture from sneaking in between when a transaction is
closed and when it is actually applied (at the next vsync), but in
the presence of deferred transactions today, forcing a transaction
to occur doesn't guarantee that the last transaction that
WindowManager pushed has actually been committed yet, since it may be
waiting for a buffer with which to synchronize.

If WindowManager wants to guarantee some arrangement of windows is
present for a screenshot, it needs to set the synchronous flag to
true when calling closeGlobalTransaction and wait for the call to
return.

Bug: 27098060
Change-Id: Iaa36d76df521076cc8ed16576f651543bae419a8
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
fb9d4c34d09c4c1f128abe045dcc6cbbb1ae0188 11-May-2016 Dan Stoza <stoza@google.com> Merge "Merge "SF: Apply translations to transparent region" into nyc-dev am: df98fb952f am: 624eb0c228" into nyc-mr1-dev-plus-aosp
am: 1ba29bdefd

* commit '1ba29bdefdb61d76573fb547e3cd7b398dfa7f79':
SF: Apply translations to transparent region

Change-Id: I46515daa4f98e0e2f9d46ea07e9f16b90fb05fad
014f15883520112f9ad832de277b056ba790d214 11-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Set state modified flag when changing sizes" into nyc-dev am: 0abac03fc9 am: fbdc2339be
am: 2720e7d962

* commit '2720e7d962a307b239fa19fa3257027ea10a9167':
SF: Set state modified flag when changing sizes

Change-Id: Ib370a90726f56d58ef945107d1942bc5552dad8e
48265a0d542d8bcd82f865f3ef7e6e42598b30b3 11-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Apply translations to transparent region" into nyc-dev am: df98fb952f
am: 624eb0c228

* commit '624eb0c2288dbc019232414971a3ab1ba4797b20':
SF: Apply translations to transparent region

Change-Id: Ia9227530930201dbb169510e68e7279b588269c9
2720e7d962a307b239fa19fa3257027ea10a9167 11-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Set state modified flag when changing sizes" into nyc-dev am: 0abac03fc9
am: fbdc2339be

* commit 'fbdc2339be2dc54e815830165cbdd04c7dca602b':
SF: Set state modified flag when changing sizes

Change-Id: I431d35ca4e9b2f09bc34ac14762d40591dd3d562
6f736efcf27b23765de1766c74a0a565f61105de 11-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Apply translations to transparent region" into nyc-dev
am: df98fb952f

* commit 'df98fb952f5328c3df3d098df39297c44bdaa022':
SF: Apply translations to transparent region

Change-Id: I819ad0a1728e8bfa1f3d06ecddac3dac8ddbe2b6
3666cc2bae3f73e90c9eb6d8a6d4ce623ee9f745 11-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Set state modified flag when changing sizes" into nyc-dev
am: 0abac03fc9

* commit '0abac03fc9d415b27e3f93d76859aae5f7c3050f':
SF: Set state modified flag when changing sizes

Change-Id: Ifd3ee6abdc12d141a7de0f2a2f3800017da6a69e
624eb0c2288dbc019232414971a3ab1ba4797b20 11-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Apply translations to transparent region" into nyc-dev
am: df98fb952f

* commit 'df98fb952f5328c3df3d098df39297c44bdaa022':
SF: Apply translations to transparent region

Change-Id: I868053f63f1a170e9f91ab6410ec5c2ff5ad22d9
fbdc2339be2dc54e815830165cbdd04c7dca602b 11-May-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Set state modified flag when changing sizes" into nyc-dev
am: 0abac03fc9

* commit '0abac03fc9d415b27e3f93d76859aae5f7c3050f':
SF: Set state modified flag when changing sizes

Change-Id: I2268d868a7885a1c4b8a1e28af7c837d0ba6e568
df98fb952f5328c3df3d098df39297c44bdaa022 11-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Apply translations to transparent region" into nyc-dev
39c88e8c7d870486f703408dafd0a62e7420df05 11-May-2016 Pablo Ceballos <pceballos@google.com> SF: Set state modified flag when changing sizes

The BufferRejecter updates the Layer state when it gets the first
buffer of the new size after a size change has occurred. When this
happens make sure to set the state modified flag.

Bug 27780983

Change-Id: Id8c628c40164110e75f8defd68ca895d72ed2e83
ayer.cpp
22f7fc45af6ce8c1a2b9543315347bd44d1c9e08 11-May-2016 Dan Stoza <stoza@google.com> SF: Apply translations to transparent region

Correctly applies translation-only transforms to the transparent
region so that it aligns with the layer bounds in screen space.

Bug: 28220791
Change-Id: If9137b873f4b89890127671d8c45745e079f1cbc
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ransform.cpp
ransform.h
95b3a64a5f25bea6e0a11d7a1cf581d6aaf24304 05-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings."
8753c43c27bbf59860bff3e3157462d3806be494 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Add support for color modes am: 076ac67026
am: 4b966273d6

* commit '4b966273d61c6a07f17c46b17569c806527bdec9':
HWC2: Add support for color modes

Change-Id: I0053da59945787510ec85b66905f9a3190c17bb2
64343561d03af1e000287ac82a975b9c7bfa2ab8 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Hook up setColorTransform/setLayerDataspace am: 5df2a86063
am: 0e7daf339a

* commit '0e7daf339abfa8c718cc154dd80b3f1c20c698f5':
HWC2: Hook up setColorTransform/setLayerDataspace

Change-Id: I1b9e5d7127a76793aedad85f3e68f6ac61610c91
4b966273d61c6a07f17c46b17569c806527bdec9 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Add support for color modes
am: 076ac67026

* commit '076ac670262e448c531e6db7727cfade325866ca':
HWC2: Add support for color modes

Change-Id: I79945fd9ad8c6f4c69d2296a7b6ed5829513d039
0e7daf339abfa8c718cc154dd80b3f1c20c698f5 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Hook up setColorTransform/setLayerDataspace
am: 5df2a86063

* commit '5df2a86063c6a83813fc1aa3d8938a82f7ff8f14':
HWC2: Hook up setColorTransform/setLayerDataspace

Change-Id: I995088f94950796152597d56d8e53a534443f8c7
91ea3c08bc5da21addf84603f95ad1af8cde6b01 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Add support for color modes
am: 076ac67026

* commit '076ac670262e448c531e6db7727cfade325866ca':
HWC2: Add support for color modes

Change-Id: I349c7bf51e6840fc69320f029a995b714a2d502f
23df91ddf3d7e4d061359a7b729bf12932a941bd 05-May-2016 Dan Stoza <stoza@google.com> HWC2: Hook up setColorTransform/setLayerDataspace
am: 5df2a86063

* commit '5df2a86063c6a83813fc1aa3d8938a82f7ff8f14':
HWC2: Hook up setColorTransform/setLayerDataspace

Change-Id: I4c58f99890f8ee26fcff0101cbcfe7c8a67a745a
076ac670262e448c531e6db7727cfade325866ca 14-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Add support for color modes

Adds support for setting color modes through HWC2On1Adapter and the
HWC2 C++ shim

Bug: 22767098
Change-Id: I0b7300093ab427be7105a2535fc9db4953b8af1c
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
5df2a86063c6a83813fc1aa3d8938a82f7ff8f14 25-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Hook up setColorTransform/setLayerDataspace

Plumbs the setColorTransform and setLayerDataspace calls through the
HWC2 C++ shim and implements a trivial versions in the adapter,
which drops non-HAL_DATASPACE_UNKNOWN layers to client composition,
and which drops all layers to client composition if a color transform
is applied.

Bug: 22767098
Change-Id: Ifffd19b77cf3b33ec86fde3f72257f6b97b4dd79
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
c406791ead6d864ec693ad01a80c5f471bdc2a7a 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I7e061f68acdde368a3b63c029b928133646ebff2
ispSync.cpp
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWComposer_hwc1.cpp
puService.cpp
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
0b3b7b421b34cf86892640926f5e1fcd326470f4 02-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Clear local sync points on hide and destroy" into nyc-dev am: 54ebc56413
am: 4c3bbb1d90

* commit '4c3bbb1d90c5f5caf2e1c19a2aa3978d5a04abfb':
SF: Clear local sync points on hide and destroy

Change-Id: Ie15afeffa22354d95e3c2d7f8041033ef023527e
4c3bbb1d90c5f5caf2e1c19a2aa3978d5a04abfb 02-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Clear local sync points on hide and destroy" into nyc-dev
am: 54ebc56413

* commit '54ebc564132c4c734d5917baa5c91a36c6f915ef':
SF: Clear local sync points on hide and destroy

Change-Id: Ife257492cfa0c34e67fae6568a3b9aee2570c8f8
f9d194e07bb8af26983ac96681887874a8782099 02-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Clear local sync points on hide and destroy" into nyc-dev
am: 54ebc56413

* commit '54ebc564132c4c734d5917baa5c91a36c6f915ef':
SF: Clear local sync points on hide and destroy

Change-Id: If6d5cb161e5ed9633a2719f07943f9419d2f4a09
54ebc564132c4c734d5917baa5c91a36c6f915ef 02-May-2016 Dan Stoza <stoza@google.com> Merge "SF: Clear local sync points on hide and destroy" into nyc-dev
c28ee4857b8bfe683ddeaf8eaeb89527ecfd04f0 29-Apr-2016 John Reck <jreck@google.com> Merge "Return the transform to apply in getLastQueuedBuffer" into nyc-dev am: 1992e9430c
am: be5b94e9c6

* commit 'be5b94e9c6fab7638d1cba6f86069cff3fc9d20b':
Return the transform to apply in getLastQueuedBuffer

Change-Id: I6b9d78b7112a01cd9e6b6c6d66fdc925e0c87240
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
be5b94e9c6fab7638d1cba6f86069cff3fc9d20b 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: I93be20b7f0debb41c8f21725ed98fa863916cd32
c8145170a4b3bfdcfd6bd08b61ad55ae4eac9cc9 29-Apr-2016 Dan Stoza <stoza@google.com> SF: Clear local sync points on hide and destroy

Clears out a Layer's local sync points when the layer is destroyed
and when it is hidden, so that any Layers waiting for frames to
appear on that Layer are not blocked when attempting to apply
transactions

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

Bug: 28428955
Change-Id: Id48f7d3bf3f5deb074cf0a6a52a41caac875db41
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
531ad78d9e9036b56314dc745300c47fe92cdd94 25-Apr-2016 Srinath Sridharan <srinathsr@google.com> marlin/eas: Fixing foreground/schedtune.boost path
am: 2c1ff54

* commit '2c1ff54f4167eb819bde7ae8af426478bec89456':
marlin/eas: Fixing foreground/schedtune.boost path

Change-Id: I2a8f6efcc48d69ce242680c247b0f8fb02ae218c
2c1ff54f4167eb819bde7ae8af426478bec89456 25-Apr-2016 Srinath Sridharan <srinathsr@google.com> marlin/eas: Fixing foreground/schedtune.boost path

BUG: 28378389
Change-Id: Iea0bdf33de2ae2b9abc37460a9100d5044699c7d
urfaceflinger.rc
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
ayer.cpp
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
4908a010f63c7d0a6d9a1f4b67c3453a116d1556 20-Apr-2016 Jesse Hall <jessehall@google.com> Merge "libgui: Add getLastQueuedBuffer to BufferQueue" into nyc-dev
b638dd9d3447c45b030e8d35a148ebe5cffeb149 20-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Actually wait forever" into nyc-dev
am: 8a56bb7

* commit '8a56bb70c736245e875635d3093d70a51394dea5':
DispSync: Actually wait forever

Change-Id: I2096d15e68047479f92be07d9cc98b67d62e5ab4
8a56bb70c736245e875635d3093d70a51394dea5 20-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Actually wait forever" 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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
e22700df1cea9b284f5c86e9695923ffec175552 19-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Don\'t resync if HW vsync is unavailable" into nyc-dev
am: 15732be

* commit '15732be8aaa961a8eeb50a2cd3db76981ff2e83f':
DispSync: Don't resync if HW vsync is unavailable

Change-Id: I0c63cf15c144271756ac87bd1821b7843800ef34
15732be8aaa961a8eeb50a2cd3db76981ff2e83f 19-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Don't resync if HW vsync is unavailable" into nyc-dev
0a3c4d6f8c95a89875455e989278a440822968d7 19-Apr-2016 Dan Stoza <stoza@google.com> DispSync: Don't resync if HW vsync is unavailable

Don't attempt to resync to hardware vsync if it's not available (if
the display is blanked), which should prevent unusual sequences of
commands (enable vsync, then unblank) to hardware composer.

Bug: 28177844
Change-Id: I9d6046fb0a346830e98829fd250642f0809d7e31
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
3f59b10742eca3aafb1b14f79a08463015671872 19-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix camera orientation on virtual displays" into nyc-dev
am: 55b29f2

* commit '55b29f2ec5d62a13eb374501ebc4691eadd3997a':
SF: Fix camera orientation on virtual displays

Change-Id: I9993f7ffd7e34ea6fb81edb8006ea3d635ae1eb4
55b29f2ec5d62a13eb374501ebc4691eadd3997a 19-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Fix camera orientation on virtual displays" into nyc-dev
8f8374d75ab17be5d168fea14d3f8e2a40ca3c66 19-Apr-2016 Dan Stoza <stoza@google.com> DispSync: Actually wait forever

When computeNextEventTimeLocked returns INT64_MAX (because there are
currently no listeners), wait until the condition variable is
signaled instead of waiting for a long timeout. Since the condition
variable timeout is specified using CLOCK_REALTIME behind the scenes,
we can receive false wakeups in the presence of large system clock
changes.

Bug: 28152577
Change-Id: I88dbab5d5d0776cb25dea76a4574db055b308fd1
ispSync.cpp
11e3dd84bd544bfa53f0e5c3ee5d40e4d0bb0018 19-Apr-2016 Tim Murray <timmurray@google.com> Merge "Revert "Revert "DispSync: Always resync after inactivity""" into nyc-dev
am: 6328134

* commit '6328134d8f3969e5cf345bec84b2c6455afc6a34':
Revert "Revert "DispSync: Always resync after inactivity""

Change-Id: I65c59dbba8e9455eb853b15c0e08246480150acc
6328134d8f3969e5cf345bec84b2c6455afc6a34 19-Apr-2016 Tim Murray <timmurray@google.com> Merge "Revert "Revert "DispSync: Always resync after inactivity""" into nyc-dev
4a4e4a239f034cb8af2df9a438b26c3bc088889c 19-Apr-2016 Tim Murray <timmurray@google.com> Revert "Revert "DispSync: Always resync after inactivity""

This reverts commit 67264e930992e43ef3351b04692d4ca59cbb01ad.

We've fixed the kernel issues this exposed.

bug 28198793

Change-Id: Ie895cc0a815094cce4bee3b2bf45800ee1e2fdc3
ispSync.cpp
ispSync.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
021623b5a82e44e8dc1a7def1abfed351187593c 16-Apr-2016 Pablo Ceballos <pceballos@google.com> SF: Fix camera orientation on virtual displays

Camera uses NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY to make the camera
preview always look upright on the device display. This commit changes
the behavior of this flag slightly. Instead of applying the inverse
transform of the current display when compositing, apply the inverse
transform of the primary display to all displays. This assumes that
the camera orientation is tied to the primary display.

Bug 2628180

Change-Id: I0da22423490a93fe943fd59e6c122aa6aaf30b11
isplayDevice.cpp
isplayDevice.h
ayer.cpp
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
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
f328bc4ba5e44b6bec3cef2a216c83a18dbdca8b 15-Apr-2016 Gary Smith <gary.k.smith@intel.com> Merge "SF: Fix the delivery of visible and damage rects to HWC" into nyc-dev
am: 12402e3

* commit '12402e34ad453f58e2c9d39fa65772f6cb09a0b6':
SF: Fix the delivery of visible and damage rects to HWC

Change-Id: I04fea542af9f217625c1e06e3efb4fefeea19551
12402e34ad453f58e2c9d39fa65772f6cb09a0b6 15-Apr-2016 Dan Stoza <stoza@google.com> Merge "SF: Fix the delivery of visible and damage rects to HWC" into nyc-dev
6034c207c486ca79ce97f7afeb21491b30bf8443 15-Apr-2016 Dan Stoza <stoza@google.com> Merge "Revert "DispSync: Always resync after inactivity"" into nyc-dev
am: ccf8058

* commit 'ccf8058396c3ac8d1e296b9c0ba5f6317cc90661':
Revert "DispSync: Always resync after inactivity"

Change-Id: I5bf3facc0f80feb4f7b994054a5fb812a84ffda8
ccf8058396c3ac8d1e296b9c0ba5f6317cc90661 15-Apr-2016 Tim Murray <timmurray@google.com> Merge "Revert "DispSync: Always resync after inactivity"" into nyc-dev
6451ddb8f107b2fd57c956e74935ac62b91c8a2d 15-Apr-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Don\'t pop pending state into mCurrentState" into nyc-dev
am: 9eb286a

* commit '9eb286a074a8b2764b69339b0958dc5b176f1a8d':
SF: Don't pop pending state into mCurrentState

Change-Id: Ieb6b0f2a24a00b4c54b0a544b81fc72899305036
9eb286a074a8b2764b69339b0958dc5b176f1a8d 15-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "SF: Don't pop pending state into mCurrentState" into nyc-dev
f5abc7801eb008708d31c8f349d4301881c51c89 15-Apr-2016 Gary Smith <gary.k.smith@intel.com> SF: Fix the delivery of visible and damage rects to HWC

The storage space for the visible and damage regions was inside the
HWCLayerVersion1 class, which is temporarily allocated while using
an iterator. As such, the storage has been deleted by the time the
HWC gets a pointer to it sometime later and hence the HWC reads
garbage in all layers.

This commit moves the storage into the DisplayData structure and hence
it persists until the next frame.

Bug 28200888

Change-Id: If7cc8d2de49e3e66e9d17cc45934d8e544576026
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
e5fc9167630372c7527f95debe3fd32e3e40a19c 15-Apr-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Change version detection scheme" into nyc-dev
am: 8bf556e

* commit '8bf556ec85af8d4d47aad5a19a0633cf8b0fa17e':
HWC2: Change version detection scheme

Change-Id: Id81873cee64b8bae46d1722970179d0a183d60a6
8bf556ec85af8d4d47aad5a19a0633cf8b0fa17e 15-Apr-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Change version detection scheme" into nyc-dev
05289c2b78d21308a95ea6ef8f1d8f24359147cd 15-Apr-2016 Pablo Ceballos <pceballos@google.com> SF: Don't pop pending state into mCurrentState

Let mCurrentState always represent the most up to date state, even if
there are transactions we don't want to commit yet. Past snapshots of
the state are kept in mPendingState. In doTransaction(), grab the
correct pending state from mPendingState, but save it to a local copy
that gets committed rather than overriding mCurrentState.

Bug 27205755

Change-Id: Ib0ea809da1954409787c52b8f41d7963a57a6a4c
ayer.cpp
ayer.h
ests/Transaction_test.cpp
6bad200fba6b68fb0946c096c072ce985c18d12a 14-Apr-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Check SidebandStream capability on load" into nyc-dev
am: d4797c2

* commit 'd4797c2f3f91474baef2653ed1221aa595cc96f3':
HWC2: Check SidebandStream capability on load

Change-Id: I76dcda5b00f9a965ac5eaf20a7295b61c523f6d3
355f60461b1ec4f0035fcb5e73d36e662352cd18 14-Apr-2016 Dan Stoza <stoza@google.com> HWC2: Change version detection scheme

SurfaceFlinger now checks hardware composer module numbers by looking
at device.version, the high byte of which corresponds to the HWC
major version (0x01... for HWC 1.x and 0x02... for HWC 2.0).

Bug: 28161397
Change-Id: I4560bf60c35bdb97629fda1aa1256b03122688ad
isplayHardware/HWComposer.cpp
09e7a27fabde3da99ba6dfd2fd20be7d1425a9ad 14-Apr-2016 Dan Stoza <stoza@google.com> HWC2: Check SidebandStream capability on load

Checks whether the HWC2 device has the SidebandStream capability
before attempting to load the corresponding function pointer

Bug: 28161394
Change-Id: I6407d61a1b23138781e57213bcb868be46609018
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
67264e930992e43ef3351b04692d4ca59cbb01ad 14-Apr-2016 Dan Stoza <stoza@google.com> Revert "DispSync: Always resync after inactivity"

This reverts commit f34b9be610ce286af224364cb6e69ef6f7697ee9.
Bug: 28160740

Change-Id: I48a5bd66712651b42fdc0aaf1492899d7b032977
ispSync.cpp
ispSync.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
ce1099ee4cb76cf06071f9cad450a3e9ebe8f73c 11-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Always resync after inactivity" into nyc-dev
am: 7e5e128

* commit '7e5e1287276efba71cceec75c495c21ecec4f147':
DispSync: Always resync after inactivity

Change-Id: I6ed67ed8139c4ab1b07e524877db505635fc22eb
7e5e1287276efba71cceec75c495c21ecec4f147 11-Apr-2016 Dan Stoza <stoza@google.com> Merge "DispSync: Always resync after inactivity" into nyc-dev
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
97a46df0ee9708822f190a76047c490f54c199cd 09-Apr-2016 Dan Stoza <stoza@google.com> Merge changes I0f07043f,Ib4635ee4,I472ad9f0 into nyc-dev

* changes:
Plumb HDR capabilities up to SurfaceComposerClient
HWC2: Add getHdrCapabilities to C++ shim
HWC2: Add getHdrCapabilities stub to adapter
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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
7d7ae7345abfb91be55c4aed6c9be9d09a144e4c 16-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Add getHdrCapabilities to C++ shim

Adds support for the getHdrCapabilities call to the HWC2 C++ shim.

Bug: 25684127
Change-Id: Ib4635ee437a06b48945e7f0328492c1e74e27aaa
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
ed40eba4c1264806a1b795bf45b0dea366ee9975 16-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Add getHdrCapabilities stub to adapter

Adds a minimal getHdrCapabilities stub to the HWC2On1Adapter, which
always returns 0 supported HDR types (as per the HWC2 spec).

Bug: 25684127
Change-Id: I472ad9f08d1b97d5de69d044790badf3af60da72
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
f34b9be610ce286af224364cb6e69ef6f7697ee9 06-Apr-2016 Dan Stoza <stoza@google.com> DispSync: Always resync after inactivity

Changes DispSync to enable hardware vsync immediately when new frames
arrive after a period of inactivity.

No matter how hard we try, we can't avoid drifting over time without
being able to detect error based on display retire fences. By enabling
hardware vsync immediately, we avoid having a weird period or phase
offset relative to hardware while we retrain the model. Once the model
has locked, we turn hardware vsync back off to save power (until we
detect drift again).

Bug: 26255070
Change-Id: If4dd17c2d541015c730f47d824359d7cb4b52c3c
ispSync.cpp
ispSync.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlinger_hwc1.cpp
fcd8985c813f46537b3d84359dca9a8c9f83b737 07-Apr-2016 Dan Stoza <stoza@google.com> Merge "SF/HWC2: Reorder makeCurrent to avoid deadlock" into nyc-dev
am: 79632ee

* commit '79632ee48a8cddf31a1ec15c0c5217b3d3608622':
SF/HWC2: Reorder makeCurrent to avoid deadlock

Change-Id: Icbb2f2178e21c213ff879e0a04c4bfda25583d28
79632ee48a8cddf31a1ec15c0c5217b3d3608622 07-Apr-2016 Dan Stoza <stoza@google.com> Merge "SF/HWC2: Reorder makeCurrent to avoid deadlock" into nyc-dev
7c8ec9b282c5660c7d8214ef5dc19716903c4880 07-Apr-2016 Jesse Hall <jessehall@google.com> Merge changes from topic \'vkjson\' into nyc-dev
am: 16ce3ce

* commit '16ce3cec53f3daf18f851c776e50e146f2dfacef':
GpuService: Add 'help' and 'vkjson' commands
Add service "gpu" in the SurfaceFlinger process

Change-Id: I46b4c2975b7e458c91e08920762906b368057084
2dc3be88bd85791556ab0e6df6a080989886749e 06-Apr-2016 Dan Stoza <stoza@google.com> SF/HWC2: Reorder makeCurrent to avoid deadlock

Now that we are deferring the release of FramebufferSurface buffers
(so that we can return a non-speculative fence), we end up holding
two acquired buffers during the call into HWComposer::commit (whereas
we previously would have only been holding one, with the other having
been released). This means that if the EGL implementation dequeues a
buffer as part of eglMakeCurrent, neither of the FramebufferSurface
buffers will be free, and the call to dequeueBuffer will block.

This change fixes that issue by reordering eglMakeCurrent to occur
after the deferred release.

Bug: 25684127
Change-Id: I6ec55b3f7b7d0e0f5be6029751cb086feeb52fbe
urfaceFlinger.cpp
8b0d55e3652e68e9e2b0f4314c1eaeadc49cc2d0 01-Apr-2016 Jesse Hall <jessehall@google.com> GpuService: Add 'help' and 'vkjson' commands

Bug: 26620936 and 27352427
Change-Id: Id0ad5b7184ddc624eddfb292a0d86546c26fb9ea
ndroid.mk
puService.cpp
fc038bd8fc77998a436d43027919f4500c4291e6 27-Mar-2016 Jesse Hall <jessehall@google.com> Add service "gpu" in the SurfaceFlinger process

This service will handle shell commands for querying information about
the graphics hardware and driver. It currently does nothing.

Most shell command services are provided by ActivityManagerService. I
didn't want to put this there, because I'd rather not load graphics
drivers in the system_service process (robustness, security, etc.).
SurfaceFlinger is going to have them anyway, and is the only other
global always-running process that makes sense for this.

Change-Id: I27e451ea62b71aed01c6ececefd76d6707912eed
ndroid.mk
puService.cpp
puService.h
ain_surfaceflinger.cpp
c6c17d70b37581258aef172c525e41922aa03c1d 31-Mar-2016 Pablo Ceballos <pceballos@google.com> SF: Disable FenceTracker from makefile
am: 69a1a38

* commit '69a1a389321447301a8eaba235190dc1229aefbd':
SF: Disable FenceTracker from makefile

Change-Id: Iff8b9ce5b551cb5e10d424e256c9462e5de50d76
69a1a389321447301a8eaba235190dc1229aefbd 31-Mar-2016 Pablo Ceballos <pceballos@google.com> SF: Disable FenceTracker from makefile

- Add tracing to the FenceTracker.
- Disable it by default with #ifdefs, it can be enabled in the
makefile.

Bug 27882222

Change-Id: I640e028c4dc97b46e800a7f21cdb2cb6a4b4ff18
ndroid.mk
enceTracker.cpp
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ab8649138e30e350ae15911dfff7c709f127f2e3 29-Mar-2016 Robert Carr <racarr@google.com> Merge changes I653b84e7,Ieafdc14a into nyc-dev
am: abddf72

* commit 'abddf727041d2ea0e678442b2d7905afc8b33bd4':
Apply position updates immediately.
Move crop outside of geometry state.

Change-Id: I7d4b9d49f6807748592c32432e4ab80da59bad37
abddf727041d2ea0e678442b2d7905afc8b33bd4 29-Mar-2016 Rob Carr <racarr@google.com> Merge changes I653b84e7,Ieafdc14a into nyc-dev

* changes:
Apply position updates immediately.
Move crop outside of geometry state.
69663fb0de2f112f525c4dcd7e2f7e0c879daaa4 28-Mar-2016 Robert Carr <racarr@google.com> Apply position updates immediately.

Restores the behavior prior to moving transform
in to geometry state. Now geometry state and scaling
mode only control parameters which would cause
buffer scaling.

Bug: 27729195
Bug: 27687126

Change-Id: I653b84e74407f2533c92f7647e2609fc043ed0a4
ayer.cpp
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)
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
onitoredProducer.cpp
onitoredProducer.h
b5d3d2657bad1f012377dfacd354d3100a65768a 25-Mar-2016 Robert Carr <racarr@google.com> Move crop outside of geometry state.

Prior to this CL, if Layer crop is changed while a
surface resize is pending, the crop will not be
applied until a buffer latches at the new size. This
CL makes the crop apply immediately. We can see this
is the desired behavior by looking at the two cases
where a resize is pending.

1. A resize is pending to make the surface smaller.
In this case we need to be able to immediately update the crop so that
we can shrink the visible region of the surface at an interactive rate
with input. The window manager currently uses big surfaces and scaling
modes to accomplish this.
2. A resize is pending to make the surface larger.
In this case it doesn't matter. If we expand the crop immediately to
the new surface size, then we have simply uncropped an area which is
by definition transparent pixels (as we haven't latched a buffer
at the new size yet).

This change has conceptual soundness as well. We can see that the
scaling mode will not affect properties that affect scaling (transform,
width/height) but not properties which do not (crop).

Bug: 27729195
Bug: 27687126
Change-Id: Ieafdc14aeecb23085793e3056a746d6f344781df
ayer.cpp
ayer.h
59d12e90ae09171fc8b50fd8fd02e3247c04840c 28-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Rename single buffer mode to shared buffer mode" into nyc-dev
e2e39a3bb49291837c55844d73d779c6fcf4262c 25-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Add FenceTracker" into nyc-dev
am: 830f500

* commit '830f5004da53a83e23b4102ba9b72e4cb366cb34':
SF: Add FenceTracker
830f5004da53a83e23b4102ba9b72e4cb366cb34 25-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: Add FenceTracker" 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
acbe67888f0bd65d5400400f0115bae6bd6199dc 04-Mar-2016 Pablo Ceballos <pceballos@google.com> Add final crop implementation

Bug 26559810

Change-Id: Idaccd13cd625c92d18665ddecebdbb266ea365f3
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
ransform.h
ests/Transaction_test.cpp
40845df1285b387bcbf8f43ac72228eee2606d80 26-Jan-2016 Pablo Ceballos <pceballos@google.com> SF: Add FenceTracker

FenceTracker tracks all fences in SurfaceFlinger. These timestamps
could be used for debugging, profiling, or be exposed to the
application.

Change-Id: I4297a661c0a7530e744168ac7a2a66c4bca92fd5
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
enceTracker.cpp
enceTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
3559fbf93801e2c0d9d8fb246fb9b867a361b464 17-Mar-2016 Pablo Ceballos <pceballos@google.com> Rename single buffer mode to shared buffer mode

Change-Id: Id43d0737d9367981644e498942ebc0077d61038c
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
onitoredProducer.cpp
onitoredProducer.h
64f3f3531c72053290406bbb2bebb1dad2fff9a1 10-Mar-2016 Dan Stoza <stoza@google.com> Merge "Revert "DispSync: workaround HH hardware vsync issue"" into nyc-dev
am: 3aa14b5e74

* commit '3aa14b5e74baabd48e5824a61377d776752a12bf':
Revert "DispSync: workaround HH hardware vsync issue"
3aa14b5e74baabd48e5824a61377d776752a12bf 10-Mar-2016 Dan Stoza <stoza@google.com> Merge "Revert "DispSync: workaround HH hardware vsync issue"" into nyc-dev
bf4f9107e9ced8662cd55a4382d715a41be7c74f 10-Mar-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Track move of transform into Geometry" into nyc-dev
am: 52448f381c

* commit '52448f381cfdd08bda31bc38e193a661e01c9626':
HWC2: Track move of transform into Geometry
52448f381cfdd08bda31bc38e193a661e01c9626 10-Mar-2016 Dan Stoza <stoza@google.com> Merge "HWC2: Track move of transform into Geometry" into nyc-dev
22279c44183a9c71301c770c4275545500a48345 10-Mar-2016 Dan Stoza <stoza@google.com> Revert "DispSync: workaround HH hardware vsync issue"

This reverts commit c734d95c575830ffc97fc5d2ae14b020c95d05de, which was
a workaround for a bug on a device which is now obsolete.

Bug: 25845510
Change-Id: I3244bfd3f758c52dfe76e9d5b0a72bbcffdf5a6f
ispSync.cpp
ispSync.h
baf416d62eec3045ba4fd61f2df60f3e82f12d52 10-Mar-2016 Dan Stoza <stoza@google.com> HWC2: Track move of transform into Geometry

Changes a line where we missed the move of transform into Geometry to
fix the HWC2 build.

Bug: 26454664
Change-Id: Ib44ec8705b81da2aa1b99e61449609371e533297
ayer.cpp
ff48c1514bda858ffca790ca1b035f12affc651d 10-Mar-2016 Prathmesh Prabhu <pprabhu@google.com> Merge "Do not queue trivial buffer for unsupported screenshot request." into nyc-dev
am: c334549ae3

* commit 'c334549ae303be666a9008d7364cd388e18ea448':
Do not queue trivial buffer for unsupported screenshot request.
f3209b03b3adbf6868c2dcadb07adc5f865f5688 10-Mar-2016 Prathmesh Prabhu <pprabhu@google.com> Do not queue trivial buffer for unsupported screenshot request.

When screenshot is not supported, we queue an empty buffer to the
requesting producer. Besides returning a useless screenshot, this
overwrites the valuable error code, returning ERROR_OK whenever we
successfully return the trivial buffer.

Instead, refuse to queue the trivial buffer, and return the original
error code.

This replaces the workaround proposed in
I6da5d2fdecdef6c87d4dd7b353e2464678800110

BUG:27505438
Change-Id: I597a9be25071d2a6ddafb7d39cc1b09fb48d5fd0
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
261b94b5d76ce8db8305380816811bb507f09e9c 04-Mar-2016 Pablo Ceballos <pceballos@google.com> Merge "Revert "SF: detachLayer from Client earlier on destruction"" into nyc-dev
am: 99dccfc3ec

* commit '99dccfc3ec4b304d1ee3497ecbcc3322a84cf606':
Revert "SF: detachLayer from Client earlier on destruction"
8ea4e7b878540647bb7ceeaa1d62d50cd458d9c6 04-Mar-2016 Pablo Ceballos <pceballos@google.com> Revert "SF: detachLayer from Client earlier on destruction"

This reverts commit e338df1c2ff4ed2cd575a0e3193ef77c9cd9cb72.

Bug 27330889

Change-Id: I7e62ac2623bd0e1304f36a895ee2b5f9160e2a7e
ayer.cpp
c01b8d93a057654ed22990e7f48de7478bd8d3cd 03-Mar-2016 Robert Carr <racarr@google.com> Merge "Latch transform with geometry state." into nyc-dev
am: fb47fe7d27

* commit 'fb47fe7d27aa8a0adcccf311b6a5ab4cab4fd49d':
Latch transform with geometry state.
3dcabfab7ef80df5884b269fec17350a26da6f51 02-Mar-2016 Robert Carr <racarr@google.com> Latch transform with geometry state.

WindowManager would like this feature for animating
windows between sizes. For example, if we are animating
from a smaller to larger window, we need to complete the resize
at the beginning of the animation to avoid up-scaling. However
to avoid artifacts we need the window to appear at its old size
following this resize, so we use the transform to scale down. However
as the transform is latched immediately, we result in a frame where
the window is too small, until the resize is complete. This is
a change in behavior but it's hard to understand how it could
cause errors. Previously if someone wished to set the transform
and resize a window in the same transaction, then the results
would be undefined (depending on the state of the window buffer),
and there would be no avenue for synchronization.

Bug: 26454664
Change-Id: I4e8475967e0a19aa5879af965a5716eb173f9700
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger_hwc1.cpp
c9d972065c44860306add0172b5185bd8611f9ee 03-Mar-2016 Dan Stoza <stoza@google.com> resolve merge conflicts of 7dbaaf19eb to nyc-dev-plus-aosp

Change-Id: I7c85803051511d932ddf5cd7f97dda9ea3145520
7dbaaf19eb3c2abde55a7082a2bfcea059dc8b72 03-Mar-2016 Zhiquan Liu <zhiquan.liu@intel.com> Merge ""#warning" conflict with -Werror"
am: e6b6843c5f

* commit 'e6b6843c5fc19976677706518c4875a78cc736bb':
"#warning" conflict with -Werror
4b2a105055d37579f1d234c02f4e14c38ca3ed43 03-Mar-2016 Zhiquan Liu <zhiquan.liu@intel.com> "#warning" conflict with -Werror

if code run #warning, it will have compile error.

Change-Id: Ic7f05cd722c14f3c5da89e2c3792615dd15cb798
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
ayer.cpp
9e56aa0fdb5f7121b9b975c6c16db103ea4d2fe9 02-Nov-2015 Dan Stoza <stoza@google.com> Switch SurfaceFlinger to HWC 2.0

Enables SurfaceFlinger to speak to version 2.0 of the Hardware Composer
HAL instead of version 1.x (also removing support for the framebuffer
HAL). By default, however, this functionality is disabled. In order to
enable it, USE_HWC2 must be set to true in Android.mk.

Change-Id: I4589e02ac2165236b10ff2f7cb772f87e0d3daab
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/HWComposer_hwc1.cpp
isplayHardware/HWComposer_hwc1.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ventControlThread.cpp
ayer.cpp
ayer.h
ayerDim.cpp
enderEngine/GLES10RenderEngine.cpp
enderEngine/GLES10RenderEngine.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceFlinger_hwc1.cpp
fc4e202b33d33b5e11181f09a2229d3ef7ae925a 23-Feb-2016 Dan Stoza <stoza@google.com> HWC2On1Adapter: Initialize variables and fix mutex

Initializes a few variables that had been missed before, and switches
the Adapter state mutex to be recursive, since it is held during the
call into HWC1 prepare, which can call back into the Adapter to perform
an invalidate.

Change-Id: Id300e8b23403f5339562fd860c2ce9d0f2b72f27
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
1433e3d5e84ea1c836a72e3f781f7230bf5ad4f0 25-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "SF: check secure layers in screenshot message handler" into nyc-dev
b5b3563058c178811d434ab6e8c4ead4a519701b 23-Feb-2016 Pablo Ceballos <pceballos@google.com> SF: check secure layers in screenshot message handler

- Instead of checking for the presence of secure layers on the Binder
thread, check in the message handler. Transactions may have occurred
in between when the check is done and when the screen shot message
is handled.

Bug 23757877

Change-Id: Iec74193996ca72c60f86f7c0f0b2a5dea8d19543
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
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
651bf314a6a1a77e4cbb66ffb81221200f918290 24-Oct-2015 Dan Stoza <stoza@google.com> SF: HWC2 C++ shim

Provides an object-based C++ interface to the HWC 2.0 HAL

Change-Id: Ie1a7bfd2f6faa548bc45da845a4f50f1915b5806
ndroid.mk
isplayHardware/FloatRect.h
isplayHardware/HWC2.cpp
isplayHardware/HWC2.h
c6998d2391e6e54cf0664bb664e0fba2f2fce1da 25-Sep-2015 Dan Stoza <stoza@google.com> SF: HWC2On1Adapter

This provides an adapter from HWC 2.0, which SurfaceFlinger will be
converted to speak, to HWC 1.x, which all current implementations
support. It requires at least HWC 1.1.

Change-Id: Id472ed4eef0f816403cdf2d40a56177cc7f65930
ndroid.mk
isplayHardware/HWC2On1Adapter.cpp
isplayHardware/HWC2On1Adapter.h
aaf51e52cfa937a8938a4429a14432a8424c66d0 20-Feb-2016 Pablo Ceballos <pceballos@google.com> Merge "Add interface for controlling single buffer auto refresh" into nyc-dev
792e529dee5b6cf839b982b4b06a37fbf1d3e28a 11-Feb-2016 Dan Stoza <stoza@google.com> SF: Prevent non-sync transactions from syncing

Clears the sync handle and frame number after registering a deferred
transaction to prevent other non-synchronized transactions from
erroneously getting marked as synchronized.

Also changes the application of pending states such that all valid
pending transactions are applied instead of breaking after the first
one.

Bug: 27061473
Change-Id: I98f0f26e9d9bb0d266563f209e94dfd776d8f8ea
ayer.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
c243d320462e7e12c269273e37056847ba7c0672 28-Jan-2016 Dan Stoza <stoza@google.com> Merge "SF: Modify transaction/buffer sync logic"
cac353808ec1048333d7fd2f3d596fb4db567aa3 27-Jan-2016 Dan Stoza <stoza@google.com> SF: Modify transaction/buffer sync logic

Reorganizes the transaction/buffer synchronization logic to only
consider the head of the incoming BufferQueue instead of all buffers,
and fixes some potential race conditions.

Bug: 25951593
Change-Id: Ib2b08e7be571eb8bbd8c364fb85acf0e046b439c
ayer.cpp
ayer.h
ac8d239dd7c22fc2be4e2d470b9d164c3c9285e9 10-Nov-2015 Tim Murray <timmurray@google.com> Set cpuset from surfaceflinger.

SurfaceFlinger shouldn't be limited to little cores exclusively, as the
binder threads should be placed on big cores when they are in the
critical path for a RenderThread.

bug 25745866

Change-Id: I9fb65f6d951733f91b4735ff27018411b58b2bfb
ndroid.mk
ain_surfaceflinger.cpp
urfaceflinger.rc
70982a5f95f68295244e5f6cc037c193713a5259 12-Jan-2016 Dan Stoza <stoza@google.com> Revert "libgui: Remove custom BufferQueue allocators"

This reverts commit acd56150573d3a6d449c0de01f93c6f269d121e3.

Change-Id: I877f63a57fbddb4dcff71b3909b460ecc05981eb
urfaceFlinger.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
urfaceFlinger.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
8ce1c84abc6b1faf75db8af1d3c17c723e67ab87 09-Dec-2015 Pablo Ceballos <pceballos@google.com> Merge "SF: Prevent accidentally re-adding a removed layer"
47db6ebf45c74b6de94afed05c0aa9c1d8a0fda8 08-Dec-2015 Pablo Ceballos <pceballos@google.com> SF: Prevent accidentally re-adding a removed layer

Bug 25887783

Change-Id: Ib13ebdfb55d40c0f2175b2bc521214a07281e69a
urfaceFlinger.cpp
db399019c4ad9465f3761847a26d8e2f12018124 03-Dec-2015 Haixia Shi <hshi@google.com> Merge "DispSync: workaround HH hardware vsync issue"
e338df1c2ff4ed2cd575a0e3193ef77c9cd9cb72 03-Dec-2015 Pablo Ceballos <pceballos@google.com> SF: detachLayer from Client earlier on destruction

- When a Layer is destroyed the Layer destructor isn't called until
the next vsync refresh. However, the onRemoved() callback is called
on the next invalidate. So it's possible to submit a transaction on
the layer in between the call to onRemoved() and the destructor
being called.
- Call detachLayer() from onRemoved() instead of from the destructor
so that any transactions on a destroyed Layer will fail to get the
Layer object even if the destructor has yet to be called.

Bug 25887783

Change-Id: Ic2371f695bc91aa7120bf6506bb834ceb536420e
ayer.cpp
438afe17614b357ac5482f061cbfd38e1baeb493 02-Dec-2015 Dan Stoza <stoza@google.com> Merge "bug#460672 framebuffer surface can\'t keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3" am: b2e3095a60 am: 46f8beb07f
am: 6f9ba3b324

* commit '6f9ba3b32492c23b3197b01c330c571714c4a3dd':
bug#460672 framebuffer surface can't keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
6f9ba3b32492c23b3197b01c330c571714c4a3dd 02-Dec-2015 Dan Stoza <stoza@google.com> Merge "bug#460672 framebuffer surface can\'t keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3" am: b2e3095a60
am: 46f8beb07f

* commit '46f8beb07fe2fa28b1c216485b91b894a1c8625b':
bug#460672 framebuffer surface can't keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
5e8eb5ead16fa1136d769d7f8625b882e6465afc 01-Dec-2015 james.zhang <james.zhang@spreadtrum.com> bug#460672 framebuffer surface can't keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3

[root cause ] framebuffer surface is in the same process of surface flinger
[changes ] call IGraphicBufferProducer::allocateBuffers on producer inside the DisplayDevice constructor to force-allocate all three buffers.
[side effects] none
[self test ]<tshark, enter and exit mainmenu>: ok
[reviewers ] zhongjun.chen
[change_type ] AOB --> google_original
[tag_product ] common

Change-Id: Ideb75d3aa1ed23b2fa4d263a120ea3ca39d01361
isplayDevice.cpp
c734d95c575830ffc97fc5d2ae14b020c95d05de 24-Nov-2015 Haixia Shi <hshi@google.com> DispSync: workaround HH hardware vsync issue

The HWC of HH seems to have a bug where it fails to generate vsync events upon
the first eventControl call to turn on HWC_EVENT_VSYNC.

The workaround is for DispSync to detect when it has received no resync samples
after many presents, and return false so that SF will disable HW vsync and
re-enable it in the next present. This gets the HWC of HH out of the bad state.

Bug:25845510
TEST=reboot HH then immediately capture systrace while scrolling all apps

Change-Id: Ie034c113d94ea53068eef75b8eac39a32788666a
ispSync.cpp
ispSync.h
3bddd5b7731fafd2c60e75416ccd091972d196ae 19-Nov-2015 Pablo Ceballos <pceballos@google.com> SF: Don't use pointer if promote() fails

Bug 25759725

Change-Id: I51f82154bf86ded24503c07f1932b115aa709cd4
ayer.cpp
fedb5f4208669480684d116db1ec2234a6bdaa26 17-Nov-2015 Todd Kjos <tkjos@google.com> Actively mangage EAS schedtune nodes

Move foreground tasks to /sys/fs/cgroup/stune/boost/tasks (boosted
weight in EAS scheduler). Move background tasks to
/sys/fs/cgroup/stune/tasks (default weight). For services started
with init, set "foreground" services to boosted.

Change-Id: I0e489fad9510727c13e6754dabaf311c2391f395
urfaceflinger.rc
392db573b35d6fe09c4da094ed81c54ed528a511 10-Nov-2015 Tim Murray <timmurray@google.com> Set cpuset from surfaceflinger.

SurfaceFlinger shouldn't be limited to little cores exclusively, as the
binder threads should be placed on big cores when they are in the
critical path for a RenderThread.

bug 25745866

Change-Id: I9fb65f6d951733f91b4735ff27018411b58b2bfb
ndroid.mk
ain_surfaceflinger.cpp
0f0ecf475fbbb1af9dc17837a15a0c730ac56ca0 17-Nov-2015 Todd Kjos <tkjos@google.com> Actively mangage EAS schedtune nodes

Move foreground tasks to /sys/fs/cgroup/stune/boost/tasks (boosted
weight in EAS scheduler). Move background tasks to
/sys/fs/cgroup/stune/tasks (default weight). For services started
with init, set "foreground" services to boosted.

Change-Id: I0e489fad9510727c13e6754dabaf311c2391f395
urfaceflinger.rc
04839abb2dbfe7afe57ccc91902870aab52d30b8 13-Nov-2015 Pablo Ceballos <pceballos@google.com> SF: Initialize mSingleBufferMode

Bug 25586311

Change-Id: I2d66542c6ecb762924fa002e5487188703be8515
ayer.cpp
07e25abb0a9e8fa973dd9b85ba7b711f8d722e20 09-Nov-2015 Nick Kralevich <nnk@google.com> Merge "Allow read access to /proc entries for other UIDs" am: fd53598220 am: 877b5daecc
am: 3e606062b3

* commit '3e606062b3b2e8143f5353a7028e78b25a803aa8':
Allow read access to /proc entries for other UIDs
ab46a4922655bc75848660da4268ab85d72a6010 08-Nov-2015 Nick Kralevich <nnk@google.com> Allow read access to /proc entries for other UIDs

Allow dumpstate (aka adb bugreport), servicemanager, and
surfaceflinger to access /proc entries associated with other UIDs.

Bug: 23310674
Change-Id: I385dcf0db3376ba979409cbe6fe1a468d36237ef
urfaceflinger.rc
6eaede6acbc672c552579ba54714227f13afae36 05-Nov-2015 Pablo Ceballos <pceballos@google.com> Merge changes from topic 'single_buffer_mode'

* changes:
SF: Force refresh when in single buffer mode
BQ: Add support for single buffer mode
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
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
676b1f6ed0d637b7eb1858361e0d09068f26e9fa 29-Oct-2015 Haixia Shi <hshi@google.com> SF: more DispSync improvements.

Pass the reference time to DispSyncThread. Since the phase offset is calculated
using timestamps relative to the reference time, we must also adjust the phase
offset by the same reference time when computing the next refresh time.

Always reset phase offset to zero when updating the reference time because the
reference time equals the first timestamp.

After beginResync() we need to keep HW vsync enabled until the model is updated.

Bug: 25113115
Change-Id: I8eae227bee91c24a99bf8e57fbebceb98d29c77d
Test: check in systrace that app/sf vsync events have correct phase
ispSync.cpp
ispSync.h
664339a8e8d3f2d5acd5728dae666cc9a14e08f3 28-Oct-2015 Haixia Shi <hshi@google.com> SF: use first sample timestamp as reference.

Do not use the absolute 64-bit nsecs_t timestamp directly in phase
and error calculations. Compared to the estimated vsync period, the
timestamp tend to many orders of magnitudes larger, and consequently
the integer modulo operation used to calculate phase and error can
be very sensitive to tiny fluctuation in vsync period.

Bug: 25113115
Test: set kTraceDetailedInfo=true; see Phase and Error are stable in systrace

Change-Id: I687703eec31b1072c606898c0424a96c0a8ca033
ispSync.cpp
ispSync.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlinger.cpp
e76d32d08656949399587251e761d7710b058e3a 26-Oct-2015 Dan Stoza <stoza@google.com> Merge "surfaceflinger: Set max acquired buffer count"
am: af5c3b1d6a

* commit 'af5c3b1d6a9cc1d36b526291391009b2a4e097ff':
surfaceflinger: Set max acquired buffer count
af5c3b1d6a9cc1d36b526291391009b2a4e097ff 26-Oct-2015 Dan Stoza <stoza@google.com> Merge "surfaceflinger: Set max acquired buffer count"
f133d003aaac80a0932a2d8f9efd8493e56f7814 23-Oct-2015 Pablo Ceballos <pceballos@google.com> SF: Connect the VDS scratch surface producer

- VirtualDisplaySurface has a BufferQueue for producing scratch
buffers when doing mixed composition for a virtual display.
- Connect/disconnect the producer end of this BufferQueue in the
VirtualDisplaySurface constructor/destructor to avoid using it in a
disconnected state.

Bug 24733179

Change-Id: I87dab9ff4f46d422b7796670b0b4d17b7fd09165
isplayHardware/VirtualDisplaySurface.cpp
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
48d1d1fc902543ea16e5826a4739346714691d8c 23-Sep-2015 Sergio Giro <sgiro@google.com> am f1519eeb: am 64b83133: Merge "Remove usage of SharedBuffer"

* commit 'f1519eeb21ee03a956d973545f9f0f742727faaa':
Remove usage of SharedBuffer
f1519eeb21ee03a956d973545f9f0f742727faaa 23-Sep-2015 Sergio Giro <sgiro@google.com> am 64b83133: Merge "Remove usage of SharedBuffer"

* commit '64b83133d5ec40828a10e57cfbb37c642bb7f510':
Remove usage of SharedBuffer
c652d17c96c527c6eea8ae8b4c2a8b6ab7d57f5d 22-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "BQ: Prevent operations on disconnected BQs"
6fa74696e50a2f1e8d43955a850a1a61b42089ad 21-Sep-2015 Tom Cherry <tomcherry@google.com> am 9ec97471: add system-background cpuset

* commit '9ec97471638fb98f5266826e4242e301e5dffc76':
add system-background cpuset
9ec97471638fb98f5266826e4242e301e5dffc76 21-Sep-2015 Tom Cherry <tomcherry@google.com> add system-background cpuset

add a new cpuset for system services that should not run on
larger cores

bug 24144797

Change-Id: I4f3cd34711b7ffcd2ef45ef2a3cd4642d0ef34c5
urfaceflinger.rc
f53f3c80bf2dcf6c1b70320765f9fc8019b829a2 11-Sep-2015 Pablo Ceballos <pceballos@google.com> Remove usage of SharedBuffer

- Remove getSharedBuffer() from Region
- Don't use SharedBuffer for memory management in HWCLayerVersion1,
instead keep shallow copies of the Regions.

Bug 23962051

(cherry picked from commit d814cf2a3e3a2fdb73efa80539fe8af0a93da1db)

Change-Id: I8fa17beed57936648c7b4defc9219dff1d5b337f
isplayHardware/HWComposer.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
643a34c3b4dcacf3303ec33b590ca9067e475169 18-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "SF: Improve surface flinger unit tests"
ff12cba77b5b88f3978070bb970d7721225271ee 16-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "BQ: Modify consumer buffer count interfaces"
e1b63cc6d4e92b95d9d5e504035a44e3cb40b722 14-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "Remove usage of SharedBuffer"
4aa427b964f22e3cf10381f8fc27e7042c322b9c 14-Sep-2015 Pablo Ceballos <pceballos@google.com> Merge "native: Rename mBuf to mSlot"
d814cf2a3e3a2fdb73efa80539fe8af0a93da1db 11-Sep-2015 Pablo Ceballos <pceballos@google.com> Remove usage of SharedBuffer

- Remove getSharedBuffer() from Region
- Don't use SharedBuffer for memory management in HWCLayerVersion1,
instead keep shallow copies of the Regions.

Bug 23962051

Change-Id: I8fa17beed57936648c7b4defc9219dff1d5b337f
isplayHardware/HWComposer.cpp
5e4fcbe411f0a941d604d8a9974a02faa3fda170 02-Sep-2015 Pablo Ceballos <pceballos@google.com> SF: Improve surface flinger unit tests

- Fix compiler warnings
- Make checkPixel print out the actual/expected values on failure
- Add unit tests for setLayerStack, setFlags, and setMatrix
- Make the tests work when the display is off

Change-Id: I53ac1279b967fe06ff8cdb10d3ee4c0e2349b2d0
ests/Transaction_test.cpp
71b2947cfd1be2795a2e1313f4b799c5588c3430 04-Sep-2015 Dan Stoza <stoza@google.com> am afdbddbe: am e5ce0db8: am f090d598: am 3e4c8ccc: Merge "SF: Add colorTransform to DisplayInfo" into mnc-dr-dev

* commit 'afdbddbef57b3ffafa5b6a2107f37fda06dec9d4':
SF: Add colorTransform to DisplayInfo
afdbddbef57b3ffafa5b6a2107f37fda06dec9d4 04-Sep-2015 Dan Stoza <stoza@google.com> am e5ce0db8: am f090d598: am 3e4c8ccc: Merge "SF: Add colorTransform to DisplayInfo" into mnc-dr-dev

* commit 'e5ce0db83355bd2c8f3d265e3e254c22c6a61cd4':
SF: Add colorTransform to DisplayInfo
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
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
f2699fc3a8c12b2bf95120c068801e050168bd96 31-Aug-2015 Dan Stoza <stoza@google.com> SF: Add colorTransform to DisplayInfo

Adds the colorTransform field, which defines a vendor-specific color
transform (e.g., wide gamut, sRGB, etc.) to the DisplayInfo class, and
populates it from the HWC interface.

Bug: 20853317
Change-Id: I153edc36a361407656f3eb5082b96c2da2ecbec7
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
a4820004000d41e8a9680db27013856cc18badf2 29-Aug-2015 Elliott Hughes <enh@google.com> am 2fcd675b: am e9a779bf: am 1159b181: Merge "ignore SIGPIPE signal in native services"

* commit '2fcd675b40ad9c94c1ff9506cdea63a48a81c9d6':
ignore SIGPIPE signal in native services
2fcd675b40ad9c94c1ff9506cdea63a48a81c9d6 29-Aug-2015 Elliott Hughes <enh@google.com> am e9a779bf: am 1159b181: Merge "ignore SIGPIPE signal in native services"

* commit 'e9a779bf5367ead7ddbd532828d8027a34b4748c':
ignore SIGPIPE signal in native services
e9a779bf5367ead7ddbd532828d8027a34b4748c 29-Aug-2015 Elliott Hughes <enh@google.com> am 1159b181: Merge "ignore SIGPIPE signal in native services"

* commit '1159b18177c7247884d7c90c11abfe5aae39cb34':
ignore SIGPIPE signal in native services
0944691d68089c17d71641a55192fb2fe755ec92 28-Aug-2015 Young-Ho Cha <ganadist@gmail.com> ignore SIGPIPE signal in native services

When run dump method via dumpsys command with invalid pipe fd, native
services can crash with SIGPIPE.
So ignore SIGPIPE signal.

Bug: https://code.google.com/p/android/issues/detail?id=184099
Change-Id: Icb15e0dff34a245c08c1b4c4bed51992ae382da4
Signed-off-by: Young-Ho Cha <ganadist@gmail.com>
ain_surfaceflinger.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
c64e24d611bbfdcdc4a923da5e14fabf3b392210 21-Aug-2015 Tom Cherry <tomcherry@google.com> am 1380c848: am 32592270: am 64e13880: Merge "bundle init.rc contents with its service"

* commit '1380c8488e6bb57b7af21b3d189ae0fc941085b3':
bundle init.rc contents with its service
1380c8488e6bb57b7af21b3d189ae0fc941085b3 21-Aug-2015 Tom Cherry <tomcherry@google.com> am 32592270: am 64e13880: Merge "bundle init.rc contents with its service"

* commit '32592270d40d6060e19aa97949aee72c8aca0807':
bundle init.rc contents with its service
a1f3f54c2752b4108f3b21baea6d5fd73738cbff 21-Aug-2015 Tom Cherry <tomcherry@google.com> am 32592270: am 64e13880: Merge "bundle init.rc contents with its service"

* commit '32592270d40d6060e19aa97949aee72c8aca0807':
bundle init.rc contents with its service
74155996d931edbd19ed5b3f71a58ceff920b451 14-Aug-2015 Tom Cherry <tomcherry@google.com> bundle init.rc contents with its service

Bug: 23186545
Change-Id: I2a70a39122b146d5bbc9b55156e769782e011bff
ndroid.mk
urfaceflinger.rc
47650f4f66a49e1815ad08ca4fb12a661d133abc 05-Aug-2015 Pablo Ceballos <pceballos@google.com> native: Rename mBuf to mSlot

Remove the union in BufferItem.

Bug: 19769719
Change-Id: I4e496b5aafce0fc5206dc7551a741f9c262c2cd0
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
urfaceFlingerConsumer.cpp
29370d3bd744209a5cd6cb6384139486c3405f75 06-Aug-2015 Pablo Ceballos <pceballos@google.com> Merge "libgui/SF: Fix some code warnings"
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
lient.cpp
isplayHardware/FloatRect.h
essageQueue.cpp
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger.h
47b11d38b3ce686bf5feeccb5e151f4542a7c301 05-Aug-2015 Dan Stoza <stoza@google.com> am bc120be8: am 2121b937: am 04eeb288: am 50be1df7: Merge "SF: Track missed frames and optionally drop them" into mnc-dr-dev

* commit 'bc120be8d7ff639408048fc3f105abd0aa6cfbe2':
SF: Track missed frames and optionally drop them
50be1df76e2c84fc3c893ec3d3e51ba427dd3ee6 05-Aug-2015 Dan Stoza <stoza@google.com> Merge "SF: Track missed frames and optionally drop them" into mnc-dr-dev
f74096ac09d83a8586579a4beda5afe1d3a25048 01-Aug-2015 Yusuke Sato <yusukes@google.com> Merge "Record an event log when service.bootanim.exit is set"
0a688f5005b512b96d676a7fa6e23be9132a492c 31-Jul-2015 Yusuke Sato <yusukes@google.com> Record an event log when service.bootanim.exit is set

to track (user-perceived) OS boot performance.

Bug: 21331462
Change-Id: I54200c9a3bfce1edfd8cbdf05d850bdf199f48f2
ventLog/EventLogTags.logtags
urfaceFlinger.cpp
a0cdaefef2ac5ac2fea4e6f44ef10c3008b67fdc 31-Jul-2015 Dan Stoza <stoza@google.com> am 744a09eb: am f36738d3: am dca480ff: am 03d7e301: am d87defaf: SF: Allow present if sideband stream changed

* commit '744a09eb968929f9a2f339783d13ed2fbc8f6e45':
SF: Allow present if sideband stream changed
03d7e301c8beb971df7b560d1f16503ba3d6f440 31-Jul-2015 Dan Stoza <stoza@google.com> am d87defaf: SF: Allow present if sideband stream changed

* commit 'd87defaf486ff4e9c0066754564851cfb7be49ed':
SF: Allow present if sideband stream changed
d87defaf486ff4e9c0066754564851cfb7be49ed 30-Jul-2015 Dan Stoza <stoza@google.com> SF: Allow present if sideband stream changed

Allows the sideband layer to be passed all the way to HWC instead of
getting blocked by the updated PTS tracking code.

Bug: 22291067
Change-Id: Ic2f20a7528e276fff054e86ca35789c26873b348
ayer.cpp
d575096d797628d7b39417fef23b78ca6e035d1a 28-Jul-2015 Haixia Shi <hshi@google.com> Add more SF tests to Transaction_test

TEST=verify all tests pass on hammerhead-eng
BUG=none

Change-Id: Idb4df0996ac4ebbef3784ee86bd43c584d62cf1f
ests/Transaction_test.cpp
14cd37cf3d7d783eaeb4cfb5f1f9e712d3b49578 09-Jul-2015 Dan Stoza <stoza@google.com> SF: Track missed frames and optionally drop them

Adds code to track whether SurfaceFlinger has sent two frames to HWC in
the same vsync window. This can occur if one frame is delayed so far
it slips into the next window or just if one frame takes an abnormal
amount of time. If this occurs, it shows up as FrameMissed in systrace.

Also adds a property debug.sf.drop_missed_frames which, if set, tells
SurfaceFlinger to skip sending a frame to HWC (i.e., calling
prepare/set) when we detect this condition, which can help prevent
backpressure from the HWC implementation.

Bug: 22513558
Change-Id: I2df0d44cec5fd6edba419388d8c90b5710d1a5b6
urfaceFlinger.cpp
urfaceFlinger.h
7ca5a395ec3e6035e04e6bd8b17576ed879d9c79 21-Jul-2015 Haixia Shi <hshi@google.com> Delete outdated SurfaceFlinger tests.

These tests either do not build or no longer make sense. We should
probably write some new tests.

BUG=18138368

Change-Id: I4cc2681ca65e7af1f6bbf921f02a13cd6993581c
ests/resize/Android.mk
ests/resize/resize.cpp
ests/screencap/Android.mk
ests/screencap/screencap.cpp
ests/transform/Android.mk
ests/transform/TransformTest.cpp
8dfd1da50d5f09ded74774745ee092e4bcd3ff5d 20-Jul-2015 Haixia Shi <hshi@google.com> Fix build errors in test-resize.

This is one of the SurfaceFlinger tests that doesn't build on TOT.

BUG=18138368

Change-Id: I338867c3b80afd6d5ede462a72566b04280c7964
ests/resize/Android.mk
ests/resize/resize.cpp
f37143d8a55afc6481d31de1c6f8e8db9578ef1d 09-Jul-2015 Michael Wright <michaelwr@google.com> Merge "Cancel touches as well as pointer gestures." into mnc-dev
ae6ae043fb87301610d521b0a6a1ab74fb8db2f6 07-Jul-2015 Dan Stoza <stoza@google.com> am 0eb2d398: SF: Ignore PTS more than one second in the future

* commit '0eb2d398669bf11207c0fb22b11439250da0c8dc':
SF: Ignore PTS more than one second in the future
0eb2d398669bf11207c0fb22b11439250da0c8dc 06-Jul-2015 Dan Stoza <stoza@google.com> SF: Ignore PTS more than one second in the future

Some of this logic already existed, but when we optimized
SurfaceFlinger to avoid unnecessary wake-ups, we didn't carry the logic
over into the new readiness test. shouldPresentNow now returns true if
the timestamp is more than a second in the future (since it's likely a
bogus timestamp and should be ignored).

Bug: 21932760
Change-Id: Ib50970a4eb621588c0b60766c8d8d1a8bddf853b
ayer.cpp
6a25a2872852f23058268adcec61600460fcdfb6 30-Jun-2015 Dan Stoza <stoza@google.com> am 806334aa: am 1998615f: Merge "sf: Initialize EventThread before creating HWC"

* commit '806334aacd089d1c419ed77021a2b1bb4f7644ef':
sf: Initialize EventThread before creating HWC
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
ayer.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
ayer.cpp
ayer.h
urfaceFlinger.cpp
f9481058101c4e2b38c74048feac383664691d03 16-Jun-2015 Saurabh Shah <saurshah@codeaurora.org> sf: Initialize EventThread before creating HWC

Once HWC is created, it could use any of the provided hooks, which
could lead to a crash if the EventThread (handler) isn't initialized
prior to creating HWC.

Change-Id: I5ea35fe9bcb150fb74aae1295b798bd787ad6cee
urfaceFlinger.cpp
dc340ddb64d5a12cbe27b26991aed315edc92b28 19-Nov-2013 Naseer Ahmed <naseer@codeaurora.org> surfaceflinger: Set max acquired buffer count

If triple framebuffers are enabled, the number of acquired
buffers isn't increased by default. Set the count to one less
than the max buffers to make sure all three buffers come into
play.

Change-Id: I8fae1b5564fbea598e415a86b0a21c3449c92d87
isplayHardware/FramebufferSurface.cpp
e04e4edcd1a852058775caa34cf73e2c20dc1066 11-Jun-2015 Manoj Kumar AVM <manojavm@codeaurora.org> sf: Fix incorrect state reporting in dumpsys

Dumpsys utility accesses layer compositionType variable
with out proper protection. These variables are modified
during hwc_prepare call. Existing HAL lock protection is not
sufficient to address this issue. Failure to do this will
result in incorrect state reporting in dumpsys.

A new displayLock mutex in HWComposer will be used in both
dumpsys and draw calls to ensure correct state is accessed.

Change-Id: I8a57de59525adc0e089b3bed95c067c01e42b666
(cherry picked from commit e54506b81a3b81683056ad48294e37d6b4b4e36b)
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
e54506b81a3b81683056ad48294e37d6b4b4e36b 11-Jun-2015 Manoj Kumar AVM <manojavm@codeaurora.org> sf: Fix incorrect state reporting in dumpsys

Dumpsys utility accesses layer compositionType variable
with out proper protection. These variables are modified
during hwc_prepare call. Existing HAL lock protection is not
sufficient to address this issue. Failure to do this will
result in incorrect state reporting in dumpsys.

A new displayLock mutex in HWComposer will be used in both
dumpsys and draw calls to ensure correct state is accessed.

Change-Id: I8a57de59525adc0e089b3bed95c067c01e42b666
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
40da48bfdf5d2d199aac55891d2f37822cdbee88 30-Oct-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> sf: Add a NULL check in getDisplayConfigs

Validate the display binder by adding a NULL check in getDisplayConfigs.
This will prevent a false match if the caller queries the display
configs for an inactive display (whose binder is NULL by default).

Without this change we might end up attempting to index the display
config array, which is unpopulated for inactive displays, and this will
result in a crash. (See getDisplayInfo in SurfaceComposerClient.cpp for
an example of this scenario)

Change-Id: Ib32a7dc8378d3438df0dba1ecd608bbcfc837717
urfaceFlinger.cpp
23e16bb5dae277cd20a739ca56553ae931c43ccf 30-Oct-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> sf: Add a NULL check in getDisplayConfigs

Validate the display binder by adding a NULL check in getDisplayConfigs.
This will prevent a false match if the caller queries the display
configs for an inactive display (whose binder is NULL by default).

Without this change we might end up attempting to index the display
config array, which is unpopulated for inactive displays, and this will
result in a crash. (See getDisplayInfo in SurfaceComposerClient.cpp for
an example of this scenario)

Change-Id: I1a12f43b7c375b9c01998dadd5b658275c733fb2
(cherry picked from commit ac71c26e9180d9d181be5ec9e45da72d39144a8b)
urfaceFlinger.cpp
65dc7eeff096c3b909d7932c8a94e61c31f76831 10-Jun-2015 Dan Stoza <stoza@google.com> SF: Swap w/h when capturing rotated screenshots

Swaps width and height when capturing a screenshot that is rotated by
90 or 270 degrees.

Bug: 8433742
Change-Id: Ibf0b604f541e3cc271e56fe0ad04dc366beb5d79
(cherry picked from commit 3502416204d9dbd905012ee586d8bd145323809f)
urfaceFlinger.cpp
3502416204d9dbd905012ee586d8bd145323809f 10-Jun-2015 Dan Stoza <stoza@google.com> SF: Swap w/h when capturing rotated screenshots

Swaps width and height when capturing a screenshot that is rotated by
90 or 270 degrees.

Bug: 8433742
Change-Id: Ibf0b604f541e3cc271e56fe0ad04dc366beb5d79
urfaceFlinger.cpp
074a13a3cb7507d8fe783441e879cff2671a23f1 05-Jun-2015 Dan Stoza <stoza@google.com> SF: Don't crop surface damage against viewport

Apply the display transform to surface damage, but don't intersect it
with the viewport.

Bug: 21486007
Change-Id: I94e697cea52096a960385d5f3b89609fdcf30a02
(cherry picked from commit 17833a1b0d70cd5cea342cadea9fdbbf16748bc6)
ayer.cpp
53a2e97a78a2a567a17b44feaebbe57a28aa8a56 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
(cherry picked from commit c6f30bdee1f634eb90d68cb76efe935b6535a1e8)
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
993772a60ac43e458f16b08c27e1f97dcfcfe3e1 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
(cherry picked from commit 812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2)
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
9d2c5a7c678bd384df0fb29952cf8943e7b1b160 05-Jun-2015 Dan Stoza <stoza@google.com> Merge "libgui: Add generation numbers to BufferQueue" into mnc-dev
17833a1b0d70cd5cea342cadea9fdbbf16748bc6 05-Jun-2015 Dan Stoza <stoza@google.com> SF: Don't crop surface damage against viewport

Apply the display transform to surface damage, but don't intersect it
with the viewport.

Bug: 21486007
Change-Id: I94e697cea52096a960385d5f3b89609fdcf30a02
ayer.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
ef78916d86fa60e08a6358af4b0b1f6bd0134164 29-May-2015 Dan Stoza <stoza@google.com> SF: Reduce resync samples without present

Reduces the number of resync samples that DispSync will attempt to
collect without an intervening present from 12 to 4. The former value
was causing excessive power draw for some vendors' implementations, and
reducing it doesn't seem to harm anything.

Bug: 20724456
Change-Id: Ifd6e0490be67756ed001d509a38e8a36953b4618
(cherry picked from commit 9c64757f6530a0510f15f8bd75b1925a3001f83a)
ispSync.h
9c64757f6530a0510f15f8bd75b1925a3001f83a 29-May-2015 Dan Stoza <stoza@google.com> SF: Reduce resync samples without present

Reduces the number of resync samples that DispSync will attempt to
collect without an intervening present from 12 to 4. The former value
was causing excessive power draw for some vendors' implementations, and
reducing it doesn't seem to harm anything.

Bug: 20724456
Change-Id: Ifd6e0490be67756ed001d509a38e8a36953b4618
ispSync.h
42ace4b5c638d19ed71439d666bca1601a1311c1 28-May-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Tweak whitespace in DdmConnection

Change-Id: I99e7b09e4bc3611ffb790eddfbb9b3c8b9bc5d4c
dmConnection.cpp
8b04725f1426d7543b5f38283ee53c95f071a7bc 11-Apr-2015 Jeff Brown <jeffbrown@google.com> Bypass surface flinger permission check for calls from system.

Early during the boot, before activity manager is ready to handle
permission checks, the system needs to be able to change the display
state. Added a hardcoded exemption for AID_SYSTEM (which already
has permission to talk to surface flinger anyhow).

Bug: 19029490
Change-Id: I6222edcab8e394e5fb6adf7a982be446e4505a1e
(cherry picked from commit 3bfe51d7901e99e7f122f76ed2708e2b67b71cf9)
lient.cpp
urfaceFlinger.cpp
ae569747b632c2e04bddced4db969b11b5d72612 03-May-2015 Ajay Dudani <adudani@codeaurora.org> surfaceflinger: Fix range check for getFormat

Fix potential buffer overflow error in getFormat with indices
greater than MAX_HWC_DISPLAYS.

Change-Id: I5e5b69d8d043e900f5e33ca9a62e94ae5f857b68
(cherry picked from commit 4e3e30c2d5a2a6f7dc4ee8696b1ac2a52dffd5dc)
isplayHardware/HWComposer.cpp
8e8eba5091de03d33d667ce1e6ba5fe7072926ba 21-Oct-2014 Dan Stoza <stoza@google.com> SF: Skip render-to-texture for color transforms

In cases where SurfaceFlinger is applying a color matrix (usually for
accessibility features), we previously would perform a render-to-
texture for the initial composition, and then apply the matrix during
a copy to the framebuffer. This changes that behavior to just apply the
matrix during composition without a render-to-texture pass.

This may result in a perceived change of the image in cases with alpha
blending, since the blending is performed at a different stage of the
pipeline and the system effectively performs non-linear blends.
However, neither this nor the prior render-to-texture pass is strictly
correct in that regard, and this approach is less error-prone and
likely faster.

Change-Id: I2110ff0374f61d76df7b087dde8a1ed98990440c
(cherry picked from commit f008799d3753e52c10849824ff8146985ea66284)
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
d74ba85c6f13bc1634ab1ae3c6c82d0fc837eb94 13-May-2015 Michael Lentine <mlentine@google.com> Add hotplug support for primary display.

When the primary is connected/disconnected on tv devices HWComposer updates
it's display parameters but doesn't destroy or recreate the display.

Bug: 18698244

Change-Id: I759c8f75d3e3a7462b85eb51973fb5072b71a702
(cherry picked from commit 10613dc3b565e95d3d5f459ec70fd2f6a77f807a)
isplayHardware/HWComposer.cpp
b64d87515212d795405c6b3622dd365202eb4c39 21-May-2015 Michael Lentine <mlentine@google.com> Fix surfaceflinger tests.

Update the screenshot code and add correct return values to surface flinger's
capturescreenshot function.

Buf: 18138368

Change-Id: Ieb42d289088589f941502fbd69da7aa939265e07
(cherry picked from commit 5a16a62950de06d48769e29f0c68a154ed7a7a89)
urfaceFlinger.cpp
ests/Transaction_test.cpp
f008799d3753e52c10849824ff8146985ea66284 21-Oct-2014 Dan Stoza <stoza@google.com> SF: Skip render-to-texture for color transforms

In cases where SurfaceFlinger is applying a color matrix (usually for
accessibility features), we previously would perform a render-to-
texture for the initial composition, and then apply the matrix during
a copy to the framebuffer. This changes that behavior to just apply the
matrix during composition without a render-to-texture pass.

This may result in a perceived change of the image in cases with alpha
blending, since the blending is performed at a different stage of the
pipeline and the system effectively performs non-linear blends.
However, neither this nor the prior render-to-texture pass is strictly
correct in that regard, and this approach is less error-prone and
likely faster.

Change-Id: I2110ff0374f61d76df7b087dde8a1ed98990440c
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
10613dc3b565e95d3d5f459ec70fd2f6a77f807a 13-May-2015 Michael Lentine <mlentine@google.com> Add hotplug support for primary display.

When the primary is connected/disconnected on tv devices HWComposer updates
it's display parameters but doesn't destroy or recreate the display.

Bug: 18698244

Change-Id: I759c8f75d3e3a7462b85eb51973fb5072b71a702
isplayHardware/HWComposer.cpp
5a16a62950de06d48769e29f0c68a154ed7a7a89 21-May-2015 Michael Lentine <mlentine@google.com> Fix surfaceflinger tests.

Update the screenshot code and add correct return values to surface flinger's
capturescreenshot function.

Buf: 18138368

Change-Id: Ieb42d289088589f941502fbd69da7aa939265e07
urfaceFlinger.cpp
ests/Transaction_test.cpp
59bfd2bbed9576ecdfc01720ca47215c47d7475a 14-May-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Handle EGL errors more cleanly

Adds some more safety checking for cases where we get an error while
trying to create the EGLImage. The checking puts the Layer into a
failed state after detecting an error, since the shadow queue may no
longer be synchronized.

Bug: 20957332
Change-Id: I68b4c40eab3e58731b875ed5752f2c7d17f14bcb
(cherry picked from commit 65476f3332641066a99e22338bf5cf49ce4af642)
ayer.cpp
ayer.h
65476f3332641066a99e22338bf5cf49ce4af642 14-May-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Handle EGL errors more cleanly

Adds some more safety checking for cases where we get an error while
trying to create the EGLImage. The checking puts the Layer into a
failed state after detecting an error, since the shadow queue may no
longer be synchronized.

Bug: 20957332
Change-Id: I68b4c40eab3e58731b875ed5752f2c7d17f14bcb
ayer.cpp
ayer.h
e64a79cd8525d502723feea2190d2a85450194ee 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
(cherry picked from commit a4650a50a0b35e9e4342d6600b6eb24fd94bb8e5)
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
a3b66932727503943b1c59e1846af60e0d95afa6 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
(cherry picked from commit dc13c5b85b099050c73297a19f1ef89308f7620b)
ayer.h
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
ayer.h
98a13a1475682870f5121446f9c80aa18855c884 08-May-2015 Dan Stoza <stoza@google.com> Merge "SF: Apply pending transactions to new sidebands" into mnc-dev
4e3e30c2d5a2a6f7dc4ee8696b1ac2a52dffd5dc 03-May-2015 Ajay Dudani <adudani@codeaurora.org> surfaceflinger: Fix range check for getFormat

Fix potential buffer overflow error in getFormat with indices
greater than MAX_HWC_DISPLAYS.

Change-Id: I5e5b69d8d043e900f5e33ca9a62e94ae5f857b68
isplayHardware/HWComposer.cpp
12e0a27aa30d9db10eafe88904d3eb8fdcbcfa71 05-May-2015 Dan Stoza <stoza@google.com> SF: Apply pending transactions to new sidebands

When a Layer's sideband stream is set, apply any pending transactions.
Otherwise they would never be applied since sideband streams don't
trigger updates by pushing new buffers.

Bug: 20125898
Change-Id: I0c7a91cdf84e6205801f4ab64eee0b09e4c0b3e0
(cherry picked from commit 3b04e1383eca6cb1d43ebe23a421c427007690c7)
ayer.cpp
8afb76731a2bcb6455bf1da8e94c6267994ef1e2 05-May-2015 Dan Stoza <stoza@google.com> SF: Apply pending transactions to new sidebands

When a Layer's sideband stream is set, apply any pending transactions.
Otherwise they would never be applied since sideband streams don't
trigger updates by pushing new buffers.

Bug: 20125898
Change-Id: I0c7a91cdf84e6205801f4ab64eee0b09e4c0b3e0
(cherry picked from commit 3b04e1383eca6cb1d43ebe23a421c427007690c7)
ayer.cpp
bb58111c22b41f605a8edb6599fd3df42f6d8e4e 01-May-2015 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Fix PTS on stale buffers"
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)
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
2e36f2283f48ab764b496490c73a132acf21df3a 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
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
7b2fc930077b1e6ca5946cae6834902318209474 01-May-2015 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Limit to 4k Layers" into mnc-dev
7d89d06a6fe1bfadfe277f19dbb7e4aa021444e0 30-Apr-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Limit to 4k Layers

Sets a limit of 4k Layers which SurfaceFlinger will allow to be in
existence at any given time. An attempt to create Layers in excess of
this limit will fail with NO_MEMORY.

Bug: 20674586
Change-Id: I2dfaf59643d826f982b2fa44e8a9ed643176d972
(cherry picked from commit e7f8dde3f3c398c1ea1bec14e76725a760f71d31)
urfaceFlinger.cpp
urfaceFlinger.h
32d4b6c8e122308a7ae296406f87a1df1b611a44 01-May-2015 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Limit to 4k Layers"
aa4041f70a4068a7ce9df8bea3cda8aaf94a62f6 29-Apr-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Fix integer overflow in Mesh ctor

Performs range checking on the inputs to Mesh::Mesh() before allocating
the storage array.

Bug: 20674682
Change-Id: I4fc918a8c312d967dd6d9f91a098b2e0a7081027
(cherry picked from commit ab79e33ef3a21a2b14bf15bc4c85aef247b4ad95)
enderEngine/Mesh.cpp
676d10b2709059079823698cb6b16e71a97d6d8b 30-Apr-2015 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Fix integer overflow in Mesh ctor"
e7f8dde3f3c398c1ea1bec14e76725a760f71d31 30-Apr-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Limit to 4k Layers

Sets a limit of 4k Layers which SurfaceFlinger will allow to be in
existence at any given time. An attempt to create Layers in excess of
this limit will fail with NO_MEMORY.

Bug: 20674586
Change-Id: I2dfaf59643d826f982b2fa44e8a9ed643176d972
urfaceFlinger.cpp
urfaceFlinger.h
ab79e33ef3a21a2b14bf15bc4c85aef247b4ad95 29-Apr-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Fix integer overflow in Mesh ctor

Performs range checking on the inputs to Mesh::Mesh() before allocating
the storage array.

Bug: 20674682
Change-Id: I4fc918a8c312d967dd6d9f91a098b2e0a7081027
enderEngine/Mesh.cpp
ad84681d31a7561344f72fe1b4e682ebc7a2ff6b 29-Apr-2015 Alan Viverette <alanv@google.com> Remove gamma correction from color correction shader

Gamma correction was incorrectly skewing both color inversion and
Daltonization, which resulted in washed-out colors.

Bug: 20346301
Change-Id: I34d879f902c3be115b2d23f09c3ed3902799759e
(cherry picked from commit 3acd9f1d8fdffc0ed0837ebbabcac0c4014015b3)
enderEngine/ProgramCache.cpp
3acd9f1d8fdffc0ed0837ebbabcac0c4014015b3 29-Apr-2015 Alan Viverette <alanv@google.com> Remove gamma correction from color correction shader

Gamma correction was incorrectly skewing both color inversion and
Daltonization, which resulted in washed-out colors.

Bug: 20346301
Change-Id: I34d879f902c3be115b2d23f09c3ed3902799759e
enderEngine/ProgramCache.cpp
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
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
c7a3cd622846f8f29b46e4c5f5bcf14857d0f779 23-Apr-2015 Dan Stoza <stoza@google.com> am 423b40f7: am 368270fd: am de5c15b8: Merge "SF: Always perform sideband transactions"

* commit '423b40f7bd004a8ab5bca887e3855cd20c6bcc28':
SF: Always perform sideband transactions
9e9b0445544f11fdbf21a29601567af2d1819a30 22-Apr-2015 Dan Stoza <stoza@google.com> SF: Always perform sideband transactions

On normal Layers, we defer applying resize transactions until a buffer
of the correct size arrives. This breaks with sideband streams, because
buffers are not seen by SurfaceFlinger. This change applies
transactions immediately for Layers which have a sideband stream
attached to avoid that problem.

Bug: 20428254
Change-Id: I379d8aaef460d467cdf8432764b4a504928fb65a
(cherry picked from commit c300b8b506536e1bf94ffd8a3b75d46e776923e0)
ayer.cpp
d5296b342e51bd41c9b1d26e98978d9b9ef23a89 16-Apr-2015 Dan Stoza <stoza@google.com> am 66dc4ee3: am b47584f4: am 2e398e64: Merge "SF: Permit changing DispSync offsets at runtime"

* commit '66dc4ee3729c4e6fea624805a1e58843ce920477':
SF: Permit changing DispSync offsets at runtime
91dea34652ff891192148b4062a80c2e8f0852ce 15-Apr-2015 Dan Stoza <stoza@google.com> am 19f06de0: am 40b2a8b4: am e7d20eb0: Merge "SurfaceFlinger: Pass surface damage to HWC"

* commit '19f06de0930e0f741ed113c37faf306fceee39bd':
SurfaceFlinger: Pass surface damage to HWC
db4ac3ce63074f5602b46074ffeabfea4a14d032 14-Apr-2015 Dan Stoza <stoza@google.com> SF: Permit changing DispSync offsets at runtime

This modifies EventThread such that its phase offsets for both
Choreographer and SurfaceFlinger may be modified at runtime. It also
plumbs this functionality up to the SurfaceFlinger debug interface so
that it is possible to rapidly test different offsets without
restarting the framework.

Change-Id: I426873f8553f931250dfebc9a8a4a78e9f1f4309
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
ee44edd0acccbf5eaa918d75737c3b65ee04fff7 23-Mar-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Pass surface damage to HWC

Passes the surface damage from the incoming SurfaceFlingerConsumer
BufferQueue down to the hardware composer HAL interface, if the
HWC version number is 1.5 or greater.

Bug: 11239309
Change-Id: Ic4305210593874a8d6deba3319055b2b8c57e926
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
3bfe51d7901e99e7f122f76ed2708e2b67b71cf9 11-Apr-2015 Jeff Brown <jeffbrown@google.com> Bypass surface flinger permission check for calls from system.

Early during the boot, before activity manager is ready to handle
permission checks, the system needs to be able to change the display
state. Added a hardcoded exemption for AID_SYSTEM (which already
has permission to talk to surface flinger anyhow).

Bug: 19029490
Change-Id: I6222edcab8e394e5fb6adf7a982be446e4505a1e
lient.cpp
urfaceFlinger.cpp
5b20fd0882e6a1754cad7342f7ceda3753e8f567 24-Mar-2015 Jesse Hall <jessehall@google.com> am 28c03cca: am c2a5b469: am a527c07b: Merge "Fix mistake using width instead of height."

* commit '28c03cca9835957f6e304b18358243b184fa46f8':
Fix mistake using width instead of height.
c2a5b469a311891d8e3025aea0e4b348044dfaeb 24-Mar-2015 Jesse Hall <jessehall@google.com> am a527c07b: Merge "Fix mistake using width instead of height."

* commit 'a527c07b8d078f7da1114b7055f65b479a148729':
Fix mistake using width instead of height.
0e7497957a029fd123b429388d84bba2930fddef 23-Mar-2015 Christopher Ferris <cferris@google.com> Fix mistake using width instead of height.

Found by rodrigo.chiossi@intel.com.

Change-Id: I49d590ed39f6b47ba58a77a75d66b2964ea1cb1d
urfaceFlinger.cpp
11611f9be590480d7ea27bf0153558573ddcded2 12-Mar-2015 Dan Stoza <stoza@google.com> DO NOT MERGE SurfaceFlinger: Stop using IGBC::BufferItem

Switches all uses of IGraphicBufferConsumer::BufferItem (and
BufferQueue::BufferItem) to the BufferItem in libgui. Depends on
frameworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9.

Cherry pick of I187b3a7d05196b6289596afac8fb9a9d4aebff76

Change-Id: I5bc79fb96b6cba6021af64b20890967aa3b7fcbf
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
isplayHardware/HWComposer.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
84493cd420d3d53a16ae7c745ed38afffb4e67f5 12-Mar-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Stop using IGBC::BufferItem

Switches all uses of IGraphicBufferConsumer::BufferItem (and
BufferQueue::BufferItem) to the BufferItem in libgui. Depends on
frameworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9.

Change-Id: I187b3a7d05196b6289596afac8fb9a9d4aebff76
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
35283ef01b53c6fce3be11158100dd950780f19e 10-Mar-2015 Dan Stoza <stoza@google.com> am 105aa28e: am b275b4dc: am 3949f664: Merge "SurfaceFlinger: Fix null pointer exception"

* commit '105aa28eeff9d31eebc7645aecb7630918a09b2a':
SurfaceFlinger: Fix null pointer exception
b275b4dc3e5dcbae1e171bd51165a93f16332ef4 09-Mar-2015 Dan Stoza <stoza@google.com> am 3949f664: Merge "SurfaceFlinger: Fix null pointer exception"

* commit '3949f664c71ad1269ee0c921d176e3b4484015cc':
SurfaceFlinger: Fix null pointer exception
24a42e9f54e971a17b829e85681c68d60a178d26 09-Mar-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Fix null pointer exception

Fixes a null pointer exception in getActiveConfig

Bug: 19416124
Change-Id: I45a01f67affb63a348866ce42a6013c5eb71fe8f
urfaceFlinger.cpp
94d5ac480286d5e4d856bb968263e6991a62002d 06-Mar-2015 Eino-Ville Talvala <etalvala@google.com> Merge "Add dataSpace to buffer queues; remove old format enums."
b90cf07f8b3a8fe76e40b997924c2509d04575f4 05-Mar-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Add --static-screen stats

Adds a --static-screen option to dumpsys SurfaceFlinger, which
displays screen-on time broken down by the time between the prior
frame and the current frame. An example dump looks like this:

$ adb shell dumpsys SurfaceFlinger --static-screen
Static screen stats:
< 1 frames: 12.235 s (3.5%)
< 2 frames: 29.898 s (8.7%)
< 3 frames: 15.370 s (4.4%)
< 4 frames: 13.103 s (3.8%)
< 5 frames: 15.780 s (4.6%)
< 6 frames: 2.022 s (0.6%)
< 7 frames: 0.201 s (0.1%)
7+ frames: 256.887 s (74.4%)

The buckets are exclusive, so '< 3 frames' covers the interval
[2, 3) frames

Bug: 19543586
Change-Id: I3253a54c23995d25e96016997acedd0775956b60
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/HWComposer.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
53ec1f0d18a66f7d1e6c5404c14502de09b60b08 26-Feb-2015 Greg Hackmann <ghackmann@google.com> am beb89e11: am 6f57b269: am 56f8c6c4: Merge "Error compiling waitforvsync.cpp"

* commit 'beb89e11ca777c92b7e2cc06c25f47d5a75ee7ad':
Error compiling waitforvsync.cpp
6f57b269f9ae779a0e85919cdc7a54bfb383e402 26-Feb-2015 Greg Hackmann <ghackmann@google.com> am 56f8c6c4: Merge "Error compiling waitforvsync.cpp"

* commit '56f8c6c42dab4c3636edb62162088e5d765fa956':
Error compiling waitforvsync.cpp
56f8c6c42dab4c3636edb62162088e5d765fa956 26-Feb-2015 Greg Hackmann <ghackmann@google.com> Merge "Error compiling waitforvsync.cpp"
129da2ba07135d33a1690be10fa509a40778fb0d 23-Feb-2015 Mark Salyzyn <salyzyn@google.com> am 453c6a78: am a455ec21: am d80268ba: Merge "vsync.cpp test is throwing error whe compiled"

* commit '453c6a781de3dc728212d66f1ca7fda2ae984974':
vsync.cpp test is throwing error whe compiled
a455ec21fa5341b8cee09eff73a9b465a6c28faa 23-Feb-2015 Mark Salyzyn <salyzyn@google.com> am d80268ba: Merge "vsync.cpp test is throwing error whe compiled"

* commit 'd80268ba19f9217c5459a2952580090ef84a7b78':
vsync.cpp test is throwing error whe compiled
5b06dc00ac143e030292ada48ed8afc0ac079a30 14-Feb-2015 Nanik Tolaram <nanikjava@gmail.com> vsync.cpp test is throwing error whe compiled

frameworks/native/services/surfaceflinger/tests/vsync/vsync.cpp:55:44: error: 'ALOOPER_EVENT_INPUT' was not declared in this scope
loop->addFd(myDisplayEvent.getFd(), 0, ALOOPER_EVENT_INPUT, receiver,
^
frameworks/native/services/surfaceflinger/tests/vsync/vsync.cpp:64:18: error: 'ALOOPER_POLL_WAKE' was not declared in this scope
case ALOOPER_POLL_WAKE:
^
frameworks/native/services/surfaceflinger/tests/vsync/vsync.cpp:67:18: error: 'ALOOPER_POLL_CALLBACK' was not declared in this scope
case ALOOPER_POLL_CALLBACK:
^
frameworks/native/services/surfaceflinger/tests/vsync/vsync.cpp:70:18: error: 'ALOOPER_POLL_TIMEOUT' was not declared in this scope
case ALOOPER_POLL_TIMEOUT:
^
frameworks/native/services/surfaceflinger/tests/vsync/vsync.cpp:73:18: error: 'ALOOPER_POLL_ERROR' was not declared in this scope
case ALOOPER_POLL_ERROR:
^

it is missing one header file

Change-Id: Ie2fb02523a866b13a99edf837f072d101cacb466
Signed-off-by: Nanik Tolaram <nanikjava@gmail.com>
ests/vsync/vsync.cpp
ee9701744a01acb558cb1082de9cc1415d0dbaff 13-Feb-2015 Nanik Tolaram <nanikjava@gmail.com> Error compiling waitforvsync.cpp

The waitforvsync.cpp throws error when compiling. Following is the error log

target thumb C++: test-waitforvsync <= frameworks/native/services/surfaceflinger/tests/waitforvsync/waitforvsync.cpp
frameworks/native/services/surfaceflinger/tests/waitforvsync/waitforvsync.cpp: In function 'int main(int, char**)':
frameworks/native/services/surfaceflinger/tests/waitforvsync/waitforvsync.cpp:43:17: error: 'close' was not declared in this scope
close(fd);
^
....
....

make: *** [out/target/product/grouper/obj/EXECUTABLES/test-waitforvsync_intermediates/waitforvsync.o] Error 1

the file is missing #include <unistd.h>

Change-Id: I57728dbde65641cd3138625f9a590f9db8648158
Signed-off-by: Nanik Tolaram <nanikjava@gmail.com>
ests/waitforvsync/waitforvsync.cpp
3890c83721f93f52a7b15de65870db1d77ee1e72 28-Jan-2015 Dan Stoza <stoza@google.com> am 40b4e23a: Merge "resolved conflicts for merge of 1665c8e1 to lmp-mr1-dev-plus-aosp" into lmp-mr1-dev-plus-aosp

* commit '40b4e23a0396614c841977e932218e3f53089a4a':
Revert "SurfaceFlinger: Attempt to attribute fds to layers"
3d6c56914052228d7772517acd51952467947b69 28-Jan-2015 Yabin Cui <yabinc@google.com> am 39d890d9: am 6e32c037: Merge "Kill HAVE_PTHREADS."

* commit '39d890d9aed5cb07b8a166a749299b9d24d8f137':
Kill HAVE_PTHREADS.
40b4e23a0396614c841977e932218e3f53089a4a 27-Jan-2015 Dan Stoza <stoza@google.com> Merge "resolved conflicts for merge of 1665c8e1 to lmp-mr1-dev-plus-aosp" into lmp-mr1-dev-plus-aosp
39d890d9aed5cb07b8a166a749299b9d24d8f137 27-Jan-2015 Yabin Cui <yabinc@google.com> am 6e32c037: Merge "Kill HAVE_PTHREADS."

* commit '6e32c0377db89bafa477715b3a02431d651978cf':
Kill HAVE_PTHREADS.
22d0bdf326de00dd50a388b55540123228cbb025 27-Jan-2015 Dan Stoza <stoza@google.com> resolved conflicts for merge of 1665c8e1 to lmp-mr1-dev-plus-aosp

Change-Id: I0be2ecb8085f2cd9560138460bcc27d71c011608
1665c8e1012e535743683d9812bf28c35ee2f10a 27-Jan-2015 Dan Stoza <stoza@google.com> Revert "SurfaceFlinger: Attempt to attribute fds to layers"

This reverts commit 03eccb6616744c3789b6018680de7bf5a18f71ce.

Change-Id: I4f0da7bb62bf77bb3d399aee601beae5e03928fe
ndroid.mk
urfaceFlinger.cpp
8fb2d25ff3e9ade7c03ebe52a89c671ee75ce484 27-Jan-2015 Yabin Cui <yabinc@google.com> Kill HAVE_PTHREADS.

Bug: 19083585
Change-Id: I355491de945590f43c82bdcb7968b01b4bff6e06
ain_surfaceflinger.cpp
b62767e85573d28837c06eb9cca60ddb685b42eb 17-Jan-2015 Dan Stoza <stoza@google.com> am a5cbb1f1: am ef1c17ae: SurfaceFlinger: Make log message 64-bit compatible

* commit 'a5cbb1f18b6eb4e0db27d98bea0731393b7438d1':
SurfaceFlinger: Make log message 64-bit compatible
3c7eb4fe2389a156432e4391af3870b21e824208 17-Jan-2015 Dan Stoza <stoza@google.com> am 3372cc25: resolved conflicts for merge of 03eccb66 to lmp-mr1-dev-plus-aosp

* commit '3372cc25df255b94e4eb75920afaf43ee5edc39f':
SurfaceFlinger: Attempt to attribute fds to layers
a5cbb1f18b6eb4e0db27d98bea0731393b7438d1 17-Jan-2015 Dan Stoza <stoza@google.com> am ef1c17ae: SurfaceFlinger: Make log message 64-bit compatible

* commit 'ef1c17ae9417abc1e21e49dbc629e448efc947dc':
SurfaceFlinger: Make log message 64-bit compatible
3372cc25df255b94e4eb75920afaf43ee5edc39f 17-Jan-2015 Dan Stoza <stoza@google.com> resolved conflicts for merge of 03eccb66 to lmp-mr1-dev-plus-aosp

Change-Id: I1f38cbe7019b2b48b1094dee154ad97c23fd22c2
ef1c17ae9417abc1e21e49dbc629e448efc947dc 17-Jan-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Make log message 64-bit compatible

Fixes the build on 64-bit targets that complain about using a size_t
with a %d in a format string

Change-Id: I7dfcd3a49eb0dbc5dffeb82bb7208de7f7925f08
urfaceFlinger.cpp
03eccb6616744c3789b6018680de7bf5a18f71ce 16-Jan-2015 Dan Stoza <stoza@google.com> SurfaceFlinger: Attempt to attribute fds to layers

This tracks fds when layers are created and destroyed in an effort to
determine which specific app (if any) is active when fds are leaked

Bug: 19017008
Change-Id: I1f1d5a9cbc1399e3df3a2d350324f80b3a4e3477
ndroid.mk
urfaceFlinger.cpp
8eb8069a2d197c3a996f17e1ed1d1c75ac49b8c6 13-Jan-2015 Jesse Hall <jessehall@google.com> am 9c22ac77: am 5b730570: Merge "surfaceflinger: use Mutex timedLock instead of tryLock loop"

* commit '9c22ac77e41b8bbddbb64959acabce3f3a07345d':
surfaceflinger: use Mutex timedLock instead of tryLock loop
9c22ac77e41b8bbddbb64959acabce3f3a07345d 13-Jan-2015 Jesse Hall <jessehall@google.com> am 5b730570: Merge "surfaceflinger: use Mutex timedLock instead of tryLock loop"

* commit '5b730570be2bd1f90346a5921d0b70dc11351396':
surfaceflinger: use Mutex timedLock instead of tryLock loop
fcd15b478c20f579388bb1368f05098dca534639 23-Dec-2014 Jesse Hall <jessehall@google.com> surfaceflinger: use Mutex timedLock instead of tryLock loop

Rather than trying to acquire the state lock without waiting three
times at 1 second intervals in SurfaceFlinger::dump(), just try to
acquire the lock once with a 1 second timeout. Avoids spurious mutex
acquire failures that lead to flaky
com.android.cts.jank.opengl.CtsHostJankOpenGl results.

Bug: 18842510
Change-Id: I00ce6109647de2aef8831dd2f8fa98652ba7f4e0
urfaceFlinger.cpp
e9b6f1f7bb590a3f9845a150c1e9286c8ad48bfe 20-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Switch to libsigchain.a

Use LOCAL_WHOLE_STATIC_LIBRARIES to instruct static linker
to export symbols from the static library.

(cherry picked from commit 4340a14fbfe761a46e7a655b568cbd0953773df3)

Bug: 18701723
Change-Id: I70f6fdb64b0d1adbadf96c8de85870a903ec186a
ndroid.mk
igchain_proxy.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
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
dmConnection.cpp
isplayDevice.cpp
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
d6739d5e445e3be9ffafb9ebb8e61b5115dad3a5 04-Dec-2014 Dan Stoza <stoza@google.com> am db5827d3: am 5878444f: SurfaceFlinger: Listen to HWC invalidate

* commit 'db5827d314ddca3d473947b4ef49e811fad70069':
SurfaceFlinger: Listen to HWC invalidate
db5827d314ddca3d473947b4ef49e811fad70069 03-Dec-2014 Dan Stoza <stoza@google.com> am 5878444f: SurfaceFlinger: Listen to HWC invalidate

* commit '5878444fb8da043021f30d3de739531f15390df5':
SurfaceFlinger: Listen to HWC invalidate
5878444fb8da043021f30d3de739531f15390df5 03-Dec-2014 Dan Stoza <stoza@google.com> SurfaceFlinger: Listen to HWC invalidate

"Do less work when using PTS" broke the invalidate path up from HWC
to SurfaceFlinger. When HWC would signal an invalidate, SurfaceFinger
would wake up, see no new buffers, and go back to sleep. This is fine,
except when the invalidate is a result of an HDMI hotplug, in which
case the screen remains blank. This change makes that functionality
work again.

Bug: 18564815
Bug: 18558468
Change-Id: I2e2171d86839945f4e4e6555d66f7e2895bd096a
urfaceFlinger.cpp
347a2acf7e3a81ad861237dbc4b31f5c3c68503f 25-Nov-2014 Michael Lentine <mlentine@google.com> am 1e611662: am b947f29a: Merge "Add clamp to Layer and update Transform inverse." into lmp-mr1-dev

* commit '1e6116621bc2f7aedfd52a5f1327b530328435b0':
Add clamp to Layer and update Transform inverse.
1e6116621bc2f7aedfd52a5f1327b530328435b0 25-Nov-2014 Michael Lentine <mlentine@google.com> am b947f29a: Merge "Add clamp to Layer and update Transform inverse." into lmp-mr1-dev

* commit 'b947f29a6af1622cda16d0b7112595082750dd07':
Add clamp to Layer and update Transform inverse.
28ea217ff4e0aa9b03dfc12b6f47cccc6aaaae08 20-Nov-2014 Michael Lentine <mlentine@google.com> Add clamp to Layer and update Transform inverse.

Ensure that the adjusted transparent region is within
the display bounds by clamping after the transformation
is applied and clean up transform's inverse function.

Bug: 18452546

Change-Id: Ia473e483ee8374177bcb84d8192eb1f0e86f022a
ayer.cpp
ransform.cpp
c1ced8bbcd0ab8ddb75513290954e8a56f80040e 21-Nov-2014 Dan Albert <danalbert@google.com> am c894c204: Merge "C++11 compatibility."

* commit 'c894c2045f589571c80af0648e7a9dcd7e97b6a8':
C++11 compatibility.
3bdc5b826803dca10d3625c56de38d6c55d869c8 20-Nov-2014 Dan Albert <danalbert@google.com> C++11 compatibility.

* Explicit conversion for atomic_uintptr_t initialization.
* Fix string literal concatenation to not be a UD literal.
* Use __typeof__ instead of typeof (should become decltype once this
actually moves to C++11).

Bug: 18466763
Change-Id: I4eedddfb945a2a703ed27317cb6e2b3041b1ebfc
dmConnection.cpp
e8e23c8b79a8f6f92e1db22a58ec5cffe8faf70a 18-Nov-2014 Dan Stoza <stoza@google.com> am 686c5be4: am 6b9454d1: SurfaceFlinger: Do less work when using PTS

* commit '686c5be4722dce02ae8e5580d6677f1eeea22464':
SurfaceFlinger: Do less work when using PTS
686c5be4722dce02ae8e5580d6677f1eeea22464 18-Nov-2014 Dan Stoza <stoza@google.com> am 6b9454d1: SurfaceFlinger: Do less work when using PTS

* commit '6b9454d1fee0347711af1746642aa7820b1ea04d':
SurfaceFlinger: Do less work when using PTS
6b9454d1fee0347711af1746642aa7820b1ea04d 08-Nov-2014 Dan Stoza <stoza@google.com> SurfaceFlinger: Do less work when using PTS

Currently, SurfaceFlinger is very dumb about how it handles buffer
updates at less than 60fps. If there is a new frame pending, but its
timestamp says not to present it until later SurfaceFlinger will wake
up every vsync until it is time to present it. Even worse, if
SurfaceFlinger has woken up but nothing has changed, it still goes
through the entire composition process.

This change (mostly) fixes that inefficiency. SurfaceFlinger will
still wake up every refresh period while there is a new frame
pending, but if there is no work to do, it will almost immediately go
back to sleep.

Bug: 18111837
Change-Id: I7825bacd37f40bf26edcc6a5e0f051dce45291fb
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.h
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
onitoredProducer.cpp
urfaceFlinger.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
onitoredProducer.cpp
urfaceFlinger.cpp
41a0ef3e28c4d2494f6cdd1c831dd3ded7c5af4a 14-Nov-2014 Dan Albert <danalbert@google.com> resolved conflicts for merge of 4037c458 to master

Change-Id: I8a2e73b7ba48b790054e0ab99f81b2693244389e
4037c458a7594cb3cd81a14e7e974abc28180187 13-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 07dffa18 to lmp-mr1-dev-plus-aosp

Change-Id: I42d8bc291f4f48f3098754b076889159c4b20e41
89fd4f7fa6bd17ce5400979c3b9e5ba0bf7e919e 13-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/native: Wall Werror in surfaceflinger

Turn on -Wall -Werror in services/surfaceflinger. Fix warnings.

Change-Id: Ifef830300d9d4bc657d8f1257c02bfe8c2b4d9c5
ndroid.mk
isplayDevice.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
ayerDim.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES20RenderEngine.cpp
enderEngine/RenderEngine.cpp
urfaceFlinger.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
dmConnection.cpp
isplayDevice.cpp
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.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
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
ayer.cpp
ayer.h
ff520bb93812f9892da526ace81efce9b0872503 03-Nov-2014 Naseer Ahmed <naseer@codeaurora.org> am 7aa0c47e: sf: Add a NULL check in getDisplayConfigs

* commit '7aa0c47e4205c6fca136c38f272d911c25c8a8fa':
sf: Add a NULL check in getDisplayConfigs
7aa0c47e4205c6fca136c38f272d911c25c8a8fa 03-Nov-2014 Naseer Ahmed <naseer@codeaurora.org> sf: Add a NULL check in getDisplayConfigs

Validate the display binder by adding a NULL check in getDisplayConfigs.
This will prevent a false match if the caller queries the display
configs for an inactive display (whose binder is NULL by default).

Without this change we might end up attempting to index the display
config array, which is unpopulated for inactive displays, and this will
result in a crash. (See getDisplayInfo in SurfaceComposerClient.cpp for
an example of this scenario)

Change-Id: I1a12f43b7c375b9c01998dadd5b658275c733fb2
Acked-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
urfaceFlinger.cpp
b43a1c9be2046345d61fb0d0a5fd06eda5cbe31e 31-Oct-2014 Jesse Hall <jessehall@google.com> am affc4d80: Merge "surfaceflinger: fix -Wunused-parameter warning" into lmp-mr1-dev

* commit 'affc4d809edbcb3b0e49e5ccc9821b9695a57d44':
surfaceflinger: fix -Wunused-parameter warning
18b846dda798709796be078a7978d885685df9a4 31-Oct-2014 Jesse Hall <jessehall@google.com> am c7636f60: Merge "surfaceflinger: fix -Wsign-compare warnings" into lmp-mr1-dev

* commit 'c7636f606270a4b79d745ec1acf049daedfa0e2f':
surfaceflinger: fix -Wsign-compare warnings
9fc06c5e2131cdf0d76a3838215c057f57da67e3 31-Oct-2014 Jesse Hall <jessehall@google.com> am 6e74e3cc: Merge "surfaceflinger: fix -Woverloaded-virtual warning" into lmp-mr1-dev

* commit '6e74e3ccd972fe90d9998f6b683e25dca38f470d':
surfaceflinger: fix -Woverloaded-virtual warning
7cd85979e81cd632c37852f7ca716089dc52e899 08-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: fix -Wunused-parameter warning

warning: unused parameter 'mustRecompose' [-Wunused-parameter]

Change-Id: I6b8c671189639d851bfa5548742de988d6fa2687
(cherry picked from d2e514f71709e6af3dbc754e59686129737f2300)
isplayHardware/FramebufferSurface.cpp
784421160727c434c2a2897ed3345445fcc30f75 08-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: fix -Wsign-compare warnings

warning: comparison of integers of different signs: 'int' and 'size_t'
(aka 'unsigned int') [-Wsign-compare]

arning: comparison of integers of different signs: 'int32_t' (aka
'int') and 'const uint32_t' (aka 'const unsigned int')
[-Wsign-compare]

Change-Id: I823257aa7218c5fd492a3277853210db539bb2e2
(cherry picked from f9bfdc6c9449143eed674c03e15dd8278296d32b)
urfaceFlinger.cpp
9b901805ed2e918c25e13134757a967caaaeebb9 08-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: fix -Woverloaded-virtual warning

warning: 'android::LayerDim::isOpaque' hides overloaded virtual function
[-Woverloaded-virtual]

Change-Id: Ie27a6c943f485bc89ce11e424a4e7d99805d4dd0
(cherry picked from commit 382574d116759ccc19463c03db841e3d6e2d4424)
ayerDim.h
1495ceb88594bf3c5963ef65ee12953dc0354546 08-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: fix -Wmismatched-tags warnings

warning: struct 'HWComposer' was previously declared as a class
[-Wmismatched-tags]

warning: class 'DisplayInfo' was previously declared as a struct
[-Wmismatched-tags]

Change-Id: I13db9f8aab3a957ce8ff8d64598dae1807d6fe7e
(cherry picked from commit 646f54105018e99ef4a30ee41f01f7d1ab66c38e)
isplayDevice.h
isplayHardware/HWComposer.h
d77021637e28e66be3fcc097b16869df69717df9 30-Oct-2014 Dan Stoza <stoza@google.com> am 1f3efb11: Don\'t run large virtual displays through HWC

* commit '1f3efb11ff8c884a254f4272f0d1ee0b77ceff2f':
Don't run large virtual displays through HWC
1f3efb11ff8c884a254f4272f0d1ee0b77ceff2f 16-Oct-2014 Dan Stoza <stoza@google.com> Don't run large virtual displays through HWC

This change watches for a MAX_VIRTUAL_DISPLAY_DIMENSION value, which
will be set (if necessary) in BoardConfig.mk. If the value is set,
any virtual displays that have a width or a height greater than that
dimension will bypass the hardware composer HAL and be handled only
by SurfaceFlinger.

Bug: 17701816
Change-Id: Ia6ca44dfd6a7a9bc0f054493d3f13006bc32fa14
ndroid.mk
urfaceFlinger.cpp
0b91d7e27718fc530bcad78a7ff2a51b90142059 24-Oct-2014 Riley Andrews <riandrews@google.com> am 131866e1: Merge "Add glFlush in surfaceflinger screenshot code." into lmp-mr1-dev

* commit '131866e1a4cb3c592f923e95a8c1a66291e2057a':
Add glFlush in surfaceflinger screenshot code.
131866e1a4cb3c592f923e95a8c1a66291e2057a 24-Oct-2014 Riley Andrews <riandrews@google.com> Merge "Add glFlush in surfaceflinger screenshot code." into lmp-mr1-dev
9707f4df640c3369f873a934bb05ffa5a68a5640 24-Oct-2014 Riley Andrews <riandrews@google.com> Add glFlush in surfaceflinger screenshot code.

After creating a syncKHR object with type EGL_SYNC_NATIVE_FENCE_ANDROID,
glFlush must be called before the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute
is populated with a sync fd. We currently call eglDupNativeFenceFDANDROID
before issuing the flush.

Bug 18052459
Taken verbatim from matthew.k.gumbel@intel.com.

Change-Id: I3781d14f92862076e2bca7d27341a6dc6e7e3775
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
11f2e08a66f2463cbfd9cbef5c34da7ddfe2613a 22-Oct-2014 Jesse Hall <jessehall@google.com> am 8ad8c0a7: am afe2b1fa: surfaceflinger: don\'t close fence fds after passing to queueBuffer

* commit '8ad8c0a775a1d4592479731973238b82480f76b2':
surfaceflinger: don't close fence fds after passing to queueBuffer
8ad8c0a775a1d4592479731973238b82480f76b2 22-Oct-2014 Jesse Hall <jessehall@google.com> am afe2b1fa: surfaceflinger: don\'t close fence fds after passing to queueBuffer

* commit 'afe2b1fadd29149ceed639357e44e06e97c3a5ca':
surfaceflinger: don't close fence fds after passing to queueBuffer
afe2b1fadd29149ceed639357e44e06e97c3a5ca 21-Oct-2014 Jesse Hall <jessehall@google.com> surfaceflinger: don't close fence fds after passing to queueBuffer

ANativeWindow::queueBuffer takes ownership of the fence fd passed to
it, and will close it before returning. SurfaceFlinger's screenshot
code was also closing the syncFd it passed to queueBuffer. Most of the
time this meant the second close() silently failed, but in a rare race
condition the file descriptor could be reused between the two
close()s.

Bug: 17946343
Change-Id: Ib74fcb1dce52cc21328059c99b7c4c76f41aa3a5
urfaceFlinger.cpp
8b81ce563f03500064e0f4c87288b8eeb3bed496 21-Oct-2014 Dmitriy Ivanov <dimitry@google.com> am cb8a9fcc: Merge "Switch to libsigchain.a"

* commit 'cb8a9fcc56288378d05d80c55396db7981e3828d':
Switch to libsigchain.a
5cf92d4a85efe7bcff4d0818d8d88afa252f7cc7 21-Oct-2014 Dmitriy Ivanov <dimitry@google.com> am cb8a9fcc: Merge "Switch to libsigchain.a"

* commit 'cb8a9fcc56288378d05d80c55396db7981e3828d':
Switch to libsigchain.a
4340a14fbfe761a46e7a655b568cbd0953773df3 20-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Switch to libsigchain.a

Use LOCAL_WHOLE_STATIC_LIBRARIES to instruct static linker
to export symbols from the static library.

Change-Id: I0e41cf173be96c52cdad72b1ef4a1bf819e65dd2
ndroid.mk
igchain_proxy.cpp
2b1f2dac939a035475f7b0c3c3a976de4384bb98 07-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Link sigchain to surfaceflinger main executable

And export necessary symbols to preempt calls from libart.so

Bug: 15345057
Bug: 15426766

(cherry picked from commit f3da24d8cf02d7c74ff7c24eae0154a21a192fda)

Change-Id: I03b632e0bf2cbaf4a0e68cd0af4e991f7f6b08e4
ndroid.mk
igchain_proxy.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."
9b9d1a4ee54817028549e3b3c49f5c9898b11406 14-Oct-2014 Dmitriy Ivanov <dimitry@google.com> am 26a28149: Merge "Link sigchain to surfaceflinger main executable"

* commit '26a2814963de75f14dfbe7cf3d45e993727891cf':
Link sigchain to surfaceflinger main executable
88e5118f07f38c96d5b438a44c42b0951c65ba0d 14-Oct-2014 Dmitriy Ivanov <dimitry@google.com> am 26a28149: Merge "Link sigchain to surfaceflinger main executable"

* commit '26a2814963de75f14dfbe7cf3d45e993727891cf':
Link sigchain to surfaceflinger main executable
f3da24d8cf02d7c74ff7c24eae0154a21a192fda 07-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Link sigchain to surfaceflinger main executable

And export necessary symbols to preempt calls from libart.so

Bug: 15345057
Bug: 15426766
Change-Id: If0b7f59a59824e30aa0c33dad76c7a44932180de
ndroid.mk
igchain_proxy.cpp
fb992b7753d73f4f18ef7aa1c8e3df5c09e6efbd 03-Oct-2014 Michael Lentine <mlentine@google.com> am 6c925ede: Fixed discrepancy between crop and frame transparencies.

* commit '6c925ede620f4080227bb1fe8a41e4b4502348f8':
Fixed discrepancy between crop and frame transparencies.
6c925ede620f4080227bb1fe8a41e4b4502348f8 27-Sep-2014 Michael Lentine <mlentine@google.com> Fixed discrepancy between crop and frame transparencies.

Bug: 17662777
Change-Id: I0d65d9b912a37a60e4c1d2e2e198f7709460917c
ayer.cpp
ayer.h
8dcdf7961b22ad36cb43d0f5353a1b5663448fd4 03-Oct-2014 Riley Andrews <riandrews@google.com> am 6747be9f: Generate the SurfaceFlinger shader cache on initialization

* commit '6747be9fab9981ec24729cede5e0fe779e8b8914':
Generate the SurfaceFlinger shader cache on initialization
6747be9fab9981ec24729cede5e0fe779e8b8914 29-Sep-2014 Riley Andrews <riandrews@google.com> Generate the SurfaceFlinger shader cache on initialization

Blobcache is not yet enabled for surfaceflinger (as it should be).
As a temporary workaround, generate all needed shaders during
surfaceflinger initialization instead of doing the compilation
on-demand during ui transitions.

Change-Id: I14455b20a3f85f177d85c9c8b76d8ccc35379b39
enderEngine/ProgramCache.cpp
enderEngine/ProgramCache.h
36a4d17104f8a8d4523071d829ac43c8507ced64 02-Oct-2014 Riley Andrews <riandrews@google.com> am 6c833986: Merge "Generate the SurfaceFlinger shader cache on initialization" into lmp-mr1-dev

* commit '6c8339867438c27e468a03995b98481e9e49b274':
Generate the SurfaceFlinger shader cache on initialization
6bddbeaeb05aff19a8d69fda806c2b03b2c47c6c 02-Oct-2014 Michael Lentine <mlentine@google.com> am db57cfbd: Merge "When eglMakeCurrent fails we need to fix the egl state." into lmp-dev

* commit 'db57cfbd6f9d5795846ef237fd297cb81e429679':
When eglMakeCurrent fails we need to fix the egl state.
c868c78b516d5fd3f5d36dc916baab6c98800d8f 02-Oct-2014 Jesse Hall <jessehall@google.com> am 5bf786d8: surfaceflinger: recompute visibility after sideband stream change

* commit '5bf786d8f00ff8eee64ebf330dac55e33a0f97b1':
surfaceflinger: recompute visibility after sideband stream change
a51fafc4d83ab1d1582c1c870c31be44b057aa95 29-Sep-2014 Riley Andrews <riandrews@google.com> Generate the SurfaceFlinger shader cache on initialization

Blobcache is not yet enabled for surfaceflinger (as it should be).
As a temporary workaround, generate all needed shaders during
surfaceflinger initialization instead of doing the compilation
on-demand during ui transitions.

Change-Id: I14455b20a3f85f177d85c9c8b76d8ccc35379b39
enderEngine/ProgramCache.cpp
enderEngine/ProgramCache.h
17290d483b986a9838aeeb85386c14681d0d5c44 02-Oct-2014 Jesse Hall <jessehall@google.com> am bacc28ef: surfaceflinger: Use landscape resolution for default dpi

* commit 'bacc28ef1df329f4dc21bae44b09a6c5018af908':
surfaceflinger: Use landscape resolution for default dpi
20daf003aaf1f01d5ef3cd60306db3cff89512c8 02-Oct-2014 Michael Lentine <mlentine@google.com> am db57cfbd: Merge "When eglMakeCurrent fails we need to fix the egl state." into lmp-dev

* commit 'db57cfbd6f9d5795846ef237fd297cb81e429679':
When eglMakeCurrent fails we need to fix the egl state.
db57cfbd6f9d5795846ef237fd297cb81e429679 02-Oct-2014 Michael Lentine <mlentine@google.com> Merge "When eglMakeCurrent fails we need to fix the egl state." into lmp-dev
e245cdcc004ee13920aa0b74790a2b5c758662a2 02-Oct-2014 Jesse Hall <jessehall@google.com> am 5bf786d8: surfaceflinger: recompute visibility after sideband stream change

* commit '5bf786d8f00ff8eee64ebf330dac55e33a0f97b1':
surfaceflinger: recompute visibility after sideband stream change
3f121fc650d72d0103cef8e6a651093fb1589e0a 01-Oct-2014 Michael Lentine <mlentine@google.com> When eglMakeCurrent fails we need to fix the egl state.

Bug: 16676660

Change-Id: Ie7bee9c78378b9e9206060444319e6ee35e1ab74
urfaceFlinger.cpp
urfaceFlinger.h
5bf786d8f00ff8eee64ebf330dac55e33a0f97b1 30-Sep-2014 Jesse Hall <jessehall@google.com> surfaceflinger: recompute visibility after sideband stream change

We normally recompute layer visibility when a layer gets its first
buffer; before then it's treated as invisible. Sideband layers never
get a buffer (as far as SurfaceFlinger knows), so never became
visible. Now we also recompute visibility when a layer gets a new
sideband stream.

Bug: 17752511
Change-Id: I84e150f196eb2eb7bcd2616248e5e3fa73624809
ayer.cpp
2a8ae4ef70f2a3e0239a4df9bf33b4ff141594fe 29-Sep-2014 Jesse Hall <jessehall@google.com> am bacc28ef: surfaceflinger: Use landscape resolution for default dpi

* commit 'bacc28ef1df329f4dc21bae44b09a6c5018af908':
surfaceflinger: Use landscape resolution for default dpi
bacc28ef1df329f4dc21bae44b09a6c5018af908 28-Sep-2014 Jesse Hall <jessehall@google.com> surfaceflinger: Use landscape resolution for default dpi

When HWC doesn't provide DPI values for a display, we pick a default
DPI based on resolution. The intent was that 1080p and higher displays
would get XHIGH density, and lower resolutions would get TV density.
In KK (and possibly forever) we had a bug that we'd always use TV
density. That was fixed in L, but that fix exposed a pre-existing bug
that we always used the display's height in its native orientation,
rather than in landscape orientation. So an 800x1280 tablet like N7v1
started getting XHIGH density instead of the intended TV density.

Bug: 17461633
Change-Id: Ia57fa49e61f36bdda63ce283ef62c9953297222c
isplayHardware/HWComposer.cpp
53e6b95d05da4e3c4e0fcd9a0d1ed7d56a6814a1 26-Sep-2014 Jesse Hall <jessehall@google.com> am 728a8da1: Merge "surfaceflinger: Check sideband stream changed to trigger sideband Layer update." into lmp-dev

* commit '728a8da14638e718ede11a7a894705524fc9d171':
surfaceflinger: Check sideband stream changed to trigger sideband Layer update.
1b5c8839f7bbdebb3b30a6584e67402e8cb4a979 26-Sep-2014 Jesse Hall <jessehall@google.com> am 728a8da1: Merge "surfaceflinger: Check sideband stream changed to trigger sideband Layer update." into lmp-dev

* commit '728a8da14638e718ede11a7a894705524fc9d171':
surfaceflinger: Check sideband stream changed to trigger sideband Layer update.
0ea1cb91954ac1ad0973a6b9482dcb2fee2449f5 23-Sep-2014 chenhg <chenhg@marvell.com> surfaceflinger: Check sideband stream changed to trigger sideband Layer update.

BUG: 17382907
Change-Id: I65fd037bd25238ae68a3976468ae7fd7ce49c562
ayer.h
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
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
urfaceFlinger.h
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
urfaceFlinger.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.
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
7d587c31d5c9a2f76f69073036f521dc75045656 11-Sep-2014 Dan Albert <danalbert@google.com> Merge "Silence warnings about unused parameters."
5746f1497814e105352214f1bba242317856605a 10-Sep-2014 Dan Albert <danalbert@google.com> am fb017a4c: Merge "Fix clang warnings about struct vs. class."

* commit 'fb017a4c3b23741f737093c3fcb78087bbe5e73c':
Fix clang warnings about struct vs. class.
9e0e103b654b93ac526c27fd3106caac1d3006fc 10-Sep-2014 Dan Albert <danalbert@google.com> Silence warnings about unused parameters.

Change-Id: I503aafbdeaec3f53241872dc52af9f8b73a1416c
isplayDevice.cpp
isplayHardware/VirtualDisplaySurface.cpp
ayer.cpp
ayerDim.cpp
urfaceFlinger.cpp
ain_surfaceflinger.cpp
aeb8ab8c34343bd64a4b2247615ea3da97fa02f6 10-Sep-2014 Dan Albert <danalbert@google.com> Fix clang warnings about struct vs. class.

Change-Id: I9f26cd01ac3153efa6d77a4133686842e2d63203
isplayDevice.h
isplayHardware/HWComposer.h
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
isplayDevice.cpp
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
4d407a0f05ad9ba3c232ff5b6742495660c0e4ab 25-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: Trace HW vsync enable

This makes it possible to tell whether two HW vsync signals are too
far apart because one was late, or because we turned HW vsync off
briefly between them.

Bug: 17259382
Change-Id: If4fba2a8a6013568349949ce87c5c36f0468d2a2
isplayHardware/HWComposer.cpp
eb21986df0429d63f5e9678741730f07f17dcbad 22-Aug-2014 Michael Lentine <mlentine@google.com> Merge "Update currentConfig variable when active display is changed." into lmp-dev
d3e6914ceaafebaee09b0095aad6d001b75e787a 21-Aug-2014 Michael Lentine <mlentine@google.com> Update currentConfig variable when active display is changed.

Bug: 17182607
Change-Id: I8631c105a9e0fa402a7d9670717becc9857af935
isplayHardware/HWComposer.cpp
d4548dd0272f5a4edee1d7ff070458728848b35c 20-Aug-2014 Jesse Hall <jessehall@google.com> am 514e30a9: am c3d1889e: Merge "surfaceflinger: skip composition for empty frames" into klp-modular-dev

* commit '514e30a96cefad109509ce01622fa7f82f3f318c':
surfaceflinger: skip composition for empty frames
514e30a96cefad109509ce01622fa7f82f3f318c 20-Aug-2014 Jesse Hall <jessehall@google.com> am c3d1889e: Merge "surfaceflinger: skip composition for empty frames" into klp-modular-dev

* commit 'c3d1889e508038efe240ed1974ed377a2e12835c':
surfaceflinger: skip composition for empty frames
949ea0868de1df7e2f28a32d777cc41f901d6770 20-Aug-2014 Naseer Ahmed <naseer@codeaurora.org> sf: Clear display configs when hot pluggable display is disconnected

Display configs for external displays are stored in the framework
everytime we receive a hot plug to connect. However, since the
configs are not cleared on disconnect, framework will just assume
that the configs are valid. This does not work for use cases when
you connect/disconnect external displays with different resolutions.

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

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

Change-Id: I2eeab186a8d8668a53390a2413b2ce5e044a1845
Acked-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
isplayHardware/HWComposer.cpp
4d7c41008d0945b58d802e04d0bea28e9b739a5f 20-Aug-2014 Michael Lentine <mlentine@google.com> Merge "Destroy eglSurface before recreating." into lmp-dev
f2568dea419562ad75b2e79dcbd358af34e9f8ad 20-Aug-2014 Michael Lentine <mlentine@google.com> Destroy eglSurface before recreating.

Bug: 16856208

Change-Id: Ifb5c8997afab4bc922356a3542d1f899a2546855
isplayDevice.cpp
7b90258c7b1b6caf7fbbf62423723d0f4cdc79aa 20-Aug-2014 Michael Lentine <mlentine@google.com> Fix inverse orientation when original is not applied first.

Change-Id: I6f1a11950c77c99800acbf08a672bc1b2310b0b5
ayer.cpp
1440963470cda68be762957e2efb7ecbe1570366 19-Aug-2014 Michael Lentine <mlentine@google.com> Fix camera orientation by swapping horizontal and vertical flips when needed.

Bug: 16637957

Change-Id: I66de597546fdc19e0af9e6150ca20460ab36bf8b
ayer.cpp
b7a0549c983bef103ce07eb3af5905febc6e538e 15-Aug-2014 Jesse Hall <jessehall@google.com> surfaceflinger: skip composition for empty frames

By not committing the results of composition for empty frames, we
avoid spitting out series of black frames for virtual displays that
don't have visible layers. We still draw one black frame when going
from having layers to not having any. In particular, this avoids
having a series of empty frames due to re-compositing the primary
display in the period between creating the virtual display and adding
layers to it.

Bug: 16786752
Change-Id: I7e9b2ed2e407d8d49c7af736b447d4c6181b0ad8
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
f75514079434cefcdb746e8b083708d6de5f86ff 19-Aug-2014 Michael Lentine <mlentine@google.com> Incorporate TransformToDisplayInverse into the crop calculation.

Change-Id: Ia9757b3a43d3b8f99df9fef2ed4d11c43b5abdd2
ayer.cpp
2cfbef255b0e1b1b8fad3cba0e447d79a7b8203b 20-Aug-2014 Michael Lentine <mlentine@google.com> Merge "Fix inverse orientation when original is not applied first." into lmp-dev
62205596b9848d9d7d9de90aa0f5682d6ce17ea3 20-Aug-2014 Michael Lentine <mlentine@google.com> Merge "Fix camera orientation by swapping horizontal and vertical flips when needed." into lmp-dev
b3abe7c06a834d92439d034b29e3b5af632de130 19-Aug-2014 Michael Lentine <mlentine@google.com> Merge "Incorporate TransformToDisplayInverse into the crop calculation." into lmp-dev
866399093f9f60e7305f291e688abb456bace710 15-Aug-2014 Riley Andrews <riandrews@google.com> Take advantage of sync points during screen cap.

Do not wait for the screen capture to complete within surface flinger,
instead pass a sync point back with the captured gralloc buffer.

Change-Id: I7137c0e0fc710688d1d61f189159418fb27ea263
urfaceFlinger.cpp
b54ee7704e46529e02386cf39eba93a34a527c61 07-Aug-2014 Michael Lentine <mlentine@google.com> Change output format to not throw warning on volantis.

Change-Id: Id66eb61bdb1ceccfb7aefa0aa70793dac807c257
isplayHardware/HWComposer.cpp
5af281f4abb0401ebb4e614291a19780b71f236c 07-Aug-2014 Michael Lentine <mlentine@google.com> Fix HWComposer Surface Crop when surface is rotated

Bug: 15091149

Change-Id: I97ecd8af9636da9403fafdb3f9b846f95053ebb7
ayer.cpp
a02e9484be6894f8a4db7049d432f534a4e0a676 31-Jul-2014 Eric Penner <epenner@google.com> Merge "SurfaceFlinger: Prevent deadlock by updating an atomic layer set." into lmp-dev
51c59cd1e73be3787eb75bebd87fc41739c65adb 29-Jul-2014 Eric Penner <epenner@google.com> SurfaceFlinger: Prevent deadlock by updating an atomic layer set.

Bug: 12934849

Change-Id: I9dede7316f1e967de4140bd731ac810115ea302f
ayer.h
urfaceFlinger.cpp
9ae79d869a37633fa956a4f16f3fa45b23c189f1 31-Jul-2014 Michael Lentine <mlentine@google.com> Build fix for size_t on 64bit.

Change-Id: Ic16895b30d78ba8a635b709adbae31a590501b20
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
258ee43fbcbc752cb08c134a12c08d5d99c4a866 31-Jul-2014 Michael Lentine <mlentine@google.com> Build fix for printf with int64 and size_t

Change-Id: I642584cce7dd43e6d491a49228b0bce047d53354
isplayHardware/HWComposer.cpp
fd9d183cd8c859ab8480dea572430398438ba8b5 31-Jul-2014 Michael Lentine <mlentine@google.com> Build fix to use the correct source.

Change-Id: If36710be600dd0e15c31682e0343f281baa55627
isplayHardware/VirtualDisplaySurface.cpp
7306c670eb3ddb471d983a7458eb9f522afd0763 30-Jul-2014 Michael Lentine <mlentine@google.com> Add error for format and make sure setActiveConfig fails with an invalid mode.

Change-Id: Iacdb5cbad125787f96c64c88d432fc541c4cad1a
ndroid.mk
urfaceFlinger.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
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
1f6078aef71b1d3f080cd565adbec350c71088dd 27-Jun-2014 Michael Wright <michaelwr@google.com> Have VirtualDisplays send SF resize messages when resizing

Change-Id: I76d15b22099a659450ec875836c9bf2b6584838f
urfaceFlinger.h
6c9e34a98a63033b80bd1c24c7aa1304f912f10a 14-Jul-2014 Michael Lentine <mlentine@google.com> Modified SurfaceFlinger to implment setActiveConfig and getActiveConfig.

This can be used to change the current display mode of the device.

Change-Id: Icdc3fb58389b861dc77b68102083da6f7a96eccb
Tested: None
(cherry picked from commit 2651fa94635a96d653038fb389a0dd827338f8d3)
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
03414a1cfe6c1222fd7723949bd622f9cba145aa 01-Jul-2014 Riley Andrews <riandrews@google.com> Turn on support for async cursor update in surfaceflinger.

If available, surfaceflinger will use the hwc setCursorPositionAsync()
api to change the position of supported cursor layers outside of
the usual prepare/set loop.

Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
2ad9d8a6e71f80b373c3ed0fece26b286d846292 15-Jul-2014 Ruben Brunk <rubenbrunk@google.com> Merge "Add sticky transform to surfaceflinger." into lmp-dev
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
ayer.cpp
ayer.h
b154c42c39c1499c26d88fff8ca642cd86f91098 13-Jul-2014 Jesse Hall <jessehall@google.com> Improve memory coherence management in screenshot code [DO NOT MERGE]

The existing code worked in practice, but wasn't quite correct in
theory and relied on implementation details of other code. It's still
somewhat unusual and subtle, but now is correct-in-theory (I believe)
and a little better documented.

Bug: 16044767
Change-Id: I22b01d6640f0b7beca7cbfc74981795a3218b064
(cherry picked from commit c61576794e75898a829eac52fc524c8e907b4b02)
arrier.h
urfaceFlinger.cpp
24cd98eef88ac93f80c327f8d74f0a1ae0aceee4 13-Jul-2014 Jesse Hall <jessehall@google.com> Compile libsurfaceflinger with Clang and -std=c++11 [DO NOT MERGE]

This is necessary to use C11/C++11 stdlib atomics, which the next
change will do. This change also fixes a couple bits of syntax that
both GCC and Clang refuse to compile in -std=c++11 mode.

Change-Id: Ia14d9d6b537a3bb106c23e19a277e48be180754c
ndroid.mk
isplayHardware/VirtualDisplaySurface.cpp
urfaceFlinger.cpp
e9b23b6588a44d4205d466faf282de948ce09e51 15-Jul-2014 Jesse Hall <jessehall@google.com> surfaceflinger: Make all sources depend on Android.mk

This forces all SurfaceFlinger sources to be recompiled when the
Makefile changes; that's overkill sometimes but makes sure everything
gets recompiled when compile options (or similar) changes.

Change-Id: I2b3c3090fc1c35078e13c77fbb1a78d447c39158
ndroid.mk
dc56bf721a9f29621fd57e1d861142fa9b2d3663 30-Jun-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Add allocateBuffers method"
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
urfaceFlingerConsumer.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
cd13f9da9920b42843071b4ea2d01af55b590e35 20-Jun-2014 Ruchi Kandoi <kandoiruchi@google.com> Merge "SurfaceFlinger: send VSYNC power hints to IPowerManager"
ef472ec40a0fbb0ef96b79bef846f20b73da4971 02-Apr-2014 Ruchi Kandoi <kandoiruchi@google.com> SurfaceFlinger: send VSYNC power hints to IPowerManager

VSYNC power hints are now sent via binder to IPowerManager.
SurfaceFlinger no longer loads a second copy of the PowerHAL.
VSYNC power hints are sent in batches and not on per frame basis.

Change-Id: Ia5a839ab3c857cffae7089f810b4315d4ed23fcf
ndroid.mk
isplayHardware/PowerHAL.cpp
isplayHardware/PowerHAL.h
ventThread.cpp
ventThread.h
eac96b9bfd476e1c7866e5ae685e941be97513dd 19-Jun-2014 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Fix rect out-of-bounds checks"
91b2ca8562763c981c4ce93148db80adb51d0cb6 13-Jun-2014 Andy McFadden <fadden@android.com> Add two new display info fields

This adds SurfaceFlinger's app VSYNC offset and buffer deadline
values to DisplayInfo.

Bug 14612039

Change-Id: Ie0ab21d388fe2764f2b6f71bd1cefa33dc861a73
urfaceFlinger.cpp
be31f447984b3ab4ac011353b6b53216b4335e04 11-Jun-2014 Dan Stoza <stoza@google.com> SurfaceFlinger: Fix rect out-of-bounds checks

Rects' right and bottom edges are treated as exclusive, so when
checking against maximum width and height, we should use > instead
of >=.

Change-Id: Ifcdf6813c13fcab1a55f16c21064e765e93d49f0
urfaceFlinger.cpp
20071e5028adb6d7ced81843d33e4d0baa0768ed 11-Jun-2014 Wengang Wu <wgw@motorola.com> am e3d37a7b: Enable support RGBX_8888 for omap3

* commit 'e3d37a7b55f86f5d005dd67f828dcf51fe60c0f6':
Enable support RGBX_8888 for omap3
e3d37a7b55f86f5d005dd67f828dcf51fe60c0f6 06-Jun-2014 Wengang Wu <wgw@motorola.com> Enable support RGBX_8888 for omap3

Bug: 14995811
Change-Id: Iaeb5a5ad0e3bcf215613f24f2570ae0d8267c016
ndroid.mk
urfaceFlinger.cpp
7227b96a73aaca975df0a04613f317e6f42545ed 12-Jun-2014 Prashant Malani <pmalani@google.com> Merge "surfaceflinger: Replace blank/unblank with setPowerMode"
1210f2ab822e4c24333abd4af498ff20af0224fa 11-Jun-2014 Wengang Wu <wgw@motorola.com> am 20071e50: am e3d37a7b: Enable support RGBX_8888 for omap3

* commit '20071e5028adb6d7ced81843d33e4d0baa0768ed':
Enable support RGBX_8888 for omap3
645b1f7ffb41d21a60765d1ec54ba82f14a36a59 10-Jun-2014 Andy McFadden <fadden@android.com> Replace "lower power mode" experiment

This replaces the previous low-power mode experiment, which
discarded refresh events, with a new experiment that alters
the refresh period.

(see also I2849e5ea335c0d2509fea1c315392bce7f20451d )

The feature is enabled by specifying a nonzero value for the
"refresh skip count", which indicates the number of periods
to skip. For example, the command:

adb shell service call SurfaceFlinger 1016 i32 1

sets a skip count of '1', yielding a 30Hz refresh rate on a device
with a 60Hz display. Changing the last value to '2' would set the
refresh to 20Hz. '0' returns to the default behavior.

Bug 15523257

Change-Id: I00039c22a55750e74035644c63800e4bee1c774a
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
5167ec68fed047bf65b1eb0c6091534682135eef 22-May-2014 Andy McFadden <fadden@android.com> Disable DispSync resync when not needed

If app and SF events aren't using phase offsets, we don't need
to maintain the DispSync model. We just turn hardware VSYNC on
whenever something wants to draw. This avoids some edge cases
where we were doing too much resync work.

Also, updated the systrace output. The "VsyncOn" line was a
combination of SF and app event threads, and would occasionally
be very weird. Removed VsyncOn, renamed VSYNC to VSYNC-app,
and added VSYNC-sf.

Also, added more details to the --dispsync dumpsys output.

Also, renamed global constants to not look like local variables.

Bug 15516453

Change-Id: I0da10b72f0d9a7b7eb5202d87cc18967f698adbd
ispSync.cpp
ispSync.h
urfaceFlinger.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>
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
823bcce3abf536ee130a50551130d10589547cf4 29-May-2014 Brian Carlstrom <bdc@google.com> am 4ae6a267: am f3e4fda0: Merge "Remove dependencies on runtime_libdvm and libdvm.so in general"

* commit '4ae6a26719feb21b7fa1cc5f307b591858a30f26':
Remove dependencies on runtime_libdvm and libdvm.so in general
617f974e63b9e696cf578115a401d1a85534226e 29-May-2014 Brian Carlstrom <bdc@google.com> Remove dependencies on runtime_libdvm and libdvm.so in general

Bug: 14298175

(cherry picked from commit aefe55f0fb9e69be205497ef4fc3432d2f7a2d8b)

Change-Id: I05b1a7dd1ef30b3366b52b46bfc7b39cfb3be198
dmConnection.cpp
5cd72e457e8f301b2a73f8046719a0e3e5788e13 29-May-2014 Brian Carlstrom <bdc@google.com> am aefe55f0: Remove dependencies on runtime_libdvm and libdvm.so in general

* commit 'aefe55f0fb9e69be205497ef4fc3432d2f7a2d8b':
Remove dependencies on runtime_libdvm and libdvm.so in general
aefe55f0fb9e69be205497ef4fc3432d2f7a2d8b 29-May-2014 Brian Carlstrom <bdc@google.com> Remove dependencies on runtime_libdvm and libdvm.so in general

Bug: 14298175
Change-Id: I74b4a3dabf89c6b53bfe688c45d6e1167880fd95
dmConnection.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
isplayDevice.cpp
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
f0058ca0e592485ac9e5a4aedb0dd8fa187625ef 20-May-2014 Andy McFadden <fadden@android.com> Add IMPLEMENTATION_DEFINED to dump

The "dumpsys SurfaceFlinger" output shows pixel formats in
human-readable form now. Add IMPLEMENTATION_DEFINED.

Change-Id: If567e34dad4b940fbfb4d0b70c65f6ab8cd5f5e7
isplayHardware/HWComposer.cpp
39cde06aee5bc9338b1ed26513233cb54e9b446d 09-May-2014 Andy McFadden <fadden@android.com> am b6601961: Merge "DO NOT MERGE Add "dumpsys SurfaceFlinger --dispsync"" into klp-modular-dev

* commit 'b66019615da8750588f1233a77b9c686b0a248c3':
DO NOT MERGE Add "dumpsys SurfaceFlinger --dispsync"
a7f75c0dfbe6cda235123ccbb5a81638a5432f02 09-May-2014 Andy McFadden <fadden@android.com> Merge "Add "dumpsys SurfaceFlinger --dispsync""
232f5bc675f92015190e39d46586e6f87cb6fbeb 08-May-2014 Andy McFadden <fadden@android.com> DO NOT MERGE Add "dumpsys SurfaceFlinger --dispsync"

Dumps the current DispSync state.

Bug 14651879

(this is a near-cherrypick of Ide4e6dbd58b117bc1a6b97b57d10cd92ec86dc84)

Change-Id: I6e6c8452ede5c2d5098db1b884d28226e77d9a03
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
ain_surfaceflinger.cpp
c751e92c56de5f335a36e68607c7a6c627dcd0dc 08-May-2014 Andy McFadden <fadden@android.com> Add "dumpsys SurfaceFlinger --dispsync"

Dumps the current DispSync state.

Bug 14651879

Change-Id: Ide4e6dbd58b117bc1a6b97b57d10cd92ec86dc84
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
ain_surfaceflinger.cpp
d0ed571be0886987ddc7285341a8b9cb22f96899 09-May-2014 Andy McFadden <fadden@android.com> Merge "Add mutex"
150ecd8c1bd5543bf0a65ac838a7409131106716 08-May-2014 Andy McFadden <fadden@android.com> Add mutex

Change-Id: I81072031e74a5cca8384e4e8bce4babf2187d8bb
ispSync.cpp
dd02391756dff240c178f7cba21d73d62821007e 06-May-2014 Dan Stoza <stoza@google.com> Merge "Enable changing display configuration"
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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
98e1ebc026726ba045cea69b1b8c371d95db9893 02-May-2014 Andy McFadden <fadden@android.com> Merge "Improve SurfaceFlinger PTS estimation"
41d67d7ab4da1c393497a620a116a854b3c618e7 26-Apr-2014 Andy McFadden <fadden@android.com> Improve SurfaceFlinger PTS estimation

Get the next refresh time from DispSync instead of guessing based
on the current time.

Change-Id: I8dc72a3217bfd4e9b4c905034194d1a298cad69a
ispSync.cpp
ispSync.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
urfaceFlinger.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
9471c69773db672254012c43856b0c73b843b4d6 02-May-2014 Jesse Hall <jessehall@google.com> Merge "Handle failed requestBuffer after successful dequeueBuffer"
f52b3c88f18c0546526996c839fbce74172e11c7 25-Apr-2014 Ruchi Kandoi <kandoiruchi@google.com> SurfaceFlinger: Adds the functionality to reduce refresh rate to half of
the default.

Feature added for the low power mode.

Change-Id: I2849e5ea335c0d2509fea1c315392bce7f20451d
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
ispSync.cpp
ispSync.h
urfaceFlinger.cpp
0b63cd105cae094c21aafaa2bac8322427e75827 30-Apr-2014 Jesse Hall <jessehall@google.com> Handle failed requestBuffer after successful dequeueBuffer

If the virtual display consumer disconnects after the
VirtualDisplaySurface dequeues a buffer but before it requests it, the
request will fail. Previously the error was ignored, and the caller
would get a success result but a NULL buffer. Now the dequeued buffer
is cancelled and the error propagated to the caller.

Bug: 14140551
Change-Id: I91547885c2cf6063dc7a8f02d97f2df282cdde2c
isplayHardware/VirtualDisplaySurface.cpp
466954565be8cac018e86e3bddad4e1f4850fa70 25-Apr-2014 Andy McFadden <fadden@android.com> Merge "Update HWC dump format"
bba1385d1cfdbe80d7e5f441d943edd4c5708eca 23-Apr-2014 Dan Stoza <stoza@google.com> am f3c07d4f: Fix virtual display nesting

* commit 'f3c07d4f70f33c2fe5b14ca8fbcdfa4133cc72c7':
Fix virtual display nesting
4df87bd1f6f68126e5e9081fc1365ae500e375db 22-Apr-2014 Andy McFadden <fadden@android.com> Update HWC dump format

Shortens a few fields. Displays the format as a string.

Change-Id: Ib471f05603763e250bad165db610f8e173e8423a
isplayHardware/HWComposer.cpp
ayer.h
f3c07d4f70f33c2fe5b14ca8fbcdfa4133cc72c7 05-Feb-2014 Dan Stoza <stoza@google.com> Fix virtual display nesting

This fixes the cycling rendering loop caused by nesting virtual
displays by preventing them from recomposing if their contents
haven't changed.

(cherry-pick from master I600365c0fd5d3ad93e04295d26cf9de177ffc79b)

Bug: 12101046
Change-Id: I6182993d53537781aedb522f97a50f06eed8b80f
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
fb39827ebce4637dcba03770f6644cf67e932e06 21-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Increase max slots from 32 to 64"
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
fd34b65f717b84fa06d8c37f41b070f41d0ad3a3 11-Apr-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Add producer buffer-released callback"
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
lient.cpp
lient.h
rameTracker.cpp
rameTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
4cd47b2e0eac8eb1c4a9d69e716e6dc0e2da7227 10-Apr-2014 Wonsik Kim <wonsik@google.com> Merge "Fix sideband stream issues"
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
ayer.cpp
onitoredProducer.cpp
onitoredProducer.h
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
ayer.cpp
4098f03d5c9fb8522279ca04da70bec6793b2caa 05-Apr-2014 Ruchi Kandoi <kandoiruchi@google.com> Revert "SurfaceFlinger: send VSYNC power hints to IPowerManager"

This reverts commit d469a1c3285b974cf2637517cc25727da8f82668.
ndroid.mk
isplayHardware/PowerHAL.cpp
isplayHardware/PowerHAL.h
ventThread.cpp
ventThread.h
d469a1c3285b974cf2637517cc25727da8f82668 02-Apr-2014 Ruchi Kandoi <kandoiruchi@google.com> SurfaceFlinger: send VSYNC power hints to IPowerManager

VSYNC power hints are now sent via binder to IPowerManager.
SurfaceFlinger no longer loads a second copy of the PowerHAL.
VSYNC power hints are sent in batches and not on per frame basis.

Change-Id: Icc2eee5df56135bd24dc244a84e7c12dd5511fec
ndroid.mk
isplayHardware/PowerHAL.cpp
isplayHardware/PowerHAL.h
ventThread.cpp
ventThread.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
onitoredProducer.cpp
onitoredProducer.h
8b834ffd9b1c5df77413e99a3fdfacf6cd89ed52 28-Mar-2014 Jesse Hall <jessehall@google.com> am 1b751203: am 50ef8562: Merge "GraphicProducerWrapper may return false transact status"

* commit '1b7512036f3ea55cb1f62777ba6e56aad781f11c':
GraphicProducerWrapper may return false transact status
1b7512036f3ea55cb1f62777ba6e56aad781f11c 28-Mar-2014 Jesse Hall <jessehall@google.com> am 50ef8562: Merge "GraphicProducerWrapper may return false transact status"

* commit '50ef8562fe7289495ad8592226f3c4d546119892':
GraphicProducerWrapper may return false transact status
c2633ce19bdbca4cbf8d6a225ede68a0afd693b9 20-Mar-2014 bdeng3X <bingx.deng@intel.com> GraphicProducerWrapper may return false transact status

GraphicProducerWrapper(GPW) changed how the methods of
BpGraphicBufferProducer(BpGBP) are executed.
First, "fake" BpGBP is created. Its remote is GPW. The GPW has
wrapped the real BpGBP.
All the method calls to the fake BpGPB will be intercepted by
the GPW inside it when the methods run into remote()->transact().
Then the GPW will invoke the transact() of the real BpGBP. And
Everything runs well except that the GPW forgets to store the
transact status and always return NO_ERROR to the fake BpGBP.

It would be disastrous if the binder call of the IGBP failed and
the out parameter "reply" of transact() was in unkown state.
E.g. the queueBuffer() in the fake BpGBP will try to operate on
the "reply". This will crash the SurfaceFlinger.

Change-Id: I01b31f64e1fc92804da3f16c1fb1420dcfb3b855
Signed-off-by: bdeng3X <bingx.deng@intel.com>
Signed-off-by: Guobin Zhang <guobin.zhang@intel.com>
urfaceFlinger.cpp
b9b088375d33a87b201cdbe18be71802e2607717 13-Mar-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Bug: 13415624
Change-Id: I9fe15e45daa7351f1db34ee75bfee6f19cb347d3
ndroid.mk
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
onitoredProducer.cpp
onitoredProducer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.h
urfaceTextureLayer.cpp
urfaceTextureLayer.h
8bf3b1a4964188d4ad0b96cd12174f2ba5c1eddd 18-Mar-2014 Wonsik Kim <wonsik@google.com> Merge "Revert "Implement video plane layer""
29fa9590ad32d918cb32cc88898ec53d28e1ad5a 17-Mar-2014 Wonsik Kim <wonsik@google.com> Revert "Implement video plane layer"

This reverts commit f837c93a1b392dbc4f7099d0c4fb723e32ca438e.

Change-Id: I6a1aa9ad0aca023267dc53d19c950b1535123ca7
ndroid.mk
ayerVideoPlane.cpp
ayerVideoPlane.h
urfaceFlinger.cpp
urfaceFlinger.h
993146092f8205d9747f082ccd63c09b536caa4e 14-Mar-2014 Mark Salyzyn <salyzyn@google.com> am d4dabf87: am cdbf28b3: Merge "native frameworks: 64-bit compile issues"

* commit 'd4dabf872ac0a12e12aebae9032f7d62762c2aeb':
native frameworks: 64-bit compile issues
73ed82f809a40560fd3a6d53d18e5c846362d764 13-Mar-2014 Jesse Hall <jessehall@google.com> Merge "Add sideband streams to BufferQueue and related classes"
d4dabf872ac0a12e12aebae9032f7d62762c2aeb 13-Mar-2014 Mark Salyzyn <salyzyn@google.com> am cdbf28b3: Merge "native frameworks: 64-bit compile issues"

* commit 'cdbf28b3f7f5327f4cb0eb95b8326bf4c24c87ba':
native frameworks: 64-bit compile issues
92dc3fc52cf097bd105460cf377779bdcf146d62 12-Mar-2014 Mark Salyzyn <salyzyn@google.com> native frameworks: 64-bit compile issues

- Fix format (print/scanf)
- Suppress unused argument warning messages (bonus)

Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
ispSync.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWComposer.cpp
essageQueue.cpp
enderEngine/GLES11RenderEngine.cpp
enderEngine/Program.cpp
88a459a9b37f3b4eb3c9a044ad7af30616ad66c9 12-Mar-2014 Dan Stoza <stoza@google.com> VirtualDisplaySurface: no attach/detach support

Change-Id: I630dd6e352940318c33a4e072d2f33a6ec58c556
isplayHardware/VirtualDisplaySurface.cpp
c9ed7d376882ff3c32913473fecd729c804dad0e 12-Mar-2014 Dan Stoza <stoza@google.com> Merge "BufferQueue: Allow detaching/reattaching buffers"
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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
cd554e36a85e39556149ce4609da6e5fe0a6a176 10-Mar-2014 Alan Viverette <alanv@google.com> Don't simulate color space after correction

Change-Id: Ied0918ffa2be5f9382e693f442b142b3e068e735
ffects/Daltonizer.cpp
55886cb12828a2cb57b82efaf30050ea9dc418bb 08-Mar-2014 Greg Hackmann <ghackmann@google.com> am 7429e4f7: am 112aa42e: Merge "SurfaceFlinger: fix 64-bit format string warnings"

* commit '7429e4f7d43cd42563ce77a3a4a861a392bc750f':
SurfaceFlinger: fix 64-bit format string warnings
7429e4f7d43cd42563ce77a3a4a861a392bc750f 08-Mar-2014 Greg Hackmann <ghackmann@google.com> am 112aa42e: Merge "SurfaceFlinger: fix 64-bit format string warnings"

* commit '112aa42e91b4bb0cde334753e2ad05e3f248b377':
SurfaceFlinger: fix 64-bit format string warnings
86efcc0cbc1d94250b72ef1f2ea8700a04cd2781 07-Mar-2014 Greg Hackmann <ghackmann@google.com> SurfaceFlinger: fix 64-bit format string warnings

Change-Id: Idacfbf0601743fba1c5de7632201a66a307a2710
Signed-off-by: Greg Hackmann <ghackmann@google.com>
isplayDevice.cpp
ventThread.cpp
rameTracker.cpp
urfaceFlinger.cpp
e4cf2f20dd10bfaf96d636bb5363aa25f8bc95ae 27-Feb-2014 Wonsik Kim <wonsik@google.com> Merge "Implement video plane layer"
f837c93a1b392dbc4f7099d0c4fb723e32ca438e 24-Feb-2014 Wonsik Kim <wonsik@google.com> Implement video plane layer

Binding with video source will follow.

Change-Id: Ic14e9757f5b61f4055cbeda47c1bafae0a621abb
ndroid.mk
ayerVideoPlane.cpp
ayerVideoPlane.h
urfaceFlinger.cpp
urfaceFlinger.h
a9d27063a1d5586116acb50c5a37ff29684993eb 25-Feb-2014 Jesse Hall <jessehall@google.com> am 9d65631f: am c9bf3ba4: Merge "Virtual Display async mode is overridden"

* commit '9d65631f5de153b50331d9f63225fe60ba70f8bc':
Virtual Display async mode is overridden
9d65631f5de153b50331d9f63225fe60ba70f8bc 25-Feb-2014 Jesse Hall <jessehall@google.com> am c9bf3ba4: Merge "Virtual Display async mode is overridden"

* commit 'c9bf3ba411c66dd1d977c81f1aca08109cbf8c86':
Virtual Display async mode is overridden
4ee5696dfbcea1078b24e7c089de74e7cf4e55ca 21-Feb-2014 John Dong <johnd@broadcom.com> Virtual Display async mode is overridden

Virtual Display async setting is overridden by eglApi.c causing
stall during composition.

Set the async mode after eglCreateWindowSurface()

b/13139121

Change-Id: I336ca145552e387217cd8bea6e4b7f5f490a274d
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
isplayDevice.cpp
d14b0c1860c9a16297064fbec84395369bbd74af 21-Feb-2014 Colin Cross <ccross@android.com> am 361d9df3: am 6b4ecf31: Merge "surfaceflinger: add BoardConfig.mk variable to force 32-bit"

* commit '361d9df38cf9760baffc863d5364a1df9cf8be6b':
surfaceflinger: add BoardConfig.mk variable to force 32-bit
361d9df38cf9760baffc863d5364a1df9cf8be6b 21-Feb-2014 Colin Cross <ccross@android.com> am 6b4ecf31: Merge "surfaceflinger: add BoardConfig.mk variable to force 32-bit"

* commit '6b4ecf314461067c0e05130edaf785fb010f471a':
surfaceflinger: add BoardConfig.mk variable to force 32-bit
89450d45ac6ac70c8b36872e9a0c53457e24be61 21-Feb-2014 Colin Cross <ccross@android.com> surfaceflinger: add BoardConfig.mk variable to force 32-bit

Individual devices may need to force surfaceflinger to compile for
32-bit if they don't have 64-bit GL libraries.

Change-Id: I3703b2f8e36e90cf125d9ed5e6318c3506861948
ndroid.mk
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
ayer.cpp
ayer.h
urfaceFlinger.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
isplayDevice.cpp
ayer.cpp
ayer.h
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
urfaceFlinger.h
7143316af216fa92c31a60d4407b707637382da1 05-Feb-2014 Dan Stoza <stoza@google.com> Fix virtual display nesting

This fixes the cycling rendering loop caused by nesting virtual
displays by preventing them from recomposing if their contents
haven't changed.

Bug: 12101046
Change-Id: I600365c0fd5d3ad93e04295d26cf9de177ffc79b
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.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
ayer.cpp
ayer.h
urfaceFlinger.cpp
ef11a6c887891be04c4ca9cc60bcad8d022189b3 28-Jan-2014 Jesse Hall <jessehall@google.com> am ade9a911: am f65ebc3b: am f5bcb391: Merge "SurfaceFlinger: mFbProducerSlot initailization"

* commit 'ade9a911d04dbd4bfbd3e80a917ea67a581b4797':
SurfaceFlinger: mFbProducerSlot initailization
fdfde88d0bcd0b293c9deb37f49254bdd97e4dac 23-Jan-2014 mayank parshar <mayankp@broadcom.com> SurfaceFlinger: mFbProducerSlot initailization

b/12487813

SurfaceFlinger crash is observed during simulation of
Secondary display

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

Change-Id: Iae5845fb82735e01de5cc0dc582d13c27e3c614f
Signed-off-by: mayank parshar <mayankp@broadcom.com>
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
isplayHardware/VirtualDisplaySurface.cpp
467113c6fcb1f4714d84d6d097c5525ae0130d00 26-Jan-2014 Jesse Hall <jessehall@google.com> am 25f75c36: am 8c303f7e: am fcf9c1ba: Merge "SurfaceFlinger: mFbFence initialization"

* commit '25f75c361098086ffa2b87dcc3f22ac5f64c05be':
SurfaceFlinger: mFbFence initialization
b988f85fc44efd24f11f2e5ab8fb9b653916f666 10-Jan-2014 mayank parshar <mayankp@broadcom.com> SurfaceFlinger: mFbFence initialization

MobC00383030
b/12487813

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

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

Change-Id: I581defc7135ac512080c0da06a62b1dae7d218c4
Signed-off-by: mayank parshar <mayankp@broadcom.com>
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
isplayHardware/VirtualDisplaySurface.cpp
524672571f1df138eb913e672aaa74e0257aa8c0 03-Jan-2014 Jesse Hall <jessehall@google.com> am 03691218: am e5f7bf74: am b6c21004: Merge "Implement per-display EGLConfig and configless EGLContext"

* commit '03691218ada2fb7e084ad4ae7ddd54f9b28d5611':
Implement per-display EGLConfig and configless EGLContext
10ca42cbdc75c6a36d0b72dadbe845d990e31e95 03-Jan-2014 Jesse Hall <jessehall@google.com> am 4c37d088: am 6c7dcfa9: am 662d3134: Merge "Move EGLConfig selection to RenderEngine"

* commit '4c37d0886ca06c290e205cad2798406361bbbf53':
Move EGLConfig selection to RenderEngine
19e872912af66c53a4350afcc333bbafaf6a2294 24-Dec-2013 Jesse Hall <jessehall@google.com> Implement per-display EGLConfig and configless EGLContext

Bug: 12230666
Change-Id: Icca608b108cbdcab9cf01a9236d8cdbda000a836
Signed-off-by: Jesse Hall <jessehall@google.com>
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
05f8c703d4a050669ff8f406be3a9dc2357935f7 24-Dec-2013 Jesse Hall <jessehall@google.com> Move EGLConfig selection to RenderEngine

Bug: 12230666
Change-Id: I8d1111a7e0fd9d9e2525e6a80da8ce46d7dd085d
Signed-off-by: Jesse Hall <jessehall@google.com>
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
494600a755971db9638dd8b85053b410d5ca265b 19-Dec-2013 Brian Carlstrom <bdc@google.com> am 285bfefb: am c1bf6fa9: am 7fea2361: Merge "Track Looper decoupling from ALooper"

* commit '285bfefb01f24e98348628c115eb6c524417ea82':
Track Looper decoupling from ALooper
fe761ab6c72bdcdb8a2cf0df1524f526d8609fee 13-Dec-2013 Brian Carlstrom <bdc@google.com> Track Looper decoupling from ALooper

Change-Id: I612f0de7002e24948a4cbbea7b416b4fbb3929aa
essageQueue.cpp
324c69b542cf051e86cead592ff6a103ce1dbb34 08-Nov-2013 Jesse Hall <jessehall@google.com> am 1ee45c2d: am 14e8b01a: Don\'t change the framebuffer target until we render a new one

* commit '1ee45c2d2d816ee912624d81ff1b0aaa98e8fa74':
Don't change the framebuffer target until we render a new one
14e8b01a761180250671f3d6494532d8bd04fa8e 07-Nov-2013 Jesse Hall <jessehall@google.com> Don't change the framebuffer target until we render a new one

Continuing to send the last-rendered framebuffer to HWC on subsequent
frames allows the HWC to read partially-composed regions that haven't
changed, instead of re-composing from scratch.

Bug: 11573910
Change-Id: I8829877d2a06001f1e1b3f168cbba71c7b217b2d
isplayHardware/VirtualDisplaySurface.cpp
ad78055746c9b1b3f0563133971800812bfed1f6 07-Nov-2013 Jesse Hall <jessehall@google.com> am 2d32aa59: am 356c2386: Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev

* commit '2d32aa5918de1c12c54a32e8eb28bbc96d430796':
Provide virtual display output buffer to HWC in prepare
356c23865d588659f1eea55bbe7e2b16b9cff08e 07-Nov-2013 Jesse Hall <jessehall@google.com> Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev
45c9c0477de6d376019d458fbe17c07cf64f72ca 06-Nov-2013 Jesse Hall <jessehall@google.com> am f111ee13: am 49318631: Merge "Don\'t use implementation-defined format with CPU consumers" into klp-dev

* commit 'f111ee13a6f5d8606c5dc7a5cc07cedf929e69a8':
Don't use implementation-defined format with CPU consumers
493186312a9a8c0215da0d6d3a9b0369491c0796 06-Nov-2013 Jesse Hall <jessehall@google.com> Merge "Don't use implementation-defined format with CPU consumers" into klp-dev
f7a675837bdad03d398c9b6f0f593b9c51c679b5 06-Nov-2013 Jesse Hall <jessehall@google.com> Provide virtual display output buffer to HWC in prepare

We were already making sure the HWComposer class had the handle before
prepare, but it wasn't passing the handle along to HWC as intended.

Partial fix for bug: 11430248
Change-Id: I25f672c4fdfaa6a81fe0acb24d9ad05153ee17dc
isplayHardware/HWComposer.cpp
1a8e6bf9661a4939f3c70e055143575d77fc6756 05-Nov-2013 Jamie Gennis <jgennis@google.com> am 39c5ea2c: am ee874caa: Merge "DispSync: remove delay when enabling vsync events" into klp-dev

* commit '39c5ea2caaddd7ea44eaeed38d3760fbc421ad56':
DispSync: remove delay when enabling vsync events
497ba0e08503806571b52ebe27cc7eee4c0e71a7 05-Nov-2013 Jesse Hall <jessehall@google.com> Don't use implementation-defined format with CPU consumers

If the virtual display surface is being consumed by the CPU, it can't
be allowed with HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED since there is
no way for the CPU consumer to find out what format gralloc chose. So
for CPU-consumer surfaces, just use the BufferQueue's default format,
which can be set by the consumer.

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

Bug: 11479817
Change-Id: I5b20ee6ac1146550e8799b806e14661d279670c0
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
41c3c496ff507554da1c6099c600809608bdbb81 29-Oct-2013 Jamie Gennis <jgennis@google.com> DispSync: remove delay when enabling vsync events

This change fixes a bug that caused an extra frame of latency when enabling
vsync event callbacks in DispSync. The bug was related to the logic that
prevents the two events from firing with very little time between them due to
updates to the vsync model.

Bug: 11479720
Change-Id: Ie7eaff9e92ffb7b7b6cb4d3d4402c96cbd29af7e
ispSync.cpp
45cb6ec7158939964f96a2a7ff6dc7591ebf9bb5 25-Oct-2013 Jesse Hall <jessehall@google.com> am 96002be4: am c354effe: Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS

* commit '96002be4bd4b8bbfecba2cc45bdf0b47f06464bc':
Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
c354effe97be26638618e3bc0da81a3f8b384b20 25-Oct-2013 Jesse Hall <jessehall@google.com> Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS

related to b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: I2dc8d65a74174aa833cc491264f97f1f2df49307
ndroid.mk
isplayHardware/VirtualDisplaySurface.cpp
6fdaaf5c7cf7c511a5e3cea8aaafdad7ff12e596 24-Oct-2013 Jesse Hall <jessehall@google.com> am a54a8b63: am 93fcb823: Merge "Add a boardconfig to force HWC composition of virtual displays" into klp-dev

* commit 'a54a8b63d191d2c1c4669f89b32c4b8a9c04cd31':
Add a boardconfig to force HWC composition of virtual displays
014dd9f0f28c3992f9fae62a62fa7e8bfe750a06 24-Oct-2013 Jesse Hall <jessehall@google.com> am 48775386: am c5807f90: Merge "Use implementation-defined format when HWC writes to output buffer" into klp-dev

* commit '487753868aa86902f723dbdedd7083783701188d':
Use implementation-defined format when HWC writes to output buffer
6a968462f9ce4d93d81fcc13672073e3e6eb2e0f 04-Oct-2013 Naseer Ahmed <naseer@codeaurora.org> Add a boardconfig to force HWC composition of virtual displays

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

Bug: 8316155
Change-Id: If980ecc589f138cef063eafa757f7f748196713e
ndroid.mk
isplayHardware/VirtualDisplaySurface.cpp
1e27ba234c5bfd4f6535ee221a6c20407a50f868 27-Sep-2013 Jesse Hall <jessehall@google.com> Use implementation-defined format when HWC writes to output buffer

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

Bug: 8316155
Change-Id: Iee6ee8404282036f9fd1833067cfe11dbadbf0bf
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
cd65a2c51e2f0d7756274fad0ad2c2fe698d2229 16-Oct-2013 Jamie Gennis <jgennis@google.com> am bbfbe93c: am 0a645cc5: SurfaceFlinger: give SF its own vsync phase

* commit 'bbfbe93c0d2d6c7818e23219d2925f02ddf5bd92':
SurfaceFlinger: give SF its own vsync phase
5727fc08ba39bb53e9191447e1b3144ea244ae0e 16-Oct-2013 Jamie Gennis <jgennis@google.com> am 47c772e8: am d1700756: SurfaceFlinger: Add EventControlThread

* commit '47c772e8ec28eb0a3df9c8edd252f292c7c8e152':
SurfaceFlinger: Add EventControlThread
c6694b4cb4829164cd490869c557103f310fd761 16-Oct-2013 Jesse Hall <jessehall@google.com> resolved conflicts for merge of e94d204a to master

Change-Id: Idb2030dbb25a2e4b972492587558b25a305e68bd
0a645cc5a935e67a8d1effc7679a838160b971d8 15-Oct-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: give SF its own vsync phase

This change allows SurfaceFlinger to run at a different vsync phase offset from
that used by external listeners.

Bug: 11175503
Change-Id: I561c53a5659fa6dc1e3e4ae30340f3c1a6adceb4
ndroid.mk
urfaceFlinger.cpp
urfaceFlinger.h
d1700756ec9520c3fba22f9a14fd064a6e288810 14-Oct-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: Add EventControlThread

This change adds a new thread for calling HWComposer's eventControl
asynchronously. The DispSync-based vsync approach ends up enabling and
disabling HWComposer's vsync callbacks at arbitrary times, and some HWComposer
implementations do not have these calls optimized.

Bug: 11175503
Change-Id: I719be82bd200b391c61d40863b991c7b59acdfd6
ndroid.mk
ventControlThread.cpp
ventControlThread.h
urfaceFlinger.cpp
urfaceFlinger.h
adbb3062e1a3d675531367c055572664fc46280d 15-Oct-2013 Jesse Hall <jessehall@google.com> am a04fd39c: am 8e26b28b: Filter out vsync events from HWC with duplicate timestamps

* commit 'a04fd39cb88bb6df5f639464f70795f58cd0aefa':
Filter out vsync events from HWC with duplicate timestamps
948fe0ce74c13e1bbff233883c158519fa8fb293 14-Oct-2013 Jesse Hall <jessehall@google.com> Disable hardware vsync when blanking the screen

Bug: 11220224
Change-Id: I99d0a42e1a6bb0aaf89706f6d100e9ef2a5deaa4
urfaceFlinger.cpp
urfaceFlinger.h
8e26b28be62e7c0e093900540db5e5cdcf52a0ff 14-Oct-2013 Jesse Hall <jessehall@google.com> Filter out vsync events from HWC with duplicate timestamps

Bug: 11220224
Change-Id: I4efe0b66ea8969bf0ec3c4fcb325d354c8a0c315
isplayHardware/HWComposer.cpp
4df2dae1c9265460c50635d2d37a547171239473 14-Oct-2013 Jesse Hall <jessehall@google.com> am 44b09f8b: am 44e45cfe: Merge "DispSync: don\'t compensate for wakeup latency" into klp-dev

* commit '44b09f8b55bef56e06ad584db231916c17e30f5b':
DispSync: don't compensate for wakeup latency
9c8b3097e6a6023af0432a369740a98510faf975 14-Oct-2013 Andy McFadden <fadden@android.com> am af4ae923: am 6410c8c4: Merge "Use black for blackout layer" into klp-dev

* commit 'af4ae923c3f8a2e40d74eb6291da16b4a6514449':
Use black for blackout layer
44e45cfeb37a04c206730b12ff001525ebe42a7b 13-Oct-2013 Jesse Hall <jessehall@google.com> Merge "DispSync: don't compensate for wakeup latency" into klp-dev
6410c8c4097f1a3246aa3d03b3291d47f982bc4b 11-Oct-2013 Andy McFadden <fadden@android.com> Merge "Use black for blackout layer" into klp-dev
c6f216955966e93ea983ba800e651af3de6c90e3 11-Oct-2013 Andy McFadden <fadden@android.com> Use black for blackout layer

SurfaceFlinger was rendering dark purple for secure content, which
showed up when we took a screen shot for the orientation change
animation. Use black instead.

Bug 11157921

Change-Id: I3895e8168891d49dc5b84eed599bcd0a303bb70a
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES20RenderEngine.cpp
19cd5bc78c6aa3fc4b828e6e33d0a52e0e34ac91 11-Oct-2013 Jesse Hall <jessehall@google.com> am 8c76d2a1: am 5c65efe2: Merge "Wake up disp sync thread when setting display period" into klp-dev

* commit '8c76d2a16ede579fd2069647ff73591bb6d6a235':
Wake up disp sync thread when setting display period
5c65efe2b1d632226f02751e6b1d3cfd7c8ecb26 11-Oct-2013 Jesse Hall <jessehall@google.com> Merge "Wake up disp sync thread when setting display period" into klp-dev
72f69d9f2348efa580c7e1e1659865c638e41357 10-Oct-2013 Jesse Hall <jessehall@google.com> Wake up disp sync thread when setting display period

Bug: 10624956
Change-Id: I272c15f319521bfbd1bb70451366c7dd84d60bf9
ispSync.cpp
95e4a7d9f357d276fa0dcecd3936b0e95c473a4f 10-Oct-2013 Andy McFadden <fadden@android.com> am c00ab7b5: am 2d8d120d: Fix blank / partial screenshots

* commit 'c00ab7b5aafb7625ad7ebd2af107936df3efc98b':
Fix blank / partial screenshots
0d5c60edf11fdded738acf3f78a0c667599cd60d 10-Oct-2013 Jamie Gennis <jgennis@google.com> DispSync: don't compensate for wakeup latency

This change removes the wakeup latency compensation from the software-generated
vsync events. Choreographer can't handle timestamps in the future, so don't
aim for early wake-ups with the expectation that the actual wake-up will be
late.

Bug: 11153576
ispSync.cpp
2d8d120dc175c131a75e93fb1de61a9f432ddce9 10-Oct-2013 Andy McFadden <fadden@android.com> Fix blank / partial screenshots

The screen capture code wasn't waiting for the render to finish,
so sometimes you'd see an empty or partial image.

Bug 11131777

Change-Id: Ic64087322ce3bb15bb5f4fb1eb07579880fe6197
urfaceFlinger.cpp
b85d2cf0a20e46261db8fee4839840f0ef715c68 09-Oct-2013 Jamie Gennis <jgennis@google.com> resolved conflicts for merge of 790b6d09 to master
faf77cce9d9ec0238d6999b3bd0d40c71ff403c5 31-Jul-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: SW-based vsync events

This change adds the DispSync class, which models the hardware vsync event
times to allow vsync event callbacks to be done at an arbitrary phase offset
from the hardware vsync. This can be used to reduce the minimum latency from
Choreographer wake-up to on-screen image presentation.

Bug: 10624956
Change-Id: I8c7a54ceacaa4d709726ed97b0dcae4093a7bdcf
ndroid.mk
ispSync.cpp
ispSync.h
isplayHardware/HWComposer.cpp
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
794c5ba973f6d107a8277f3f389cb3051c6ce5d7 04-Oct-2013 Alan Viverette <alanv@google.com> Simplify color adjustment using homogeneous coordinates

Change-Id: Ie31abacb134c29d82a6041fa7d521f68a1a273af
enderEngine/ProgramCache.cpp
urfaceFlinger.cpp
c5214289d6279d71d7396a941e5ad6969ba053dc 02-Oct-2013 Dave Burke <daveburke@google.com> am 9b4b1180: am 06993503: Merge "only clear FB when asked for the opaque layer" into klp-dev

* commit '9b4b1180941f4d2ef9d3e7bd26bc1855ff9fb141':
only clear FB when asked for the opaque layer
0699350336cccc244bb6c52a0d910f9599253812 02-Oct-2013 Dave Burke <daveburke@google.com> Merge "only clear FB when asked for the opaque layer" into klp-dev
fee52e20b9fc9a02dbeeb75458972c14682c5400 02-Oct-2013 Jesse Hall <jessehall@google.com> am f3fa0712: am 93573e91: Merge "Treat composition frames with no layers as using GLES composition" into klp-dev

* commit 'f3fa0712282e760c316f44cba05f884f9399b98f':
Treat composition frames with no layers as using GLES composition
10a9ca1c6934092132bb7d5f0073dec68c017294 02-Oct-2013 Jesse Hall <jessehall@google.com> am 72d270c5: am b716e570: Set the outbuf acquire fence after we actually have it.

* commit '72d270c5f0918d1dc7a6a1774b80469c9f28b7ea':
Set the outbuf acquire fence after we actually have it.
93573e91c22ba8329222c69cd7f099f5703fb444 02-Oct-2013 Jesse Hall <jessehall@google.com> Merge "Treat composition frames with no layers as using GLES composition" into klp-dev
0c6fd94c13402ef56010cc2f122768bf9bf35dd9 02-Oct-2013 Jesse Hall <jessehall@google.com> am 92d7c3ee: am b65f32eb: Fix two EGLConfig selection bugs

* commit '92d7c3ee03109cf2d465a103b828b7d7d3ee9848':
Fix two EGLConfig selection bugs
b716e57048e945d5bceda33c2434c65d06464dba 02-Oct-2013 Jesse Hall <jessehall@google.com> Set the outbuf acquire fence after we actually have it.

In GLES-only mode, we don't have the outbuf acquire fence until after
GLES composition is done for the frame. We were setting the fence in
HWC's state immediately after dequeueing the buffer from the consumer,
before GLES had started. This fence got passed through HWC and on to
the consumer, so the consumer was reading the buffer before GLES was
done writing to it.

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

Bug: 11000763
Change-Id: Iea9db4c69634c352dc2d600f0bdb6bef2a432636
isplayHardware/VirtualDisplaySurface.cpp
ac68302e1cde8b931073929311fd6654a3253fc7 02-Oct-2013 Mathias Agopian <mathias@google.com> only clear FB when asked for the opaque layer

a layer need to be considered NOT opaque if it has a
plane-alpha.

Bug: 10846930
Change-Id: Ibd8981b63ede4560c7096bacc4cff46a7eb2a8bb
urfaceFlinger.cpp
d05a17fbb3772051d287f1f8830a7f00964f7ec2 01-Oct-2013 Jesse Hall <jessehall@google.com> Treat composition frames with no layers as using GLES composition

When there are no window layers for a display, SurfaceFlinger clears
the undefined region using GLES. Some of the places that check for
GLES composition weren't considering this special case, in particular:

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

This change centralizes the logic for this special case.

Bug: 10957068
Change-Id: I2deaf2ed101e8ea76708862a6bb67751b6078794
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
b65f32ebe2c86869b07ac1c986660dfb2187b7d3 28-Sep-2013 Jesse Hall <jessehall@google.com> Fix two EGLConfig selection bugs

This fixes two bugs introduced by
Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d

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

Bug: 10935622
Change-Id: Ib798a24e7cf06a679811c46eaa45d39174a715ec
urfaceFlinger.cpp
urfaceFlinger.h
ff98f3e598cc5ccf8daaf18ba93600b5b1a61a26 26-Sep-2013 Mathias Agopian <mathias@google.com> am 338acd68: am 86206b41: Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev

* commit '338acd6869532f2684cbd1e4f273eaffc6d4ef6d':
fix initialization of framebuffer target crop rect on hwc 1.3
2b3d0c407987f6f47ccc2e9ebd6c61dbd0c37306 26-Sep-2013 Mathias Agopian <mathias@google.com> am 0ff4b283: am 6da15f46: fix crashers with wifi/virtual displays

* commit '0ff4b28396d77a0ed2f191836895a891108a8b5b':
fix crashers with wifi/virtual displays
86206b41b2ff000e086301c6bafb8da577e563b2 26-Sep-2013 Mathias Agopian <mathias@google.com> Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev
8f63c2049b93819c41d390fc4222b9307e3a61c7 26-Sep-2013 Mathias Agopian <mathias@google.com> fix initialization of framebuffer target crop rect on hwc 1.3

Bug: 10936771
Change-Id: If283e5e231ca34b93e0b1784bb4e8e4c7bfd75de
isplayHardware/HWComposer.cpp
6da15f46f5f8b38e31384d641f8d3db2c3c6ea30 26-Sep-2013 Mathias Agopian <mathias@google.com> fix crashers with wifi/virtual displays

Bug: 10647742
Change-Id: I4b8ed9da52ef95af3a3b3a04b98514a3776a674d
isplayHardware/VirtualDisplaySurface.cpp
urfaceFlinger.cpp
1c479c56da44c8942ab3d858ebcc19e4a6f76786 20-Sep-2013 Mathias Agopian <mathias@google.com> am 754bad45: am d555684c: reinstate black-screenshot debugging code

* commit '754bad4534e9a2de8b4e3ecbe097993c71246f91':
reinstate black-screenshot debugging code
4d5755389d111eb58ba5bdade84a39614dd222ed 20-Sep-2013 Mathias Agopian <mathias@google.com> am f589dd29: am e2a3e872: Merge "Fix GLES context version selection" into klp-dev

* commit 'f589dd2915587994d3dd36eff2191962fe0b71c0':
Fix GLES context version selection
d555684cb36dfb959694db76962e570184f98838 20-Sep-2013 Mathias Agopian <mathias@google.com> reinstate black-screenshot debugging code

turned off by default.

Bug: 10809349
Change-Id: I3e6b8c7860e6b0e122b8f07de4020967cd1f005c
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/HWComposer.cpp
2185f8b420ee1b150f761893a9c47cffff645cde 19-Sep-2013 Mathias Agopian <mathias@google.com> Fix GLES context version selection

Explicitly selects an ES 2.0 config first, then an ES 1.x config,
before attempting the fallback path for the emulator.

Bug: 10820214
Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d
enderEngine/RenderEngine.cpp
urfaceFlinger.cpp
urfaceFlinger.h
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
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
isplayDevice.cpp
isplayDevice.h
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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.
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
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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
83cafffeac037ab2f9d00f98f8d2f3da8fc9b857 17-Sep-2013 Jesse Hall <jessehall@google.com> Stop using default value for Surface producerControlledByApp parameter

Bug: 10785749
Change-Id: Ifbf9340e5eabe621a69e990ec3e05ac51f8db66a
isplayDevice.cpp
urfaceFlinger.cpp
9c5a3335110769993d3fe997bdf1d594954d4304 13-Sep-2013 Alan Viverette <alanv@google.com> Add API for pushing color transforms to SurfaceFlinger

BUG: 9057596
Change-Id: Iea0953366eac875b7968897a75472c25a137edb5
enderEngine/ProgramCache.cpp
urfaceFlinger.cpp
urfaceFlinger.h
ff2ed70fa30f04b90dd1a2c06ec2319e157152d7 02-Sep-2013 Mathias Agopian <mathias@google.com> color blindness enhancement

This is an attempt at improving the experience of
users with color vision impairement.

At this time this feature can only be enabled for
debugging:

adb shell service call SurfaceFlinger 1014 i32 PARAM

with PARAM:
0 : disabled
1 : protanomaly/protanopia simulation
2 : deuteranomaly/deuteranopia simulation
3 : tritanopia/tritanomaly simulation
11, 12, 13: same as above w/ attempted correction/enhancement

The enhancement algorithm tries to spread the "error"
such that tones that would otherwise appear similar can be
distinguished.

Bug: 9465644

Change-Id: I860f7eed0cb81f54ef9cf24ad78155b6395ade48
ndroid.mk
ffects/Daltonizer.cpp
ffects/Daltonizer.h
ayer.cpp
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/Mesh.h
enderEngine/Program.cpp
enderEngine/Program.h
enderEngine/ProgramCache.cpp
enderEngine/ProgramCache.h
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
ransform.cpp
ransform.h
9b5534b0e5e1510f56e6a2c58ad0816167603ebd 31-Aug-2013 Mathias Agopian <mathias@google.com> Merge changes I8283a989,I64add89a into klp-dev

* changes:
switch to use mat4
vector and matrix classes for graphics use
87967c186995d1500875c495cba8f04f7cff76cc 30-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Force async behavior for the virtual display output BufferQueue" into klp-dev
8db92553e9e6263cd41eaf1a1ebc9e3f88f92b5f 30-Aug-2013 Jesse Hall <jessehall@google.com> Force async behavior for the virtual display output BufferQueue

Bug: 10551087
Change-Id: I40bbb2b87d64420939a0ea309254f281437dab56
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
19733a32799f792125913e746e8644d16f8dc223 29-Aug-2013 Mathias Agopian <mathias@google.com> minor clean-up of the GLESRenderer

Change-Id: I978dea25b7687fbbbb283f09c24e115d9bad49a2
ayer.cpp
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
931bda1c472ba8c8e965bdba6757ff94154df903 29-Aug-2013 Mathias Agopian <mathias@google.com> reset the gl viewport at each frame for each display

Bug: 10097128, 9506003
Change-Id: Ie0403a631e339a9134216224f3366f46ece58b53
isplayDevice.cpp
urfaceFlinger.cpp
a8c386f1c36e916c1df18d41a22104d655a89817 27-Aug-2013 Mathias Agopian <mathias@google.com> switch to use mat4

Change-Id: I8283a989cfd2b74d53958150bc90298bc083fee7
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES20RenderEngine.cpp
enderEngine/Program.cpp
enderEngine/Texture.cpp
enderEngine/Texture.h
f2e4fcd96c11861bd0af1a9525344c1b691c9de9 24-Aug-2013 Mathias Agopian <mathias@google.com> Merge changes I34935d21,If423cd29 into klp-dev

* changes:
handle several vsync signal correctly
only use format compatible with CPU consumers
ed127ea3834045597a072dcf31877ff3084582ff 24-Aug-2013 Mathias Agopian <mathias@google.com> Merge "make sure SF initialization is ran at target priority and correct thread group" into klp-dev
9414d67f46d315873502b909ee51bab7abf3f9cc 24-Aug-2013 Mathias Agopian <mathias@google.com> make sure SF initialization is ran at target priority and correct thread group

SF can spawn threads (indirectly) during initialization
and we want those to be spawned at URGENT_DISPLAY_PRIORITY
(in theory they should set their own, but some code lives
in vendor libraries and doesn't).

Bug: 10430209
Change-Id: I5b3a8f979297de287614c8eafd8267bef1176e4b
ndroid.mk
urfaceFlinger.cpp
ain_surfaceflinger.cpp
bcab7b17b1c5476935a6f2f916922b4eb57991a4 24-Aug-2013 Mathias Agopian <mathias@google.com> fix DimLayer in GLES2.0 SF

DimLayer state wasn't initialized properly.

Bug: 10442967
Change-Id: I384c1d85c58c96ae29d5daa1fabee9f4ce003501
enderEngine/GLES20RenderEngine.cpp
bef42c50ebda2d63400f92611e1dd857c03bb38c 22-Aug-2013 Mathias Agopian <mathias@google.com> handle several vsync signal correctly

Change-Id: I34935d2197ce8e914fef2f110896e47b44225ad2
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
4ceff3d5efd27c164788bb2b3f0fd17c691a0204 22-Aug-2013 Mathias Agopian <mathias@google.com> screenshot layers wouldn't work in some cases

specifically when the display size and the screenshot window
size didn't match, the buffer would be rejected.
We simply fix this by setting the scalling mode to
"SCALE_TO_WINDOW".

Bug: 9992306
Change-Id: Ib821767899af330bb70d3cbbfa7d41b02794a075
ayer.cpp
urfaceFlinger.cpp
a525483dc73df39a72c9b4865102a86704b3622c 21-Aug-2013 Mathias Agopian <mathias@google.com> Merge "Fix a bug where non-cropped layer could be scaled incorrectly" into klp-dev
d2cf8c2f07b4285a224acd262e6f052c37dbc0b0 21-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Provide HWC prepare with a valid output buffer" into klp-dev
7127d17db148ad388a4eb3c152d4c257c6015476 21-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Fix HWComposer dumping of float source crops" into klp-dev
32551478fc5417d3b7b5e33a202eb6ca66061f7d 21-Aug-2013 Andy McFadden <fadden@android.com> Merge "Fix virtual displays for HWC 1.0" into klp-dev
0e8f1443b87f9009159cef6394de48894f98f826 21-Aug-2013 Mathias Agopian <mathias@google.com> Fix a bug where non-cropped layer could be scaled incorrectly

If a layer is not cropped but its bounds are outside of the
viewport (i.e.: clipped), the crop rectangle passed to
hw composer would be invalid because it started invalid
in the first place (to indicate "no crop").

Bug: 10410944
Change-Id: I4ae4d49a1adef0be7fa4304ecf84b1a5b7d03fe0
ayer.cpp
028dc8f2d72bc7cd4fbe7808781443125a742f78 21-Aug-2013 Jesse Hall <jessehall@google.com> Provide HWC prepare with a valid output buffer

We weren't dequeing and setting the output buffer until just before
set(). This didn't allow HWC to make decisions in prepare() based on
the output buffer format, dimensions, etc.

Now we dequeue the output buffer at the beginning of the composition
loop and provide it to HWC in prepare. In GLES-only rendering, we may
have to cancel the buffer and acquire a new one if GLES requests a
buffer with properties different than the one we already dequeued.

Bug: 10365313
Change-Id: I96b4b0a851920e4334ef05080d58097d46467ab8
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
353ddc6e77816352107537c215dc8302f6e8587a 21-Aug-2013 Jesse Hall <jessehall@google.com> Fix HWComposer dumping of float source crops

Change-Id: I45a9344b5fab17ccb54bebd01382d738a03860e6
isplayHardware/HWComposer.cpp
22a99f0fc2884227b9d7e46959fcbe6270667efb 21-Aug-2013 Andy McFadden <fadden@android.com> Fix virtual displays for HWC 1.0

We weren't swapping the buffers.

Bug 10366404

Change-Id: I43eb7648231bedf24899da6fc0d9acc09e0b047e
isplayDevice.cpp
4f4f0943489d9113c66ac22b58cfba8c21dfa879 20-Aug-2013 Mathias Agopian <mathias@google.com> SurfaceFlinger now runs in the process's main thread

it used to spawn its own thread and return the main thread
to the binder thread pool -- this was confusing the naming
of things in the kernel.

Bug: 10331839

Change-Id: I2d13a6d73409a38109300fcbe6a04b4c41cb5d00
ndroid.mk
lient.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
ain_surfaceflinger.cpp
90f59bf9eba79b27629505bc2709d84e7c811c8b 19-Aug-2013 Andy McFadden <fadden@android.com> Merge "Re-enable frame dropping for non-auto timestamps" into klp-dev
7c6278de6e2aed171362012d578d8bd093c8f280 18-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Use new HWC display type/count constants." into klp-dev
49457ac092071a8f964f7f69156093657ccdc3d0 15-Aug-2013 Mathias Agopian <mathias@google.com> Encapsulate textures into their own Texture class

the main reason for doing this is so that we can have
access to informations about a texture (like its dimension)
close to where we generate and use shaders in ES 2.0.
Previously, there wasn't any way to get to a texture's size
from a RenderEngine implementation.

Bug: 8679321

Change-Id: I388b338a70d07e3e8177dde248710ea1e4c82dff
ndroid.mk
ayer.cpp
ayer.h
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/Program.cpp
enderEngine/ProgramCache.cpp
enderEngine/RenderEngine.h
enderEngine/Texture.cpp
enderEngine/Texture.h
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
isplayHardware/VirtualDisplaySurface.cpp
9e663de4fe1dcc872373ee530c60a375624671c3 16-Aug-2013 Jesse Hall <jessehall@google.com> Use new HWC display type/count constants.

Change-Id: I774d0c68906ac6dc69268f708c30a6b0868b8816
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
e048a4374c4e355c361f5eec0482ac85df0c73fe 16-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Add support for EGL_KHR_gl_colorspace" into klp-dev
e0ec2a956840fa70387883f422b6020c1dfc6bad 16-Aug-2013 Mathias Agopian <mathias@google.com> Merge "Fix ES2 composition on some devices" into klp-dev
2eaefe198a0cae1ee0b6366797a6b074c76df9ef 15-Aug-2013 Mathias Agopian <mathias@google.com> Simplify handling of opaque layers in shader generation

just ensure the alpha value is 1.0 in the opaque case
when reading the color from the texture or the
global color.

Bug: 8679321

Change-Id: Ia38b30e97c3bce5a2d534a40c0d66e0bfc3ea40d
enderEngine/ProgramCache.cpp
458197de008be8fe561286b09f4edddb2f5c540a 15-Aug-2013 Mathias Agopian <mathias@google.com> Fix ES2 composition on some devices

- turns out fragment shaders don't have default precision by default
- GLES 1.x extensions that became core in GLES 2.0 don't always work
as extensions in GLES 2.0 (!)

Bug: 8679321
Change-Id: I5a4a93e158247910399325a965af5d2e3bbece9b
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/ProgramCache.cpp
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
6db4ff621898573b41abf570271a04a13bd36a69 15-Aug-2013 Andy McFadden <fadden@android.com> Disable GLES 2.x rendering

Bug 10340705

Change-Id: I91f3baf0d79655d8d031c100d0b116f745c2fbef
enderEngine/RenderEngine.cpp
892f22dcb96927b4a4f9ab7badd6f2c9f4f37c1f 15-Aug-2013 Andy McFadden <fadden@android.com> Initialize mIndent

Bug 10334731

Change-Id: Ia3aa118a1516cc480b0d85179b78c4447f982dd6
enderEngine/ProgramCache.cpp
5cdc8994a0ecd751a6350b16a1bef8b6b0d09b11 14-Aug-2013 Mathias Agopian <mathias@google.com> don't reallocate the mesh each time we use it

the Mesh object can be part of each Layer (at least currently).
also reworked the Mesh code a bit to make it easier to access
the vertex data.

Change-Id: I0490851ba898f0aa2e55b62958dcd8bdb535e98b
ayer.cpp
ayer.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES20RenderEngine.cpp
enderEngine/Mesh.cpp
enderEngine/Mesh.h
enderEngine/RenderEngine.cpp
3f84483382be2d528918cc1a6fbc6a7d68e0b181 08-Aug-2013 Mathias Agopian <mathias@google.com> SurfaceFlinger now uses GLES 2.x when available

Bug: 8679321

Change-Id: I2b152d01fb4e2de2ea9fe87f1ddbd6826d7520d7
ndroid.mk
isplayDevice.cpp
ayer.cpp
ayer.h
ayerDim.cpp
enderEngine/Description.cpp
enderEngine/Description.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLES20RenderEngine.cpp
enderEngine/GLES20RenderEngine.h
enderEngine/Mesh.cpp
enderEngine/Mesh.h
enderEngine/Program.cpp
enderEngine/Program.h
enderEngine/ProgramCache.cpp
enderEngine/ProgramCache.h
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
5ff5a84e4829bad9eb44cc9a32d8579ca089051b 14-Aug-2013 Mathias Agopian <mathias@google.com> allow "system" screenshots even when the secure flag is set

we need too allow this case so that things like the rotation
animation can work.
with this change we only permit these screenshot if the
destination is SurfaceFlinger itself.

Bug: 10235036
Change-Id: I66fea5391e52b0d7f17f25827572b236f2d9eb71
urfaceFlinger.cpp
c2e41222bf02a6579763974f82d65875cfa43481 08-Aug-2013 Jesse Hall <jessehall@google.com> Add support for EGL_KHR_gl_colorspace

Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
ayer.cpp
a6bb107434ad36739c21e1f72ac8d0107808a7b9 08-Aug-2013 Mathias Agopian <mathias@google.com> make sure we have a context when creating the 1st surface

also add an option to dump the stack trace when
calling a GL function without a context.

Change-Id: I57b72bb8c322ac4253c3077bf150621bd9863b69
urfaceFlinger.cpp
6c913be9ca95fd6b556d056e165a4ba6dc69795b 08-Aug-2013 Jesse Hall <jessehall@google.com> Add ISurfaceComposer::destroyDisplay

Bug: 10191053
Change-Id: Ia89286f95421344a60ffedaaca5825c4e3cd7f9e
urfaceFlinger.cpp
urfaceFlinger.h
ff866e7642033d8f68c11eaa16d0afcecf0bab5b 07-Aug-2013 Jesse Hall <jessehall@google.com> Merge "Set the swap interval of virtual display surfaces to 0"
f460f55c84b0a75de749b8a784059f5ff423ed93 07-Aug-2013 Jesse Hall <jessehall@google.com> Set the swap interval of virtual display surfaces to 0

This prevents slow/malicious virtual display consumers from
backpressuring SurfaceFlinger and preventing it from updating other
displays.

Bug: 10193714
Change-Id: I3e877d97202628d2d9abea24b66576f38299c14d
isplayDevice.cpp
isplayDevice.h
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
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlingerConsumer.h
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
urfaceTextureLayer.cpp
aaff4ef717c08f6aed7ccd96e1d65222ceb4fd17 30-Jul-2013 Mike J. Chen <mjchen@google.com> SurfaceFlinger: Set the result of binderized screencapture

A recent change to screencapture to have the call to
IGraphicBufferProducer happen on the incoming binder
thread didn't set the result so the result was always
returned as NO_ERROR.

This made screencap fail on some devices (e.g. Wolfie)
which relies on some kind of fallback mechanism to
generate the screencap but the fallback mechanism
doesn't get triggered because the error isn't returned.

Bug: 9989385

Change-Id: I2aee91ea1034869fcbb0f49b9a0087c3cff43bbe
Signed-off-by: Mike J. Chen <mjchen@google.com>
urfaceFlinger.cpp
ad678e18b66f495efa78dc3b9ab99b579945c9e2 24-Jul-2013 Mathias Agopian <mathias@google.com> single buffer mode for BufferQueue

Bug: 9891035
Change-Id: Id1ab5f911a6dc4c1d8235e65775b3d3635231ad4
isplayHardware/FramebufferSurface.cpp
urfaceFlingerConsumer.cpp
c2414bb0989763641ca57cf72c11ef6d86565a23 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of HAL pixelformats 5551 and 4444

Change-Id: I39409103144c1ba09078c4ddc323a58987fb09ea
ayer.cpp
dd533712f8dd21c0dadfd5ce8a0ad85aa3e96ada 27-Jul-2013 Mathias Agopian <mathias@google.com> make transparent pixels transparents again

apparently boolean logic in hard...

Change-Id: Ie70401fe12e0fa00b0b8c7cc475c1438cdbbf531
ayer.cpp
5773d3f5b2694c647e010246dff99acc70131289 26-Jul-2013 Mathias Agopian <mathias@google.com> get rid of PixelFormatInfo and simplify things

Change-Id: I025a362cc12d5b9b794fac14be500e25aab65396
ayer.cpp
urfaceFlinger.cpp
1d4f79c48237e8720538b59cd2ecb5a2a5e5e9d8 24-Jul-2013 Jamie Gennis <jgennis@google.com> Merge "surfaceflinger: add frame duration logging"
6547ff4327aa320fbc9635668d3fc66db7dd78f6 17-Jul-2013 Jamie Gennis <jgennis@google.com> surfaceflinger: add frame duration logging

Change-Id: Ib414a45e7e191f23a2726cbbbeb606e9ce68a3b5
ventLog/EventLog.cpp
ventLog/EventLog.h
ventLog/EventLogTags.logtags
rameTracker.cpp
rameTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
7ffaa7c60d51cc0eb731158de2ac3df9c50cc0b4 22-Jul-2013 Mathias Agopian <mathias@google.com> move services executables sources in their respective src folder

Change-Id: Ic65434a26c7fed1699abf0851fec6faa40e09c0c
ndroid.mk
ain_surfaceflinger.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
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
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
isplayHardware/FramebufferSurface.cpp
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
urfaceTextureLayer.cpp
urfaceTextureLayer.h
bce7611e8e4514026bf12f96baaf9168f6d5894e 16-Jul-2013 Jesse Hall <jessehall@google.com> Fix build -- update for function signature change

Change-Id: I9c2448d5853c69ec7e962847fdaba9a99906cc42
isplayHardware/VirtualDisplaySurface.cpp
3bc38408882487dc2a63ba036394addd839b0695 16-Jul-2013 Jesse Hall <jessehall@google.com> Merge "Rewrite VirtualDisplaySurface"
7f069d79e7f04192610ef93901c89835fea46444 16-Jul-2013 Mathias Agopian <mathias@google.com> Merge "always pass the BufferQueue explicitely to consumers"
38efe86d9459cf5c96a24a34cc5cbf31fdba7e19 07-Apr-2013 Jesse Hall <jessehall@google.com> Rewrite VirtualDisplaySurface

The previous implementation assumed that the HWC could read and write
the same buffer on frames that involved both GLES and HWC composition.
It turns out some hardware can't do this. The new implementation
maintains a scratch buffer pool to use on these mixed frames, but on
GLES-only or HWC-only frames still does composition directly into the
output buffer.

Bug: 8384764
Change-Id: I7a3addb34fad9bfcbdabbb8b635083e10223df69
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
8f938a53385a3c6d1c6aa24b3f38437bb2cc47ae 13-Jul-2013 Mathias Agopian <mathias@google.com> always pass the BufferQueue explicitely to consumers

Change-Id: I883b0a7b19d8e722f9ab714ba6f49e658b02ca86
ayer.cpp
urfaceFlingerConsumer.h
883140d0bff7ea516c27ade0215c4671b6512f88 13-Jul-2013 Jesse Hall <jessehall@google.com> Merge "SurfaceFlinger: EventThread: Fix Vsync array size."
5c876fa6b2a75ccfa7efe97b5f660b9c19d280e0 12-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> SurfaceFlinger: EventThread: Fix Vsync array size.

Vsync array size is specified as HWC_DISPLAY_TYPES_SUPPORTED whose
value luckily happens to be 2. That enum is actually used for querying
hwc for the number of displays supported.

The implementation file EventThread.cpp correctly accesses the array
upto HWC_NUM_DISPLAY_TYPES

Change-Id: I36e3f0913e7d6fda7bbf4449c1fb32c7f18bb934
Signed-off-by: Amara Venkata Mastan Manoj Kumar<manojavm@codeaurora.org>
Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>
ventThread.h
c33f9a76b5dff1a9b4e4d0c76459c0d5b36a0d74 11-Jul-2013 Andy McFadden <fadden@android.com> Merge "Pay attention to buffer timestamps"
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
isplayHardware/FramebufferSurface.cpp
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
6b44267a3beb457e220cad0666c039d3a765cdb2 10-Jul-2013 Mathias Agopian <mathias@google.com> fix SF buffer cropping

When a buffer had a crop (meaning its content is scaled to the window size)
and a window crop was defined, the resulting crop couldn't be expressed
properly because h/w composer's API was limited to integers, since
this is fixed in h/w composer 1.3, we take adventage of this to
make sure we get the correct crop.

this bug could result in the buffer being scaled by an incorrect ratio and
be slightly offset; moreover, it would produce different results from the
GL code path, which is always correct.

Change-Id: I8e20e00b6e26177d14f4ab4d2cd581e26c818892
isplayHardware/FloatRect.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
2ed0fe59b482f8d6b35a50ebc8e9e060813f4568 09-Jul-2013 Mathias Agopian <mathias@google.com> fix a bug where surfaceflinger and system_server could deadlock

because surfaceflinger handles screenshot in a different
thread from the binder thread that requested it and because
the IGraphicBufferProducer is a synchronous interface
calling back into the system server; it is possible for
the latter to run out of binder threads (b/c it holds
a lock while calling into SF).

The solution is to make sure all calls on IGraphicBufferProducer
happen on the incoming binder thread. We achieve this by creating
a IGBP wrapper which is given to the screenshot code.

Bug: 8734824

Change-Id: I2be85660d9dc65d239d68f6d3ab3c973c13b34cc
urfaceFlinger.cpp
547e98f33c829eb2e3948a57e491a9106afa1f5e 09-Jul-2013 Mathias Agopian <mathias@google.com> Merge "Refactor SF. Move all GL operations in their own class."
fee2b463c5fbe8fa0132d03634ccc02ea55c1505 03-Jul-2013 Mathias Agopian <mathias@google.com> Debug code for detecting all black pixels screenshots

Bug: 9120292
Change-Id: If60db32524db973bb1f905ba3cb415c2a1cd7e71
urfaceFlinger.cpp
urfaceFlinger.h
875d8e1323536e16dcfc90c9674d7ad32116a69a 08-Jun-2013 Mathias Agopian <mathias@google.com> Refactor SF. Move all GL operations in their own class.

this is the first step to add support for GLES 2.x, this
change breaks the dependency of SF on GLES 1.x by moving
all operation into their own class.

Bug: 8679321

Change-Id: I0d2741eca2cefe67dfd9cf837cac10c4d126928b
ndroid.mk
isplayDevice.cpp
isplayDevice.h
LExtensions.cpp
LExtensions.h
ayer.cpp
ayer.h
ayerDim.cpp
ayerDim.h
enderEngine/GLES10RenderEngine.cpp
enderEngine/GLES10RenderEngine.h
enderEngine/GLES11RenderEngine.cpp
enderEngine/GLES11RenderEngine.h
enderEngine/GLExtensions.cpp
enderEngine/GLExtensions.h
enderEngine/RenderEngine.cpp
enderEngine/RenderEngine.h
urfaceFlinger.cpp
urfaceFlinger.h
98d3d6ec1250248574f2e8d72e5c934fecbcd734 27-Jun-2013 Lajos Molnar <lajos@google.com> SurfaceFlinger: fix releaseBuffer in updateTexImage

Allow releasing a buffer acquired in the past.

Change-Id: I3f27f1caec109c1a47286fc4d2235c6e1afe9022
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 9516405
urfaceFlingerConsumer.cpp
1eae0ee49402c39f1b08cc8fec129023f86494b7 06-Jun-2013 Mathias Agopian <mathias@google.com> clean-up SurfaceFlinger a bit

- most methods on Layer didn't need to be virtual
- more consistency in naming drawing/current state

Change-Id: Ieb7b4951b40fc673b807994ed21ae4aea7281068
ayer.cpp
ayer.h
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
2e3a7f1e3d4e6f2d4ceecf2121d3ba2fd2ef84df 06-Jun-2013 Mathias Agopian <mathias@google.com> Merge "Basic binary event-log helpers"
7cc6df59572582652078df5aeac9e6c67d7fa81e 05-Jun-2013 Mathias Agopian <mathias@google.com> fix a possible deadlock when removing a layer and destroying a client

generally the last reference to a Layer is released in commitTransaction()
with mStateLock held. Layer itself only holds weak references to Client,
however, ~Layer() briefly promotes this weak reference -- during that time
the all other strong references to that Client go away, ~Layer is left with
the last one... then hell breaks loose as ~Client is called, which in turn
needs to acquire mStateLock.

We fix this by holding a temporary copy of the drawing state during
the transaction so that the side-effects of copying the current
state into the drawing state are seen only after mStateLock has
been released.

Bug: 9106453
Change-Id: Ic5348ac12283500ead87286a37565e8da35f1db2
urfaceFlinger.cpp
85cce376cbeecb185ba485c69643bfabe72fe794 05-Jun-2013 Mathias Agopian <mathias@google.com> Basic binary event-log helpers

EventLog can be used from SurfaceFlinger to log jank
statistics events to the binary event log.

Change-Id: If0fbbe7d7111f10957697166d37fd0c3418109bb
ndroid.mk
ventLog/EventLog.cpp
ventLog/EventLog.h
ventLog/EventLogTags.logtags
29c3f352797d9d2ddf055d8f888e7694ef8b3947 22-May-2013 Jesse Hall <jessehall@google.com> Prevent opaque windows from making framebuffer translucent

To keep the code readable now that we have four different texenv
configurations, this change separates the decisions about what
configuration to use from the GL calls to set up the configuration.

Bug: 8963244
Change-Id: Ia07a306a7809ba8f93493d0160ccbd509e948581
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/FramebufferSurface.cpp
urfaceFlingerConsumer.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
e6eef6c136b007f3a7e1e19884875b855c0c5f95 17-May-2013 Mathias Agopian <mathias@google.com> am ea74d3b7: make the warning timout of Fence::waitForever() implicit and longer

* commit 'ea74d3b78d607cde17790a7bb83e6f68ffd34cfd':
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
isplayHardware/HWComposer.cpp
59eaeed5fabc27942d62327fa460ebb8bd2f3822 14-May-2013 Jesse Hall <jessehall@google.com> am 28fc78bf: am e8fed71d: Merge "Abort surface composition if hw surface is invalid"

* commit '28fc78bf5fbb6288a27f3f25565a960a1873b0ef':
Abort surface composition if hw surface is invalid
28fc78bf5fbb6288a27f3f25565a960a1873b0ef 14-May-2013 Jesse Hall <jessehall@google.com> am e8fed71d: Merge "Abort surface composition if hw surface is invalid"

* commit 'e8fed71da2d3e03ef933d308520bab5b860f05aa':
Abort surface composition if hw surface is invalid
c8c71096195de0128e57574b1ddf685838ceb2f0 05-Mar-2013 Michael Chock <mchock@nvidia.com> Abort surface composition if hw surface is invalid

If an invalid display device is detected during surface composition
(e.g., a simulated secondary display is removed), abort the
composition.

Change-Id: Ia6afb2e287882d8ae0614eb25463d3f85b687adf
urfaceFlinger.cpp
f3e85d432749ca77ad707bec523b67d741d43e6e 11-May-2013 Mathias Agopian <mathias@google.com> take the "transparent region" into account for blending

until now it was only used to discard a layer entirely.
we're now reducing the size of the layer if it is still
visible, if possible.

this works for instance when a surfaceView is used and
only the menu bar is displayed over it.

Change-Id: I3f5527c5cd1e69ecc968272c8948f1513ada8c55
ayer.cpp
6c7f25afb75ac155bad0b3bc17c0089d0337d060 10-May-2013 Mathias Agopian <mathias@google.com> reformat Rect.{cpp|h}

Change-Id: I45b1f6646541a1abacce1e70df00a770e47b820e
isplayDevice.cpp
ayer.cpp
b6df7d0e4c2117ca476662bd52b6745b3d8a305f 09-May-2013 Mathias Agopian <mathias@google.com> make all libsurfaceflinger and libsensorservice symbols's visibility hidden

we only export the main entry-point.
this saves about 150KB.

Change-Id: I55eb2b6705386fdfa43860deb62f9cdd2a0982aa
ndroid.mk
urfaceFlinger.h
c0db61966a172c953b4259bd0501c9b6781f0f31 09-May-2013 Jesse Hall <jessehall@google.com> am dda42952: am 64f3b2fd: Merge "Remove experimental HWC virtual display support" into jb-mr2-dev

* commit 'dda4295221f831560ca9d554cd9b7be1c672d0b6':
Remove experimental HWC virtual display support
e737c11cd83a449d9a544c5c6d4e0dfd42250a56 07-May-2013 Jesse Hall <jessehall@google.com> Remove experimental HWC virtual display support

Bug: 8384764
Change-Id: I97b52ed83ad85466bd91cb9291308994048568a1
ndroid.mk
isplayHardware/BufferQueueInterposer.cpp
isplayHardware/BufferQueueInterposer.h
isplayHardware/HWComposer.cpp
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
0aea53ff3f71f9f8df55d1cf58fd586442582643 24-Apr-2013 Mathias Agopian <mathias@google.com> use a Framebuffer Object to render all screenshots

this allows us to render into a buffer with a
pixelformat of our own choice; this is much faster
on all platform.

Bug: 8582615
Change-Id: I61298fc8e43fa6f92044c5123955cb5c7897dab7
urfaceFlinger.cpp
urfaceFlinger.h
3e25fd8609b100a75721be82d1d499f0ae9083cb 22-Apr-2013 Mathias Agopian <mathias@google.com> Add a --color option to dumpsys SurfaceFlinger

colorize a bit the output of dumpsys SurfaceFlinger to
make it easier to read. Right now it will bold the
title of each section and use green for the name of
each layer.

Change-Id: I0d9f18d115401cb45109d244ef3a278481f68cc6
olorizer.h
ayer.cpp
ayer.h
urfaceFlinger.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
isplayDevice.cpp
isplayDevice.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
ventThread.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
bd1153382e7a9d89922bea999a52ca21d46d6caa 19-Apr-2013 Mathias Agopian <mathias@google.com> allow dumpsys SurfaceFlinger in user builds from the shell user

Bug: 8659013
Change-Id: I1de43bb5808cb8c1103cfc73dca59ff70fc13f91
urfaceFlinger.cpp
48be323236f9fc41620a17e182eea800351812c5 13-Apr-2013 Mathias Agopian <mathias@google.com> Merge "make sure to update the "current state" when we "fake" the transaction" into jb-mr2-dev
6c67f0fe457f758fc875e1178d8fd5258fd8f6df 13-Apr-2013 Mathias Agopian <mathias@google.com> make sure to update the "current state" when we "fake" the transaction

this mimics the code we used for the size. basically we need to
also update the "current state" because it gets copied to the
"drawing state" when a transaction occurs, and it would
"undo" our change.

Bug: 8511430
Bug: 8581533
Change-Id: I08c02abbf21b7f168f7124cd14ee717d7d3d502c
ayer.cpp
5e5bed60d03b5556ada351b010ed14ae8f1515ae 12-Apr-2013 Chet Haase <chet@google.com> Merge "DO NOT MERGE Make sure surfaces always have latest orientation info" into jb-mr2-dev
180f10de6f504d2ba56ff32ae8ed53c58bb458e9 11-Apr-2013 Mathias Agopian <mathias@google.com> Improve screenshot performance on some devices (DO NOT MERGE)

this affects devices that need a glReadPixels(). We use
a FBO instead of a GlConsumer as an intermediate render target, this
saves 2 calls to eglMakeCurrent().

On Galaxy Nexus this allows us to go from ~135ms to ~35ms for
recent's screenshots.

Bug: 8582615
Change-Id: I6b25291ecc235f1927579bbb2db3c731e985c6e8
urfaceFlinger.cpp
urfaceFlinger.h
91d25932b6651b20159a737da6140cf8a6aaaf08 12-Apr-2013 Chet Haase <chet@google.com> DO NOT MERGE Make sure surfaces always have latest orientation info

When the screen is turned off, the current stack is set to -1. This causes
logic in iSurfaceFlinger's handleTransactionLocked() function to fail to
match the current stack, and the latest orientation is not set into the
layer. This causes BufferQueue, later, to potentially set an obsolete
transformHint on a created surface (such as in the case with ImageWallpaper's
Egl surface, in the bug below).

The fix is to note this situation and use a default value for the DisplayDevice,
which should have the current orientation information.

Issue #8508397 ImageWallpaper sometimes rendered in wrong orientation causing a ~30-40% drop in graphics performance

Change-Id: Ibae15d73b289a8343c67f4f6bb77fdf11dd95ee7
urfaceFlinger.cpp
d19e519f673adcc5d12fcca549e577eea74f31aa 11-Apr-2013 Mathias Agopian <mathias@google.com> Merge "fix another bug where screenshots could end-up all black" into jb-mr2-dev
9eb1f0558b5fc78920602afe7bcfa3115bb1f6be 11-Apr-2013 Mathias Agopian <mathias@google.com> fix another bug where screenshots could end-up all black

SF transactions were always handled on VSYNC which allowed
the screenshot to sneak-in between closing the transaction
and vsync (before it's latched), resulting in a screenshot
with the previous state.

we now always force transactions to happen immediately
before screenhots.

Bug: 7552304
Change-Id: I0afc86b7e8366173daff5b9988bbb4d2a0f43860
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
8a0cb4ee0b6c351de82987efb472fa38dfaf608a 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: I2ca4fa00dde0b574df3619134836bcb9315bd506
ndroid.mk
1df59c93fea8bec21b8084c34aface086f1e0896 06-Apr-2013 Jesse Hall <jessehall@google.com> Merge "Tell HWComposer the dimensions of virtual displays" into jb-mr2-dev
d5e345b0cf5c1c5aaa5c10a1a4c759e74d77fb37 06-Apr-2013 Jesse Hall <jessehall@google.com> Merge "Actually set the virtual display output buffer." into jb-mr2-dev
1c569c4d45f89ec05abf8f8fe3a560e68bf39a8e 05-Apr-2013 Jesse Hall <jessehall@google.com> Tell HWComposer the dimensions of virtual displays

HWComposer queries the HWC for dimensions of physical displays, but
can't do that for virtual displays. The dimensions are used to set the
display frame of the framebuffer target layer passed to HWC, and
implicitly the dimensions of the virtual display.

Bug: 8316155
Change-Id: I9cbd2530d2fa878f86128a1472def520b5d694a5
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
6d5b8e600e77164d3b5e51b89bf9c940fd7b4ea2 05-Apr-2013 Jesse Hall <jessehall@google.com> Merge "Clean up HWC state when releasing a DisplayDevice" into jb-mr2-dev
2ba647e9f5249d9ed97739d29d879064e31ba34a 04-Apr-2013 Jesse Hall <jessehall@google.com> Actually set the virtual display output buffer.

Bug: 8316155
Change-Id: Ida1ac47e5a932fdaad3ec862e121cfe55d255699
isplayHardware/VirtualDisplaySurface.cpp
2ca79399b933935eb1b6c0ec1f746f8c4475369c 03-Apr-2013 Mathias Agopian <mathias@google.com> latch transparent region hint only when we get a new frame

since the transparent region hint really depends on the
content of the window containing the SurfaceView
(it's calculated by the view hierarchy based on
overlapping views), it makes sense to latch it only when
the content of the window (the app) changes.

This should help fixing drawing artifacts when changing the
layout of a window containing a SurfaceView.

Bug: 8511430
Change-Id: Ic3aa668495293cb4d82a2cd7dcf3b6a337287678
ayer.cpp
ayer.h
urfaceFlinger.cpp
33ceeb32582739dd74e404593d9ddf8adf5100bb 02-Apr-2013 Mathias Agopian <mathias@google.com> Fix include paths

Change-Id: If5350a3de995cc0cb1afea067e7ce168bc00d3f5
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWComposer.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
LExtensions.cpp
urfaceFlinger.cpp
urfaceFlingerConsumer.cpp
8171aece3d89a2107eda02c0e9daf79518b40174 29-Mar-2013 Mathias Agopian <mathias@google.com> fix uninitialized attribute in SurfaceFlinger

Change-Id: I8277f67e297a8b6a99195387060d03154a2cd929
LExtensions.cpp
b1196e6356a02c30d95522d3f2e13ffe3dc91d21 28-Mar-2013 Jesse Hall <jessehall@google.com> Remove unused clz.cpp

Change-Id: Ieed91a45ba0e865a0d47d84effe9439aaab4371f
lz.cpp
02d86567d95b99e1142941ed7ec23a4465822813 25-Mar-2013 Jesse Hall <jessehall@google.com> Clean up HWC state when releasing a DisplayDevice

DisplayDevices can be released when DisplayManager removes them from
the display list, or (for virtual displays) when the surface is set to
NULL. We were only cleaning up HWC resources associated with the
display in the first case.

Bug: 8384764
Change-Id: Id3d226dd7178fbe6d0a2ac4e2660b864ee073de3
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
ffe1f19ca9707f84cb9fdb06209bf36cd8c2ef0a 22-Mar-2013 Jesse Hall <jessehall@google.com> Fix virtual displays for HWC<=1.1

If we're using a HWC that doesn't support virtual displays, or we have
more virtual displays than HWC supports concurrently, the
VirtualDisplaySurface should simply be a passthrough from source
(GLES) to sink.

This change also tries to distinguish between display types and HWC
display IDs a little better, though there's more to do here. Probably
needs a higher-level rethink; it's too error-prone now.

Bug: 8446838
Change-Id: I708d2cf262ec30177042304f174ca5b8da701df1
isplayDevice.cpp
isplayDevice.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
48bc05b56df9919fc39c5f2e3ea6535560eec98f 21-Mar-2013 Jesse Hall <jessehall@google.com> Fix dump when virtual display exists

SurfaceFlinger::getLayerSortedByZForHwcDisplay only worked for builtin
displays.

Bug: 8384764
Change-Id: I989275407fb2f06d166a6e70321c3211e27e562e
urfaceFlinger.cpp
urfaceFlinger.h
851cfe834295224cd64bdd499872b95b19c4de8c 20-Mar-2013 Jesse Hall <jessehall@google.com> Isolate knowledge that fb target == output buffer

HWComposer didn't allow the virtual display output buffer to be set
directly, instead it always used the framebuffer target buffer.
DisplayDevice was only providing the framebuffer release fence to
DisplaySurfaces after a commit.

This change fixes both of these, so both HWComposer and DisplayDevice
should continue to work if VirtualDisplaySurface changes to use
separate framebuffer and output buffers. It's also more correct since
VirtualDisplaySurface uses the correct release fence when queueing the
buffer to the sink.

Bug: 8384764
Change-Id: I95c71e8d4f67705e23f122259ec8dd5dbce70dcf
isplayDevice.cpp
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
afaf14b9fbfe8943d845e2f01e8a401ad7a4d854 20-Mar-2013 Jesse Hall <jessehall@google.com> Use descriptive aliases instead of HWC_NUM_DISPLAY_TYPES

Bug: 8384764
Change-Id: Ia2563fab19dbc6e4a95bed03445e609334841cca
isplayHardware/HWComposer.cpp
13f01cbdbd34779a234bc674df79e23672fd5c0b 20-Mar-2013 Jesse Hall <jessehall@google.com> Pass sp<Fence>s around instead of file descriptors

Change-Id: Iac70584a2207940730e8f803a543e4e9a4000c47
isplayDevice.cpp
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
ayer.cpp
8d8c75976171d194ca8f94727b22e3bf7676b9dd 22-Mar-2013 Jesse Hall <jessehall@google.com> Merge "Release virtual display buffer immediately after HWC set" into jb-mr2-dev
ed985574148a938bc3af24442eead313cc62521c 22-Mar-2013 Mathias Agopian <mathias@google.com> make sure screenshot are in a format supported by Bitmap.java

Change-Id: I0fb9cc4088f9c1fd27e6c017b0a7c5617adb4660
urfaceFlinger.cpp
urfaceFlinger.h
50210b9a8d19cb90fc283d8d99e46cd34ac17d2e 22-Mar-2013 Mathias Agopian <mathias@google.com> fix a typo that broke all screenshots

Bug: 8450197

Change-Id: I5b986cc0ff9c5e689d06a51ba68ab537d03d1f3d
urfaceFlinger.cpp
0188eeff1fecc3813ddb236be3e2b7a9ad156482 22-Mar-2013 Mathias Agopian <mathias@google.com> Merge "only use glReadPixels() when needed when taking screenshots" into jb-mr2-dev
70a6e88dbd52605f35f290eba52a05bdc6fc8042 22-Mar-2013 Mathias Agopian <mathias@google.com> initialize planeAlpha (to 0xFF) for the FB_TARGET

Bug: 8422625
Change-Id: I7b72456c2e01ed92e675cc1bfa0cfd0d2ce5064e
isplayHardware/HWComposer.cpp
b4b1730abb7824dc084468c4942f010d94a7e039 21-Mar-2013 Mathias Agopian <mathias@google.com> only use glReadPixels() when needed when taking screenshots

some drivers don't support this yet, so we use a system
property to enable the glReadPixels "workaround" for them:

ro.bq.gpu_to_cpu_unsupported=1

Change-Id: I74d6a3a8f0cee8d5a507b72c760cf247e39195e0
urfaceFlinger.cpp
urfaceFlinger.h
7414965606f82ac2bcace5d3e2c8a4810517bf1e 20-Mar-2013 Jesse Hall <jessehall@google.com> Release virtual display buffer immediately after HWC set

Previously we only queued a virtual display buffer to the sink when
the next frame was about to be displayed. This may delay the "last"
frame of an animation indefinitely. Now we queue the buffer as soon as
HWC set() returns and gives us the release fence.

Bug: 8384764
Change-Id: I3844a188e0f6ef6ff28f3e11477cfa063a924b1a
isplayDevice.cpp
isplayHardware/BufferQueueInterposer.cpp
isplayHardware/BufferQueueInterposer.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
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
urfaceFlinger.cpp
urfaceFlinger.h
ef64b75a936ffd194673dbce6766995f86b42ba9 18-Mar-2013 Jesse Hall <jessehall@google.com> Don't log an error on HWC1.1+ devices with no FB HAL

Change-Id: I015e5a1a1f926181e51f82525f69beff71bd70cd
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
fae23b8757a6e1b70997db28a2eaf34f9ddc9b84 19-Mar-2013 Jesse Hall <jessehall@google.com> Merge changes I61ae54f3,I57cb668e,I7a3f1e1a,Id28a2f9b into jb-mr2-dev

* changes:
Add BufferQueueInterposer and use it for virtual displays
Add DisplaySurface abstraction
Fix argument types in IGraphicBufferProducer methods
Minor cleanups/fixes before virtual display refactoring
80e0a397a4712666661ecc629a64ec26e7f6aac3 15-Mar-2013 Jesse Hall <jessehall@google.com> Add BufferQueueInterposer and use it for virtual displays

BufferQueueInterposer allows a client to tap into a
IGraphicBufferProducer-based buffer queue, and modify buffers as they
pass from producer to consumer. VirtualDisplaySurface uses this to
layer HWC composition on top of GLES composition before passing the
buffer to the virtual display consumer.

Bug: 8384764
Change-Id: I61ae54f3d90de6a35f4f02bb5e64e7cc88e1cb83
ndroid.mk
isplayHardware/BufferQueueInterposer.cpp
isplayHardware/BufferQueueInterposer.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0 14-Mar-2013 Jesse Hall <jessehall@google.com> Add DisplaySurface abstraction

DisplayDevice now has a DisplaySurface instead of using
FramebufferSurface directly. FramebufferSurface implements
DisplaySurface, and so does the new VirtualDisplaySurface class.
DisplayDevice now always has a surface, not just for virtual displays.

In this change VirtualDisplaySurface is just a stub; buffers still go
directly from GLES to the final consumer.

Bug: 8384764
Change-Id: I57cb668edbc6c37bfebda90b9222d435bf589f37
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplaySurface.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/VirtualDisplaySurface.cpp
isplayHardware/VirtualDisplaySurface.h
urfaceFlinger.cpp
7adb0f8a9fdb961692ffd2f0c65cacb155143f64 07-Mar-2013 Jesse Hall <jessehall@google.com> Minor cleanups/fixes before virtual display refactoring

None of these should change behavior, except for removing some
incorrect log messages when using a virtual display.

- HWComposer::getAndResetReleaseFenceFd() checks the HWC version, so
no need to do that in the DisplayDevice::onSwapBuffersCompleted().
However, it should check that mFramebufferSurface is not NULL like
it is for virtual displays.
- Comment that FramebufferSurface::dump() overrides the non-virtual
ConsumerBase::dump(), and fix it so the right thing happens
regardless of the static type of the pointer/reference the callee
has. FramebufferSurface::dump() could be removed right now, but I'd
need to bring it back in a later change.
- Use the right enum for validating display type ids.
- Don't try to send hotplug events for virtual displays.
- Mark virtual displays as connected so HWComposer::prepare() doesn't
think something is wrong when it gets a non-NULL layer list.
- Remove unused FramebufferSurface methods.

Bug: 8384764
Change-Id: Id28a2f9be86b45f4bb7915fdf7752157035f4294
isplayDevice.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
ventThread.cpp
urfaceFlinger.cpp
041a075262ef5fc886e46fd4eec3dd79ee2e60c0 16-Mar-2013 Mathias Agopian <mathias@google.com> don't allow screenshots without the READ_FRAMEBUFFER permission

the recent screenshot rework allowed the older screenshot
interface to work without that permission

Change-Id: I6c4743f4591c81106e3b823d55a055f7b4907de1
urfaceFlinger.cpp
7670d3cb2b5d38c60135f34a2446e1ae809d1b32 16-Mar-2013 Mathias Agopian <mathias@google.com> Merge "get rid of purgatory and fix QueuesToWindowComposer query" into jb-mr2-dev
a493be5825d15f6a94d1afb5910db075a2a7abc1 16-Mar-2013 Mathias Agopian <mathias@google.com> don't capture hidden layers in screenshots

Bug: 8389956
Change-Id: I9ed836395258732c743c6fd44092bd01020dde13
urfaceFlinger.cpp
6710604286401d4205c27235a252dd0e5008cc08 15-Mar-2013 Mathias Agopian <mathias@google.com> get rid of purgatory and fix QueuesToWindowComposer query

the purgatory list wasn't needed anymore; in fact it had no effect as
buffer life-time management is now handled by the BufferQueue.

For QueuesToWindowComposer we keep a list of wp<> on the IBinder
for IGraphicBufferProducers we hand over to clients so we can
easily check if an IGraphicBufferProducer is ours. We clean-up the
list when our IGraphicBufferProducer are destroyed.

Bug: 8349142
Change-Id: I1aa06652ade8c72d0004a3f5e6c3d6e8a82fc2ae
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
urfaceTextureLayer.cpp
urfaceTextureLayer.h
6a531717cddf1d30be0946884d21c27e5b6b390c 13-Mar-2013 Mathias Agopian <mathias@google.com> size IMemoryHeap properly for screenshots

since we're using glReadPixels(), we only need to use
the width (as opposed to the stride) of the source
screenshot.

Bug: 8374664
Change-Id: I145c80f4fff5444df7c77c4f52e70a7203caddbd
urfaceFlinger.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
ests/surface/Android.mk
ests/surface/surface.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
lient.cpp
lient.h
ayer.cpp
ayer.h
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
urfaceFlinger.h
b7a5b05b53b81cb24849c7e9934c941f64e05a42 12-Mar-2013 Mathias Agopian <mathias@google.com> Fix missing recents screenshots

We were using the "visible layer list" when taking screenshots,
which doesn't work when a layer is behind other opaque layers
and therefore hidden.

We fix this by using the full layer list, filtered by the
layerstack of the display we're looking at.

Bug: 7552304
Change-Id: I4b6f77e5511aea94f8d218975b6e22738e7e5d5b
urfaceFlinger.cpp
d577641411f067c93aabcd2acf7ce06862fb26d3 08-Mar-2013 Mathias Agopian <mathias@google.com> make sure to call compositionComplete after taking a screenshot

older drivers which are doing implicit synchronization need this
or they could deadlock.

Bug: 8341885
Change-Id: Icd980a6be16071678d6151e34725b3c1c547d7ee
urfaceFlinger.cpp
2be4e8ff23f24285f4c195ba5537c7a51c13be4d 07-Mar-2013 Mathias Agopian <mathias@google.com> workaround to fix screenshot leak on N4

Bug: 8322020

Change-Id: Ie60af0eb431866b8d64b2674ae7bd8b5ee05f5d6
urfaceFlinger.cpp
438ca07b6ba74235e87bfbd78c94874d8bbde391 07-Mar-2013 Mathias Agopian <mathias@google.com> Merge changes I66511c08,Ia051949f,Ic7451365,I5b571a4c into jb-mr2-dev

* changes:
Get rid of LayerBase.
Make LayerDim a regular Layer instead of a LayerBase
fold LayerBaseClient into LayerBase
Remove support for ScreenshotLayer
13127d8921356dff794250e04208c3ed60b3a3df 06-Mar-2013 Mathias Agopian <mathias@google.com> Get rid of LayerBase.

The functionality of LayerBase and Layer is folded
into Layer. There wasn't a need for this abstraction
anymore.

Change-Id: I66511c08cc3d89009ba4deabf47e26cd4cfeaefb
ndroid.mk
lient.cpp
lient.h
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
urfaceFlinger.cpp
urfaceFlinger.h
2f73af9212487c81d31d07227fa8a2f4abc77638 06-Mar-2013 Mathias Agopian <mathias@google.com> Make LayerDim a regular Layer instead of a LayerBase

this is in preparation to get rid of LayerBase entirely

Change-Id: Ia051949fc5205fd87371331145356ee11598a597
ayer.h
ayerDim.cpp
ayerDim.h
b79f61d41ef053bee1087ec612896c59f95f9686 06-Mar-2013 Mathias Agopian <mathias@google.com> fold LayerBaseClient into LayerBase

Change-Id: Ic745136522df59c42f0885fd969e75ea55d09f01
lient.cpp
lient.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
urfaceFlinger.h
089a15298e045598bf15fd2a46284c34dd56384c 05-Mar-2013 Mathias Agopian <mathias@google.com> Remove support for ScreenshotLayer

Change-Id: I5b571a4cf3faa77d2c4aca916fa4bd00a1065bb9
ndroid.mk
ayerBase.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
175264b09c6080b29a23fc9f545d4b99445714bd 06-Mar-2013 Jeff Sharkey <jsharkey@android.com> Return NO_MEMORY when glReadPixels() fails.

Change-Id: Ic66134ef457e8442ae9135e9ec50e3d02932a253
urfaceFlinger.cpp
306f18c5fb15ac05db09ece7241af02b9713a23d 05-Mar-2013 Mathias Agopian <mathias@google.com> Merge "rework screenshot API and implementation" into jb-mr2-dev
eabe3140f11e515639e7a70a1286dd6af7352c9e 05-Mar-2013 Jesse Hall <jessehall@google.com> Merge "Init displays to null layer stack" into jb-mr2-dev
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
ayer.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
01e29054e672301e4adbbca15b3562a59a20f267 20-Feb-2013 Jesse Hall <jessehall@google.com> Init displays to null layer stack

When a display is added, initialize it to use an empty layer stack, so
if it is somehow visible it will show black. It will be assigned the
real layer stack -- along with a projection and other properties -- by
window manager soon. Normally a display remains blanked until window
manager has decided what to show on it, but for HDMI connected at boot
that isn't currently the case.

Bug: 7258935
Change-Id: Ic9bb25f7a9b8d9d3772b097ab1d6fa03bc8780a1
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
3da1672acbe6a84f1d69f1e21096115c60826aea 01-Mar-2013 Mathias Agopian <mathias@google.com> implement display projection clipping in h/w composer

- cropping to the projection's "viewport" is "simply"
accomplished by intersecting it with the window crop
expressed in layerstack space.

Bug: 7149437
Change-Id: I0e90b3f37945292314b5d78a8f134935967e8053
ayerBase.cpp
ransform.cpp
ransform.h
a8bca8d84b559e7dcca010f7d6514333004020c7 28-Feb-2013 Mathias Agopian <mathias@google.com> refactor the crop region for hwc is calculated/set

- the crop region is now always calculated and set
in LayerBase::setGeometry which uses new virtuals to
access the "content" crop and transform (which are
provided by the Layer subclass)

Change-Id: Ib7769bdec0917dd248f926600c14ddf9ea84897a
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
f5f714aa188884098aaecbe39d0bc61b40311c0d 27-Feb-2013 Mathias Agopian <mathias@google.com> apply the projection's viewport to the visibleregion passed to hwc

each desplay's projection's viewport essentially clips each layer,
so this should be reflected in the visibleregion passed to
h/w composer.

DisplayDevice getViewport and getFrame are now guaranteed to return
valid Rects.

Change-Id: I4c25f34fb26af10179eb26d429ca6c384c671e91
isplayDevice.cpp
isplayDevice.h
ayerBase.cpp
5219a06d61ac4517506500363c5e8a5972dd7ac9 27-Feb-2013 Mathias Agopian <mathias@google.com> set correct crop rectangle in LayerBase::setCrop

The crop always had left=top=0, because the crop position
and the layer's transform were merged together in
computeBounds() (which really used to compute the
bounds in screen space, which we usually call the
"frame" elsewhere in the code)

Note: in practice this crop value is not used by
hwc, because it's overridden in Layer::setGeometry(), which
is why this bug was never apparent.

Change-Id: I1ec6400a8fc8314408e4252708f43ea98c2fe64e
ayerBase.cpp
urfaceFlinger.cpp
a9a1b006e48320f5c501473e51e6c4a5f7a17b88 28-Feb-2013 Jesse Hall <jessehall@google.com> Initialize DisplayData fences to NO_FENCE, not NULL

Also fix another place that was checking for NULL fence rather than
Fence::isValid().

Bug 8283950

Change-Id: Ie06db327eb416828d8dac139171d96d4470b2e35
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
789a6c3f1dfe22a1ffea7f39b2098d7842cd1f30 25-Feb-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: fix a couple NULL fence checks

This change replaces checks for a NULL fence pointer with calls to
Fence::isValid. There should no longer be NULL fences.

Change-Id: If17c9c132fcb1801531bf7588f8ba53476c57dad
ayer.cpp
e3c697fb929c856b59fa56a8e05a2a7eba187c3d 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
isplayDevice.cpp
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
ests/Transaction_test.cpp
ests/resize/resize.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
lient.cpp
lient.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/HWComposer.cpp
ayer.cpp
urfaceFlingerConsumer.cpp
351c2941736039c495dd7ac849ec64fbf7f3ff05 11-Feb-2013 Jamie Gennis <jgennis@google.com> Merge changes I8bded1ea,I7478293e

* changes:
SurfaceFlinger: add win anim frame time tracking
SurfaceFlinger: remove a driver bug workaround
4b0eba949cc026ffb2c75313042d8a7bcb3fcf86 05-Feb-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add win anim frame time tracking

This change makes the 'dumpsys SurfaceFlinger --latency' command with no extra
args dump the frame timestamp data for the most recent frames that
SurfaceFlinger generated that included window animation transaction changes.

Change-Id: I8bded1ea08a4cddefef0aa955401052bb9107c90
rameTracker.cpp
rameTracker.h
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
5fe58b8ba6c5d78481730874236a1be48a90d61d 08-Feb-2013 Mathias Agopian <mathias@google.com> only disable hwc when alpha < 1.0

Bug: 8149181
Change-Id: Ib3c7a44f04871e020adceeae16d002141ac758d4
isplayHardware/HWComposer.cpp
9f8386e1118c10dd4927f62637ec7162569bdbdc 30-Jan-2013 Mathias Agopian <mathias@google.com> Add support for plane-alpha in HWC

Change-Id: I218e7dd5f23de535aabce61e993002ab6cb46cdd
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayerBase.cpp
6cf6ba69f054aa0c0c6c79225cdfd719cfc8855c 05-Feb-2013 Jesse Hall <jessehall@google.com> Merge "Remove unused HWCLayer::setPerFrameDefaultState()"
33c544c4d3af8bae518474df6a9da9b7c349b91a 04-Feb-2013 Jamie Gennis <jgennis@google.com> SurfaceFlinger: remove a driver bug workaround

Change-Id: I7478293e87899d6e467db8c2f9e295935c8b1d4e
ayer.cpp
7dd35a165d7b689c8a2c79b4e136669103b32232 14-Jan-2013 Jesse Hall <jessehall@google.com> am fc866eb8: am 845ed8fd: Merge "DisplayDevice: initialize mDisplayToken correctly"

* commit 'fc866eb8423cd1d720683946f7d102547718b6c9':
DisplayDevice: initialize mDisplayToken correctly
fc866eb8423cd1d720683946f7d102547718b6c9 14-Jan-2013 Jesse Hall <jessehall@google.com> am 845ed8fd: Merge "DisplayDevice: initialize mDisplayToken correctly"

* commit '845ed8fdaa34d0f684c93bf4dbadb9162f769235':
DisplayDevice: initialize mDisplayToken correctly
845ed8fdaa34d0f684c93bf4dbadb9162f769235 14-Jan-2013 Jesse Hall <jessehall@google.com> Merge "DisplayDevice: initialize mDisplayToken correctly"
51d22007386f171e1c696786ddce957e78fc4a03 14-Jan-2013 Jesse Hall <jessehall@google.com> Remove unused HWCLayer::setPerFrameDefaultState()

Bug: 7977590
Change-Id: Ic49c4e38ef2ee6beaeb268c406347c882135bdf0
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayerBase.cpp
800856a7b7f8d89c1a64955f152549b8f42cd3e0 14-Jan-2013 Jesse Hall <jessehall@google.com> am f3e9d5bd: am cbe51356: Merge "Remove support for legacy HWC version encoding"

* commit 'f3e9d5bde57a41593a7dbc15e6f1fdb1ea64ea74':
Remove support for legacy HWC version encoding
f3e9d5bde57a41593a7dbc15e6f1fdb1ea64ea74 14-Jan-2013 Jesse Hall <jessehall@google.com> am cbe51356: Merge "Remove support for legacy HWC version encoding"

* commit 'cbe5135610cd3c919e6334fada72cc52238bb8b0':
Remove support for legacy HWC version encoding
c19c15174b1a07c5d18f45f26bee7893481ab41d 12-Jan-2013 Andy McFadden <fadden@android.com> Merge "Add some comments."
8f06a8c2c80491465e8742c1bf45315dab7017e3 11-Jan-2013 Andy McFadden <fadden@android.com> Reduce C++11 warnings

A few typecasts to fix "narrowing conversion" complaints.

Change-Id: Ib2118079a2ca33959c748d03d8c6f1722d62e8fe
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
882e3a39ed770b335a203e233b57127fde1c839e 09-Jan-2013 Andy McFadden <fadden@android.com> Add some comments.

Also, minor tweak to SurfaceTextureLayer.

Change-Id: If616d5ee4e8226dd0e16c5dbb0e0f80db553110e
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
urfaceTextureLayer.cpp
urfaceTextureLayer.h
7296051995fbaea919480a6cc2dabb729dabc95b 11-Jan-2013 Jesse Hall <jessehall@google.com> Remove support for legacy HWC version encoding

Change-Id: If03ae1ebf10d15777310e1449a57473021390582
isplayHardware/HWComposer.cpp
dd9d192287bcd54b5aef68f201dacca26cfa850e 20-Nov-2012 Mathias Agopian <mathias@google.com> workaround: don't reset compositionType to HWC_FRAMEBUFFER

This workaround a HWC HAL issue in Nexus 7, which causes videos and live
wallpapers to animate slowly.

Bug: 7563862
Change-Id: I87803aaad9751b1fd8392b9732304d4bccec659a
isplayHardware/HWComposer.cpp
27e2562868dcd3ad26f9b4677b64ae272941704e 07-Jan-2013 Chih-Wei Huang <cwhuang@android-x86.org> DisplayDevice: initialize mDisplayToken correctly

mDisplayToken should be initialized by displayToken.

Change-Id: I0a5fec1f1732200a32d10b1575239dceffe6dee4
isplayDevice.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
isplayHardware/FramebufferSurface.h
ayer.cpp
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
urfaceTextureLayer.h
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
isplayHardware/FramebufferSurface.cpp
isplayHardware/GraphicBufferAlloc.cpp
isplayHardware/GraphicBufferAlloc.h
urfaceFlinger.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
ayer.cpp
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
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
ndroid.mk
ayer.cpp
ayer.h
urfaceFlingerConsumer.cpp
urfaceFlingerConsumer.h
46b6bce198c81ce9a4e0583e876d080ad48db003 08-Dec-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: work around a driver bug

Change-Id: I4490f308b12e9b6fda2ea7255eb19d867d6d008c
ayer.cpp
9913b9941ef90a98d826f3338c0a1ec3e4497b8c 28-Nov-2012 Mathias Agopian <mathias@google.com> am a7da0dda: am 98cbec81: am efd614b8: Merge "make transform hint multi-display aware" into jb-mr1.1-dev

* commit 'a7da0dda39cf1e807eea1304b48d4583e7329b72':
make transform hint multi-display aware
a7da0dda39cf1e807eea1304b48d4583e7329b72 28-Nov-2012 Mathias Agopian <mathias@google.com> am 98cbec81: am efd614b8: Merge "make transform hint multi-display aware" into jb-mr1.1-dev

* commit '98cbec81be1d39223e33abde9ac35e43b62918bf':
make transform hint multi-display aware
1e310d64d1e51faf35962f23da1c90ec95a35e5d 27-Nov-2012 Jesse Hall <jessehall@google.com> am 2004307b: Merge "Create builtin display tokens on demand"

* commit '2004307b65c0cb34c854331e5be21d3426a3ef06':
Create builtin display tokens on demand
6edebdf6003d7efdbf9ca5dc83fef17b750693f1 09-Nov-2012 Jesse Hall <jessehall@google.com> Create builtin display tokens on demand

For hotpluggable builtin displays (currently just HDMI), create the
display device IBinder token when the display is connected and destroy
it when the display is disconnected. Previously we created the tokens
at startup and never changed them. This made it so that when comparing
current and drawing state, we couldn't tell whether a display had been
disconnected and reconnected.

Bug: 7491120
Change-Id: I2ac82b864e10cb1cd0a308782d7e0ab9745c5d81
urfaceFlinger.cpp
urfaceFlinger.h
8430095879d2fa6878e68f8f12da4e704815ac09 22-Nov-2012 Mathias Agopian <mathias@google.com> make transform hint multi-display aware

if a layer is not mirrored, we now use its display
as the source for the transfrom hint calculation
instead of always using the default (main) display.

this change does two thing:
1) we make updateTransformHint take a DisplayDevice
as a parameter instead of hard-coding the
main display.

2) each time we do a transaction that could change
the hint, we go through all layers and
figure out which display should be used for their
transform hint.

Bug: 7599344
Change-Id: I9b04a95e6c372dd770bacf81d8ef6f8e31b87b83
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
82dbc7429f5f9f2b303b31dc5b9f2bfd1bbe6add 09-Nov-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: refactor frame time tracking

This change moves the frame time history tracking code out of Layer and into a
new class called FrameTracker. It also changes the tracking to use signal
timestamps from fences when available for more accurate results.

Change-Id: I323c5f075c58bf86ce363b52af885ad0f6365f2b
ndroid.mk
rameTracker.cpp
rameTracker.h
ayer.cpp
ayer.h
e64b38fad2cc6686fb6691aaf65c735f505a49a5 20-Nov-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: track the HWC retire fences"
3e095b251503d71bea04d6b707e8188cd30034e2 20-Nov-2012 Mathias Agopian <mathias@google.com> workaround: don't reset compositionType to HWC_FRAMEBUFFER [DO NOT MERGE]

This workaround a HWC HAL issue in Nexus 7, which causes videos and live
wallpapers to animate slowly.

Bug: 7563862
Change-Id: I16ad85317e3e7f47f005e7397357c14186b0a13d
isplayHardware/HWComposer.cpp
2ec3e0748bff8d75baade2ddda9fbfa21a3b7d3f 12-Nov-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: track the HWC retire fences

This change adds functionality to the HWComposer class to track the retire
fences returned by each hwc set call. It adds the HWComposer::getDisplayFence
method to allow other parts of SurfaceFlinger to get a fence that will signal
when the most recent flip takes effect on a display.

Change-Id: I676e0f98440fc58ed70908aa1a1e2ee3e7bf9eb2
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
75220f9b93bdd8acedefe46d38fffc911a704637 15-Nov-2012 Mathias Agopian <mathias@google.com> am 35d39886: am f9730c3b: am ee932d0a: Reset compositionType to HWC_FRAMEBUFFER before calling prepare()

* commit '35d3988616cc40c0975d82f166c641109b787a58':
Reset compositionType to HWC_FRAMEBUFFER before calling prepare()
ee932d0ad1a16cc93b4bd9eaf9cb3cc756fb2dfc 14-Nov-2012 Mathias Agopian <mathias@google.com> Reset compositionType to HWC_FRAMEBUFFER before calling prepare()

Honor the documentation. this broke in JB-MR1.

Change-Id: I841a93b409fc940374bc748c4e143d82a192669c
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayerBase.cpp
692c723e84e6f2747447d871d468ff50e5c73f19 09-Nov-2012 Jesse Hall <jessehall@google.com> Create builtin display tokens on demand

For hotpluggable builtin displays (currently just HDMI), create the
display device IBinder token when the display is connected and destroy
it when the display is disconnected. Previously we created the tokens
at startup and never changed them. This made it so that when comparing
current and drawing state, we couldn't tell whether a display had been
disconnected and reconnected.

Bug: 7491120
Change-Id: I23b77037dc0f548d549abf580339edd0e3c626e9
urfaceFlinger.cpp
urfaceFlinger.h
2788a3526d7abb9afc64d10118a03734327a89e7 06-Nov-2012 Mathias Agopian <mathias@google.com> am 731e0331: am e70fbe8b: am 02b95105: fix transitions from hwc to GLES composition

* commit '731e0331eb402ec4564b69eaeb8b605a8b800b1b':
fix transitions from hwc to GLES composition
02b95105754b1859a97e234b79f41489a4677c20 06-Nov-2012 Mathias Agopian <mathias@google.com> fix transitions from hwc to GLES composition

If we switched from HWC to GLES but the dirty region was empty
(could happen if the dirty region is outside of the screen for instance), we
need to force a full screen composition.

In this change we ignore the dirty region for the purpose of
rejecting the whole update and we rely on the fact that it will later
be expanded to the whole screen. This was the least risky fix.

Bug: 7467760, 7452931
Change-Id: I2132f2f963b00a3ce7150adadb107b0367b3862e
urfaceFlinger.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
ayer.cpp
ayer.h
ayerBase.h
766dc49c17dda977bf7b93a5fd8da41c0b737611 31-Oct-2012 Mathias Agopian <mathias@google.com> rework a bit how we scissor the display

the scissor rect is now computed once by DisplayDevice
and is combined with the "undefined" region so that
the letter-boxed area of the screen get cleared in
drawWormhole.

Bug: 7149437
Change-Id: Id2f30516a5786f32eace7f876ff32028f954f357
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
f45c510009edab4a3e93f8d66b2e30aa26759fed 25-Oct-2012 Mathias Agopian <mathias@google.com> partially implement external display clipping

we perform external display clipping only on the GL
side (ie: not done on the h/w composer side, which is
harder and would be too risky). in practice this means
that WFD will be clipped properly, while HDMI *may* or
may not depending on how hwc is used.

Bug: 7149437
Change-Id: I92d4d04220db72b6ffb134c7fa7a93af569723a5
urfaceFlinger.cpp
d17e3b5f6cf71eb52bc81f37719254ce08244b34 22-Oct-2012 Mathias Agopian <mathias@google.com> prevent a client from crashing surfaceflinger

a misbehaving or malicious client could cause SF to crash
by providing a "fake" IInterface. we now check the
IInterface we get is our own and local.

Bug: 7278879
Change-Id: Ia19d05902d4b2385c5a16416148378d4998833fd
urfaceFlinger.cpp
ba7dc2db6e93a2407c8c328f2838591b7b760658 22-Oct-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: add support for secure displays" into jb-mr1-dev
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
isplayDevice.cpp
isplayDevice.h
ayer.cpp
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
620685c2e684082c82657732d1e35cefd0c79006 19-Oct-2012 Andy McFadden <fadden@android.com> Fix emulator vsync

The code that reserves display IDs was only run when a hardware
composer was present. The eventControl() function, which handles
enabling of vsync, was ignoring the request because the primary
display didn't appear in its set of allocated IDs. This moves
reservation of IDs for built-in displays outside the HWC-only block.

Also, added a couple of warnings in eventControl().

Bug 7376568

Change-Id: I185ccdf817a25499b5c2668f8f6d594afb8c1568
isplayHardware/HWComposer.cpp
7c41bf7092b75dba6029cd3bbc842d3a2661b0aa 17-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: change the animation timeout

This change changes the animation transaction timeout from 500us to 5s.

Bug: 7362633
Change-Id: I9bed8e74f726dae2daa398afc29babcea00d5b04
urfaceFlinger.cpp
db9b41fd157279d1b988a854e0d7c5b43c2fac38 16-Oct-2012 Mathias Agopian <mathias@google.com> fix a corruption in blank/unblank

we were holding a reference (ie: pointer) to a sp<DisplayDevice>
while processing the message. Meanwhile the object itself could
go away and we would end up accessing a dead object.

the root cause of the problem is that we are accessing mDisplays[]
in a few places outside of the main thread.

Bug: 7352770
Change-Id: I89e35dd85fb30e9a6383eca9a0bbc7028363876c
urfaceFlinger.cpp
urfaceFlinger.h
3365c56716432d3bfdf41bb82fb08df821f41d0c 16-Oct-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: add animation transactions" 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
urfaceFlinger.cpp
urfaceFlinger.h
837d2f9e83e7d8625ef482d9c9d9afa852c8dbaa 15-Oct-2012 Jesse Hall <jessehall@google.com> Always set vertex alpha when drawing screenshot layers

The screenshot is a GL_RGB texture, and the GL_REPLACE texture env
mode uses vertex alpha for GL_RGB textures instead of alpha=1.0.

Bug: 7340077
Change-Id: I6fbb907023e48f9c422b15a33da79757d6726840
ayerScreenshot.cpp
dd57d551944c01394bc2807d962be4953c58c7c1 12-Oct-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: make the num FBs a board config" into jb-mr1-dev
cdbaecb54152ce98789823420d426077d72aa1e7 12-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: make the num FBs a board config

Bug: 7283132
Change-Id: I38116f39fc18212f2daab94bbfc3daaf89439fc4
ndroid.mk
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
b763d5fffa2f942a6ae3637fab17439dd32dbebc 11-Oct-2012 Jesse Hall <jessehall@google.com> Assume LayerScreenshot has pre-multiplied alpha

Bug: 7300129
Change-Id: Ie9114adc4b5c9a8cc3c65bfe6d9478b2cba4e0d8
ayerScreenshot.cpp
9e9689c11148521d2c16a121a0b87b062be0714c 11-Oct-2012 Andy McFadden <fadden@android.com> Fix HDMI unblank behavior

Two issues:

(1) We were announcing the hotplug event before we were ready to
handle blank/unblank events, so we were losing the initial unblank
that power manager sends us when HDMI is first plugged in. This
left the display blank until you toggled the device power off/on.

(2) We were retaining fbTargetHandle for HDMI after the display was
disconnected. The value didn't get updated when HDMI was reconnected
because the display was blank, so we didn't go through that code
path. So, when HDMI was re-connected, we passed stale data into
the HWC.

Bug 7323938

Change-Id: I2335d24fd7b0f00bb23fc63aa7bcf44cb8857c73
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
0acb00c2d780b60ed3d71be256460375dd8715b4 10-Oct-2012 Mathias Agopian <mathias@google.com> Merge "fix typo that prevented proper loging of EGL error code" into jb-mr1-dev
b8fc00bfb41a61aeda186eec8f14522ff32f23f8 10-Oct-2012 Mathias Agopian <mathias@google.com> fix typo that prevented proper loging of EGL error code

needed for investigating 7309949

Bug: 7309949
Change-Id: If29a5c08d0e87f46b44ba2e1030be61cb4d1403b
isplayDevice.cpp
3292cae8c37fc8d7cd8bf77fafaa55e6fc7a8cc5 09-Oct-2012 Mathias Agopian <mathias@google.com> don't automatically unblank external displays

this should be handled by the display-manager. we were doing
that in SF because until recently we didn't have enough support
in the HAL. however, this is now causing other problems when
plugging hdmi while the screen is off for instance.

Bug: 7150885
Change-Id: I739b209056a765d38d05295cf202f67ee0f506ae
urfaceFlinger.cpp
cb55857bbde34a06c19dde3db5064d1717a0173e 05-Oct-2012 Mathias Agopian <mathias@google.com> fix dumpsys Layer name when using multiple displays

Bug: 7288401
Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
1b3aeb4844fe198c1fb61064d0cec3f5ac63f7d3 08-Oct-2012 Mathias Agopian <mathias@google.com> fix SurfaceFlinger DDMS debugging

DdmHandleAppName.setAppName() signature changed which broke
this debugging feature.

Needed for debugging b\7267680

Change-Id: I4482bf5a441e91bef89d1ddea9a4152333be7f88
ndroid.mk
dmConnection.cpp
5a8f9012ee8bb9dc1ad14432b96a821f08802ee3 05-Oct-2012 Andy McFadden <fadden@android.com> Tone down a fatal assert

The new disconnectDisplay function doesn't handle virtual displays,
but it may be called for them. Return without doing anything.

Bug 7281786

Change-Id: I62607f2ae6073fa66b393f55932604aeb8e03566
isplayHardware/HWComposer.cpp
9a14392256354538f1f43a5e80fe46c2c2b965cb 05-Oct-2012 Jesse Hall <jessehall@google.com> Ignore display state changes for disconnected displays

When a display is disconnected, removing it from SurfaceFlinger's
display list is non-atomic with removing it from the Display Manager
and any in-flight transactions. So SurfaceFlinger might get a display
state change transaction for a display it has already forgotten about.
Just ignore these.

Bug: 7288082
Change-Id: Ic27e55377f3db40fb34e3b1cd67e43297df117a2
urfaceFlinger.cpp
81cd5d3b94d21253a0be925f4ae58cc7f4afeef7 04-Oct-2012 Mathias Agopian <mathias@google.com> make sure we don't call into the HWC HAL when not needed

when enabling/disabling vsync we now make sure to
not call into the HAL if the state wouldn't change.

Bug: 7274951

Change-Id: Ie24a6d68888a51b577acf9c2a973d85437cbacaf
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
urfaceFlinger.cpp
urfaceFlinger.h
27ec5739bc05330e08b02f25b62a8f597bad897a 03-Oct-2012 Andy McFadden <fadden@android.com> Fix crashes after HDMI disconnect

The display was being removed from SurfaceFlinger's list before we
had a chance to reset HWComposer's layer list, so we were passing
stale data into the hardware composer (which has its own per-display
data). This resulted in "invalid gralloc handle" complaints.
We now clear the layer list immediately after removing the display.

The display was being removed while its EGLSurface was still
"current", resulting in "cancelBuffer: BufferQueue has been
abandoned" complaints. We now call makeCurrent on the primary
display before removing the external display.

Bug 7274254

Change-Id: Ia59e3a61d7ec46488b96bf93ec5e4ed3488b70e4
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.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
isplayHardware/HWComposer.cpp
d30b36d1fd0c7ab80553e784a155266be9703e47 01-Oct-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: reset the FB_TGT acquire fence

This change makes SurfaceFlinger reset the acquire fence fd to -1 after each
call to HWComposer::commit. The HWComposer implementation is resonsible for
closing the fd, so SurfaceFlinger should make sure not to pass it to HWC
multiple times.

Change-Id: I79554d9f6d6ef2b77d632d40251516c1f5b16ddb
Bug: 7258954
isplayHardware/HWComposer.cpp
135e5899f70a67e62baaf6dbec7ba2ce611ca16a 01-Oct-2012 Mathias Agopian <mathias@google.com> save/restore viewport properly when taking screenshot

Bug: 7241739
Change-Id: Iba8b9ffc75ab47fbc56169e65da26d96850a9297
isplayDevice.cpp
urfaceFlinger.cpp
bae92d0d605e99a14731add4f11b72413b2835e5 28-Sep-2012 Mathias Agopian <mathias@google.com> reset GL viewport and project when caputring the screen

Bug: 7241739
Change-Id: I3bb5214b070384de9be2026647865c6c236a4331
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
a4310c8be2dc3406a668ee99020d52187173232f 26-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: don't always set HWC_GEOM_CHGD

This change fixes a bug in SurfaceFlinger that caused the HWC_GEOMETRY_CHANGED
flag to be set every flip.

Change-Id: I4f395a2883bcbb53b23b3d14941aff108739c9f0
Bug: 7234237
urfaceFlinger.cpp
e206549ccf23ec5ba95062f944674e58569c8065 27-Sep-2012 Andy McFadden <fadden@android.com> Merge "Recompute visible regions more vigorously" into jb-mr1-dev
ab10c5804c250e7f392c8262f687766edec2e9f4 27-Sep-2012 Andy McFadden <fadden@android.com> Recompute visible regions more vigorously

Some of the code in latchBuffer was calling invalidateHwcGeometry,
but that didn't cause the SurfaceFlinger visible region code to
re-evaluate the layer's visibility. Set the recomputeVisibleRegions
"out" parameter instead.

Bug 7235797

Change-Id: If6ba33fbd1a594cd64cc5253aebf752d6ceda1c9
ayer.cpp
a8026d21f3f2f09e3416cbd33c277fbd15d8cf4e 25-Sep-2012 Jesse Hall <jessehall@google.com> Stop using transparent region for computing visible regions

The transparent region hint is computed only from view layout
locations, ignoring post-layout translation. If a SurfaceView is layed
out with no other views above it, but a view is moved above it
post-layout, that view's layout bounds would be subtracted from the
window's transparent region instead of its drawing bounds. Prior to
this change, the view would not be visible (except where its layout
bounds and drawing bounds overlap).

With this change, composition uses visible regions computed without
regard to the transparent regions. However, if all of a layer's
visible region is transparent, it will be removed from the list of
layers to composite. This doesn't fix the root problem of incorrect
transparent regions, and doesn't prevent bad composition in all cases.
But it does avoid it for some existing apps, whiel still allowing the
transparent region hint to save power in the important
fullscreen-video-in-a-SurfaceView case.

Bug: 7179570
Change-Id: I47cf939e12129b167afa344b8b036e8827103ac8
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
c4a8daaa998ea524c9aaa9817021ff7c4467c3dd 26-Sep-2012 Mathias Agopian <mathias@google.com> Merge "add support for EGL_FRAMEBUFFER_TARGET_ANDROID" into jb-mr1-dev
32341381c9493d7953e40f7f79653cfc52868863 26-Sep-2012 Mathias Agopian <mathias@google.com> only abort when errors happen on the main display

Bug: 7232690
Change-Id: I2c4b35a82f131da26deea738ef294e100e536d15
isplayDevice.cpp
722b98f9dfe8f04de8734630198b99a6cd024118 26-Sep-2012 Mathias Agopian <mathias@google.com> add support for EGL_FRAMEBUFFER_TARGET_ANDROID

we now try first with EGL_FRAMEBUFFER_TARGET_ANDROID, and
pick the first config we find. Otherwise, we revert to
the old algorithm.

Bug: 7232584

Change-Id: I8d5c5a4ce48420832c2e2828718a8f53325effb0
urfaceFlinger.cpp
urfaceFlinger.h
7b1905113712281c777b230648d3fbb69ae4f42c 26-Sep-2012 Mathias Agopian <mathias@google.com> fix a crasher when running out of memory

MemoryHeapBase::getBase() returns MAP_FAILED in case or
OOM, not null which is what SF was checking against.

This addresses one of the issues of bug 7230543.

Bug: 7230543
Change-Id: I763a88f64a2f9ff75eb139cfbaf9a1a9746c5577
urfaceFlinger.cpp
bb53b0e4b97634bc31808965f81b3ab4193d0e84 25-Sep-2012 Mathias Agopian <mathias@google.com> When "show visible regions" is enabled we were missing a call to HWC

Bug: 7204034
Change-Id: I64dd78362fa75149513a7d9ff92dde175e9b4958
urfaceFlinger.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
urfaceFlinger.cpp
urfaceFlinger.h
a046dd9772cd8da4ead9edc7a89d9992ff0d38cf 25-Sep-2012 Mathias Agopian <mathias@google.com> fix Layer croping in SurfaceFlinger

Bug: 7224628
Change-Id: I9421f0a06b9a27fe00eefaa1dfab8c4309c380c9
ayerBase.cpp
2a23184e4109060ec772763e80dae2132cf9d2eb 25-Sep-2012 Mathias Agopian <mathias@google.com> don't call eglMakeCurrent() before calling HWC commit() on HWC 1.1

this call is not needed and misleading on HWC 1.1; it can also have
a negative performance impact when multiple displays are used.

Bug: 7124069
Change-Id: I47cd25c9d6e69abcc9333b9ecd5044e8fb1919ec
urfaceFlinger.cpp
52e21483fa48baeb4a88372d75e083bca2e92923 25-Sep-2012 Mathias Agopian <mathias@google.com> handle EGL errors

for now we just restart the runtime.

bug: 7225248
Change-Id: I7638ffe82075a4db9e7e6f9e35cf48afcb5a387a
isplayDevice.cpp
9e2463e71796964cfaa06bf09a880875ac3537bc 22-Sep-2012 Mathias Agopian <mathias@google.com> add/remove displays properly on hotplug events

Bug: 7191563
Change-Id: I8f0fbf3b29658c9479443141798e6f288a1f2d52
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
ff28e201ec0c6d620eaaa29814ab52958487dc31 21-Sep-2012 Mathias Agopian <mathias@google.com> Display events now always carry the display id they happened on

Change-Id: I12de1d883c23927722bc3a71b782f0079de4e831
ventThread.cpp
ventThread.h
b4d18ed34e3513f3a14ea0876c7e330bee72a529 21-Sep-2012 Mathias Agopian <mathias@google.com> fix an issue where hotplug events were not dispatched

Change-Id: I527eec77f338cd6f1a9021aa4c9d384dbddd6d2a
isplayHardware/HWComposer.cpp
ventThread.cpp
4c0751a1f6e4ee941791012b31f9dbc65601e1d6 21-Sep-2012 Mathias Agopian <mathias@google.com> return an error, as expected, when querying a disconnected display

Change-Id: I405a3a7bb42b9bbd2ec7bfe09e60e1b7acf7389d
urfaceFlinger.cpp
38e623bc5c2d7224ebd5b82efaea401bc8e5367a 21-Sep-2012 Mathias Agopian <mathias@google.com> fix a typo preventing pre hwc-1.1 devices from booting

Change-Id: Icf01254689633d04967872749ac947a671e47ed8
isplayHardware/HWComposer.cpp
f5a33928349bebc8eebc9f466618997e98c24e68 20-Sep-2012 Mathias Agopian <mathias@google.com> we now correctly set-up connected screens during boot

Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
148994e5f33ce240ff24ceb5bc0500b7f2001959 20-Sep-2012 Mathias Agopian <mathias@google.com> We now report hotplug events to the framework

Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
1604f777d11c40daae8ec91d8ea75625996bfbac 19-Sep-2012 Mathias Agopian <mathias@google.com> one more step toward HDMI support

getDisplayInfo() now returns proper information for
HWC managed displays.

hotplug is sitll not supported; so this is not fully correct
as the information returned will be bogus if the HDMI screen
is not plugged in.

Bug: 7191563
Change-Id: If55d8e829fae0443571548155007f486cdf9bc9f
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
eba8c688f633f3f3f1b75c2bc64faf799dd2b5f2 20-Sep-2012 Mathias Agopian <mathias@google.com> calculate wether we filter on a per-display basis

Change-Id: I79d80b432b20b3d02428da19add464ac1e2b9378
isplayDevice.cpp
isplayDevice.h
ayer.cpp
ayerBase.cpp
ayerBase.h
f33e4b6f13bc3ee2d2a4e1abd1ada171c70d3492 21-Sep-2012 Mathias Agopian <mathias@google.com> GraphicBufferAlloc class was declared twice

this was confusing because the one in FramebufferSurface
wasn't in fact being used

Change-Id: Ied45aec20d804cfbe52440f9b2f2852a85c757cf
ndroid.mk
isplayHardware/FramebufferSurface.cpp
isplayHardware/GraphicBufferAlloc.cpp
isplayHardware/GraphicBufferAlloc.h
urfaceFlinger.cpp
urfaceFlinger.h
1887af43a5dd5181f4582a6090ae25c7aa17fa4a 20-Sep-2012 Jesse Hall <jessehall@google.com> Merge "Allow 16-bit color EGLConfigs" into jb-mr1-dev
f21cffa7d707dad10b2974c58c91482f7ca689ac 20-Sep-2012 Jesse Hall <jessehall@google.com> Allow 16-bit color EGLConfigs

The emulator without GPU acceleration only supports 16-bit
framebuffers.

Bug: 7185810
Change-Id: I883180367bf5b291d5e70427ab586d2e17868a96
urfaceFlinger.cpp
d56eff2f49e64bb71863ffb866af8c3f686b96e9 20-Sep-2012 Mathias Agopian <mathias@google.com> fix typo in DisplayDevice logs

Change-Id: I593ef674f12073bd9d690946447031394ef9044e
isplayDevice.cpp
1d12d8a8e61163b35cf42c51c558a67138014e82 18-Sep-2012 Mathias Agopian <mathias@google.com> improve logging of external displays

Change-Id: I041aebb7fc655aeca98bbf698d15e05d7c12cac9
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
6ab93290aeed63f139b0e77819ea889bbce9ec8b 18-Sep-2012 Mathias Agopian <mathias@google.com> suppress superfluous log

Change-Id: I838f2de4cf99e885833c4f42e2a69d6e3bb8eea5
isplayHardware/HWComposer.cpp
aeb76d160c530786d58d6a8b35d9b4a75a2279e3 18-Sep-2012 Jesse Hall <jessehall@google.com> Merge "Check that HWC exists before trying to use it" into jb-mr1-dev
d3d35f18345c3ef93217313a583ace473b5a47ad 18-Sep-2012 Jesse Hall <jessehall@google.com> Check that HWC exists before trying to use it

Bug: 7185810
Change-Id: I1271d6ba397f3abf0ef166b8d03b9b26b72e28d7
isplayHardware/HWComposer.cpp
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
ayer.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
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
d870703d5566490cfdfb389d9336b2b8d3c6cc7a 18-Sep-2012 Mathias Agopian <mathias@google.com> fix external displays

we were not calling eglSwapBuffers() on external displays
because they can't use HWC which caused us to think they
didn't have GLES composition.

Change-Id: I6cef4ae40b138412d2e6f2acda33c9d222b03a83
isplayDevice.cpp
da27af9832a0170f1fc40ef3f21371c4d30d21b3 14-Sep-2012 Mathias Agopian <mathias@google.com> add support hwc 1.1

Bug: 7124069

Change-Id: I53d705105c4ad8954d3f50ee4f4c8b7ec936b871
isplayDevice.cpp
isplayDevice.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
cde87a3b9d3f8dc15232d927b56ee9e5e520f58d 13-Sep-2012 Mathias Agopian <mathias@google.com> refactor things a bit

- decouple GL and main display initialization
- ensure that each "supported" display has its own FramebufferSurface
- onScreenAcquired/Released now takes a display

Change-Id: If34a05f3dea40f6c79db77f4dde283a2580daac4
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
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
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
6e220a6ce6971555b883f4852c6e5d4c7a617815 14-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix display projections when translated.

There are two different translations to apply in the logical
orientation, one before scaling and one after.
So translate, scale, translate then rotate.

Bug: 7139798
Change-Id: I0726991cadb62988390e77503dbbaed54f07bfe3
isplayDevice.cpp
urfaceFlinger.cpp
ae2cfb5746e87f1bf17c446e20274c41ce0a57ce 13-Sep-2012 Andy McFadden <fadden@android.com> Minor tweaks

A couple of minor cleanups I stumbled over while looking at other
things.

Change-Id: I385ecfe1afefd577afbc59d7ef1d98d868073651
isplayHardware/HWComposer.cpp
ventThread.cpp
ventThread.h
a4383fd9de407d16342cd1069f75d2f0207efc0f 13-Sep-2012 Jesse Hall <jessehall@google.com> Merge "Initialize new HWC 1.2 fields" into jb-mr1-dev
fa32888f5822093f69522086d96ea2d493011a67 13-Sep-2012 Jesse Hall <jessehall@google.com> Merge "Fix display projection transforms" into jb-mr1-dev
ce3a0a541c3dde1330551bd7a048cd9d92335c00 13-Sep-2012 Mathias Agopian <mathias@google.com> don't call hwc with non-empty layer lists for blanked displays

we now make sure to take the blanked state of a display into
account when we build its list of visible layers, this ensures
that we won't call prepare/set with a non-empty list when the
display is blanked.

Possibly fixes 7075380, 7103553, 7130187, 7016215

Bug: 7075380
Change-Id: I9fdd2e73d1b7621eaeca3d4ac2ae60d9fb1b3631
urfaceFlinger.cpp
urfaceFlinger.h
db27621e22559a1b16414f890677ef04242fbc3b 07-Sep-2012 Jesse Hall <jessehall@google.com> Initialize new HWC 1.2 fields

Also rename resolution* to width/height.

Change-Id: Ia5f0c50d3f0a349160f314a3257c3b985e13ef1d
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
6360ec42d414b1351ecb6c5fc4b8afa30d8f4ebf 12-Sep-2012 Jesse Hall <jessehall@google.com> Fix display projection transforms

Bug: 7139798
Change-Id: I61aafe99180d85563c6880d16bc367fce80e6022
isplayDevice.cpp
2c7c8ba56ad9c0c08fde6f86771475f03a03e6fd 12-Sep-2012 Andy McFadden <fadden@android.com> Merge "Fix emulator" into jb-mr1-dev
babba1868773eba5edf8a8e335b8e109a32292e0 12-Sep-2012 Andy McFadden <fadden@android.com> Fix emulator

Emulator has no HWC.

Change-Id: I7810b27034f6772823142e5bf877681db1c8ee49
isplayHardware/HWComposer.cpp
92def36f9f79973c6ca18fc66210b32e3901351d 12-Sep-2012 Mathias Agopian <mathias@google.com> Merge "fix typo in LayerBase::dump()" into jb-mr1-dev
791da60dd322f596b29320edb97c5366070c9ddc 12-Sep-2012 Mathias Agopian <mathias@google.com> fix typo in LayerBase::dump()

Change-Id: Ie4861a58baed003b7ef643931d41f6be3fbfd00c
ayerBase.cpp
43601a2dc320a271ff8c3765ff61414a07221635 12-Sep-2012 Andy McFadden <fadden@android.com> Reduce failure uncertainty

This adds a trivial workaround for a one-shot boot time crash, plus
an explicit check and abort for a failure condition that currently
presents as a less obvious failure.

Bug: 7145521, 7147557
Change-Id: I548f6a9caa9f0bd5710aaecea0e1c6c7c8f2f281
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
b0d1dd36f104c0b581674adc7f830cbf44b7db06 10-Sep-2012 Andy McFadden <fadden@android.com> Reshuffle FramebufferSurface

FramebufferSurface no longer speaks directly to the FB HAL. Now
everything goes through HWComposer (which may or may not be
connected to a hardware composer).

Added display index arg to some query methods.

Change-Id: Id3e157d2d4e3555d33afbb703e518b6e92e2d6d5
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
urfaceFlinger.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
ayer.cpp
4c05dd175ee3bd5119eecf368742b6510a8cfa6c 09-Sep-2012 Jeff Brown <jeffbrown@google.com> Ensure that viewport and frame are initialized.

onInitializeDisplays() was posting a transaction with changes
to the display projection. Unfortunately, it only set the
display orientation field and left viewport and frame
uninitialized.

The uninitialized values flowed downstream and found themselves
baked into a bogus DisplayDevice mGlobalTransform. That transform
was then applied to some Rects which were turned into Regions
that were them combined with other Regions.

Under certain situations, the uninitialized data might have
a largish value, resulting in the creation of Regions with
components in excess of the Region max-value limit of 0x7ffffff
(note that this is not INT_MAX). Later when performing a
binary operation using the Region, the Spanner would loop
indefinitely trying to figure out how to stuff a humongous
region inside of a max-value region. Not content to try
just once, the Spanner would continue trying again and
again, pegging the CPU and hanging surface flinger during boot.

Insanity soon followed.

Bug: 7130713
Change-Id: I0016f0c9662185be833474c212a1dd408096ae23
urfaceFlinger.cpp
ransform.cpp
4fb3999cea652617be5125f8a42c257467bf3c77 07-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix display projection.

Change-Id: I0f253dc3759b99e05ff8344b0f513d8c289702e7
urfaceFlinger.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
isplayHardware/FramebufferSurface.cpp
55882dea1b1b305f15192b96ff7814f18babb212 06-Sep-2012 Mathias Agopian <mathias@google.com> fix a problem where all hwc layers would have the SKIP flags set

the problem was that LayerBase::setPerFrameData() was always setting
this flag. in fact there was no reason to do this at that point since
the layer is initialized to a default state in setGeometry().

Bug: 7111259
Change-Id: Ib37b0dd7391a6163070e9aca025512159c1705f9
isplayHardware/HWComposer.cpp
ayerBase.cpp
fe4c745c6d62fb416758cc5aaff3e7decb7ec06b 05-Sep-2012 Jesse Hall <jessehall@google.com> Merge "Always reset layer acquireFenceFd after commit" into jb-mr1-dev
e25d005d91344c500450f01d4a258ca9c3676627 05-Sep-2012 Jesse Hall <jessehall@google.com> Always reset layer acquireFenceFd after commit

If SurfaceFlinger needs to refresh the screen but the dirty region is
empty, it won't set the layer acquire fences, and stale file
descriptors will be passed to HWC commit(). Now we make sure to clear
the stale file descriptors for each layer right after commit().

Bug: 7078301
Change-Id: I6953ff91fc5488f105b30b07306f9c45a4c3f780
isplayHardware/HWComposer.cpp
1501d54d63c55dc4e8f4c6eeaeac35aca6660ffc 05-Sep-2012 Mathias Agopian <mathias@google.com> minor cleanup

Change-Id: Ied80e14878e92a506930f7a5a55adde8f260ec70
urfaceFlinger.cpp
762d0114759686b65feca832a5437e2aee343a13 05-Sep-2012 Mathias Agopian <mathias@google.com> Merge "display projection API now has a single function instead of 3" into jb-mr1-dev
71e83e1202dc87afde9c0c31f31c129f3f99263f 05-Sep-2012 Mathias Agopian <mathias@google.com> the visibleRegion was never set in hwcomposer

Bug: 7089478
Change-Id: I13b031b23ce908d33f431a04e1cf87831b551260
ayer.cpp
00e8c7a88a5b9c4104a71013a713acd3e4d3b77b 05-Sep-2012 Mathias Agopian <mathias@google.com> display projection API now has a single function instead of 3

Change-Id: I9bf46d372b77d547486d4bbe6f1953ec8c65e98f
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
da8d0a5c0cf9d41915d3b106cad4aaec3e767c11 05-Sep-2012 Mathias Agopian <mathias@google.com> implement display viewport and frame

note: viewport clipping is not implemented yet

Change-Id: I7fde7c4de075d409d95c48bb20ba8ee017f6f00a
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
6b09f280e522da902ca41b96c3e4510d7a2879b7 04-Sep-2012 Andy McFadden <fadden@android.com> Merge "Add timeout when waiting for HW vsync" into jb-mr1-dev
63f165fd6b86d04be94d4023e845e98560504a96 31-Aug-2012 Keun young Park <keunyoung@google.com> add libsurfaceflinger_ddmconnection for PDK build

- the library is dlopened from libsurfaceflinger
- the library built only when libnativehelper exists

Bug: 7089510
Change-Id: Ib3ea1029d7e8f6e055f4b759d0bf68f5123fa8a1
ndroid.mk
dmConnection.cpp
dmConnection.h
urfaceFlinger.cpp
urfaceFlinger.h
c39736088398a9b4367b30fc307ed7de96ac342e 01-Sep-2012 Mathias Agopian <mathias@google.com> the visible region sent to HWC was garbage

we used to have a visibleRegion object per layer, but now
it's per screen; so at somepoint the code got changed to
calculate the per-screen visible region on the stack and that's
what got passed to HWC.

we're now setting the visibleRegionScreen at each frame and
freeing at after the HWC set() call. We use the underlaying
SharedBuffer so that in most cases we don't have to allocate,
free or copy memory around.

Bug: 7089478
Change-Id: I24fa556c76613a225d9fe7a6c6b727bb476144d8
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayerBase.cpp
ayerBase.h
6bf552ee02f8540a36cde7be90ffd840b2f6cd5c 31-Aug-2012 Andy McFadden <fadden@android.com> Add timeout when waiting for HW vsync

This way we don't get stuck if, say, the driver decides not
to send us vsync events.

Change-Id: I4af6358b3a1f304eaae5fd926ed3403fa1091827
ventThread.cpp
9ca48916bc9408d0f3f8ac95469ced0a6a342aca 30-Aug-2012 Jesse Hall <jessehall@google.com> If there is no hwc, call eglSwapBuffers for the main display

Bug: 7068568
Change-Id: I6a0309613fe3619d065b9047af6c3fb32b510d97
urfaceFlinger.cpp
f90883d6a50688081642855bba43bef0693d5020 31-Aug-2012 Jesse Hall <jessehall@google.com> Merge "HWC 1.1: hook up hotplug event, use new display config queries" into jb-mr1-dev
1bd20e0f9ecd27cc5ad2bdf08b01837ecc10c357 29-Aug-2012 Jesse Hall <jessehall@google.com> HWC 1.1: hook up hotplug event, use new display config queries

Change-Id: I2fd359e5fc7e1948072c6bc6b6fe47ea5e8025c1
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
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
isplayHardware/FramebufferSurface.cpp
2b9776982360a234803665cb79e8abcfeb0e3c79 31-Aug-2012 Jamie Gennis <jgennis@google.com> Merge "BufferQueue: clean up buffer counting" into jb-mr1-dev
ec34af4144c0f990513fe58b0754b20f94b36d6f 30-Aug-2012 Jesse Hall <jessehall@google.com> Merge "Handle new device api version encoding" into jb-mr1-dev
93997a8a75942b4d06cf50925de5bede489cc134 30-Aug-2012 Mathias Agopian <mathias@google.com> fix a crasher when setting a display to a null surface

Bug: 7076303
Change-Id: I843dd4ee4a603b8ad51bc1ad14e429db15050bec
urfaceFlinger.cpp
85d751cba5d4386c739dbf9dd8f7bbf8c493ade9 30-Aug-2012 Mathias Agopian <mathias@google.com> we were sometimes not setting fences properly

this would happen when the composition was handled
entirely in h/w composer, in this case, we would
not set the fences for any involved layers.

Bug: 7049373
Change-Id: I1439dc156ce23c24041cdfbbebfe8ff4fdf790f8
urfaceFlinger.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
isplayHardware/FramebufferSurface.cpp
ayer.cpp
9eb1eb5bb55740982ceae9966fc536824edc302a 29-Aug-2012 Jesse Hall <jessehall@google.com> Handle new device api version encoding

Change-Id: I3d36058bd5d31c23b3cc4a7eb5aa033b6f3c1955
isplayHardware/HWComposer.cpp
7e7ed7f77a3963a3542bde529d2797a239e2798b 28-Aug-2012 Mathias Agopian <mathias@google.com> the layer list per display could contain non-visible layers

this happened because we didn't check that the visible
region was within the bounds of the display.

Bug: 7064121
Change-Id: I2e81850a3dc3d1474253520ad7f9e559c26d5a96
urfaceFlinger.cpp
55801e41e6d7306d75d8134dd69d7d8cbbfbc63c 28-Aug-2012 Mathias Agopian <mathias@google.com> we were not always clearing the screen properly

Change-Id: I269dd866e965aebd9b3c4667095818202982f4a3
urfaceFlinger.cpp
urfaceFlinger.h
3ee454a7bef8bd3d1c9cdd9d17108eb80ebadf2a 28-Aug-2012 Mathias Agopian <mathias@google.com> Eradicate DisplayID.

DisplayDevices are now keyed of the wp<IBinder> the client uses.
DisplayID has now become DisplayType which is just used to identify
physical displays (as opposed to virtual displays such as wifi displays).

Change-Id: I0c5968f2c902dcd699a7e0afacf833ff070c12ea
lient.cpp
isplayDevice.cpp
isplayDevice.h
ventThread.cpp
ventThread.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
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
lient.cpp
lient.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/Transaction_test.cpp
ests/resize/resize.cpp
ests/screencap/screencap.cpp
ests/surface/surface.cpp
13a082e160c2d1d8006b93a555a57035213d568b 24-Aug-2012 Andy McFadden <fadden@android.com> Added display initialization method

The primary display device was being configured to "blank" by
default, which prevented the boot animation from appearing
(unless you got lucky with the hardware composer state).

Bug 6975688

Change-Id: I0fa52e9e719c6e997c5725a7baf15d9718461b78
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
0bceb84773882b796d9dacbaf96167cb15928d78 24-Aug-2012 Jamie Gennis <jgennis@google.com> surfaceflinger: fix display id selection

This change fixes display ID selection so that it never chooses negative
numbers as display IDs.

Change-Id: I5af1acc7b1270b371595e096b18e2a6ad250c7ba
urfaceFlinger.cpp
urfaceFlinger.h
9b6a395e65ff88ab79fe92d6f112c434441ca606 24-Aug-2012 Andy McFadden <fadden@android.com> Revert "Added display initialization method"

Something doesn't seem right (again).

This reverts commit 53ade0853ca003c9e917b5e7d34e1b1338d7b87d.

Change-Id: Id5786997ca9dd2a447363e8ac95213ea37468504
urfaceFlinger.cpp
urfaceFlinger.h
53ade0853ca003c9e917b5e7d34e1b1338d7b87d 24-Aug-2012 Andy McFadden <fadden@android.com> Added display initialization method

The primary display device was being configured to "blank" by
default, which prevented the boot animation from appearing
(unless you got lucky with the hardware composer state).

Bug 6975688

(This reverts an earlier revert.)
urfaceFlinger.cpp
urfaceFlinger.h
f435863467ab407f2a482604beed5fa6f0144c62 23-Aug-2012 Mathias Agopian <mathias@google.com> teach HWC about multiple displays

Change-Id: I5e72a83d419a729835cb0e1ec45557b4d3fb56b1
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
30bcc61431d8e3bef779472dd52a7b156dcaba09 23-Aug-2012 Mathias Agopian <mathias@google.com> remove support for HWC < 1.0

Change-Id: If7e676a6e3524afeb9af3875125d2131d95db38b
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
e60b0687c8d49871d0c8786cabe6851f7a7783b5 22-Aug-2012 Mathias Agopian <mathias@google.com> HWComposer now has its own concept of display IDs

HWComposer can now create IDs representing a display
it can deal with. IDs MAIN and HDMI are reserved.
SurfaceFlinger associate HWComposer IDs with a
DisplayDevice and uses that when it talks to HWComposer.

A DisplayDevice doesn't have to have a HWComposer ID,
in that case it just can't use h/w composer composition.

Change-Id: Iec3d7ac92e0c22bf975052ae2847402f58bade71
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
7c9e82633c5c4f85b896a5879bdb25cdf659646e 24-Aug-2012 Mathias Agopian <mathias@google.com> Merge "simplify further vsync handling" into jb-mr1-dev
f6bbd44a23c2791277db7814a894633de04cd460 22-Aug-2012 Mathias Agopian <mathias@google.com> simplify further vsync handling

- we now clean-up "dead" connection in the main loop,
this entirely avoid the problem with the side effects of
releasing strong references. We now only hold on to strong
reference for the connection we will signal.

- also simplify how we build the list of "ready" connections, by
only adding them to the list when we did receive a vsync event

Change-Id: I2a84da431320a2af8e8a93e07622a1d258236f43
ventThread.cpp
ventThread.h
d12780ed123b54687fea534b34f54ef9c678cdcd 23-Aug-2012 Jesse Hall <jessehall@google.com> Merge "Update for cleanups in hwc interface" into jb-mr1-dev
bc46e0ad869befcfa97f6272615cdeae2135008f 22-Aug-2012 Ramanan Rajeswaran <ramanan@google.com> Merge "Revert "Added display initialization method"" into jb-mr1-dev
f1bf89dd88f3926faaec77b9322b2a580691960d 22-Aug-2012 Ramanan Rajeswaran <ramanan@google.com> Revert "Added display initialization method"

This reverts commit 3f3956236aac97b6aa25fa89f0983d5e9d065fdb

Change-Id: Ia2a15d9a5db88add6019edf9d955cef1f73d432d
urfaceFlinger.cpp
urfaceFlinger.h
bbd164a3c790a0649dffd2f015e6f47692c72e1c 21-Aug-2012 Jesse Hall <jessehall@google.com> Update for cleanups in hwc interface

Change-Id: I363fd8b085167a1af6c14b68012bda5c62bfe59f
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
8f971ff6661c875e7adb3f14731e1579c3c80c62 22-Aug-2012 Jesse Hall <jessehall@google.com> Pass the correct number of displays based on HWC version

Change-Id: I27372f5d3102ad56f6d67722d631ae18d37f8330
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
3f3956236aac97b6aa25fa89f0983d5e9d065fdb 21-Aug-2012 Andy McFadden <fadden@android.com> Added display initialization method

The primary display device was being configured to "blank" by
default, which prevented the boot animation from appearing
(unless you got lucky with the hardware composer state).

Bug 6975688

Change-Id: Idaa0d0b98ebb331a17d1b16774c6b05bfa1e8728
urfaceFlinger.cpp
urfaceFlinger.h
a4cb35a2864d58e9a764a17623e15ab25a9964a0 21-Aug-2012 Mathias Agopian <mathias@google.com> fix various issues in SF's EventThread

- one issues caused most timestamps to be reported as 0
- on rare occasions an uninitialized variable could be used
- vsync counts per connection were accessed unthreadsafely

we now have 2 lists of connections in the main loop, one just
keeps a list of strong refs to the connections because once
we have a strong ref we're not allowed to release it while
holding the lock.

the 2nd list holds the connections that have a vsync event to
be reported. all the calculations are made with the lock held.

Change-Id: Iacfad3745b05df79d9ece3719bd4c34ddbfd5b83
ventThread.cpp
ventThread.h
10125f00a50d3edd05deef9fcd2d368cf2766683 18-Aug-2012 Mathias Agopian <mathias@google.com> Fix deadlock in SF.

problem was that we were acquiring a strong reference
on Connection object with a lock held, when those
got out of scope (lock still held) their dtor
could be called if all other refs had dropped,
the dtor would acquire the lock again to
remove the Connection from the main list. boom.

we rearange the code so this doesn't happen.

Bug: 6942208

Change-Id: I0a0ebabce2842d29d60d645b64aac2f26640e59b
ventThread.cpp
ventThread.h
cd60f99aba9e750700a967db30b74a29145739cf 17-Aug-2012 Mathias Agopian <mathias@google.com> refactor compositing code to avoid multiple eglMakeCurrent() calls

when multiple displays are connected, we ended-up having to
call eglMakeCurrent() twice per display due to a limitation
in EGL. this fixes that.

Change-Id: I11e4584df50f8c24bbecee74e37b28b3ee031d2f
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
5f20e2d4462da3471f59152b32cd8640fa4a21da 11-Aug-2012 Mathias Agopian <mathias@google.com> reimplement wifi display hack with new external display SF framework

fix a few bugs with external displays

- HWComposer doesn't really handle multiple displays yet
so there is a lot of ugliness there

- We also need to make sure that external displays are not
blanked by default

- due to some EGL limitations surfaces being swapped need
to be current

Change-Id: I82bff05b43bcebd8da863c7c76b4edbc3bc223a9
isplayDevice.cpp
isplayHardware/HWComposer.cpp
ayerBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
818b46058aa3006e1d3c178abd36d4f10823f5d9 17-Aug-2012 Mathias Agopian <mathias@google.com> display states can't share the dirty flags

Change-Id: Ifade9f2f1a0df9a36aede77a6cf5eee4be534f98
urfaceFlinger.cpp
111b2d89221722d38f5b5b3ba65904ec22421839 17-Aug-2012 Mathias Agopian <mathias@google.com> binder interfaces can't be compared directly

we always need to compare their binder

Change-Id: I70d554ebc5009fe81e87923235f91451f32e1a30
urfaceFlinger.cpp
13233e067b8f71adc3a0ade5f442265e1f27084b 16-Aug-2012 Mathias Agopian <mathias@google.com> oopsie, missed a spot when fixing b/6970310

Change-Id: Ia320fddc7cc4b0666a4fee678af710ecf5f83ff5
urfaceFlinger.cpp
3559b07a885bcdff51a6dffb8e3a5ac5adf3a220 15-Aug-2012 Mathias Agopian <mathias@google.com> we were mistakenly optimizing out SF's main transactions in some cases

due to a typo, SF's main transaction was conditional to having a
display transaction.

more correct fix for 6970310

Bug: 6970310
Change-Id: Iafd8c4e02afa5db829cc1c65950cfcc74754c6af
urfaceFlinger.cpp
01eb979243a57bd33f8389aeeade8024dd0258c0 15-Aug-2012 Jeff Brown <jeffbrown@google.com> Fix layer removal transaction.

Layers were not properly being removed because we were
setting the wrong transaction type flag at the time of
removal.

When layers are removed, we must use eDisplayTransactionNeeded,
not eTransactionNeeded, to ensure that the mLayersRemoved
flag is checked and the appropriate cleanup occurs.

Bug: 6970310
Change-Id: Id4b2897a34d4ac00aa0f92349c0ec6db95c1aaf7
urfaceFlinger.cpp
ea599dfff03b45903dae3288274c31cb24fd483f 13-Aug-2012 Jesse Hall <jessehall@google.com> Don't crash when recovering from WM death

Bug: 6956162
Change-Id: I27244b960c77187b4c4cd7297989c4c872e94a3a
urfaceFlinger.cpp
20128300e0cb7f459a60cfbcddb48190ce6545ed 14-Aug-2012 Mathias Agopian <mathias@google.com> make sure to repaint the screen when unblank()ing

Change-Id: I38e3a8e6bb31ef3d2f1fcaec7490cb92a4427db2
urfaceFlinger.cpp
8b736f138cfd9b239a2c7073347a13c489534ae1 14-Aug-2012 Mathias Agopian <mathias@google.com> xdpi / ydpi were reported as 0

Bug: 6975723
Change-Id: Ia7fa37ec11e2308804f5034959a37e508d292d31
isplayDevice.cpp
isplayDevice.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.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
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
ef7b9c7eac036cc1230c64821039d18f8cbd2c1c 11-Aug-2012 Mathias Agopian <mathias@google.com> screenshots could stop working after camera was used

once a secure window is put on screen the display
would retain its "secure" flag forever, preventing
screenshots from being taken.

Bug: 6933967
Change-Id: I5be8355145ca7d580d84552311642f8fa912fe6a
isplayDevice.cpp
urfaceFlinger.cpp
748f3df66f6695681cde44461e2548e6e1dbc1bb 10-Aug-2012 Mathias Agopian <mathias@google.com> avoid crashing when we don't have an h/w composer

should fix the emulator

Bug: 6956162
Change-Id: I38247b59d276b8db078c4dc2caba7d3fb545912c
isplayHardware/HWComposer.cpp
3165cc21cfea781988407b19bd83292b19f05f55 09-Aug-2012 Mathias Agopian <mathias@google.com> libgui includes refactoring

Change-Id: I1d24ec17f5003ec2abab5f7472daaff4cc4cc2d3
isplayDevice.cpp
ayer.cpp
ayerBase.cpp
ayerScreenshot.cpp
urfaceFlinger.cpp
1e26087493ac0e7d7dc6dea8ad85cfef08b3271f 09-Aug-2012 Mathias Agopian <mathias@google.com> Add a display parameter to HWComposer where needed

- also replace C casts with C++ casts
- only the interface is changed, HWComposer still doesn't
fully handle multiple displays

Change-Id: I48eb89bff2edb76bf1d4d41f46802b9b2a7166a8
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
28947d7fbf9f486539322e8e12dd057568e180c2 09-Aug-2012 Mathias Agopian <mathias@google.com> now able to set the layer stack on a DisplayDevice

Change-Id: Ia9691cf221b9444c243eb468d9e276a30e600b6b
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
b685c542836b93c99cd85053e07696406ea37adb 31-Jul-2012 Jesse Hall <jessehall@google.com> Changes to support multi-display HWC

Change-Id: I07efff54f2980dcb013935747b03e099b8f1181b
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
14bd369e4b711bfb267279c2161358542ed75b29 07-Aug-2012 Jamie Gennis <jgennis@google.com> Merge changes Ic3d35a93,I46ec942d into jb-mr1-dev

* changes:
SurfaceTexture: fix an out of bounds array access
surfaceflinger: refactor FrambufferSurface
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
isplayDevice.cpp
isplayDevice.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
isplayHardware/HWComposer.h
urfaceFlinger.cpp
92516c84ef2a167524007a0584fb26018b5cb9c4 06-Aug-2012 Greg Hackmann <ghackmann@google.com> fix pdk build

Change-Id: Ia4db8e1e8ee18ac112bf13a5ab2a75edb08fc70f
Signed-off-by: Greg Hackmann <ghackmann@google.com>
dmConnection.cpp
028a7572c81f91e4039b694cde1f55fdb3e483c7 05-Aug-2012 Mathias Agopian <mathias@google.com> DisplayDevice doesn't need weak pointers or polymorphism

let's use a LightRefBase for now.

Change-Id: Ida068fa902343a8f89ffb6d34c2cd4627ab43c6c
isplayDevice.h
4297734c1156fd8ede7e9c61b1e439f9e1c18cd9 05-Aug-2012 Mathias Agopian <mathias@google.com> turn DisplayDevice into a reference-counted object

it's safer this way because this object owns an
EGLSurface which cannot be easily reference-counted.

it also gives us the ability to sub-class it, which
we might want to do soon.

Change-Id: I07358bb052dc5a13b4f2196b2c2b6e6e94c4bb4f
isplayDevice.cpp
isplayDevice.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
d8552d796cbcb9a89711fc8f97b34838da5cbdb7 05-Aug-2012 Mathias Agopian <mathias@google.com> DisplayDevice only needs ANativeWindow not SurfaceTextureClient

Change-Id: Ib5be5af8bede435c8d5d9fabf586d28d0e74c2cb
isplayDevice.cpp
isplayDevice.h
888c822c4cb6976aab9256c58bae9e17e3e55c5c 05-Aug-2012 Mathias Agopian <mathias@google.com> remove a dependency of DisplayDevice on the refresh rate

this remove a dependency (not all) on FramebufferSurface

Change-Id: Ie07ce70760cdcedfb41b5b41bea8da45637bf474
isplayDevice.cpp
isplayDevice.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
c1d359d42b753fcc2426d66a0f782f7c300893bc 05-Aug-2012 Mathias Agopian <mathias@google.com> break SF dependencies on libdvm and libandroid_runtime

these libraries are only needed for debugging and are now
linked at runtime if needed.

Change-Id: I03f138523c6de166a1e2700d4454d4a854aee145
ndroid.mk
dmConnection.cpp
urfaceFlinger.cpp
92efd84f37ce5a8aae74dc9086f825a67b6894e9 03-Aug-2012 Mathias Agopian <mathias@google.com> screen-off animation won't be handled by SF anymore

Change-Id: Idc41386804ae7d7eb981c36e1bc55c270870c8d0
urfaceFlinger.cpp
urfaceFlinger.h
92a979a92c34b7de609ce2b1662c73bb8a2728b9 03-Aug-2012 Mathias Agopian <mathias@google.com> We now have a real list of displays.

displays can be dynamically added or removed, and the
list is part of the SF's transaction.

Change-Id: I4186ea39f1317c0e7c044f869004017738968fab
isplayDevice.cpp
isplayDevice.h
urfaceFlinger.cpp
urfaceFlinger.h
fcb239d3dac8bc80f28177f1951611c1d43286ff 03-Aug-2012 Mathias Agopian <mathias@google.com> don't filter when capturing a screenshot unless needed

bug: 6919952
Change-Id: Ia6fbe9bc7e533a64cfdd6ef7f0cd6b9f11feb947
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
d3ee231eddce0b69ec5e35188dbd0f4a2c3b9ac3 02-Aug-2012 Mathias Agopian <mathias@google.com> cleanups in preparation of bigger changes

- fix typo drawForSreenshot misspelled
- get rid of DisplayDeviceBase
- removed unused or unneeded code
- always pass a DisplayDevice to Layer methods that are called
on a per-display basis (to make it clear that this could be
called more than once per composition).

Change-Id: Id948b7e09fe5c06db0e42d40d6ed75dd095c7f44
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware/DisplayDeviceBase.cpp
isplayHardware/DisplayDeviceBase.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerScreenshot.cpp
urfaceFlinger.cpp
0f2f5ff75b7b48ceb64270655ee6b62d09bf4d00 01-Aug-2012 Mathias Agopian <mathias@google.com> rename DisplayHardware to DisplayDevice

Change-Id: I3f7250cd914e0da4f9ec2c9403587bbe12f3cc62
ndroid.mk
isplayDevice.cpp
isplayDevice.h
isplayHardware.cpp
isplayHardware.h
isplayHardware/DisplayDeviceBase.cpp
isplayHardware/DisplayDeviceBase.h
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
ventThread.cpp
ventThread.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
be246f86bd6378a5110e81e9d9068ab03c3b077e 01-Aug-2012 Mathias Agopian <mathias@google.com> Layers are now sorted by layer-stack first, then by z-order

Change-Id: I7a82929df5ba87b9d88cc5be87e1a233bc4628e9
urfaceFlinger.cpp
52bbb1ae239c8a4d05543a23fa8c08467d09c3b2 01-Aug-2012 Mathias Agopian <mathias@google.com> getting closer to final main composition loop

Change-Id: Icd63782366ffd11d9ea00c925ae5783ed7440cdb
isplayHardware.cpp
isplayHardware.h
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
87baae104a3e4c2059990b01c393476065c558b0 31-Jul-2012 Mathias Agopian <mathias@google.com> get rid of global regions that should be tracked per display

Change-Id: I3b871860cc29f1b2fdcc22b0c577a6eae65d9296
isplayHardware.cpp
isplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
34a09ba1efd706323a15633da5044b352988eb5f 30-Jul-2012 Jesse Hall <jessehall@google.com> Move eglSwapBuffers out of HWComposer

Commit 8630320 moved the eglSwapBuffers fallback (for devices with no
HWC implementation) from DisplayHardware to HWComposer. But HWComposer
only knows about the framebuffer EGL display and surface handles if
there is a HWC, so it was always passing bogus handles.

This change moves the eglSwapBuffers fallback up to SurfaceFlinger,
which has access to the framebuffer EGL handles.

Bug: 6886613
Change-Id: Iad3f5ff7c90ee48d7053999e6a4548d6794b6ebd
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
c666cae2d5995097ec49a87e375e2afdd92802b7 26-Jul-2012 Mathias Agopian <mathias@google.com> get rid of the shared-memory control block

Change-Id: If814060aca1d2ff2619d4adcd57296983d207f7f
isplayHardware.cpp
isplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/Transaction_test.cpp
028508cad5ef63ef9fbd42c14e76658e4fd9ebf2 26-Jul-2012 Mathias Agopian <mathias@google.com> hopefully fixe a race condition in sf initialization

if we received a vsync event during SF init, we could crash
as not all objects were ready to go.

Change-Id: Ie11b46e3eb1b37a709dd8757843d444f93dd0189
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
8630320433bd15aca239522e54e711ef6372ab07 25-Jul-2012 Mathias Agopian <mathias@google.com> split HWComposer out of DisplayHardware

we will only ever have a single instance of HWComposer, so
it's now an attribute of SurfaceFlinger, instead of being part
of DisplayHardware.

DisplayHardware now just represents a "display" (it should be renamed).

Change-Id: Iec191e57686868e1df6daa8b880a286c9fefde56
isplayHardware.cpp
isplayHardware.h
isplayHardware/HWComposer.cpp
ventThread.cpp
ventThread.h
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
98a121aa916eb7acbf11df0e3e31a6fede6fc9dd 25-Jul-2012 Mathias Agopian <mathias@google.com> get rid of ro.sf.hwrotation, it's not used anymore

Change-Id: I2ee469ac89ecd65d7187be5cab08b5cc18f67cbe
isplayHardware.cpp
isplayHardware.h
urfaceFlinger.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
ayerBase.cpp
ayerBase.h
urfaceFlinger.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
urfaceFlinger.cpp
urfaceFlinger.h
921e6ac4b7610a178285898d191eb0e3afe906c0 24-Jul-2012 Mathias Agopian <mathias@google.com> SurfaceFlinger cleanup

mostly refactored SurfaceFlinger.h, but also removed dead code.
cleaned-up a few includes as well.

Change-Id: Ib15f4ffe567912b61ee98aa076c6a283b72811b5
lient.cpp
isplayHardware.cpp
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
ventThread.h
ayer.cpp
ayerBase.cpp
ayerBase.h
ayerScreenshot.cpp
urfaceFlinger.cpp
urfaceFlinger.h
6ee93c0d36dff1339eb2428be2d65441398e6e5f 23-Jul-2012 Jesse Hall <jessehall@google.com> Increment iterator on early-out too

Bug: 6860046
Change-Id: I82f9e4062cb58d5479c9d8dc5f2f0770a1dcc605
urfaceFlinger.cpp
a6b32db164e7834e211261046f3229bf50bc0098 20-Jul-2012 Jesse Hall <jessehall@google.com> Handle empty HWC layer list when composing

Bug: 6777877
Change-Id: I71e9b948d04dda33d45cfa986d9c7e28328cf749
urfaceFlinger.cpp
a49126087b4494f4ef50873f3a3f6727265f6621 12-Jul-2012 Mathias Agopian <mathias@google.com> factor EGL/GL and surface creation out of DisplayHardware

Change-Id: Icd85a6a4caad06f056578008af3e21666fa8b1f4
isplayHardware.cpp
isplayHardware.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
ayer.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
3b1d2b6b2bbfb5df46b1059ec52360974e6f1428 11-Jul-2012 Mathias Agopian <mathias@google.com> mVisibleLayersSortedByZ is now maintained per display

Change-Id: Idcdb77eba1a3f99b3e4b2150128a82acaffcd2a8
isplayHardware.cpp
isplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
f0048f96040671c1597b157a36e4959a0662708e 17-Jul-2012 Colin Cross <ccross@android.com> Merge "surfaceflinger: call into hardware composer to blank screen"
10fbdb6059755f009e02f0ccc2b9d289beb6b086 13-Jul-2012 Colin Cross <ccross@android.com> surfaceflinger: call into hardware composer to blank screen

Call into the new HWC blank operation to blank or unblank the screen.
Legacy systems may have already blanked the screen via early suspend,
and can choose to not implement the blank operation in their hardware
composer implementation.

Change-Id: Ib403c8c0e36367a2cfef3e1d124872fcfeb9e7cb
isplayHardware.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
4fec873a98f7b4380720cd1ad006f74c8cdc73da 29-Jun-2012 Mathias Agopian <mathias@google.com> one more step towards multiple display support

- remove dependency on cached state in validateVisibility
- get rid of mVertices and mTransformedBounds
- get rid of validateVisibility
- get rid of unlockPageFlip
- handleTransaction now returns a dirty region
- computevisibileregion now uses window-manager space
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerScreenshot.cpp
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceFlinger.h
c5c5a14c06de249d8e0445fd24699e1d9aa04549 03-Jul-2012 Jesse Hall <jessehall@google.com> Only set acquire fences on overlay layers

Change-Id: I08e8173f83580de5a4e43a0ba5ea03e5ec6e8782
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.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
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
b42b1ac1587aebda5e2f334d95b620271fafba4e 28-Jun-2012 Jesse Hall <jessehall@google.com> Return fence from acquireBuffer

Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
isplayHardware/FramebufferSurface.cpp
1b03149f3533db04e72e088d3fdd09d0087ca594 21-Jun-2012 Mathias Agopian <mathias@google.com> get rid of GraphicPlane

its functionality is now folded into DisplayHardware
there will be more changes in that area.
ndroid.mk
isplayHardware.cpp
isplayHardware.h
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ventThread.cpp
ventThread.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/FramebufferSurface.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
aa049f0d19684cf92f2f6510133a33138845dcd3 20-Jun-2012 Mathias Agopian <mathias@google.com> am 8aaf3e47: am a67e418e: Exit boot animation cleanly.

* commit '8aaf3e47a51aa0beebecc8c536504d310d07cda9':
Exit boot animation cleanly.
a67e418e1fda219f6cc0a7e420bcf5cc4f9fe710 20-Jun-2012 Mathias Agopian <mathias@google.com> Exit boot animation cleanly.

The desc.txt file can now mark parts as 'must finish cleanly' by using
'c' as the part line prefix rather than 'p'. If so indicated, if the
bootanimation is asked to quit it will do so only after waiting to
finish that part.

I considered either making init.c service killing smarter or promoting
bootanim to be a bindable service with a requestExit method. However,
these changes are probably too big/risky given our ship date. So
I used a property as a mailbox between SurfaceFlinger and bootanim.

Bug: 6679877
Change-Id: Id7dca22caa50b450fff25ca94f7242d971034f41
urfaceFlinger.cpp
urfaceFlinger.h
549646d29fccfb2366cc9ca4d894d39c55351fae 19-Jun-2012 Jesse Hall <jessehall@google.com> Merge "Add support for HWC_DEVICE_API_VERSION_1_0"
5df996211d4e263feb862121cfafa7f9c8eeda68 19-Jun-2012 Mathias Agopian <mathias@google.com> fix typo in makefile LOCAL_CFLAGS was spelled LOCAL_CLFAGS

Change-Id: I58b96d28f608ce16fcad5ed0efb887e582779e03
ndroid.mk
urfaceFlinger.cpp
db403e8ff0d7727015e1a5009bab20eb7ec205bc 19-Jun-2012 Mathias Agopian <mathias@google.com> split-up Client.h out of SurfaceFlinger.h

Change-Id: I1993bf23e417163749d886283563a93d50b361b4
ndroid.mk
lient.cpp
lient.h
ayerBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
d50fdb02091e7d258ed9701af5f57d1b2b15cd61 18-Jun-2012 Jeff Brown <jeffbrown@google.com> am bbdad819: am 7c24b1d4: Merge "SF could get stuck waiting for vsync when turning the screen off" into jb-dev

* commit 'bbdad8193ea3a16e9f65f32f4469959577b400e9':
SF could get stuck waiting for vsync when turning the screen off
d3076aca0f6106dbc6c5a1588f560c62567752a4 16-Jun-2012 Mathias Agopian <mathias@google.com> Merge "Implement SurfaceFlinger's ANW on top of BufferQueue"
7d886474734623fd2565ff40215ffe497e10b4cc 15-Jun-2012 Mathias Agopian <mathias@google.com> SF could get stuck waiting for vsync when turning the screen off

When turning the screen off we could have 2 waiters on the
vsync condition: The main vsync waiter as well as one in
onScreenReleased(). We were only signaling the condition though,
so it it would be possible to wake onScreenReleased() without waking
the main vsync thread which would then be stuck in .wait().

We fix this by just using broadcast() when receiving a vsync event.

We also add a broadcast() to signal when the state of
mUseSoftwareVSync changes. This is important particularly for
the transition from hardware to software vsync because the main
vsync waiter might have observed mUseSoftwareVSync == false
and decided to block indefinitely pending a hardware vsync
signal that will never arrive.

Removed a potentially deadlocking wait for a signal in
onScreenReleased(). The function was trying to wait for the last
vsync event from the hardware to be delivered to clients but there
was no guarantee that another thread would signal it to wake up
again afterwards. (As far as I can tell, the only other other
thread that might wake it up at this point would be a client
application issuing a vsync request.) We don't really need to wait
here anyhow. It's enough to set the mUseSoftwareVSync flag,
wake up the thread loop and go. If there was a pending vsync
timestamp from the hardware, then the thread loop will grab
it and use it then start software vsync on the next iteration.

Bug: 6672102
Change-Id: I7c6abc23bb021d1dfc94f101bd3ce18e3a81a73e
ventThread.cpp
5880cc573823148237eac9ab7bc586b8e4eb7160 06-Jun-2012 Jesse Hall <jessehall@google.com> Add support for HWC_DEVICE_API_VERSION_1_0

The acquire and release fences aren't yet used; this is just support
for the new version and temporary backwards compatibility for older
versions.

Change-Id: Ia5ccc05a97c86f649042b9a35e11042fa0187e84
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
3e8b853d67c737abdb363f9c978e7d83eac4d888 14-May-2012 Mathias Agopian <mathias@google.com> refactor HWComposer to break dependency with the HAL headers

HWComposer must abstract the HWC HAL entirely, so that the
HAL can continue to evolve (and break binary compatibility)
without breaking SurfaceFlinger. The HWC data structure had
leaked outside of HWComposer, this is now fixed.

We now have an abstract interface that provide all the
needed functionality, HWCompose provides concrete
implementations of it based on the the HWC version.

Change-Id: I40c4676dc986b682ede5520a1c60efe64037b0bb
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.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
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/FramebufferSurface.cpp
isplayHardware/FramebufferSurface.h
52cf768fc24f7b6b8f4bacf8b630acc1fbee7e2f 08-Jun-2012 Colin Cross <ccross@android.com> Merge "surfaceflinger: replace early suspend with binder call from PowerManager"
0cd545f14261d829513e0d6e8fa5e4e4f3372b3d 07-Jun-2012 Mathias Agopian <mathias@google.com> sometimes we would incorrectly scale the content of a surface

this would happen when a resize was pending (ie: we have received
and processed a resize transaction but have not received a buffer
with the right size) and a new transaction came in that didn't
involve a resize, for instance a translate-only transaction.

in this case, we would incorrectly update the drawing state
with the pending size, eventhough we still don't have a buffer
for it.

the solution is quite simple, we never allow the size to propagate
from current to drawing state during the regular transaction processing
(unless we are in fixed-size mode -- meaning we don't need to have
a matching size buffer), this propagation happens later once we
receive the buffer.

Bug: 6624163
Change-Id: I11a97e4b88a7f3a0571ddcfe99c86cb04ce01a4d
ayer.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
isplayHardware/DisplayHardwareBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
ba43e0a1faee9629ca2d0beb53dd6c44bb9bfd05 07-Jun-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: remove all GLES scissor calls." into jb-dev
a4c5b19dd711abecf87ff1e04e530edec58a0d8c 05-Jun-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: remove all GLES scissor calls.

Bug: 6576505
Change-Id: I494b7627f2e271a234706bf49a9490f8ac56c77a
urfaceFlinger.cpp
4824d40a35333182c2eb3593511b9bcbecd0a943 05-Jun-2012 Mathias Agopian <mathias@google.com> sometimes SF would not process a surface resize

this would happen when a window started with size A, was
resized to B and immediately resized to A. In this situation
the erquested and active size would be the same, and SF
would think a transaction wasn't needed.

we fix this by always comparing the requested sizes.

Also, make sure to set mRefreshPending once we're sure
we have succesfully called updateTexImage().

Bug: 6580962
Change-Id: I2c48b4df7f05fd35c9e1d2dd82095b0f3d5a0b6a
ayer.cpp
e31564d8eb0ab67e167a888eccce20f5b4e4ef45 30-May-2012 Mathias Agopian <mathias@google.com> Fix a crasher is surfaceflinger.

this bug introduced recently would happen when the very first
buffer of a surface was rejected for not having the right size

Bug: 6577035
Change-Id: I9fabf20006019f2a6c308be7c7f5c05bdcfd5014
ayer.cpp
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
ayer.cpp
702634a4dad85cfc292618ac91eda6c00f42b7c5 24-May-2012 Mathias Agopian <mathias@google.com> refactoring in preparation for bug:6498869 fix

here we just shuffle a bit the code inside lockPageFlip(),
we move the code that handles the buffer size closer to the call
to updateTexImage(). no functionality change.

Change-Id: Ie3193cd86cd32cf3c89532449fd747d145ca0ab6
ayer.cpp
05cec9d1275fd939c2d1aec235dca2bdb8edef63 23-May-2012 Mathias Agopian <mathias@google.com> improve resize transactions

use a flag instead of pre-committing the "requested" state
to prevent propagation or "requested" to "active", which makes
things a lot clearer when reading the code.

also avoid going through the "resized" code-path when requested
size is equal to "active" size.

Bug: 6498869
Change-Id: I24f893ba0ec5ca06aac5b8da9818989ae7ce4005
ayer.cpp
ayerBase.cpp
ayerBase.h
419e196e639c8adb875da2765abcef95017b6d4a 23-May-2012 Mathias Agopian <mathias@google.com> Improve debug logs and minor clean-up

Bug: 6498869
Change-Id: I14d1b4d6960b87b5a7c4d7e20b92538edd9331ff
ayer.cpp
ed9807bd7dbd4863841e251138392c54755eb394 18-May-2012 Mathias Agopian <mathias@google.com> we need to wait for vsync when doing the screen-off animation

Bug: 6511421
Change-Id: I7a85a55e66a3a8d9937df575e98a5efec01a634f
urfaceFlinger.cpp
b30c415539813b96a831b75d07f3d12aef1aeab7 17-May-2012 Mathias Agopian <mathias@google.com> Fix "Battery/Status/Clock status bar area flickers when dragging down"

The crop is now handled like a resize, it's latched only when we
receive a new buffer in the case we have a resize in the same
transaction.

Bug: 6498869
Change-Id: I9f3cbbe08fb19443899461ec441c714748a4fd1a
ayer.cpp
ayerBase.cpp
ayerBase.h
93ffb86b909005bbee4993fc9053f017466311c7 17-May-2012 Mathias Agopian <mathias@google.com> minor refactoring in praparation of crop fix

Bug: 6498869
Change-Id: I12a6f9a9fdfd2ea1db3fbe5fc8cb443aeaedb328
ayer.cpp
ayerBase.cpp
ayerBase.h
cbad735d8cc4ff360341bf12d8c388edcbc78ce3 15-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: recompute visible regions less

This change removes some visible region recomputation that was needed to handle
the SCALING_MODE_FREEZE cropping. We've changed things to use a window crop
from the WindowManager instead, so this is no longer needed.

Bug: 6299171
Change-Id: I32fbc2b689c985837126d8ba3d9a91e79613ffbf
ayer.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
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
51dcd581b1fb1bcea7cac9b969123abda13e34ab 10-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: recompute visible regions more

This change makes a change in the crop, scaling mode, transform, or buffer
dimensions trigger a recomputation of the visible regions of a window. With
the new cropping behavior for SCALING_MODE_FREEZE all of these can now affect
the visible region.

Bug: 6470541
Change-Id: I1904e47efbd708e28bf189f637d24dbef65cd41e
ayer.cpp
161534a3c5ee77bc91e7a73ffb6274f35324f8b5 07-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: SCALING_MODE_FREEZE cropping support

This change adss support for applying a buffer crop to layers with the
SCALING_MODE_FREEZE scaling mode. These layers do not scale the image, but
rather treat all pixels outside the crop rectangle as fully transparent.

Change-Id: I762518e56a37aef7747f9b581df2f2589b232c49
Bug: 6299171
ayer.cpp
ransform.h
cbb1a95819ec302ae15e4a1162a8b1349ae5c33e 09-May-2012 Jamie Gennis <jgennis@google.com> SurfaceFlinger: tell SurfaceTex about filtering

This change makes SurfaceFlinger set the filtering-enable on each layer's
SurfaceTexture before querying the texture matrix to use for GLES composition.

Change-Id: I40c3defd73ebf96e3cabb3bfdb1fc97f2036753a
ayer.cpp
ayer.h
06e51a0aaf76fe53cef20c3345cf1ebda2b3461e 27-Apr-2012 Mathias Agopian <mathias@google.com> don't actuate vsync hint when not needed

Change-Id: I61c43dd76041816ab8cbe9aeaa55c11c1479ed03
isplayHardware/PowerHAL.cpp
isplayHardware/PowerHAL.h
03e407270c7ad76632f982c886d0776bed9e9b4c 27-Apr-2012 Mathias Agopian <mathias@google.com> set vsync power hint

Change-Id: I28c2faf9ff584df3e74392712971cbcf75eb9e98
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/PowerHAL.cpp
isplayHardware/PowerHAL.h
ventThread.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
urfaceTextureLayer.cpp
urfaceTextureLayer.h
a0db308c3d62301ae41b2e2bcf295c4ee4c7b08e 23-Apr-2012 Mathias Agopian <mathias@google.com> remove SurfaceTexture::connect()

use BufferQueue::connect() instead

Change-Id: I04aab7cf11304bf962cde38470747f3b19ddba42
ayer.cpp
7f42a9c47c5a7f40cf02032d286d6bd62f28e650 24-Apr-2012 Mathias Agopian <mathias@google.com> triple buffering is now controled by BoardConfig and enabled by default

use TARGET_DISABLE_TRIPLE_BUFFERING := true to disable
triple buffering.

Change-Id: I9875d6ddefd23c1af9e51e7ee7dec1bacd1e6799
ndroid.mk
ayer.cpp
56a2bbe70876c1ac4e18b3740722c01d69bca2fd 19-Apr-2012 Mathias Agopian <mathias@google.com> SF needs to render even if we don't have a h/w composer

Bug: 6350574, 6361055
Change-Id: Iab92cc31bab4771fca63619c8e3105c759535f72
urfaceFlinger.cpp
b9494d5c9d44e4a59b6d510fea1665de434f3c6b 18-Apr-2012 Mathias Agopian <mathias@google.com> make sure to clear the framebuffer when using overlays

Bug: 6354761, 6353719
Change-Id: I0739de3fee7c54c14b294ffd768b70ee1f541d9e
urfaceFlinger.cpp
urfaceFlinger.h
0c8ecacb370b5f7ee6f0fc1fb2ae978f9b670c6d 17-Apr-2012 Mathias Agopian <mathias@google.com> Merge "don't attempt to clip layers anymore using glScissor"
160d544dbb4dd9fd7808232c6467acc332b684f3 17-Apr-2012 Mathias Agopian <mathias@google.com> Merge "get rid off preserve backbuffer optimization in SF"
82ca93bf66e50dcae6f96dc78e88ff24df2b4f32 17-Apr-2012 Mathias Agopian <mathias@google.com> Merge "s/w rendered apps can now use n-buffering (n>2)"
f74e8e0602100e048c13ea262f0c19c3b8738b6f 16-Apr-2012 Mathias Agopian <mathias@google.com> don't attempt to clip layers anymore using glScissor

this seems to hurt performance on some GPU. this change
might negatively affect performance on other GPUs though, but
probably in less time-sensitive cases. If this becomes a
problem it might become necessary to pre-clip the geometry
(so that we don't have to use glScissor).

This improves the rotation animation quite a bit.

Change-Id: I5dbe1286f7ad858ef2c1e1ad9a07ee3f26c0b1f3
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerScreenshot.cpp
urfaceFlinger.cpp
a2f4e56fec0fb36c4a370eb23d6e9dc57f250b59 16-Apr-2012 Mathias Agopian <mathias@google.com> get rid off preserve backbuffer optimization in SF

this optimization didn't improve performance and in fact
seemed to hurt more than anything else. it also made
things a lot more complex as it introduced edges cases
when switching to/from h/w composer.

Change-Id: Iaafc235e175f5740cd98bff914d706e02ab88bb8
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ayerBase.cpp
ayerBase.h
ayerScreenshot.cpp
urfaceFlinger.cpp
urfaceFlinger.h
8acce2046ac7086c3dcfb1fc7c9c39f31de48694 14-Apr-2012 Mathias Agopian <mathias@google.com> make sure to repaint the screen when screen turns on

Bug: 6336168
Change-Id: Ic6f11b6bf6c3d849f5cb6ac95961d10d7f88e4ec
urfaceFlinger.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
urfaceTextureLayer.cpp
fca660cf730161f823e770ad1693fab441477edd 13-Apr-2012 Mathias Agopian <mathias@google.com> don't wake-up eventthread every 16ms if there are no vsync requests

Bug: 6332534
Change-Id: Idf79ad913770c6180969f6c95a9b125fff580231
ventThread.cpp
69a655caef30663403802281210363f643ceb946 12-Apr-2012 Mathias Agopian <mathias@google.com> Revert "handle surfaces posts independently from composition"

This reverts commit 562f4b2c1e555b853997113bb54b21303d642bc6.

Change-Id: I96efe11c2f0494ed2d57fc580e49c598d913830e
essageQueue.cpp
urfaceFlinger.cpp
562f4b2c1e555b853997113bb54b21303d642bc6 25-Mar-2012 Mathias Agopian <mathias@google.com> handle surfaces posts independently from composition

surfaceflinger will now handle each surface post
as soon as possible and handle the composition
itself at VSYNC time as usual.

Change-Id: I6b1ae33fd56062d86e5419ebab8def0ca5803fbf
essageQueue.cpp
urfaceFlinger.cpp
22ffb117b0c2a906bd04aef9738a52223cdd1dce 11-Apr-2012 Mathias Agopian <mathias@google.com> make sure to disable VSYNC while screen is off

Change-Id: If1894c43b0a39a2851e1280a35ae77bccd6d9abd
isplayHardware/HWComposer.cpp
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
b60314a12f3336b27d73920805ab07cbc498d857 11-Apr-2012 Mathias Agopian <mathias@google.com> rework screen on/off code

Change-Id: I13f71e850592a588bbd4805b1830c503bd4decb4
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
urfaceFlinger.cpp
urfaceFlinger.h
e2c4f4ec23b735dd2a03f4ea8b08b288a1bb04e8 11-Apr-2012 Mathias Agopian <mathias@google.com> Added vsync debugging information in dumpsys log

Change-Id: I20ef05a73d89caaf6a70dc9ca25ada6e6a1f6ff9
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
ventThread.h
3a77871383bc1a03cc866686d81628493d14de7c 09-Apr-2012 Mathias Agopian <mathias@google.com> start VSYNC thread when HWC doesn't handle it

Change-Id: I853a822ea9ec13870ae25af55a89ad9a8cc3936a
isplayHardware/HWComposer.cpp
2965b26022f95051f65b09d7eac47cbe923855c9 09-Apr-2012 Mathias Agopian <mathias@google.com> VSYNC handling cleanup

Change-Id: I1376bf864c4e03c11fb6d1333a8b7cfdda08c9e4
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ventThread.cpp
d94d3b890ac3d5731bd0397874d32aa4bc74bd61 09-Apr-2012 Mathias Agopian <mathias@google.com> avoid turning vsync off/on at each frame

always keep vsync active for an extra frame before
deciding if it should be turned off.

Change-Id: I55b03265b7851b33a595e46a013f2ab55e66c964
ventThread.cpp
1a3bf41b7165ba294af46bc32483eaad61e707ea 06-Apr-2012 Erik Gilling <konkers@android.com> Fix SurfaceFlinger crash in HWC::eventControl

eventControl was not checking if there was a hwc before callingi
hwc->eventControl

Change-Id: I4d739fc9c0d47da131f4ffc5d50e274de156d012
isplayHardware/HWComposer.cpp
3eb38cb33e41ce40dd1094bdec850f0fca9f8a53 04-Apr-2012 Mathias Agopian <mathias@google.com> SurfaceFlinger now uses the new VSYNC HAL API.

If h/w composer doesn't support vsync (version < 0.3) we
"fake" it with a timer.

Change-Id: I1e3be79f43c9631d1293ad7d6cf52f9bfc42d65b
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
isplayHardware/VSyncBarrier.cpp
isplayHardware/VSyncBarrier.h
ventThread.cpp
ventThread.h
9d61b955db7ccd00d1e5b33e75f37dfd5ac2a456 04-Apr-2012 Mathias Agopian <mathias@google.com> Merge "Add HWC vsync hook. Currently unused."
31d2843b45ebdb69ec3355111b7567363fd2a6b7 04-Apr-2012 Mathias Agopian <mathias@google.com> Add HWC vsync hook. Currently unused.

Change-Id: I849d56f375813a044c5e2d0b25f791476a60fa01
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
cb9732a951d20cacb7ebe2dab132b5738226b1b6 04-Apr-2012 Mathias Agopian <mathias@google.com> refactor / simplify EventThread

Change-Id: I3981c6fba93b7b985174b2a7045e24db2c0b4428
ndroid.mk
isplayEventConnection.cpp
isplayEventConnection.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
7b5be95cb3903087742f1079fe89cddd8abe3696 03-Apr-2012 Mathias Agopian <mathias@google.com> use a socketpair instead of a pipe in BitTube

Bug: 6252830
Change-Id: Ia7a7b08409517214136261c05569dc5959a597ab
isplayEventConnection.cpp
4b2ba53423ac2dc795a5a0bf72f6d787d9dc8950 29-Mar-2012 Mathias Agopian <mathias@google.com> better workaround for bug: 6020860

this prevents the GPU from running when composition
is fully handled by overlays. this should improve
animations a bit.

Change-Id: If4ae584b7a3976e6bdd36e318686ac3940b6b075
urfaceFlinger.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
3854ed549012f2abf8fea7b0e6db30b104ea5547 23-Mar-2012 Colin Cross <ccross@android.com> surfaceflinger: disable ddms debugging on pdk builds

DDMS debugging depends on non-pdk apis, disable it when a pdk
build is selected.

Change-Id: I6376b5c4cf49f2c51f35f8d567f7c6d18daf893f
ndroid.mk
urfaceFlinger.cpp
b5dd9c0fee3b3d6d35035dfb992951ebea3e0e4e 22-Mar-2012 Mathias Agopian <mathias@google.com> rewrite density calculation code so it's understandable

Change-Id: I1016cd5fd75355abe4ab879d04f4849bd2dd4122
isplayHardware/DisplayHardware.cpp
urfaceFlinger.cpp
6fc0a9bd4bdd3ae4a09ae033f68c04fecfc35991 22-Mar-2012 Dima Zavin <dima@android.com> displayhardware: fix not obeying ro.sf.lcd_density when specified

Change-Id: I71efd6aebfdb0323b07327f5e448a5cb5eb0fad6
Signed-off-by: Dima Zavin <dima@android.com>
isplayHardware/DisplayHardware.cpp
1b15e1e26b3d410b6bd51feeb7077251a464fee0 15-Mar-2012 Dima Zavin <dima@android.com> surfaceflinger: use display dpi if not forced with ro.sf.lcd_nensity

Change-Id: I52c4b872e0f2c088c2a6ada7a5bb15db071f0002
Signed-off-by: Dima Zavin <dima@android.com>
isplayHardware/DisplayHardware.cpp
b267579ba8dfe3f47d2a481c5a3c2254e3d565a1 23-Feb-2012 Daniel Lam <dalam@google.com> SurfaceTexture: Fully refactored from BufferQueue

SurfaceTexture and BufferQueue are separate objects.

Change-Id: I230bc0ae6f78d0f9b2b5df902f40ab443ed5a055
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceTextureLayer.cpp
urfaceTextureLayer.h
fddc28d87136b55f0d9613e5f8ecd64a6aca018d 12-Mar-2012 Mathias Agopian <mathias@google.com> add ATRACE logs for screenshots

Change-Id: Ie8146c4d7608159e9d28b7338f9109b8fcdf955f
urfaceFlinger.cpp
35aadd6be249da4bd4851692e6aff757c91b32a7 09-Mar-2012 Mathias Agopian <mathias@google.com> fix surfaceflinger's dumpsys

Change-Id: I7b95c3e04f145003f9c0eef321a21f3f36dfe835
urfaceFlinger.cpp
622cfadc8f0d294f875151fe1d8985e0553795ea 05-Mar-2012 Mathias Agopian <mathias@google.com> fixup include paths

- remove unneeded include deps
- remove some hardcoded include paths

Change-Id: Ifae0e2b2d738e0f94f8525c45be78f4227ce1673
ndroid.mk
841cde55549cea7a344a1705b18d57a0c6c8ec45 02-Mar-2012 Mathias Agopian <mathias@google.com> add more ATRACE

Change-Id: I6cc5759fb0a05427680488fd12ae797e77644f3d
ventThread.cpp
urfaceFlinger.cpp
ed61a47c5b23e277d20a49fceb16d6ba5896b7d2 28-Feb-2012 Mathias Agopian <mathias@google.com> Merge "a window could get stuck to gpu composition"
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
ayer.cpp
urfaceFlinger.cpp
ec923ee0d0e6f95bd56275214c252cb57bb8cfd4 28-Feb-2012 Mathias Agopian <mathias@google.com> a window could get stuck to gpu composition

this could happen after an orientation change. basically
we need to triger a geometry-changed when the very first buffer
is received

Change-Id: I097e411fd6612c18725737cffccdbf6b2af3511c
ayer.cpp
90ac799241f077a7b7e6c1875fd933864c8dd2a7 26-Feb-2012 Mathias Agopian <mathias@google.com> fix libgui header location

Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/Transaction_test.cpp
ests/resize/resize.cpp
ests/screencap/screencap.cpp
ests/surface/surface.cpp
870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69 25-Feb-2012 Mathias Agopian <mathias@google.com> remove libui dependency on libEGL

Change-Id: I1194f04085637d5c384e134967249430cc43b6ee
isplayHardware/DisplayHardware.cpp
ff615cc7a1cceedd705b0623b058c54669b29596 24-Feb-2012 Mathias Agopian <mathias@google.com> deprecate L_8, LA_88 and RGB_332 in sdk

re-add support for pixelformats L_8, LA_88 and RGB_332 in libui
for backward compatibility.

This may or may not fix 6058926

Bug: 6049685
Change-Id: Ic1b8b4cc994522f7fe664da64c0ef76b98bc6d53
ayer.cpp
urfaceFlinger.cpp
fbc7922ec87298601ba6a3be1bd9f83ffaf9a233 24-Feb-2012 Mathias Agopian <mathias@google.com> workaround for an issue where the screen would flicker sometimes

bug: 6020860
Change-Id: I97807db66b66c5f4dcbed0df79d5d257cfc7c0bd
urfaceFlinger.cpp
4d143eed994778d37eb09bb5d452c26f12bca6e1 24-Feb-2012 Mathias Agopian <mathias@google.com> fix an issue in SF where we could miss some updates

Change-Id: I7d350bc05d1596655baddff3deaebaba58c9bcc0
ayer.cpp
ayer.h
urfaceFlinger.cpp
d11a1083bed6e1b7d71901bf7530224495961022 21-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "createSurface getpid() first parameter was removed"
751d0bb9b2f73f7e7ca3fbb0ed7ede7fd63b813a 21-Feb-2012 Mathias Agopian <mathias@google.com> Merge "SurfaceFlinger: set wrap mode on screenshot texture"
e8c9ec64f06a0a8aeb95a41523c17b53b6128903 09-Feb-2012 Glenn Kasten <gkasten@google.com> createSurface getpid() first parameter was removed

Most of these tests in this directory don't currently build,
but test-surface did build incorrectly by bad luck, using the old API.
test-resize still doesn't build, but when the other build errors
are fixed then it will use the right API.

Change-Id: I388d6d59fe0a2328f352214dcdc28839a24043f0
ests/resize/resize.cpp
ests/surface/surface.cpp
1676828d115301ee1d0d4ffa68f832cecc0bbff1 07-Feb-2012 Dianne Hackborn <hackbod@google.com> Merge "Return information about whether overlays are disabled."
12839bee29bdcc65731b4d42029cc59e2320c5c4 07-Feb-2012 Dianne Hackborn <hackbod@google.com> Return information about whether overlays are disabled.

Change-Id: I85ae42e9f28461f5142cc6b3c8e25ff3f195805a
urfaceFlinger.cpp
f6de1c04ffc2c7a739578b7612944fddb7011ab7 05-Feb-2012 Mathias Agopian <mathias@google.com> fix a crasher when starting SF with the screen off

SF could end-up in an infinite crash-loop during startup if it
was stopped while the screen was off. This happened because
the thread that manages screen blanking was started before
other important pieces of SF were initialized.

Change-Id: I0dded11dbf2395fdd57b673859a7aa0fa9eb32b6
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
urfaceFlinger.cpp
303d538bb012e82c6b9a98c4930a03455000f761 05-Feb-2012 Mathias Agopian <mathias@google.com> ui freeze workaround: reenable triple buffering mode

we're seeing UI freezes when window updates and
composition are separated. for now we workaround this
by always doing a composition after window updates on
vsync. triple buffering is reenabled for performance.

Change-Id: I693d705000b7452489bb0b4918fbeadb9879315c
ndroid.mk
ayer.cpp
essageQueue.cpp
urfaceFlinger.cpp
c95dbdc236acf002b5f8aed8c8a9e43047fc75b5 05-Feb-2012 Mathias Agopian <mathias@google.com> improve SF dumpsys
ayerBase.cpp
urfaceFlinger.cpp
b048cef231075a5e41d224b73fe11fec62f335b1 05-Feb-2012 Mathias Agopian <mathias@google.com> fix UI freezes

In some situations SF would mark a window as "has a pending update"
but would never process that update because the window is not
visible (fully transparent, hidden by another window, etc...), this
window would then be "stuck" until some other window updated.

Change-Id: Ifa18a9aef3a53f2593b473556702688ae62d9503
urfaceFlinger.cpp
c9ca7011501cb8730ce4e6e527cb402adb7a0178 04-Feb-2012 Mathias Agopian <mathias@google.com> attempt to fix an ANR in various apps

recent changes in SF introduced a hang where some windows would
stop being refreshed.
This is an attemp to fix that.

Change-Id: I6aa32ac0d6f1c0a6aea8f6195825dc4f4e6f93f9
urfaceFlinger.cpp
064b68d1bc6eaef1722fb0fe033a762e439365fa 03-Feb-2012 Mathias Agopian <mathias@google.com> Merge "separate transactions from updates"
67016af1e480a5f338555355638fc2a23e15c746 03-Feb-2012 Mathias Agopian <mathias@google.com> fix an issue where SF would spin if /sys/power/wait_for_fb_xxx don't exist

we now exit the Display thread on any error happening on these files.
also refactor the code and remove a lot of unused stuff.

Change-Id: I8d080c35b211890ca20ae09fa36fbdccdf5669a8
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
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
ndroid.mk
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceFlinger.h
baf1c68c749e872a1278bcb2f401f7a0a3025841 01-Feb-2012 Mathias Agopian <mathias@google.com> Merge "fix an issue with vsync event delivery"
3cf199aef6250552555344944c3e3a6e4ab05f92 01-Feb-2012 Mathias Agopian <mathias@google.com> fix an issue with vsync event delivery

vsync events were sometimes delivered to connected
client who didn't request them. this happened if
another client requested the delivery and that client
was first in the client list.

also fix the vsync test which didn't request any events as
well as DisplayEventReveiver documentation which was misleading
about the necessity to request vsync events.

Change-Id: Ie990fda3f337f8f0042745c4b2cde67936c45686
ventThread.cpp
ests/vsync/vsync.cpp
2bfa31c0cc43e08746f10164223b7e38e462725b 31-Jan-2012 Mathias Agopian <mathias@google.com> Nexus S now reports the proper frame-rate

don't hardcode it.

Change-Id: I4b37f37a9809cac937e6334c988b3185af2ebe22
ndroid.mk
8aedd4737d6ce8548d2fd5def65b1e1737283821 25-Jan-2012 Mathias Agopian <mathias@google.com> SF now synchronizes to VSYNC

Change-Id: Ic5e4f2ea9927ce133eef9499c03161325e9d02c5
ndroid.mk
ventThread.cpp
ventThread.h
ayer.cpp
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceTextureLayer.cpp
ad8d13c8858b33e3efef42086875c0b0836d2296 30-Jan-2012 Mathias Agopian <mathias@google.com> remove unneeded code

Change-Id: I07e2fca7274d2e12bf5b4aee0050794bdb97a8b3
urfaceFlinger.cpp
urfaceFlinger.h
25e66fc324bbc004fa8902b2d4699e41bb601104 29-Jan-2012 Mathias Agopian <mathias@google.com> added a few more commands to SF's dumpsys

--latency-clear [name]
clears the latency data for the specified layer or for
all layers if none is specified

--list
prints the list of all layers regardless of their visibility

Change-Id: I7c07ae020f838c173b98ee50f3fb3e93da78acbb
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
82d7ab6c7e0cf971e515134ccf072682dd1a2cdb 20-Jan-2012 Mathias Agopian <mathias@google.com> improve SurfaceFlinger dumpsys

It is now possible to say:

dumpsys SurfaceFlinger --latency

to print latency information about all windows

dumpsys SurfaceFlinger --latency window-name

to print the latency stats of the specified window

for instance: dumpsys SurfaceFlinger --latency SurfaceView

The data consists of one line containing global stats, followed by
128 lines of tab separated timestamps in nanosecond.

The first line currently contains the refresh period in nanosecond.
Each 128 following line contains 3 timestamps, of respectively
the app draw time, the vsync timestamp just prior the call to set and
the timestamp of the call to set.

Change-Id: Ib6b6da1d7e2e6ba49c282bdbc0b56a7dc203343a
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ventThread.cpp
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
e8696a40e09b24b634214684d18526187b316a2f 16-Jan-2012 Jamie Gennis <jgennis@google.com> hack up frame latency measurement

Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
1db13d79518f600d65a4fc006fe42900b890966e 19-Dec-2011 Glenn Kasten <gkasten@google.com> Get AID_GRAPHICS from right place

Change-Id: I97b1754dc7260fec083275c71a8f71ebfb2cefa8
urfaceFlinger.cpp
b1d1c6d4c2eb942e18a59a8cdf1c7c4f0f03ef1b 13-Jan-2012 Michael I. Gold <gold@nvidia.com> SurfaceFlinger: set wrap mode on screenshot texture

Some implementations of NPOT, particular those derived from core
GLES2, require the wrap mode to be CLAMP_TO_EDGE. Set the required
wrap mode for the screenshot texture so it passes the completeness
check.

Change-Id: I735016123e4acaf54b40d1435bd70281cef88a31
ayerScreenshot.cpp
urfaceFlinger.cpp
616c0cdf2c9e9a86e54f727640a6673bd99fda8e 13-Jan-2012 Mathias Agopian <mathias@google.com> fix a bug with vsync management

this bug was introduced recently. we were signaling *all* clients
regardless of the vsync rate.

Change-Id: I2ae8a6c820a390f602382596ba75e8ed737fb2ef
ventThread.cpp
55ef343331f5efbfe3e01bc9993d94faea236048 07-Jan-2012 Mathias Agopian <mathias@google.com> remove dead/usnused code

Change-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
a72d0db29213c407278a1d0257baa60db28c8471 10-Jan-2012 Mathias Agopian <mathias@google.com> Fix an issue with VSYNC

one-shot VSYNC listeners could miss a VSYNC event if
scheduled while in waitForVsync().

Change-Id: I720485784aecfea6cc7a23c77081d7af3c9c71db
ventThread.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
isplayHardware/DisplayHardware.cpp
isplayHardware/HWComposer.cpp
essageQueue.cpp
urfaceFlinger.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
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/HWComposer.cpp
ayerScreenshot.cpp
urfaceFlinger.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
ayerBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
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
isplayHardware/DisplayHardware.cpp
ventThread.cpp
urfaceFlinger.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
isplayHardware/DisplayHardwareBase.cpp
ayer.cpp
urfaceFlinger.cpp
urfaceTextureLayer.cpp
ransform.cpp
ests/Transaction_test.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
isplayEventConnection.cpp
isplayEventConnection.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
23748668d33ac850e64d87e25ac4cc78679c9384 05-Dec-2011 Mathias Agopian <mathias@google.com> fix a deadlock when removing a DisplayEventConnection

the deadlock would happen when the pipe became invalid and SF
trying to remove the connection from its list.

we know make sure to process events without holding a lock.

Change-Id: I39927ed8824fc7811e16db3c7608a2ebc72d9642
ventThread.cpp
ventThread.h
75b95f5bc199acbc42b5b41ca31683ca8ea1b1f9 04-Dec-2011 Mathias Agopian <mathias@google.com> Merge "fix an issue where invalidate/transactions could be missed"
be42aef82f7de3ef04c8c257f882bd6e9653d304 03-Dec-2011 Mathias Agopian <mathias@google.com> fix an issue where invalidate/transactions could be missed

Change-Id: I84a1fcba1317b2631f5441de7b7ecd12af5ad022
essageQueue.cpp
essageQueue.h
43bfe7f047668a5b74fefb8cfecbf070f637201b 03-Dec-2011 Jesse Hall <jessehall@google.com> am a91e54fe: am f57c1388: Merge "SurfaceFlinger: fix layer removal race condition" into ics-mr1

* commit 'a91e54fed6a0690d59c97bab9b081b2614880563':
SurfaceFlinger: fix layer removal race condition
222893641184014306a26a9d58690c8415181d12 03-Dec-2011 Mathias Agopian <mathias@google.com> fix an issue where updates could starve transactions

Bug: 5700586
Change-Id: Iaa4adc1a6aea1db6e2943efe4caca1f6cbebfa72
essageQueue.cpp
essageQueue.h
2f4b68d21c1a58cbcb1e6929fb241e425a8f7b5d 02-Dec-2011 Jesse Hall <jessehall@google.com> SurfaceFlinger: fix layer removal race condition

Layer::lockPageFlip() and layer::onRemove() could be called on
different threads and race such that lockPageFlip() successfully
called mSurfaceTexture->updateTexImage() but then gets NULL back from
mSurfaceTexture->getCurrentBuffer(), leading to a crash.

This change moves Layer::onRemove() calls to
SurfaceFlinger::commitTransaction() so they happen after the Layer is
done being drawn from and only happen on the main surfaceflinger
thread.

Change-Id: I4b550caadff4cc1878d7c3bca6129193fb0c713e
urfaceFlinger.cpp
urfaceFlinger.h
79544364aa3c088fa7fbfadfc169086653389555 30-Nov-2011 Mathias Agopian <mathias@google.com> am e2970700: am e8ba2aba: Merge "add a way to access the version string of the h/w implementation of EGL" into ics-mr1

* commit 'e2970700e921da4226061988a6e8953b1fbfb5a9':
add a way to access the version string of the h/w implementation of EGL
363c4a9fa0a646b14d4582db4b8d268780276208 30-Nov-2011 Mathias Agopian <mathias@google.com> Merge "add a way to access the version string of the h/w implementation of EGL" into ics-mr1
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
bc2d79ed7ada6243f3690f94ab512c0ddcdbed12 30-Nov-2011 Mathias Agopian <mathias@google.com> add a way to access the version string of the h/w implementation of EGL

we use a hidden egl extension. the version string is printed
in SF's dumpsys log.

Change-Id: I123eb4bde6de462bb2404c67b74d6d6219a48d6a
urfaceFlinger.cpp
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
urfaceTextureLayer.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
isplayEventConnection.cpp
isplayEventConnection.h
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/VSyncBarrier.cpp
isplayHardware/VSyncBarrier.h
ventThread.cpp
ventThread.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/vsync/Android.mk
ests/vsync/vsync.cpp
ests/waitforvsync/Android.mk
ests/waitforvsync/waitforvsync.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
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
8219e9122efece0dd6741d2fe94fd6a82dc5df89 29-Nov-2011 Mathias Agopian <mathias@google.com> Merge changes If4126023,Iacda2386,I1eb691f7,Ib56139f8

* changes:
Add support for sending VSYNC events to the framework
BitTube::read now handles EAGAIN
split ComposerService out of SurfaceComposerClient.h
rewrite SF's message loop on top of Looper
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
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
urfaceFlinger.cpp
urfaceFlinger.h
f61c57fe2e955e1c195bb0ca2dd7bcdaa922d5a9 24-Nov-2011 Mathias Agopian <mathias@google.com> rewrite SF's message loop on top of Looper

Change-Id: Ib56139f87a5c0b124e34da5c8151207219b2577b
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
b8bb31dc103a8911e1be04821121963ed79d5dbb 23-Nov-2011 Mathias Agopian <mathias@google.com> temporarily hardcode Nexus S refresh rate

Change-Id: Id8465f679b96636041b4b891d0b358c387d456c3
ndroid.mk
465494486c186c239b629a8addf0d347db714197 16-Nov-2011 Mathias Agopian <mathias@google.com> remove hack that hardcoded the refresh rate

Change-Id: Ibdd40b337c547e80ef8541856015f1380c8d58ed
ndroid.mk
4b9511c16195a646242eff833b0af212933b6eca 14-Nov-2011 Mathias Agopian <mathias@google.com> rework a bit how we manage EGL extensions

- don't advertise extensions that are not supported
by any implementation

- remove EGL_ANDROID_swap_rectangle which is not
implemented by anybody and confuses people

- add some comments about mandatory extensions

Bug: 5428001
Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
isplayHardware/DisplayHardware.cpp
2f78cf11225cfaa6d92584bf2ca8f2b938bdc43f 10-Nov-2011 Dave Burke <daveburke@google.com> Back to 59fps

Change-Id: I8d89e5e27f1abc5a2e36cb832eb4db2ca83c2cc6
ndroid.mk
386aa98c4ffb9b805303e683f0a7b925b44d04db 08-Nov-2011 Mathias Agopian <mathias@google.com> Fix an issue where we could wait for a non-existing transaction

This fixes the issue:
"Call not sent" dialog takes too long to dismiss after hitting OK"

Note: the system would recover after a 5 second timeout.

Bug: 5534520
Change-Id: Ifa37e594b50581f498479a5858672441b3d7dd87
urfaceFlinger.cpp
a5f9676eccbb3ac03f737a22c7a99ee1895a7f6f 08-Nov-2011 Mathias Agopian <mathias@google.com> Merge "Fix rotation displays frame N-1 briefly while rotating" into ics-mr1
385977f6d6c4e76379df384d50695a10cb3757f2 05-Nov-2011 Mathias Agopian <mathias@google.com> workaround to set the WM refresh rate to 48 Hz for tuna devices only

this is TEMPORARY until we can do this properly.

Bug: 5572464
Change-Id: I6537706d636a83a4a50e2900d6b829dd89b6f245
ndroid.mk
isplayHardware/DisplayHardware.cpp
4a9ac37fe26644bb5253d15eec08be2edb896642 01-Nov-2011 Mathias Agopian <mathias@google.com> Fix rotation displays frame N-1 briefly while rotating

The ScreenShot layer is now created hidden. The screenshot itself
is aquired during the transaction when the layer is made visible.
This guarantees the screenshot and the layer happen atomically
with respect to screen updates.

Bug: 5534521
Change-Id: Ida23e1f13d5716ec83b78a15712e0646d6cf8729
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
62f7114719d2009dca7dd120f0fe29a24bd77a40 27-Oct-2011 Mathias Agopian <mathias@google.com> fix Corrupted graphics while playing You Tube on orientation change

Bug: 5432124
Change-Id: If948b9797b1ec6fff80ca5ea94508abcaced9f31
urfaceFlinger.cpp
7f6aec0185e171091bd1bdd0a6af08f6311bb2bf 22-Oct-2011 Xavier Ducrohet <xav@android.com> Merge "Fix software GL renderer."
4c4163b53e262ff9cc10c819321d4ae03c2d7d46 22-Oct-2011 Xavier Ducrohet <xav@android.com> Fix software GL renderer.

Change-Id: I07ab2709fa694e41aa3fcc5b9dfc809f55853ab4
ayer.cpp
51726c381e23d148867c760d06306dfa940b4d15 22-Oct-2011 Mathias Agopian <mathias@google.com> am aa938c8d: Merge "mDirtyRegion is single threaded, but could be accessed from a hwc thread" into ics-mr0

* commit 'aa938c8d9c0e71c9b556657cb33794210ce6ebf8':
mDirtyRegion is single threaded, but could be accessed from a hwc thread
0dfb7b73a468698622d6c0423f0d5471a6f5d375 22-Oct-2011 Mathias Agopian <mathias@google.com> mDirtyRegion is single threaded, but could be accessed from a hwc thread

We now have mInvalidateRegion which holds the region to invalidate, it
can be set from any thread as long as mInvalidateLock is held. We use
fine-grained locking here because mInvalidateRegion can be set from anywhere,
in particular frmo HWC callbacks.

Bug: 5466774
Change-Id: Iafca20aa3f5b25a87755e65bde7b769aa8f997bc
urfaceFlinger.cpp
urfaceFlinger.h
7ec662c07aea2a76394cd69f19be0f9a7d87b701 21-Oct-2011 Mathias Agopian <mathias@google.com> am 16bece04: Merge "added dpi and refresh rate info in SF\'s dumpsys" into ics-mr0

* commit '16bece04bdbac9af5228436f70267ec5763315de':
added dpi and refresh rate info in SF's dumpsys
d5e4ef9e439317e2525a51106dbc509d3982de24 21-Oct-2011 Mathias Agopian <mathias@google.com> added dpi and refresh rate info in SF's dumpsys

Change-Id: I2327248eb1993689367e3daeaccba74c172dfceb
urfaceFlinger.cpp
818fb243572f8e1f408ba9fc35ef61bbedbd9ce1 19-Oct-2011 Dave Burke <daveburke@google.com> am 70ac412b: Merge "Add a LayerScreenshot" into ics-mr0

* commit '70ac412b2fe7be2507189a9fdfb30c43b36d56ac':
Add a LayerScreenshot
675370ab9aadd148ba2cc15b3078c915811355a1 19-Oct-2011 Mathias Agopian <mathias@google.com> am f7613743: Merge "Don\'t call hwc set() if there is nothing new to do" into ics-mr0

* commit 'f7613743f29f38cbbaf4ae09996c380845a17daf':
Don't call hwc set() if there is nothing new to do
5ba8f366bd81348ac8b0e3a09fa122f3098b4363 19-Oct-2011 Mathias Agopian <mathias@google.com> am 23bf2505: Merge "Make sure set GL state properly" into ics-mr0

* commit '23bf250522b7dff9acd14c5900b66b1df9c76745':
Make sure set GL state properly
118d0245ee0a3b107055782aa8b555404b6f0280 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Make sure to call compositionComplete() after rendering into a FBO.

Bug: 5446982, 5467587, 5466259
Change-Id: I5d8a1b4c327f9973d950cd4f4c0bca7f62825cd4
ndroid.mk
ayer.cpp
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
3a3cad30c40c8eb87671262a9fe7f0e214b6a934 19-Oct-2011 Mathias Agopian <mathias@google.com> Don't call hwc set() if there is nothing new to do

there was situations where SF's main loop would run (as if there was
an invalidate), but the dirty region was empty (so no new buffers
were retired). In this case we return early and don't swap, which
would cause drawing artifacts.

Bug: 5476838
Change-Id: Id3b7bf4b7aabec7919c50d9278eb2165973a4c3d
urfaceFlinger.cpp
c492e67810814bf86301abffe1d31598b775cf45 18-Oct-2011 Mathias Agopian <mathias@google.com> Make sure set GL state properly

when taking a screenshot, in particular, we could end up
with stale GL state when drawing LayerDim which resulted
in incortect rendering.

Bug: 5467587
Change-Id: Id9fbed2843481d31063620f3662b364c7e3ac781
ayer.cpp
ayerBase.cpp
ayerDim.cpp
urfaceFlinger.cpp
cdec8f01aae14ed59fbc57cb2ce97a6602f4b9a1 17-Oct-2011 Mathias Agopian <mathias@google.com> am 840b8a67: Revert "Add a LayerScreenshot"

* commit '840b8a678537519c27ddf2f818494eaa20a135d4':
Revert "Add a LayerScreenshot"
5bacca6238adba927f9e9b27087e134e9a3c2561 17-Oct-2011 Mathias Agopian <mathias@google.com> am 4fb6416e: Merge "we need to guarantee that h/w comp set() is called when a buffer has been retired" into ics-mr0

* commit '4fb6416e3a21031a88921a784ae62b13d8a1a39f':
we need to guarantee that h/w comp set() is called when a buffer has been retired
090cb44b945bfe2711344a5331814bd6412ab437 17-Oct-2011 Elliott Hughes <enh@google.com> Merge branch 'master' of ssh://android-git:29418/platform/frameworks/base
e9800c83114988b6f8cc25bb9d508ebb322f9903 17-Oct-2011 Mathias Agopian <mathias@google.com> Revert "Add a LayerScreenshot"

This reverts commit d6809f40cf61203573ec5dbc437f695cd132cc18.
ndroid.mk
ayer.cpp
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
a44b04163957d6086362f6f365443c4c93379031 17-Oct-2011 Mathias Agopian <mathias@google.com> we need to guarantee that h/w comp set() is called when a buffer has been retired

removed a test that could violate this guarantee. note that we
have no proof tha this ever happened, but consequences could be
hard lock-ups.

the code here was intended to track the region to update for displays
that can do partial update. the logic discarded the update entirely
if that region was empty. instead we just redraw the whole thing
(note that we should never be there with an empty region and retired
buffers though).

Bug: 5466259

Change-Id: I91ccab3b1a599e729e438eb833939e2236da6854
urfaceFlinger.cpp
a402c4c9913cfbc6c3da21719c57a93a11f091f0 15-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: Remove display freezing code

This change removes the dead code from SurfaceFlinger that resulted from
disabling support for freezing the display.

Change-Id: I4e5ff00c94b4c7a79af2f65c9850c135210068ed
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
23c2c5d1c6aaeaeb1804b7aa9b667e7e58c941bb 12-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: add some layer update tests

This change adds two tests for SurfaceFlinger's behavior when updating
the position and size of a layer.

Change-Id: Id5e3ca1d7e629a3bd2c2d28275d80c7f9256d6da
ests/Android.mk
ests/Transaction_test.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
urfaceFlinger.cpp
urfaceFlinger.h
f171ab6da9cf9793093e50947aacdab8f2b0c9b2 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Bug: 5446982
Change-Id: I7814aff2380e7e146937f2b641907be2a30c76cc
ndroid.mk
ayer.cpp
ayerScreenshot.cpp
ayerScreenshot.h
urfaceFlinger.cpp
urfaceFlinger.h
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
urfaceFlinger.cpp
urfaceFlinger.h
e64206915d832f0021b84df2aa54a8242583003a 11-Oct-2011 Mathias Agopian <mathias@google.com> Merge "fix an issue where the screen could stay off"
f7cdd053fe1fee093f6b0973ad5723765f98a48d 11-Oct-2011 Mathias Agopian <mathias@google.com> fix an issue where the screen could stay off

this would happen when toggling on/off/on very fast, the screen
could stay black (while the panel is on).

Bug: 5429724
Change-Id: Ic8aa6aff066e6267923c0d47ef65e314e7bb6d41
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
urfaceFlinger.cpp
urfaceFlinger.h
1dea97d662be9bac350d51b6a91185d203ffd794 11-Oct-2011 Mathias Agopian <mathias@google.com> Merge "Fix screen off animation when in landscape"
a9040d0eefa34a78ca68b6e7901e1703e74aeb7c 11-Oct-2011 Mathias Agopian <mathias@google.com> Fix screen off animation when in landscape

Change-Id: I4bc5b12d7a64a4bf8b9a851594be4d60b790d1ed
urfaceFlinger.cpp
8cb9d95002afe135ed445ee5c92d405a1d45d77d 10-Oct-2011 Mathias Agopian <mathias@google.com> Merge "enable EGL_IMG_context_priority for the omap4 platform"
9575f60722f7a4f54384fe0be6938a8de48dc23a 07-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: screenshots w/ protected buffers

This change modifies SurfaceFlinger's screenshot behavior when a layer
with a protected buffer is visible. The previous behavior was to simply
fail the screenshot. The new behavior is to render the screenshot using
a placeholder texture where the protected buffer would have been.

Change-Id: I5e50cb2f3b31b2ea81cfe291c9b4a42e9ee71874
ayer.cpp
urfaceFlinger.cpp
urfaceFlinger.h
57bf9e7100c2ea51e081775dbd3566f078b0be4f 08-Oct-2011 Mathias Agopian <mathias@google.com> enable EGL_IMG_context_priority for the omap4 platform

Bug: 5311015
Change-Id: Icaad3d1c963d382ac0a4b9121fe20d3408846c2b
ndroid.mk
e2c2f9213f936f98db604dc9c126ff22f725a824 06-Oct-2011 Mathias Agopian <mathias@google.com> Force a repaint when hwc invalidate hook is called

without this prepare() would be called but not set() since the
dirty region is empty.

Change-Id: I038acfbdad4c16015357ccde4d1949391d6f989d
isplayHardware/HWComposer.cpp
urfaceFlinger.h
aebac5f34a098f733f887c993bd617a393e10db8 30-Sep-2011 Mathias Agopian <mathias@google.com> improve hwc log output

we now print the handle of each buffer

Change-Id: I70884ae458a9dcf10cfc403258d48eaa4618b7f4
isplayHardware/HWComposer.cpp
ed984d9406b5a4062db93319e6f94d5f9fd19648 27-Sep-2011 Jamie Gennis <jgennis@google.com> Merge changes Ib302d79e,Ib4ee085f

* changes:
SurfaceFlinger: set layer names on SurfaceTextures
SurfaceTexture: add name support
e790db9980136a95a595a3cfc8d93f6e26347525 27-Sep-2011 Jamie Gennis <jgennis@google.com> am da42e0fa: Merge "SurfaceFlinger: fix setting default buffer size" into ics-factoryrom

* commit 'da42e0faaa95c796dc49f3b38023562dab6584a7':
SurfaceFlinger: fix setting default buffer size
1b5f4e61ff481387215d98c3266871bfd465bce5 27-Sep-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: fix setting default buffer size" into ics-factoryrom
9a375927a52558b83d016a553d2d3b52eb9d96d5 27-Sep-2011 Jamie Gennis <jgennis@google.com> am 3780d380: Merge "SurfaceFlinger: fix the transform hint" into ics-factoryrom

* commit '3780d38010f50ccce508871058d54c1921936e0c':
SurfaceFlinger: fix the transform hint
2a0d5b608447a880beff5149805425f02691442b 27-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: fix setting default buffer size

This change makes SurfaceFlinger update a SurfaceTextureLayer's default
buffer size in response to a window resize even if the Layer is in fixed
size mode.

Change-Id: I3871c8f19a045d03904d1284390cad7659be71ff
Bug: 5366426
ayer.cpp
4801404dcb7990e4753dad0d07de5f6dbc01dbdb 23-Sep-2011 Mathias Agopian <mathias@google.com> don't clear the framebuffer when the framebuffer is not used

when areas of the FB are undefined (transparent windows on top of
nothing), we clear those areas before composition.
however, it makes no sense to do this when the FB is not in use
(case where hwc handles all layers)

Bug: 5360529
Change-Id: I761a7d3664228ebbee0944aca8b0cc278fc94c9c
urfaceFlinger.cpp
36d2c1f02c58d8b5d2706960f370c9d74aafd740 27-Sep-2011 Jamie Gennis <jgennis@google.com> Merge "(DO NOT MERGE) SurfaceFlinger: fix isOpaque check in lockPageFlip" into ics-factoryrom
8d91b425078083d0e4967dcd8d669d9f7196123a 24-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: fix the transform hint

This change fixes the transform hint to use only the global display
transform rather than incorporating the transient layer-specific
transform used during animations.

Bug: 5366891
Change-Id: I5408dcd3f4771d010953e8a696a484c835bfe81e
ayer.cpp
ayerBase.cpp
ayerBase.h
059fd18396605592ec538b9e5574a80a8987d10d 23-Sep-2011 Mathias Agopian <mathias@google.com> Merge "don't clear the framebuffer when the framebuffer is not used"
cfb7d090bbbb881def949a548b7ad8022e370dd4 23-Sep-2011 Mathias Agopian <mathias@google.com> Merge "fix dumpsys wording for h/w composer"
cd20eb09c4752531c1ab1a0084474ef530a5d44f 23-Sep-2011 Mathias Agopian <mathias@google.com> don't clear the framebuffer when the framebuffer is not used

when areas of the FB are undefined (transparent windows on top of
nothing), we clear those areas before composition.
however, it makes no sense to do this when the FB is not in use
(case where hwc handles all layers)

Bug: 5360529
Change-Id: If51bb669307e8419bbe1f3a89d1c88e0ec1f216c
urfaceFlinger.cpp
a249f2d11249ff37c48119020b797ad437ddef2c 17-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: set layer names on SurfaceTextures

This change sets the SurfaceTexture name string to match that of the
layer to which it belongs.

Change-Id: Ib302d79e916a36ab1e54cb9ff477c3b857bd957b
ayer.cpp
ayer.h
ayerBase.h
fc60b94db9081adb4835bd44eacdd0573fc4d644 23-Sep-2011 Mathias Agopian <mathias@google.com> fix dumpsys wording for h/w composer

Change-Id: Iaa1094964f2fb83da491e23b9309f7690079c17e
isplayHardware/HWComposer.cpp
21230c6410bdab13cd2bd274da54b1e4061b6035 21-Sep-2011 Jeff Brown <jeffbrown@google.com> Handle orientation changes more systematically.
Bug: 4981385

Simplify the orientation changing code path in the
WindowManager. Instead of the policy calling setRotation()
when the sensor determined orientation changes, it calls
updateRotation(), which figures everything out. For the most
part, the rotation actually passed to setRotation() was
more or less ignored and just added confusion, particularly
when handling deferred orientation changes.

Ensure that 180 degree rotations are disallowed even when
the application specifies SCREEN_ORIENTATION_SENSOR_*.
These rotations are only enabled when docked upside-down for
some reason or when the application specifies
SCREEN_ORIENTATION_FULL_SENSOR.

Ensure that special modes like HDMI connected, lid switch,
dock and rotation lock all cause the sensor to be ignored
even when the application asks for sensor-based orientation
changes. The sensor is not relevant in these modes because
some external factor (or the user) is determining the
preferred rotation.

Currently, applications can still override the preferred
rotation even when there are special modes in play that
might say otherwise. We could tweak this so that some
special modes trump application choices completely
(resulting in a letter-boxed application, perhaps).
I tested this sort of tweak (not included in the patch)
and it seems to work fine, including transitions between
applications with varying orientation.

Delete dead code related to animFlags.

Handle pausing/resuming orientation changes more precisely.
Ensure that a deferred orientation change is performed when
a drag completes, even if endDragLw() is not called because the
drag was aborted before the drop happened. We pause
the orientation change in register() and resume in unregister()
because those methods appear to always be called as needed.

Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
urfaceFlinger.cpp
urfaceFlinger.h
8bfdda9ab34466f97d024c1dcd63019de880b806 21-Sep-2011 Mathias Agopian <mathias@google.com> fix transition from full overlays to fb

we need to clear the whole framebuffer in that situation because
we can't trust the content of the FB when partial (fb preserving)
updates are used.

Bug: 5318492

Change-Id: I3f0e01b0fb665a34e44d88ad9f0f54a5d990060b
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
56eb3fc695869c05ef3b35dfe9dfb25d2f826825 21-Sep-2011 Mathias Agopian <mathias@google.com> rename mInvalidRegion to mSwapRegion

Change-Id: I946cbc782c0c84645843ea44c3d8b04a0a2fe658
urfaceFlinger.cpp
urfaceFlinger.h
670a8990e822785da2a684f71f0035725022ced4 21-Sep-2011 Mathias Agopian <mathias@google.com> improve hwc dumpsys

we now log the buffer's format

Change-Id: I9d3ad8018e884240a153de3baefb6331cb014d0f
isplayHardware/HWComposer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
9c6e297271ec9af9d974242d89cfa08cb6ceaa0a 21-Sep-2011 Mathias Agopian <mathias@google.com> fix transition from full overlays to fb

we need to clear the whole framebuffer in that situation because
we can't trust the content of the FB when partial (fb preserving)
updates are used.

Bug: 5318492

Change-Id: I3f0e01b0fb665a34e44d88ad9f0f54a5d990060b
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
urfaceFlinger.h
0656a68380d01de4136933901b2c322cf9ab0d7e 21-Sep-2011 Mathias Agopian <mathias@google.com> rename mInvalidRegion to mSwapRegion

Change-Id: I946cbc782c0c84645843ea44c3d8b04a0a2fe658
urfaceFlinger.cpp
urfaceFlinger.h
fb4d5d5726c172adbe62341d99a2148685a98379 21-Sep-2011 Mathias Agopian <mathias@google.com> improve hwc dumpsys

we now log the buffer's format

Change-Id: I9d3ad8018e884240a153de3baefb6331cb014d0f
isplayHardware/HWComposer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
351a513b12622781de9580b3c96fd0a8578b563b 15-Sep-2011 Jamie Gennis <jgennis@google.com> (DO NOT MERGE) SurfaceFlinger: fix isOpaque check in lockPageFlip

This change fixes an issue where Layer::isOpaque was being called in
lockPageFlip to get the opaqueness for the new buffer before
mActiveBuffer was updated.

Bug: 5321313
Change-Id: Ibb5d7d3f4e9a2b1448e117a484a0d9f9ca5fc9de
ayer.cpp
945d291699e439c6cbc6192164e0fa53d9a03c3a 15-Sep-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: fix isOpaque check in lockPageFlip

This change fixes an issue where Layer::isOpaque was being called in
lockPageFlip to get the opaqueness for the new buffer before
mActiveBuffer was updated.

Bug: 5321313
Change-Id: Ibb5d7d3f4e9a2b1448e117a484a0d9f9ca5fc9de
ayer.cpp
f9abeb956fb95682d77005ea0dc506a805f52a04 09-Sep-2011 Mathias Agopian <mathias@google.com> Fix another problem with refreshing the screen when switching to/from overlay

the previous fix was incorrect. See comment in setupHardwareComposer for
full explanations.

Change-Id: Ib24a9af000b8f95cf7319f9272d34997064ceb6d
ayerBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
22da60c3e64cd57535cbba063c07127814a2b52f 09-Sep-2011 Mathias Agopian <mathias@google.com> Improve SF dumpsys output wrt HWC

Change-Id: Ibdb7930fa3b521bfd3f44750ed98cfd75f9a01fe
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayerBase.cpp
urfaceFlinger.cpp
f384cc3008a25ad1b00403aca0cc001547f029c6 09-Sep-2011 Mathias Agopian <mathias@google.com> Fix an issue is SF that caused drawing artifacts when hwc changed mode

we were not redrawing and/or clearing the FB properly when
hwc moved a layer from/to FB to/from OVERLAY.

In these cases we needed to expand the dirty region to include
the layer that changed mode.

Also split composeSurfaces() which was becoming quite large.

Change-Id: Id6fa1acfc4ff694037fddf7efd037a4405732073
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
7ee4cd5556cef1878e1d4729f1b389f186311027 02-Sep-2011 Mathias Agopian <mathias@google.com> fix a bug that caused the off animation to not show sometimes

this happened when the overlays were in use, since the animation
is rendered in the FB and the FB is not used.

we now have a way to turn hwc off temporarily.

Change-Id: I3385f0c25bb9cc91948e7b26e7cd31ed18c36ace
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
f914e7ffad20c0a39d86376c703cd98c086e774a 02-Sep-2011 Mathias Agopian <mathias@google.com> Fix various flickering / artifacts

these were due to the "preserve backbuffer" optimization
interfering with hw composer. basically the screen needed
to be redrawn in the areas that move from GL to
overlay.

Bug: 5245513
Change-Id: I9bf75c4fe905f3ef62005e52108b94edae692304
urfaceFlinger.cpp
3f41963ccb3af61b78d1e4fb0a07ca7d93be0feb 31-Aug-2011 Mathias Agopian <mathias@google.com> Merge "fix Surface positions are not floats"
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
ayerBase.cpp
ayerBase.h
ransform.cpp
ransform.h
c7f3381c3b2945e441747130eae88214435d0819 31-Aug-2011 Mathias Agopian <mathias@google.com> fix display artifacts in preview screen in timelapse video mode

We were not updating the h/w composer state when the buffer size
changed.

We also didn't update the h/w composer state when the transformation
matrix changed (which is related to the above issue, since it would
probably change when the buffer size changes).

Also moved updating the crop to setGeometry(), since we decided
that the "crop" change requires the GEOMETRY_CHANGED flag (ie:
not need to do this every frame)

Bug: 5238473

Change-Id: Ia7b47e145b48581b568d89d9aa2c14ff778be862
ayer.cpp
ayerBase.cpp
b0610335d745718f5ee54f15ef1a492921d759f4 25-Aug-2011 Mathias Agopian <mathias@google.com> Fix screenshots

Change-Id: If904634e64b154bbe336d5789dd1209b8ae871fb
urfaceFlinger.cpp
e46016d0520a0ad0e7da7ffdef68905565124cba 25-Aug-2011 Mathias Agopian <mathias@google.com> Merge "Fix Recent thumbnails aren't taken when leaving an activity via notification"
0abe83a680d1f410c28b755eb4b3d6bee30c39dd 25-Aug-2011 Mathias Agopian <mathias@google.com> Fix Recent thumbnails aren't taken when leaving an activity via notification

When taking screenshots we need to use the full drawing state list
instead of the visible list.

Bug: 5186823
Change-Id: I214ee0203aaf8e2c038e44581f7f1ae36edf08c5
urfaceFlinger.cpp
85b6f7afeab61b75e4326639a9f4cb61523ea997 25-Aug-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: use the HWC gralloc usage bit"
45d845190d26ae27de45390460f50a6a8639e2e5 24-Aug-2011 Mathias Agopian <mathias@google.com> Merge changes I14e03939,I9aafe6f2

* changes:
Fix an issue where Surface::lock() would never update the output region
Add a debug option to turn the "transformation hint" off
a45836466c301d49d8df286b5317dfa99cb83b70 24-Aug-2011 Mathias Agopian <mathias@google.com> Add a debug option to turn the "transformation hint" off

transformation hint is disabled with:

adb shell service call SurfaceFlinger 1009 i32 1

Change-Id: I9aafe6f280f88ce41569ed69a06dc522b10e3a88
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceTextureLayer.cpp
f7ae69d4bd292110da976c8ae766a8ef083d731f 23-Aug-2011 Mathias Agopian <mathias@google.com> Minor cleanup

Change-Id: Ic042043c54631b5a5c74d20136addb2c08515ea9
ayer.cpp
extureManager.cpp
extureManager.h
53331da007b56e0cb4201728de99c8c29bcfaa9a 23-Aug-2011 Mathias Agopian <mathias@google.com> fix "show screen update" debug option.

Change-Id: I7d8b24124768b5f7d59d3bb0b019e9baaa0dfc4f
NOTE: from now on, this also disable the h/w composer
urfaceFlinger.cpp
urfaceFlinger.h
3599bf2c0727bc33e8136f5163eee6f398545e05 10-Aug-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: use the HWC gralloc usage bit

This change makes SurfaceFlinger always use the
GRALLOC_USAGE_HW_COMPOSER usage bit when allocating buffers that may be
passed to the HWComposer.

Change-Id: I70362a8ede2b359fb2046853f85149d597465817
ayer.cpp
d992db3827016388e8069f5793b031153d423501 19-Aug-2011 Mathias Agopian <mathias@google.com> give the proper orientation to the h/w composer HAL

we were using the "orientation" value instead of the
real transform, which may contain arbitrary rotations for
instance, and in some case ended up with a final "orientation"
that looked valid, but wasn't.

this fixes a problem on devices with a h/w composer hal where
the rotation animation looked weird.

Change-Id: I4be8a2a1bde49c33456fcf5c8d87ab515c216763
ayer.cpp
ayerBase.cpp
ayerBase.h
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
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
8afb7e39a83a3e31170612d562eb08508e328388 16-Aug-2011 Mathias Agopian <mathias@google.com> as a debug option SrufaceFlinger can now connect to DDMS

this is disabled by default. To enable:
setprop debug.sf.ddms 1

this debug option requires to restart SurfaceFlinger

Change-Id: Ic2f8050b29911b55bcd21721648b6978700c277d
ndroid.mk
dmConnection.cpp
dmConnection.h
urfaceFlinger.cpp
urfaceFlinger.h
c5953904ad6b6db1f48cf6d208ecf940f6a656d4 13-Aug-2011 Mathias Agopian <mathias@google.com> fix an orientation change drawing artifact.

a wrong orientation would be briefly shown when
rotation the screen. this happened when the window manager
set a custom transformation and the h/w composer was used.

the custom transformation was applied twice in that case.

Bug: 5037522
Change-Id: Ic1f87b63cd843f4475e4265d1624463825d775c4
ayer.cpp
47d0812977b7acc4fed6a823203770a57f7a6b78 12-Aug-2011 Mathias Agopian <mathias@google.com> SurfaceFlinger doesn't rely on having a custom RefBase destructor

we just use a message to the main thread to
destroy our GLES state.
ayer.cpp
ayer.h
urfaceFlinger.cpp
urfaceFlinger.h
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
urfaceTextureLayer.cpp
urfaceTextureLayer.h
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
ayer.cpp
e8067a7d996105d9e03d75e6593e28b795fa9336 03-Aug-2011 Mathias Agopian <mathias@google.com> fix a crasher in surfaceflinger

this would happen if being told to draw before a buffer
was available.

Change-Id: I46d121c73e883078cdbf952063e38b0076f79038
ayer.cpp
6d30c2bdaec7d0ab98fc5409f0e050e406ee4e4c 03-Aug-2011 Mathias Agopian <mathias@google.com> Merge "update HWC data structures even when a layer is marked for SKIP"
a537c0f42e8077baafcbc65844adf1ec8397c040 03-Aug-2011 Mathias Agopian <mathias@google.com> update HWC data structures even when a layer is marked for SKIP

Change-Id: I16bcf44cd617814a14a795429bde2f39f411077d
ayer.cpp
ayerBase.cpp
c7d14e247117392fbd44aa454622778a25c076ae 02-Aug-2011 Mathias Agopian <mathias@google.com> Add a h/w composer API to allow the HAL to trigger a redraw

This is useful in various situations, for instance if the HAL
wants to change its compositing strategy.

Bug: 4488017
Change-Id: I5afc14e5917c6db7926d7417d48677d5aba50caa
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/DisplayHardwareBase.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
05ca9998cdbed703a6074933492d01b066307a8d 01-Aug-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: use async mode for video & cam"
cb6c755234a17ab14e6c5d0a857aab96fb02dc02 31-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: use async mode for video & cam

This change makes SurfaceFlinger's SurfaceTexture objects default to
async mode whenever a camera or video decoder connects. This behavior
can be disabled by #defining NEVER_DEFAULT_TO_ASYNC_MODE.

Change-Id: I8965951d1775915da180e4af298dd7af3afafecc
ndroid.mk
urfaceTextureLayer.cpp
urfaceTextureLayer.h
dbe6486ca151d0eb1950be0aae347f0eb8ed3442 30-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: abandon Layer SurfaceTextures

This change makes the Layer::onRemoved method call
SurfaceTextures::abandon on the layer's SurfaceTexture. This will cause
all client-initiated operations on the SurfaceTexture to fail. In
particular, this will result in an error on the client side, rather than
a deadlock when removing a layer that used a SurfaceTexture in
synchronous mode.

Change-Id: I14014d00369f29560a21b606831edee432bb8867
Bug: 5020874
ayer.cpp
db5230f4441fa8f120f15bdd6fcfc6e75d9c27d0 28-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: fix a layer occlusion bug

This change fixes a bug where the window visibility would be computed
before any buffers were available, causing the window to be treated as
non-opaque. When the first buffer arrived, if both mCurrentOpacity and
the opacity determined by the buffer's format were 'opaque', a
recomputation of the opacity would not be done, and the window would
continue to be treated as non-opaque. SurfaceFlinger could then
unnecessarily draw fully occluded layers.

Change-Id: I2b95da2f4b50e68d50fc5afd8b772e26e62f58d6
Bug: 5057122
ayer.cpp
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
ayer.cpp
ab7c13f96a3c883fb4c93749c2e6c68155d3ad95 25-Jul-2011 Mathias Agopian <mathias@google.com> fix a typo that prevented preserveRects() to work properly

this caused drawing artifacts during the screen rotation
animation of SurfaceView.

Change-Id: Idcc996b6ca2e346135dd2264959670c0b086d4cb
ransform.cpp
6dc49c09bc072a5b14225cdce2ca4e8c3f0edab1 23-Jul-2011 Mathias Agopian <mathias@google.com> Fix typo which caused invalid rotations to be returned with NATIVE_WINDOW_TRANSFORM_HINT

Bug: 4487161
Change-Id: Ib2dfbbef15397b6d90695bd27f25849ca20704f1
urfaceTextureLayer.cpp
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
urfaceTextureLayer.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
urfaceFlinger.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
ayer.cpp
urfaceTextureLayer.cpp
urfaceTextureLayer.h
ransform.cpp
lz.h
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
ayer.cpp
ayer.h
urfaceTextureLayer.cpp
ad70186f80355e55ddad2a66b5fd174a1c019c2d 15-Jul-2011 Mathias Agopian <mathias@google.com> dump GLES strings in SF dumpsys log

Change-Id: I438d511159b2bd915c84954f30574340017d4f47
urfaceFlinger.cpp
29a367bb7c14c916e991a6a0028727bd06c1e16e 12-Jul-2011 Mathias Agopian <mathias@google.com> take the state transform into account with h/w composer hal

if the state transform didn't preserve rectangles, we
would still try to use h/w composer hal using the bounds
of the transformed rect, which isn't correct.

now we correctly fall back to composition.

Change-Id: Iff78f4339ece415d4987e95a5717b04934d370ab
ayer.cpp
ransform.cpp
baa44b89ec159fd65230cbb8ebab62d63a513b0b 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
ffcf4657718831edecb6ff2ed1b45ac8bf8b9a58 08-Jul-2011 Mathias Agopian <mathias@google.com> fix screen on/off animation (again)

- surfaceflinger now uses the GL-convention of
placing the origin in the left-bottom corner

- map texture coordinates of the screen capture
properly

- add the ability to control the animation
speed through a debug property

Bug: 4989276

Change-Id: Ifb3297bb578078b47146fff666c01f85417e0d6f
ayerBase.cpp
urfaceFlinger.cpp
6163091a2c366f8311fc3ee627dc7deb9681236e 07-Jul-2011 Mathias Agopian <mathias@google.com> Fix EGLUtils::selectConfigForPixelFormat()

- renderscript now calls EGL directly instead of relying on this function
- surfaceflinger also does its own EGLConfig selection
- selectConfigForPixelFormat stays for legacy reason (many tests use it) but
it now only tries to match the alpha channel of the format rather than the
format itself.

this will allow implementations who don't support the exact formats
defined in the HAL to work properly.

Bug: 4998223

Change-Id: Ic664dfc14d5072a514b6f77a115d1521bfc1578f
isplayHardware/DisplayHardware.cpp
7e918860f9d496bf0c4b7e1649216c9209c57850 06-Jul-2011 Mathias Agopian <mathias@google.com> Merge "don't kill surfaceflinger when system process dies"
1f339ff3875afad128a8e16ee6395c5fad295826 02-Jul-2011 Mathias Agopian <mathias@google.com> don't kill surfaceflinger when system process dies

Change-Id: I2d3ed87b590f9ccea3fa4af41d92911de070b315
isplayHardware/DisplayHardware.cpp
urfaceFlinger.cpp
urfaceFlinger.h
d9e8c64c3dce1612eb948a5c16ba4ff62202b423 01-Jul-2011 Mathias Agopian <mathias@google.com> return an error code with gralloc buffer allocation failures

Change-Id: I471e5d37ea7a42fc8a0f93446ee3b4229da37807
urfaceFlinger.cpp
urfaceFlinger.h
2dbf9fffb2c99bc7f9dadf226772fd8cafc7826f 01-Jul-2011 Mathias Agopian <mathias@google.com> fix screen on/off animation, which was flipped

Bug: 4673549
Change-Id: Ia9766754687b89c1ee24b2dbe918c11290ebe038
urfaceFlinger.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
urfaceFlinger.cpp
urfaceFlinger.h
ests/resize/resize.cpp
ests/surface/surface.cpp
67b4cff399eef982a831dbe9c63e43e9846473a5 28-Jun-2011 Jamie Gennis <jgennis@google.com> Merge changes I9fb59763,I8b2c6e00

* changes:
SurfaceTexture: consume buffers after err checks
SurfaceTexture: change onFrameAvailable behavior
99b49840d309727678b77403d6cc9f920111623f 28-Jun-2011 Mathias Agopian <mathias@google.com> PermissionCache caches permission checks

This is intended to absorb the cost of the IPC
to the permission controller.
Cached permission checks cost about 3us, while
full blown ones are two orders of magnitude slower.

CAVEAT: PermissionCache can only handle system
permissions safely for now, because the cache is
not purged upon global permission changes.

Change-Id: I8b8a5e71e191e3c01e8f792f253c379190eee62e
urfaceFlinger.cpp
urfaceFlinger.h
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
ayer.cpp
ddc31c3e2bc6ffe66695c385d23e8ccc3c6dad06 13-Jun-2011 Mathias Agopian <mathias@google.com> fix RefBase so it retains binary-compatibility with gingerbread

Bug: 4595257
Change-Id: I0d5e10f497e3f39868bff58f6ded510c38b44b12
ayer.cpp
ayer.h
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
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
urfaceFlinger.h
urfaceTextureLayer.cpp
urfaceTextureLayer.h
lz.h
342451d19f9e985912a413612ca6c1de5a13d339 20-May-2011 Mathias Agopian <mathias@google.com> Merge "Fix a race that could cause GL commands to be executed from the wrong thread."
ca4d3602c07837d0b2ac6878685a8e327b5f30f0 20-May-2011 Mathias Agopian <mathias@google.com> Fix a race that could cause GL commands to be executed from the wrong thread.

Change-Id: Ia3d407f7bf2f5553f46cfdade70b7b0badb35beb
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
3629d7ff29495aad453b08a86e9ede7e42afa786 17-May-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: unfreeze windows for fixed size buffers.

This change makes SurfaceFlinger unfreeze a window if it ever gets a
buffer that is fixed-size. Normally the window would not be frozen if
its in fixed-size mode, but if the window was frozen before entering
fixed-size mode then it should be unfrozen.

Change-Id: I6bc822d4b02ae51fa8914c1f60f5d24b2002b38d
ayer.cpp
dea20b1f343012d58ca9eb381684b26a168dc127 04-May-2011 Mathias Agopian <mathias@google.com> Fix a race in SurfaceFlinger that could cause layers to be leaked forever.

The transaction flags were atomically read-and-cleared to determine if
a transaction was needed, in the later case, mStateLock was taken to
keep the current state still during the transaction. This left a small
window open, where a layer could be removed after the transaction flags
were checked but before the transaction was started holding the lock.
In that situation eTraversalNeeded would be set but only seen during the
next transaction cycle; however, because we're handling this transaction
(because of another flag) it will be commited, "loosing" the information
about the layer being removed -- so when the next transaction cycle due
to eTraversalNeeded starts, it won't notice that layers have been removed
and won't populated the ditchedLayers array.

Change-Id: Iedea9e25fee8dd98a0c5bd5ad41a20fcadf75b47
urfaceFlinger.cpp
urfaceFlinger.h
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>
extureManager.cpp
ests/surface/surface.cpp
e4b117ad45411cde4c9144a43f16fa9708de1aa2 04-May-2011 Mathias Agopian <mathias@google.com> Merge "Fix a race-condtion in SurfaceFlinger that could lead to a crash."
4f113740180b6512b43723c4728f262882dc9b45 04-May-2011 Mathias Agopian <mathias@google.com> Fix a race-condtion in SurfaceFlinger that could lead to a crash.

Client::mLayers could be accessed from different threads.
On one side from Client::attachLayer() which is currently
called from a binder thread; on the other side from
Client::detachLayer() which is always called from the main
thread.

This could lead to a corruption of Client::mLayers.

We fix this issue by adding an internal lock to Client.

Change-Id: Ib1317d7750ed5030e6f577efe34b69fc10198bd3
urfaceFlinger.cpp
urfaceFlinger.h
5511a49d8df4020b714a3673b4d3d1de00470da2 02-May-2011 Conley Owens <cco3@android.com> am 08acaec6: am a47c0d29: am 58e4a5e2: Merge "Fixed to draw texture when loadTexture() is called at first time"

* commit '08acaec6df66bd6a12b1e63016ed998abff4afdc':
Fixed to draw texture when loadTexture() is called at first time
7badf9c5e84655063155f5cf9b0011204cf38e8b 30-Apr-2011 Conley Owens <cco3@android.com> am a47c0d29: am 58e4a5e2: Merge "Fixed to draw texture when loadTexture() is called at first time"

* commit 'a47c0d29bec7c242fb8d5ffe206c4c6ff85a178a':
Fixed to draw texture when loadTexture() is called at first time
e85e4d4ed23f19a507c6208fd08744340537e76d 29-Apr-2011 Conley Owens <cco3@android.com> Merge "Fixed to draw texture when loadTexture() is called at first time"
56b79aa8164fe015198a549130d428a74cbe814b 29-Apr-2011 Conley Owens <cco3@android.com> Merge "Fixed to call computeVisibleRegions() when transparent value changed"
345c6114dad73fad026fa0925cca133236091dc2 27-Apr-2011 Conley Owens <cco3@android.com> am ba5aebd1: am ac505b86: am f0556bb9: am 86d1d747: Merge "Add lock before calling initEglImage"

* commit 'ba5aebd106c61567ad6be905efd18902025735aa':
Add lock before calling initEglImage
ddc25bb92eb10ee40559424a75cac5e440b75575 27-Apr-2011 Conley Owens <cco3@android.com> am ac505b86: am f0556bb9: am 86d1d747: Merge "Add lock before calling initEglImage"

* commit 'ac505b86b45462d9883f9c36fad0ef85e0885ee4':
Add lock before calling initEglImage
a97b487178fe5acafe0281e4cc61827945b3711b 27-Apr-2011 Conley Owens <cco3@android.com> am 86d1d747: Merge "Add lock before calling initEglImage"

* commit '86d1d74762e65b6f64c2d4758aa5fd4af6275696':
Add lock before calling initEglImage
0ef4e15a6c12778daf464a4953d7e15e651f49ac 20-Apr-2011 Mathias Agopian <mathias@google.com> Get rid of the "pid" parameter from createSurface

Change-Id: I28635e3f803e6abe965d79998e305f54a202465d
urfaceFlinger.cpp
urfaceFlinger.h
d9071ad304b20e6d0ddf8473bc1f12ce3d7feb11 20-Apr-2011 Mathias Agopian <mathias@google.com> Merge "remove support for console in SurfaceFlinger"
3d031507e9fe249ca9f51314fe9613ff5ed262bf 19-Apr-2011 Mathias Agopian <mathias@google.com> remove support for console in SurfaceFlinger

the only supported screen management api now is
/sys/power/wait_for_fb_{sleep|wake}

Change-Id: I6c7d8d54843da4980b1b38ee3d46cf19be275240
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
3d64e738b91b2a4a9d81fae1991e6f6eae9ac8c8 19-Apr-2011 Mathias Agopian <mathias@google.com> fix memory corruption when retriving GL_MAX_VIEWPORT_DIMS

Change-Id: I2e0b1eac6dbc6a4ecbbaf31013aa02cf2369fce2
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
0d11baf88920660cf0e30b25b7268a9459e8ffa5 15-Apr-2011 Kobi Cohen Arazi <kobic@codeaurora.org> Add lock before calling initEglImage

Without that lock, there is a chance of race condition
where while composing a specific index, requestBuf with
the same index can be executed and touch the
same data that is being used in initEglImage.
(e.g. dirty flag in texture)
ayer.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
urfaceFlinger.cpp
urfaceFlinger.h
47d8730a2463f38a695ab95b533b0d9728f266a3 06-Apr-2011 Mathias Agopian <mathias@google.com> remove more unused references to ISurface

Change-Id: I2201f1ca2bb8f203a081d94a0134f798778dfbef
ests/resize/resize.cpp
dcab18c9c1a4ac6b5b9c996a4b002b0468bb3269 18-Feb-2011 Ichitaro Kohara <ichitaro.kohara@sonyericsson.com> Fixed to draw texture when loadTexture() is called at first time

SW renderer of Stagefright reaches loadTexture() to draw image.
The first time loadTexture() is called, it just initializes OGL
texture, then returns. Thus, the first time call doesn't draw.
This patch fixes to move on to draw stage after the initialization.

Change-Id: I3ec1ad68fb8d376a4ad7aefded1c18a002d175c4
extureManager.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
ests/resize/Android.mk
ests/screencap/Android.mk
ests/surface/Android.mk
3eb70b4a51979399aed9b0017a23151701d1ad0e 19-Mar-2011 Jamie Gennis <jgennis@google.com> am bd340c7b: am b368f4d8: am 38caff23: Merge "SurfaceFlinger: Fix a typo." into honeycomb-mr1

* commit 'bd340c7b492fcf7d0a6cccab8825e710c83fe76d':
SurfaceFlinger: Fix a typo.
d32a694a0c2040e1cc03ec0172d5378b78363fa5 19-Mar-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceFlinger: Fix a typo." into honeycomb-mr1
5fd799dab602850b384d124c61096636f0988a93 19-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: Fix a typo.

This change makes Layer skip its cleanup of its old shared memory region
when the UserClient object that owned the memory has been freed.

Bug: 3429357
Change-Id: I9e4d8eb190f6914dc043674b9bb8dd28e959901b
ayer.cpp
02cc7170a20335f035cb64ca442bc17d6c57273b 18-Mar-2011 James Dong <jdong@google.com> am 14438b81: am 970bad67: am be368de7: Merge "Fix missing AOSP copyright headers for more files" into honeycomb-mr1

* commit '14438b81a1fe4d7ebdf8977f3d80a1dd1867c5ad':
Fix missing AOSP copyright headers for more files
5f7204cb66b5500c814b5987af5db99b2b8fe90c 17-Mar-2011 James Dong <jdong@google.com> Fix missing AOSP copyright headers for more files

o Update the copyright date on InputDispatcher_test.cpp and InputReader_test.cpp
because these two files were moved from other places to the current location,
and were actually created in 2010.

bug - 4119349

Change-Id: Ic93b81ddafb58e9e72a2e9e02ca3d9f173d6dca7
ests/resize/resize.cpp
ests/surface/surface.cpp
939fee8819ac714af6f99b1d8e0bd2ff6626a356 17-Mar-2011 Mathias Agopian <mathias@google.com> am e22aa623: am 25594e19: am f40e638e: fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out

* commit 'e22aa62362a3007ee59ac62d4b5969e216987995':
fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out
d0b55c011a311b677493ba72804bf1bc4df68224 17-Mar-2011 Mathias Agopian <mathias@google.com> fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out

a memory corruption happned when the buffer pool was resized
(like when playing a video or using camera) and there was
no current active buffer. In this case, the faulty code
would index into an array at position -1 which corrupted
24 bytes of data.

also improved region validation code (ifdef'ed out by default)

Bug: 4093196
Change-Id: I915c581d131148959d720e00e3892e9186ab733d
ayer.cpp
1bbafb96101de04c43adb5e3ca2494070d20a46a 12-Mar-2011 Mathias Agopian <mathias@google.com> Fix some const-ness and comments

mDrawingState doesn't need to be accessed by the
mStateLock, because by definition it's only accessed
from the main thread.

Similarily, the list of layers in the drawing state
cannot change (ie: is const).

Change-Id: I2e5da7f4d8caee7af7802b432cd45cc81c7c08b0
urfaceFlinger.cpp
urfaceFlinger.h
5bf3abefb2745bf0c45b0814cfd44b4682060a6c 12-Mar-2011 Mathias Agopian <mathias@google.com> Fix initialization order warning.

Change-Id: I794dfaaa3a2f2645a89abc6c45de5f76e485f7d0
ayer.cpp
795f5ccf4788b791ff1042426be769ec51db6675 12-Mar-2011 Eric Hassold <hassold@google.com> Merge "Default to NONE format in Layer"
7ffe3807506da6f052535ca0c790636e41a8e310 11-Mar-2011 Eric Hassold <hassold@google.com> Default to NONE format in Layer

mFormat is not initialized with any value in Layer constructor, causing
a call to requestFormat() with no explicit format specified to fallback to
some uninitialized value. Such invalid path actually detected by valgrind.

Change-Id: Ib7faabcd61eaa26fb0ae7a9a486d9e258ba31b63
ayer.cpp
7a4d0dfd43558c299e6af6c4910ef76db9db3172 10-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: Respect the PROTECTED gralloc bit.

This change makes SurfaceFlinger treat layers for which the active
buffer has the GRALLOC_USAGE_PROTECTED bit set as if they have the
'secure' flag set.

Change-Id: Ic60b6513a63e4bb92ec6ce9fd12fd39b4ba5f674
Bug: 4081304
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
18570db84e7ec69ea3aa5764777ee77e1e07fcd8 10-Mar-2011 Mathias Agopian <mathias@google.com> am 33029221: Merge "revert the surface purgatory list and dependent changes." into gingerbread

* commit '33029221619f14577bd0d0e7c2f815abc8f1b8ea':
revert the surface purgatory list and dependent changes.
f7662afb76dfafebdd449c5e3e168f050da850a0 10-Mar-2011 Mathias Agopian <mathias@google.com> revert the surface purgatory list and dependent changes.

6d0f6cb Revert "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only"
6154412 Revert "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)"
37c2a37 fix [3408713] Dialog window invisible sometimes

It looks like there is a surface leak, it's unclear where it is.
Without those reverts, this would cause a leak of the associated buffers
which is far more problematic. this change might hide the surface leak.

Bug: 4078032
Change-Id: Iedcda3ffcdd2f69d41047b5c3134c1e867ff90d7
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
urfaceFlinger.cpp
urfaceFlinger.h
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
urfaceFlinger.cpp
urfaceFlinger.h
5f1e78d7301c2a14c83de068f61e13aaed9494a8 08-Mar-2011 Mathias Agopian <mathias@google.com> am df6410dc: Merge "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only" into gingerbread

* commit 'df6410dce3dae0bdb7e13118b3878079a1dcce03':
Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only
ee65ac8a71c24fc154b513faa13d24b4d4dfee4f 10-Feb-2011 Mathias Agopian <mathias@google.com> Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only

37c2a37 fix [3408713] Dialog window invisible sometimes
d35c666 fix [3385504] Surface flinger hang when adding dim surface
1723b04 fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
1b0114f fix a surface leak in SurfaceFlinger

Bug: 3513017

Change-Id: Ia13ed8c9cdcb1f484e177cdcaff687e7c88a10c3
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerDim.cpp
urfaceFlinger.cpp
1c71a47a6db679a3212f0c99e14f330d6da500fa 03-Mar-2011 Mathias Agopian <mathias@google.com> remove some logs

Change-Id: Ia476184048ee419e19330a56dc8e6553189f6a24
urfaceFlinger.cpp
e7809762e186ad5a12bc43aa38acbd358adfeb12 28-Feb-2011 Jamie Gennis <jgennis@google.com> am 0dc5fdb9: am e630e5f4: am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread

* commit '0dc5fdb9b2fd3b3e2ede5e9607bc21423f357a01':
Prevent SurfaceFlinger from using layer token 31.
d1ad86f66b070eaf81f8bee41a2528d5da9363f1 28-Feb-2011 Jamie Gennis <jgennis@google.com> am e630e5f4: am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread

* commit 'e630e5f49ba15005172dceeda7299569b2d2351f':
Prevent SurfaceFlinger from using layer token 31.
db7b742f65b2b88ea414e666e1079cc21b51f715 28-Feb-2011 Jamie Gennis <jgennis@google.com> am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread

* commit '919853ce244f853966817d4adb2f3b7b6e4bbe74':
Prevent SurfaceFlinger from using layer token 31.
ab0225e3308c2cc6d399e967be16e766468437ac 23-Feb-2011 Eric Hassold <hassold@google.com> Merge "Correctly handle translucency of device-specific pixel formats"
2168e2de244500d912dbeb43ac4065c327baddf5 17-Feb-2011 Ichitaro Kohara <ichitaro.kohara@sonyericsson.com> Fixed to call computeVisibleRegions() when transparent value changed

When some Surfaces are overlapping and one of them changed to
transparent or opaque, the back Surfaces should appear or
disappear. This patch calls SurfaceFlinger::computeVisibleRegions()
to re-calculate region of each Surface to implement the behavior.

Change-Id: Iffb1caf1b4ce28dff252e114fe5b9b07d9c84a6f
ayerBuffer.cpp
a1f47b90ab53af978be45b8bda16c5d084ae66e6 16-Feb-2011 Mathias Agopian <mathias@google.com> fix a surface leak in SurfaceFlinger

SF kept a strong reference to ISurface until the
window manager removed the surface from the screen.
This fell appart when running standalone tests, that is
when the window manager wasn't involved.

When the window manager is around, it would clean-up surfaces
even when an application died.

with this change, SF is able to do its own cleanup without
relying on the window manager.

the change is very simple, we simply don't keep a reference
to ISurface and make sure no more than one of them can
be created.

Change-Id: I61f2d7473bf8d4aa651549a846c34cdbb0d0c85a
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ac45e6bff1b41acd35c981291b37b23f8e083cee 10-Feb-2011 Eric Hassold <hassold@google.com> Correctly handle translucency of device-specific pixel formats

Check requested format for device-specific formats, and assume (as
documented in libhardware/include/hardware/hardware.h) this is opaque
layer so no blending is necessary.

Bug: 3215931
Change-Id: Ib4dff8060ac522d201ff1e74807ac340c17d3fa7
ayer.cpp
ayer.h
8a08392833a2db80aef20fba8a43f0829a096e13 11-Feb-2011 Jamie Gennis <jgennis@google.com> Prevent SurfaceFlinger from using layer token 31.

Bug: 2964479
Change-Id: I81e948924bff35b8b300d409f2c09f3779bcdeec
urfaceFlinger.cpp
48840800f4b0772cd3900d112794c6f0a361336e 03-Feb-2011 Mathias Agopian <mathias@google.com> am 50b029d5: am 7ba35f5a: Merge "[3418265] apply layer transformations to the DimLayer." into honeycomb

* commit '50b029d578fa06cd0733dcc7c69cb94f5f824908':
[3418265] apply layer transformations to the DimLayer.
bce26daaaf4ea245ccb09d75a378d294e518d945 03-Feb-2011 Mathias Agopian <mathias@google.com> [3418265] apply layer transformations to the DimLayer.

with this change DimLayers will behave just like any other layer,
in particular they'll respect the layer transformations.

Change-Id: Icb4a1275e8bca9e3deb5f57c9f9219aaa69f9877
ayerDim.cpp
ayerDim.h
urfaceFlinger.cpp
79676ac8e6a95fd1b1fad2b1032f01d582614055 31-Jan-2011 Jamie Gennis <jgennis@google.com> am 09443aeb: am 62884505: Merge "Reset ANativeWindow crop on buffer geometry changes." into honeycomb

* commit '09443aeb6470d66f5bc1938b70d74b3e2f9bbbb9':
Reset ANativeWindow crop on buffer geometry changes.
da04384f18602bf3a7bc9c6b39dc1f09ea420692 31-Jan-2011 Jamie Gennis <jgennis@google.com> Merge "Reset ANativeWindow crop on buffer geometry changes." into honeycomb
3cbe436bfd71b888ff9de97242cc976015b5b635 29-Jan-2011 Mathias Agopian <mathias@google.com> am 8d778b37: am 231da079: Merge "fix [3389263] OMX.Nvidia.h264.decode fails to shutdown" into honeycomb

* commit '8d778b375ccb4945cdcd7cc93272a6d36466ad00':
fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
3cc2677efc2a4bc06297b9667ac529284f6abf9d 29-Jan-2011 Mathias Agopian <mathias@google.com> fix [3389263] OMX.Nvidia.h264.decode fails to shutdown

We were still destroying an ANativeWindow's buffer pretty soon
after it was removed from the window manager. This time
we really wait for the ISurace to go away.

Change-Id: I329273fedaeef76ee92836f6180c2c3808389330
ayer.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
ayerBase.cpp
16f0453fee84c6aad59fe0d1c7d36f061d46cffc 20-Jan-2011 Glenn Kasten <gkasten@google.com> Protected surface API

To be used by DRM framework, implemented by display HAL

Change-Id: I054a07a94f4d5dbe792f3a597e2e49a100d90eb2
ayer.cpp
ayer.h
ayerBase.h
ayerDim.h
0d1561275e80073807ac04728951782d943f8882 26-Jan-2011 Mathias Agopian <mathias@google.com> fix [3385504] Surface flinger hang when adding dim surface

Change-Id: I8e0cda414bcad5854d2ca5dde8370bfd8b2e5ea4
ayerBase.cpp
ayerBase.h
ayerDim.cpp
urfaceFlinger.cpp
275e627ef6c9db2c4d4efa1edbac4d7b68859ce8 25-Jan-2011 Mathias Agopian <mathias@google.com> am 239fd805: Merge "fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)" into gingerbread

* commit '239fd805ef7c0e4116b0a89e20caaf287e91f017':
fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)
c92ba8851e2c495b025c48da9d887417dea85593 25-Jan-2011 Mathias Agopian <mathias@google.com> am 1955a5c9: Merge "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)" into gingerbread

* commit '1955a5c9da421dc89bb1a1dd3d3193159192cde9':
partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)
f7701fabe8c914d7914ab7630257da395a7fa7b2 25-Jan-2011 Mathias Agopian <mathias@google.com> am d0441f92: Merge "fix a small bug that caused screenshot to show garbage in some cases (DO NOT MERGE)" into gingerbread

* commit 'd0441f921b2b1879fb44041f521d9bfaa5a547d0':
fix a small bug that caused screenshot to show garbage in some cases (DO NOT MERGE)
63e4bba51501f9a6f27beccaae7f8e0b78ac767c 25-Jan-2011 Mathias Agopian <mathias@google.com> am 043a3cdd: Merge "workaround [3201922] display not on: log full of gralloc errors (DO NOT MERGE)" into gingerbread

* commit '043a3cddf67e2baf38711bcb125084599f8f9802':
workaround [3201922] display not on: log full of gralloc errors (DO NOT MERGE)
59f71e7feb9034c61cf531031063396d0fb97176 25-Jan-2011 Mathias Agopian <mathias@google.com> am d3fcd0a1: Merge "minor clean-up. SurfaceFlinger doesn\'t need libpixelflinger.so. (DO NOT MERGE)" into gingerbread

* commit 'd3fcd0a1c923498921107bb44fbc8b24582a170a':
minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. (DO NOT MERGE)
d1a99ec6b2f23db5662e6d2ccf7b40d96869eccb 19-Jan-2011 Mathias Agopian <mathias@google.com> fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)

Generally we never want to lock a buffer for write access if it is at
the "head" on the surfaceflinger side. The only exception (1) is when
the buffer is not currently in use AND there is at least one queued
buffer -- in which case, SurfaceFlinger will never use said buffer
anymore, because on the next composition around, it will be able to
retire the first queued buffer.

The logic above relies on SurfaceFlinger always retiring
and locking a buffer before composition -- unfortunately this
didn't happen during a screenshot.

This could leave us in a situation where a buffer is locked by the
application for write, and used by SurfaceFlinger for texturing,
causing a hang.

Here, we fix this issue by never assuming the exception (1), it was
intended as an optimization allowing ANativeWindow::lockBuffer() to
return sooner and was justified when most of SF composition was
done in software. The actual buffer locking is now ensured by
gralloc. We could have handled screenshots in a similar way to
a regular composition, but it could have caused glitches on screen,
essentially, taking a screenshot could cause to skip a frame.

now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.

noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
53a67e1663564efd691461659634f9e908407112 15-Jan-2011 Mathias Agopian <mathias@google.com> partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)

We used to guarantee that a layer in SurfaceFlinger would never be
destroyed before all references (to its ISurface) on the client
side would be released. At some point, this guarantee got
relaxed to allow to free gralloc resources sooner. This last
change was incorrect, because:
- in implementations with reference-counting the gralloc resources
wouldn't be released anyways, until all the mapping were gone
- in implementations without ref counting, the client side
would most likely crash or do something bad
- it also caused the SharedBufferStack slot to be reallocated
to another surface, which could be problematic if the client
continued to use the surface after the window manager destroyed it.

So, we essentially reinstate the guarantee that layers won't be
destroyed until after all references to their ISurface are
released.

NOTE: This doesn't entirely fix 3306150 because there is another
problem there where the Browser continues to use a surface after it
has been destroyed.

also improve SurfaceFlinger 'dumpsys' log

list the purgatory, which shows windows that have been closed,
but for which the client still has references.
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
cfb676f1aeb8648699bf23e987c3a752275519ca 17-Dec-2010 Mathias Agopian <mathias@google.com> fix a small bug that caused screenshot to show garbage in some cases (DO NOT MERGE)

we were not clearing the screen entirely, which caused garbage when
the screen wasn't entirely covered by windows.

Change-Id: Ia7aa13c36a8a314e0e8427d419b16b9aa2165ddf
urfaceFlinger.cpp
5dc7e7da9273a5b40a85f8f6177793a23669cf98 15-Dec-2010 Mathias Agopian <mathias@google.com> workaround [3201922] display not on: log full of gralloc errors (DO NOT MERGE)

we make sure to call compositionComplete after everytime we do
composition with the GPU (even for the screenshot case), which is
where the buffer locks are released.

Change-Id: I450430d1e4d1ee9ce1023970642378c42cdcfa4c
urfaceFlinger.cpp
a0c6b761738ff98682e281571a0ff91c2230e7ee 14-Dec-2010 Mathias Agopian <mathias@google.com> minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. (DO NOT MERGE)

Change-Id: I1ddbbbec4fa5b2521ef3787bc28efe1bc90d0060
ndroid.mk
0c2648ab644b22100c1e80801d05278f9ac729e9 25-Jan-2011 Mathias Agopian <mathias@google.com> tone down the log spew regarding taking screenshots.

Change-Id: I673806bda23eba6aab25f7505b7e0170afc9920b
urfaceFlinger.cpp
a9f54a77cd4057b0fddb0c6886357152548bf891 20-Jan-2011 Mathias Agopian <mathias@google.com> Merge "fix [3369743] SurfaceFlinger reads hardware composer hints before calling hwc.prepare()" into honeycomb
2bd1d95efecffad447afd682ffe605bbf8c79d62 20-Jan-2011 Mathias Agopian <mathias@google.com> clean-up unneeded code

now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.

noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.

Change-Id: I210413d4c8c0998dae05c8620ebfc895d3e6233d
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
48b888aab9fdcfba250722dffbdffe61f11c64f3 20-Jan-2011 Mathias Agopian <mathias@google.com> improve SurfaceFlinger 'dumpsys' log

list the purgatory, which shows windows that have been closed,
but for which the client still has references.

Change-Id: I5168bb88cb328d5d77d71d0871deb9190f493126
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
f20a32415d055336bc6016fa2de36d126db32746 20-Jan-2011 Mathias Agopian <mathias@google.com> fix [3369743] SurfaceFlinger reads hardware composer hints before calling hwc.prepare()

Change-Id: If3277c7b9d4cb8ef20d1706155fac7b87e64fb20
urfaceFlinger.cpp
c1d1b0d9b74d8f55346d0b84f369e48ecf2e0d33 16-Jan-2011 Mathias Agopian <mathias@google.com> Add logs when taking a screenshot to help tracking issue 3361121

Change-Id: I61d1e072ebe7061ee1d7255f6121b684e2923d1b
urfaceFlinger.cpp
0d3dcc4aab864e4e4086b070c08949d369239f22 15-Jan-2011 Mathias Agopian <mathias@google.com> Merge "partially fix [3306150] HTML5 video with H/W acceleration blackout" into honeycomb
76cd4ddc6ad664257739b3d3713fd9ebdc9a4ad9 15-Jan-2011 Mathias Agopian <mathias@google.com> partially fix [3306150] HTML5 video with H/W acceleration blackout

We used to guarantee that a layer in SurfaceFlinger would never be
destroyed before all references (to its ISurface) on the client
side would be released. At some point, this guarantee got
relaxed to allow to free gralloc resources sooner. This last
change was incorrect, because:
- in implementations with reference-counting the gralloc resources
wouldn't be released anyways, until all the mapping were gone
- in implementations without ref counting, the client side
would most likely crash or do something bad
- it also caused the SharedBufferStack slot to be reallocated
to another surface, which could be problematic if the client
continued to use the surface after the window manager destroyed it.

So, we essentially reinstate the guarantee that layers won't be
destroyed until after all references to their ISurface are
released.

NOTE: This doesn't entirely fix 3306150 because there is another
problem there where the Browser continues to use a surface after it
has been destroyed.

Change-Id: I305c830dd722b30a6d53cbf3a9c714fd3cf7eb06
urfaceFlinger.cpp
urfaceFlinger.h
a49576f06b73893fd957d974382390a47b44589e 14-Jan-2011 Mathias Agopian <mathias@google.com> Merge "fix [3312683] Camera mirroring problem after switching from back to front camera" into honeycomb
ad456f9878ff7c176499e7b992f9ff1cb3e9cdee 14-Jan-2011 Mathias Agopian <mathias@google.com> fix [3312683] Camera mirroring problem after switching from back to front camera

the crop as well as buffer orientation can change at every frame, when that happens
we need to reset the hwc HAL (ie: set the GEOMETRY_CHANGED flag).
currently we achieve this by taking the same code path than an actual geometry change
which is a bit more heavy than necessary.

Change-Id: I751f9ed1eeec0c27db7df2e77d5d17c6bcc17a24
ayerBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
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
urfaceFlinger.cpp
urfaceFlinger.h
495633406580685dfaa41979bbae47fc5f77fefe 20-Dec-2010 Jamie Gennis <jgennis@google.com> Add the ISurfaceComposer::createGraphicBuffer IPC.

This change adds a new binder method to the ISurfaceComposer interface.
This IPC is intended to allow SurfaceFlinger clients to allocate gralloc
buffers using SurfaceFlinger as a proxy to gralloc.

Change-Id: Ide9fc283aec5da6268ba62cfed0c3319a50b640d
urfaceFlinger.cpp
urfaceFlinger.h
ea0b147ba53707ba6566d28b22a8c7ba89ae85f8 20-Dec-2010 Mathias Agopian <mathias@google.com> am c724f2fb: disable the bypass mode. DO NOT MERGE.

* commit 'c724f2fba330da275f46586aeb5f0ae7bd2fae99':
disable the bypass mode. DO NOT MERGE.
902329fb3e8fd0b3666ff99704c196f0b8c2a08d 18-Dec-2010 Mathias Agopian <mathias@google.com> disable the bypass mode. DO NOT MERGE.

SF bypass mode triggers a bug in the display controller that
case cause the device to freeze.

Change-Id: If29b4d5132f463d13831b082b904c235f15a19fb
ndroid.mk
f653b897a449e10d6cbfb6e0812f7b0bb02d6482 17-Dec-2010 Mathias Agopian <mathias@google.com> fix a small bug that caused screenshot to show garbage in some cases

we were not clearing the screen entirely, which caused garbage when
the screen wasn't entirely covered by windows.

Change-Id: Ie9ab9b94eabfa6cafddf45bb14bc733bdc8d35c0
urfaceFlinger.cpp
e6f0984361f634ff36bc0ad1c2d45f4554619ac8 15-Dec-2010 Mathias Agopian <mathias@google.com> workaround [3201922] display not on: log full of gralloc errors

while we're waiting for the real fix in the gralloc/gpu driver,
this workaround should resolve the issue.

we make sure to call compositionComplete after everytime we do
composition with the GPU (even for the screenshot case), which is
where the buffer locks are released.

Change-Id: I3cb5ad67d48c81a23100172bab77e86a70e29152
urfaceFlinger.cpp
420a283c4dc2a669c93bd5c0a2180b14f3625501 15-Dec-2010 Mathias Agopian <mathias@google.com> Fix a problem where hwc and GL composition could show a different buffer

if a surface's buffers are reallocated, the current active buffer will
end-up pointing on one of these until a new buffer is retired.

we're now keeping a reference to the actual buffer until we retire a
new one.

Change-Id: Ib1703947e7a0340694d846e0962576318863b935
ayer.cpp
ayer.h
ebeb7095961e09f5cff0c7cf2c04fa4770b2e033 15-Dec-2010 Mathias Agopian <mathias@google.com> fix debug.sf.showbackground

Change-Id: Ie4eeca006ad6d8030900d8cb0029e4d1c22474fb
urfaceFlinger.cpp
da9584dc295cc5e6d0b49a97c1e45159249d650b 14-Dec-2010 Mathias Agopian <mathias@google.com> fix [3223749] media server crashes when switching mode from video capture to still image capture

there was an issue were in some situation SF would call prepare() on hwc
with a NULL handle and never call prepare again.
in this situation, we onw set the SKIP flag to make sure that hwc
won't process this layer and as soon as we receive our first buffer we
trigger a recompute of the visible regions which will end-up calling
prepare() again.

Change-Id: I6b400b2df79712408b9315a9859290c7fcb1609e
ayer.cpp
ayer.h
fb88981051118e169d6acfe796f7eab9a827b2e0 15-Dec-2010 Mathias Agopian <mathias@google.com> Merge "fix [3176642] Camera preview turns completely black for multiple toggles between camera and camcorder app"
5eee3d2b13880c9a486be8fca20128660a19b7f7 15-Dec-2010 Mathias Agopian <mathias@google.com> Merge "minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so."
dd17b3eaa99f761e265ff457e335b5a0ff83dafb 14-Dec-2010 Mathias Agopian <mathias@google.com> fix [3176642] Camera preview turns completely black for multiple toggles between camera and camcorder app

There was a leak of Surface tokens when a surface was detached from a UserClient.
We now always detach a surface from its client before attaching to the new one,
this guarantees that its token is freed.

Change-Id: Icfad0b16286ed58155bdfafdf36ab161440aa485
ayer.cpp
455d18d4c26a823bff62ca14771986cca52d3462 14-Dec-2010 Mathias Agopian <mathias@google.com> minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so.

Change-Id: I3bdca74351c8e480a05084bc412a96c5f685221d
ndroid.mk
bf2c6a6c8f1df40ac94e28b948754bb9739daaca 11-Dec-2010 Mathias Agopian <mathias@google.com> [3258939] Need snapshot to limit which layers are included

Change-Id: Id7351a0e3f53dde99b291cffba553d89fd4d7ca9
urfaceFlinger.cpp
urfaceFlinger.h
f345069099a13f0c2dd91f1fa92786643e4becb0 09-Dec-2010 Mathias Agopian <mathias@google.com> [3211070] camera preview image is rendered offset from the UI overlay frame

somehow this change got lost.

Change-Id: I36f6c7ef3f782918042b77e9dc91a4c811d84a40
ayer.cpp
86bdb2f918ffd238d6e0d1ae1f95af882f04d6cb 09-Dec-2010 Mathias Agopian <mathias@google.com> fix [3260137] Sometimes front-facing camera mirroring is wrong

make sure to take the buffer's orientation into account.

Change-Id: I9fef89e66368ad2dec1cb8c7b77ac2b3b4858efb
ayer.cpp
1293a8eb567fd63c072a6970fa9dcf37d076059f 09-Dec-2010 Mathias Agopian <mathias@google.com> More clean-up. Get rid off the "blur" effect in SurfaceFlinger

For multiple reason, this effect is not maintainable and was never
used due to its abysmal performance. it'll be resurected when it can be
implemented efficiently.

Change-Id: Id4222c9b86c629275cdec18873ef07be8723b6d2
ndroid.mk
lurFilter.cpp
lurFilter.h
ayerBlur.cpp
ayerBlur.h
urfaceFlinger.cpp
urfaceFlinger.h
e0be194c7b8639e5a20b33fea44fb8abc8a540cf 09-Dec-2010 Mathias Agopian <mathias@google.com> am 74da537f: Merge "[317580] fix issue where the screen wouldn\'t be rotated properly in bypass mode" into gingerbread

* commit '74da537f80ba36c1279c04fcb85d89fc38c246a6':
[317580] fix issue where the screen wouldn't be rotated properly in bypass mode
a5529c8778c2f407f482fc12165aeb76c0f505c2 08-Dec-2010 Mathias Agopian <mathias@google.com> remove support for PUSH_BUFFER surfaces and overlays

the same functionality is now supported through
the h/w composer HAL, and YUV support in the GPU.

Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ayerBase.cpp
ayerBase.h
ayerBuffer.cpp
ayerBuffer.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/overlays/Android.mk
ests/overlays/overlays.cpp
ests/resize/resize.cpp
ests/surface/surface.cpp
1d21a9cafc534c34a2f28c985c4c7aa176d0e67b 02-Dec-2010 Erik Gilling <konkers@android.com> surfaceflinger: add support for gralloc dump hooks

Change-Id: Ib6f539ed0132b70d040d653c03d52cc04249ac3c
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
urfaceFlinger.cpp
5ec99b57c3b6e15a1e19a9888100de76278b7696 08-Dec-2010 Mathias Agopian <mathias@google.com> should fix build.

Change-Id: I7705227ad123c73714af2ecb7ad84f5432a21c1d
ayerBase.h
a1aa18fc267a7d2db99b3cbc39907127bcdf6ac6 08-Dec-2010 Mathias Agopian <mathias@google.com> resolved conflicts for merge of a0f011ff to master

Change-Id: I4c17021fc269ce66c98cc345353600eda332f980
e24cc7a38dce071267156a9345e9ec3f27890daf 08-Dec-2010 Mathias Agopian <mathias@google.com> [317580] fix issue where the screen wouldn't be rotated properly in bypass mode

In some situations, the screen transformation would not be
applied while in bypass mode.

Change-Id: I3d6dd52e4c12b11aae97b54bf8e2322536eee37f
ayer.cpp
ayer.h
urfaceFlinger.cpp
b5a00fcb71426492f248ed49a0514a9b8d385065 08-Dec-2010 Mathias Agopian <mathias@google.com> am 48f42f8c: am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread

* commit '48f42f8c3fbd33b2f46c6290ff5963dd58938cf9':
[3171580] don't automatically log GraphicBuffer allocation failures
e4f81090c27d22b418d2cbe874fc28cbcf810167 07-Dec-2010 Mathias Agopian <mathias@google.com> am a2977c38: Merge changes Ie03796ae,Ide3e980a into gingerbread

* commit 'a2977c383d363e1e88a5b36230b1fa4c312807d2':
[3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
[3171580] Add transform field to native buffers. (DO NOT MERGE)
9669d23caedd9f5f71f3a6f4b589f91958b40f88 07-Dec-2010 Mathias Agopian <mathias@google.com> am 05813b0e: Merge changes I244b5469,I32044e91 into gingerbread

* commit '05813b0eb92cb1bc79607ee402f14ca1e4b43f6d':
[3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions
[3171580] Fix two typos related to fixed-size buffers
372c56e98b93647b7050e518c285057a8a72bc74 07-Dec-2010 Mathias Agopian <mathias@google.com> am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread

* commit '4153bf3a259624a2f2dc497b77b225a1fb517abc':
[3171580] don't automatically log GraphicBuffer allocation failures
22c67843bebd2083053af5992befe7ebd50303a5 02-Nov-2010 Mathias Agopian <mathias@google.com> [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)

This is a poor's man precursor to the h/w composer HAL.
Basically we detect when a window is full screen and in
that case we bypass surfaceflinger's composition step, which
yields to much improved performance.

Change-Id: Ie03796ae81a1c951949b771c9323044b980cb347
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
ayer.cpp
ayer.h
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
733189d408e13b54fd70971b265244367efd0f51 03-Dec-2010 Mathias Agopian <mathias@google.com> [3171580] Fix two typos related to fixed-size buffers

mFixedSize was never set, this bug was introduced during some "cleanup", in
practice this could cause some issues when a fixed-size buffer was used and
the window was resized.

Layer::drawForSreenShot() had a typo that had no effect.

mFixedSize was used to determine if filtering was needed, which was a bit too
conservative and created a dependency between filtering and "fixed size" states
which should exist.

Now we enable filtering based on the size of the buffer vs. the size of the layer.

Change-Id: I32044e91b0c944c1b137efdceb3f01dfaa78119d
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
678bdd6349344df254cc0c3377a40fd99e216635 04-Dec-2010 Mathias Agopian <mathias@google.com> [3171580] don't automatically log GraphicBuffer allocation failures

some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.

Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
ayer.cpp
040481419473cb9913b632cd8973b1d7065f9c9c 01-Dec-2010 Louis Huemiller <lhuemill@google.com> Remove const_cast to layer handle

Change-Id: Ica1e089cb56b5f9f46ab87abf735ffe7237fc926
ayer.cpp
4ba398df1797fc9e3b5c11b52898bc9e74f76be5 12-Nov-2010 Jamie Gennis <jgennis@google.com> Merge "Implement reducing the buffer count of a Surface."
54cc83e8a48c57307cdd40fe4b7e296020490095 02-Nov-2010 Jamie Gennis <jgennis@google.com> Implement reducing the buffer count of a Surface.

Change-Id: I7f979c60c06d654aa8265002836277434bc1a64f
Bug: 3095167
ayer.cpp
ayer.h
37b126a3b274e1930fbbddcdf3ec708d13d01801 10-Nov-2010 Jamie Gennis <jgennis@google.com> Remove a problematic empty update optimization.

This change removes an optimization from SurfaceFlinger that skipped
composition when it got window updates that had an empty dirty region.
This optimization caused problems because it would skip the hwcomposer
set call, which could leave the window's previous frame buffer bound to
an overlay plane. When the application subsequently dequeued and tried
to lock its next buffer (which would be the buffer currently bound to
the overlay), the lock call would block until the next hwcomposer set
call (which may never happen).

Change-Id: I563b626a1d52c1f30eb82489eae0ceb4edc79936
Bug: 3138752
urfaceFlinger.cpp
c23902b27fc8f4825217cef720c95c14e900efd8 28-Oct-2010 Mathias Agopian <mathias@google.com> am 5c0efef9: am 7d452f69: Merge "really fix [3118445] Transform * Transform does not work as expected" into gingerbread
c2dba08cc6c7f1a5dd2d7e6ff741f2e7924fc1b0 28-Oct-2010 Mathias Agopian <mathias@google.com> am 7d452f69: Merge "really fix [3118445] Transform * Transform does not work as expected" into gingerbread
883dffaa0095ac9ac2be70915f620af9f429dc4b 26-Oct-2010 Mathias Agopian <mathias@google.com> really fix [3118445] Transform * Transform does not work as expected

Two bugs were counter acting each other.
- rotation matrices are on the left-hand side of multiplies
- the transform of the overlay is applied before that of the layer

Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
ayerBase.cpp
ayerBuffer.cpp
ransform.cpp
d4a36d51021a66c44719dbed1bd43a471ac38657 25-Oct-2010 Mathias Agopian <mathias@google.com> am e1ca532d: am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread

Merge commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871'

* commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871':
fix [3123221] Video sticks playing back upside down following orientation switch
bb35a6322e96da0571bbb49b1a4401f3d5e525d9 25-Oct-2010 Mathias Agopian <mathias@google.com> am b4645353: am ce4d36ad: Merge "fix [3118445] Transform * Transform does not work as expected" into gingerbread

Merge commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368'

* commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368':
fix [3118445] Transform * Transform does not work as expected
a7a8f05d8cdf1f05896f5fea9c43321cd84f4784 25-Oct-2010 Mathias Agopian <mathias@google.com> am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread

Merge commit '457bed2bc6561dd67429dde238453fee8602fa9b' into gingerbread-plus-aosp

* commit '457bed2bc6561dd67429dde238453fee8602fa9b':
fix [3123221] Video sticks playing back upside down following orientation switch
46135ee9a3b0b773f78690af831c46b79996ce8f 25-Oct-2010 Mathias Agopian <mathias@google.com> am ce4d36ad: Merge "fix [3118445] Transform * Transform does not work as expected" into gingerbread

Merge commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e' into gingerbread-plus-aosp

* commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e':
fix [3118445] Transform * Transform does not work as expected
38e5c8ef89065ee3dfd7721d20df8c061f219168 25-Oct-2010 Mathias Agopian <mathias@google.com> Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread
d3caac954c3d6f2e4b4d4a5f13a570a2a15f8667 25-Oct-2010 Mathias Agopian <mathias@google.com> fix [3123221] Video sticks playing back upside down following orientation switch

the overlay wasn't reconfigured when the screen-orientation changed. It was
only done when a parameter of the surface itself changed.

Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
ayerBuffer.cpp
ayerBuffer.h
0694d0f3b3d016b9eedda13c447e8e7735a4a177 24-Oct-2010 Mathias Agopian <mathias@google.com> fix [3118445] Transform * Transform does not work as expected

The problem wasn't in the multiply operator, but rather in the code
that built the transform from the HAL bitmask.

We now use the multiply operator to build the Transform from the bitmask,
which guarantees, it'll always be correct.

Also added a simple test for Transform.

Change-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227
ransform.cpp
ransform.h
ests/transform/Android.mk
ests/transform/TransformTest.cpp
47a79466a72715d57934016a3cad19444dad0642 21-Oct-2010 Mathias Agopian <mathias@google.com> am fb31036f: am 583fefc8: Merge "Use the context_priority extension when present." into gingerbread

Merge commit 'fb31036fd844444c395a2ae9c97439eec9f774e4'

* commit 'fb31036fd844444c395a2ae9c97439eec9f774e4':
Use the context_priority extension when present.
db02bde7887c74dd1def274f818d326cde11bd0a 21-Oct-2010 Mathias Agopian <mathias@google.com> am 583fefc8: Merge "Use the context_priority extension when present." into gingerbread

Merge commit '583fefc8dcadecc7fc933513d3569dd9c16c100c' into gingerbread-plus-aosp

* commit '583fefc8dcadecc7fc933513d3569dd9c16c100c':
Use the context_priority extension when present.
3c85e4ad5a14a49fffcd458886cf7519276daed5 21-Oct-2010 Mathias Agopian <mathias@google.com> Merge "Use the context_priority extension when present." into gingerbread
0a96e3c31f137fd4e271c1fb2aef9aa0b6e79ce0 16-Oct-2010 Mathias Agopian <mathias@google.com> am 9f6d18ca: am 04358138: Merge "[3095807] screen takes a long time to turn on" into gingerbread

Merge commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a'

* commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a':
[3095807] screen takes a long time to turn on
fb3051b15e15b0f57196e0f2bc6ba8570f7ffe5e 16-Oct-2010 Mathias Agopian <mathias@google.com> am 7e9a54d4: am d4e03f37: addresses parts of 3096779 and 3097475

Merge commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8'

* commit '7e9a54d460030a871a4f05e61e943c6a694e9ef8':
addresses parts of 3096779 and 3097475
1cc53746aa8f548349385af7134af1135cfd1d5e 16-Oct-2010 Mathias Agopian <mathias@google.com> am a8faf91f: am 6d71f6a0: Merge "fix [3095607] Gingerbread screen turn-on animation does not show the last frame" into gingerbread

Merge commit 'a8faf91fa558be1235d508e776eb24be4429585c'

* commit 'a8faf91fa558be1235d508e776eb24be4429585c':
fix [3095607] Gingerbread screen turn-on animation does not show the last frame
c9ce8cbe3bc1cd75598ab67081fe8b96199bfd31 15-Oct-2010 Mathias Agopian <mathias@google.com> am 3d4a9774: am b0e020ab: Merge "may fix 3097381 and 3097482. don\'t abort on/off if the animation fails" into gingerbread

Merge commit '3d4a9774ced0c704da455c5bd9989127e90ba133'

* commit '3d4a9774ced0c704da455c5bd9989127e90ba133':
may fix 3097381 and 3097482. don't abort on/off if the animation fails
e33a35f02576b482a5ac4891a78f6e72fb4c0dea 15-Oct-2010 Mathias Agopian <mathias@google.com> am 5bfa3a34: am 011b5bcc: Merge "implement part of [3094280] New animation for screen on and screen off add support for screen on animation" into gingerbread

Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f'

* commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f':
implement part of [3094280] New animation for screen on and screen off
65019fdc828f59f59682d9eb90749f4edb9ddda3 15-Oct-2010 Mathias Agopian <mathias@google.com> am 04358138: Merge "[3095807] screen takes a long time to turn on" into gingerbread

Merge commit '043581382e43acbe29a8a62420bc765f49a9dd90' into gingerbread-plus-aosp

* commit '043581382e43acbe29a8a62420bc765f49a9dd90':
[3095807] screen takes a long time to turn on
a6546e5af4ce0cff01cd13605fc3eb16325feac3 14-Oct-2010 Mathias Agopian <mathias@google.com> [3095807] screen takes a long time to turn on

turn on animation is now ~200 ms (12 frames).

Change-Id: I49ca9e8d0afa566349d360b3b6c88f0d55aa6e75
urfaceFlinger.cpp
af384f8e3bf56f9bf4f10e5977093cbc41557464 15-Oct-2010 Mathias Agopian <mathias@google.com> am d4e03f37: addresses parts of 3096779 and 3097475

Merge commit 'd4e03f37423bee383d17f7292753a5f67e497a28' into gingerbread-plus-aosp

* commit 'd4e03f37423bee383d17f7292753a5f67e497a28':
addresses parts of 3096779 and 3097475
b9d181f46e18423ca93de595b45f8922ea7aacaf 15-Oct-2010 Mathias Agopian <mathias@google.com> am 6d71f6a0: Merge "fix [3095607] Gingerbread screen turn-on animation does not show the last frame" into gingerbread

Merge commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf' into gingerbread-plus-aosp

* commit '6d71f6a0ae9fd81ce25562aee67f841b5d8394cf':
fix [3095607] Gingerbread screen turn-on animation does not show the last frame
abd671a08a41519a7ab3d438a500efe0ef0bfc1d 14-Oct-2010 Mathias Agopian <mathias@google.com> addresses parts of 3096779 and 3097475

3097475: Animation setting should control the screen on animation
3096779: CRT power-on animation can briefly show the top app instead of lockscreen

There is now a parameter that controls wether the ON and/or OFF animation are
performed. we also always clear the screen to black on power off, to make
sure it won't briefly appear on power on.
HOWEVER, 3096779 is not 100% fixed in the case where we're doing the animation
because there is a race, where SF doesn't wait (b/c it doesn't know) for the
framework to have redrawn the lockscreen.

Change-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03
urfaceFlinger.cpp
urfaceFlinger.h
a310993c83c29b43ea1f80b529b5a5261e97f80a 14-Oct-2010 Mathias Agopian <mathias@google.com> am b0e020ab: Merge "may fix 3097381 and 3097482. don\'t abort on/off if the animation fails" into gingerbread

Merge commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf' into gingerbread-plus-aosp

* commit 'b0e020ab409b725a556f2c5043b08c9bac2c29bf':
may fix 3097381 and 3097482. don't abort on/off if the animation fails
a7f0373533e590fdca1400f90e6657ebb2dd5f17 14-Oct-2010 Mathias Agopian <mathias@google.com> fix [3095607] Gingerbread screen turn-on animation does not show the last frame

always redraw the screen entirely after the power-on animation, because:
- the animation may not run (ie: on the emu)
- the animation may not contain the video planes
- the interpolation may not be perfect and not land exactly on the last frame

Change-Id: I9ba40f537b1e94464f8a3ed6f81e7c2f552df51d
urfaceFlinger.cpp
015fb3fb41ffe04475ab2b604cc30cc1c031815a 14-Oct-2010 Mathias Agopian <mathias@google.com> may fix 3097381 and 3097482. don't abort on/off if the animation fails

now that sf handles more of the screen on/off state, we don't want to abort
because/if the animation fails for some reason (which will be the case on the
emulator).

Change-Id: I239e0a39cf8aff3074647e82db92de4a0bf0e494
urfaceFlinger.cpp
503d2d4a08370209dc83330bd00997ba9512f46f 14-Oct-2010 Joe Onorato <joeo@google.com> am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread

Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96'

* commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96':
Remove dead code, and make the animation a setting.
turn off the electron beam
d91595b0004d24d0183fcbc594c693105b6c906b 14-Oct-2010 Mathias Agopian <mathias@google.com> am 011b5bcc: Merge "implement part of [3094280] New animation for screen on and screen off add support for screen on animation" into gingerbread

Merge commit '011b5bcc0355338b7ff906656282a54ffaa04b5a' into gingerbread-plus-aosp

* commit '011b5bcc0355338b7ff906656282a54ffaa04b5a':
implement part of [3094280] New animation for screen on and screen off
9daa5c9b9dd286cbbf5d43f7e45a5e9e4048e855 13-Oct-2010 Mathias Agopian <mathias@google.com> implement part of [3094280] New animation for screen on and screen off
add support for screen on animation

Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
isplayHardware/DisplayHardwareBase.cpp
urfaceFlinger.cpp
urfaceFlinger.h
296b1d77641e6cf4f03e12c62c0d55a9e32b6b67 12-Oct-2010 Joe Onorato <joeo@google.com> am ba799098: Merge changes I76513387,I335fb671 into gingerbread

Merge commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e' into gingerbread-plus-aosp

* commit 'ba799098608c7be8ff1e18adfa7dc1f452205a7e':
Remove dead code, and make the animation a setting.
turn off the electron beam
59119e658a12279e8fff508f8773843de2d90917 11-Oct-2010 Mathias Agopian <mathias@google.com> turn off the electron beam

Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
urfaceFlinger.cpp
urfaceFlinger.h
eb8f8980d4c67347d45bfc27cdf52f2c2c636c34 12-Oct-2010 Mathias Agopian <mathias@google.com> am 5d477279: am cf6b2765: Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread

Merge commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78'

* commit '5d477279e6e41c9d61abe66dcded5c57a51e2c78':
fix a bug where FLIP_H would do a 180 rotation
09e5687757296a4d8d2a5e5353b31dc5de14b423 12-Oct-2010 Mathias Agopian <mathias@google.com> am 3754d0cc: am d0528b74: Merge "deliver invalidate messages AFTER other messages" into gingerbread

Merge commit '3754d0ccc7ba07fd867d3d28e6493e84ce0a139d'

* commit '3754d0ccc7ba07fd867d3d28e6493e84ce0a139d':
deliver invalidate messages AFTER other messages
3b996c96e4cd1057cb6b9531eaf8c01f934d2b2a 10-Oct-2010 Romain Guy <romainguy@google.com> Always create OpenGL accelerated windows in RGBA 8888.

Bug #3081600

The OpenGL renderer in libhwui uses a single EGL context per process and
thus create it with an RGBA 8888 EGL configuration. To ensure that all
windows are compatible with this configuration, this change modifies
the window manager and SurfaceFlinger.

The window manager now checks the window's flags and if the window is
hardware accelerated, it forces the window's pixel format to be
translucent when creating the surface. The window itself is still
marked as opaque if we know that the window will be opaque on screen.
This keeps existing optimizations in place.

Similarly in SurfaceFlinger, a translucent Surface can now be created
with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface
does not require blending, despite its RGBA 8888 configuration.

Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
ayer.cpp
67226814e1b6d1c02079635608444e73ec658837 12-Oct-2010 Mathias Agopian <mathias@google.com> Use the context_priority extension when present.

Change-Id: I12eadf1e32d576de5d811fba44afa73263e13eef
ndroid.mk
isplayHardware/DisplayHardware.cpp
c6f607dcdd6a3322619d3e3ef4a10d93c8c082f5 11-Oct-2010 Mathias Agopian <mathias@google.com> am cf6b2765: Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread

Merge commit 'cf6b2765ae7ea6305754e253264012b8f0498f7b' into gingerbread-plus-aosp

* commit 'cf6b2765ae7ea6305754e253264012b8f0498f7b':
fix a bug where FLIP_H would do a 180 rotation
20f29b4a2a6caf31352709863abaaee69155bb34 11-Oct-2010 Mathias Agopian <mathias@google.com> Merge "fix a bug where FLIP_H would do a 180 rotation" into gingerbread
3c2c54c270d8ecefccc9a57b0f5b1d691588a258 11-Oct-2010 Mathias Agopian <mathias@google.com> fix a bug where FLIP_H would do a 180 rotation

Change-Id: Ie2cc4a8543a5625750c8596f87edcb66fcbca31f
ayerBase.cpp
2e109a8666b99825ca1d6c5373f16cf237c99f90 11-Oct-2010 Mathias Agopian <mathias@google.com> am d0528b74: Merge "deliver invalidate messages AFTER other messages" into gingerbread

Merge commit 'd0528b74b6de87c415ea498095e142d52c68875b' into gingerbread-plus-aosp

* commit 'd0528b74b6de87c415ea498095e142d52c68875b':
deliver invalidate messages AFTER other messages
7b0ba1668872eb6336bd305f9893991c84a08462 11-Oct-2010 Mathias Agopian <mathias@google.com> deliver invalidate messages AFTER other messages

because invalidate messages were always handled first, they
could prevent other messages to get through entirely.
there is no real reason to handle invalidate messages first because
the other messages are very uncommon and won't interfer with
updates.

Change-Id: Ib95cdf35a91407bd2f4d69dd082c5f546e1e0071
essageQueue.cpp
8d5ed611214d500f2761b45ce6477b158f0d0aba 11-Oct-2010 Mathias Agopian <mathias@google.com> am a7c76d83: Merge "fix a bug where timeouts would only be handled when a message was delivered" into gingerbread

Merge commit 'a7c76d8307a3b49bf5b8fdda3543455b0e5dd64c' into gingerbread-plus-aosp

* commit 'a7c76d8307a3b49bf5b8fdda3543455b0e5dd64c':
fix a bug where timeouts would only be handled when a message was delivered
23a0920339a04c0fcfc3a2840f4e020040c2afbf 08-Oct-2010 Mathias Agopian <mathias@google.com> fix a bug where timeouts would only be handled when a message was delivered

Change-Id: I98c69b129e75e065e61f47e54f0f855d9401b0dc
essageQueue.cpp
954fdd27ca1420aadc51c2752072a81a2e9bcb3c 08-Oct-2010 Mathias Agopian <mathias@google.com> fix a bug where timeouts would only be handled when a message was delivered

Change-Id: Id3127b21c1a1a1afab32911a8edbb202360d7c9b
essageQueue.cpp
58959343dbdb6157fa5f5463262d4842b8954353 07-Oct-2010 Mathias Agopian <mathias@google.com> Fix a null dereference

Change-Id: I3df446b90c1607782778749de7ba0f8c00698c33
isplayHardware/HWComposer.cpp
6263c831ec9da9a28ef008897bda7dcb7f775120 05-Oct-2010 Mathias Agopian <mathias@google.com> am 19058877: Merge "refactored screenshot code" into gingerbread

Merge commit '19058877df9bf94f197a72855f810f7f6bf8d068' into gingerbread-plus-aosp

* commit '19058877df9bf94f197a72855f810f7f6bf8d068':
refactored screenshot code
df85c455c34a920d22a8e3f7459a1cc615efcd27 29-Sep-2010 Mathias Agopian <mathias@google.com> refactored screenshot code

the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.

we also now have some client code to interface with the screenshot service.

it's now possible to request a screenshot at a lower resolution.

Change-Id: I33689bba98507ab928d0898b21596d0d2fe4b953
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerBuffer.cpp
ayerBuffer.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/screencap/screencap.cpp
74c40c0a273dbfd7d10617c4cc1b0c066bfc812e 29-Sep-2010 Mathias Agopian <mathias@google.com> refactored screenshot code

the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.

we also now have some client code to interface with the screenshot service.

it's now possible to request a screenshot at a lower resolution.

Change-Id: I5a3b0e431421800e3aad601d9af8f94adffbc71f
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerBuffer.cpp
ayerBuffer.h
urfaceFlinger.cpp
urfaceFlinger.h
ests/screencap/screencap.cpp
a3aefeb1c31618dcc897da22d2d2f741104e3fe3 25-Sep-2010 Mathias Agopian <mathias@google.com> am 495ad4f2: am beabe75a: Merge changes I1f7c4535,I741c68a2 into gingerbread

Merge commit '495ad4f22096aa172d025c16c25497e7dad8f2bd'

* commit '495ad4f22096aa172d025c16c25497e7dad8f2bd':
simple test app for screen capture API
add support for [1974164] Be able to take a screen shot on the device
c814f965de344cab63a99d7db5632c814573111a 25-Sep-2010 Mathias Agopian <mathias@google.com> am beabe75a: Merge changes I1f7c4535,I741c68a2 into gingerbread

Merge commit 'beabe75a842d521b005999460d3a6361ab32108e' into gingerbread-plus-aosp

* commit 'beabe75a842d521b005999460d3a6361ab32108e':
simple test app for screen capture API
add support for [1974164] Be able to take a screen shot on the device
06e7056660d65d4b0bbe1bb2cbf3e779074dbd9f 25-Sep-2010 Mathias Agopian <mathias@google.com> simple test app for screen capture API

Change-Id: I1f7c453508ccfd4faaa8b1279968a358ce3f1e5a
ests/screencap/Android.mk
ests/screencap/screencap.cpp
1b0b30d04304392748a8a4ab5a69e52a19f51b3a 24-Sep-2010 Mathias Agopian <mathias@google.com> add support for [1974164] Be able to take a screen shot on the device

screenshots are taken using ISurfaceComposer::captureScreen() which returns
the size of the screenshot and an IMemoryHeap containing the data.
screenshots have limitations:
- they will always fail if a secure window is up on screen
- require GL_OES_framebuffer_object extension
- in some situation, video planes won't been captured

Change-Id: I741c68a2d2984fb139039301c3349e6780e2cd58
LExtensions.cpp
LExtensions.h
urfaceFlinger.cpp
urfaceFlinger.h
8372785879d329f592f6883620b5a32d80d74691 24-Sep-2010 Mathias Agopian <mathias@google.com> dump HWC state in dumpsys

Change-Id: Ifbb38ca1ac9685776250e01c8d02021b35af72cf
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
73d3ba9e50be1014aa21ec4bbdc874be394accb4 23-Sep-2010 Mathias Agopian <mathias@google.com> add a way to toggle the h/w composer at runtime

to DISABLE the h/w composer:
adb shell service call SurfaceFlinger 1008 i32 1

to ENABLE the h/w composer:
adb shell service call SurfaceFlinger 1008 i32 0

the state is dumped in "dumpsys SurfaceFlinger"

Change-Id: I23e2242d42c6e3fd5261a83332dd900b189e38ce
urfaceFlinger.cpp
urfaceFlinger.h
e44d21a247aac5192b8ef397d433a4aefb6ba53e 21-Sep-2010 Mathias Agopian <mathias@google.com> fix [3018216] UI shrinks / stretches while using apps with IME

Change-Id: Ie4c5d8a434b4489355ed8c52af96eb931b4d7167
ayer.cpp
9c2de1a4b59ee03f1fd3cc542c7b7a307b68e76c 17-Sep-2010 Jamie Gennis <jgennis@google.com> Merge "Fix a SurfaceFlinger bug."
5dda7f7cf23a02fff2e35d7eb6bb7c9f0d620f95 17-Sep-2010 Jamie Gennis <jgennis@google.com> Fix a SurfaceFlinger bug.

The bug caused SurfaceFlinger to constantly trigger reallocation of buffers
that requested a fixed size.

Change-Id: Ic993a60e6474e36a344c8b48d541a0d08b8c4faf
ayer.cpp
fe0a0af7bdab1e61fdb00f4705ccff5b46c19d8e 17-Sep-2010 Mathias Agopian <mathias@google.com> am 793b2293: am 1bcb8b1a: Merge "surfaceflinger / GL extensions cleanup" into gingerbread

Merge commit '793b2293797ea930078640c4827d3cbdf449c227'

* commit '793b2293797ea930078640c4827d3cbdf449c227':
surfaceflinger / GL extensions cleanup
c05246ae344f16f3892a1274ef75627772c7c9aa 17-Sep-2010 Mathias Agopian <mathias@google.com> am 1bcb8b1a: Merge "surfaceflinger / GL extensions cleanup" into gingerbread

Merge commit '1bcb8b1afbfa2fc387a0f7068740f1efbe9a1f69' into gingerbread-plus-aosp

* commit '1bcb8b1afbfa2fc387a0f7068740f1efbe9a1f69':
surfaceflinger / GL extensions cleanup
7f198b6bff54af3c8e8ac32b83ffc6488e773ac1 16-Sep-2010 Michael I. Gold <gold@nvidia.com> surfaceflinger / GL extensions cleanup

Add correct enumerants for OES_EGL_image_external to glext.h.
SurfaceFlinger now checks for the correct extension name.

Change-Id: I2ba2728a01fa2260bd086d2df4316c68f694a9b1
LExtensions.cpp
ayerBlur.cpp
ayerDim.cpp
urfaceFlinger.cpp
extureManager.cpp
c479e18db0216f7096fefe85ffa71ab00329aef3 15-Sep-2010 Mathias Agopian <mathias@google.com> resolved conflicts for merge of 48a86240 to master

Change-Id: I2305fef9f4dd46183337217d822df3c675b6b6e5
5e4cf02dfe0e8dbabb49b49ed38120cac8bbb9a3 15-Sep-2010 Mathias Agopian <mathias@google.com> am b3ffc78f: Merge "Add logging of various important graphics events" into gingerbread

Merge commit 'b3ffc78f3432344702e6f5232067ab624083cad2' into gingerbread-plus-aosp

* commit 'b3ffc78f3432344702e6f5232067ab624083cad2':
Add logging of various important graphics events
35b48d10bc9e064201d3d54d2d476314684a7a05 14-Sep-2010 Mathias Agopian <mathias@google.com> Add logging of various important graphics events

There are 16 events logged in the event log:
SF_APP_DEQUEUE_BEFORE
SF_APP_DEQUEUE_AFTER
SF_APP_LOCK_BEFORE
SF_APP_LOCK_AFTER
SF_APP_QUEUE

SF_REPAINT
SF_COMPOSITION_COMPLETE
SF_UNLOCK_CLIENTS
SF_SWAP_BUFFERS
SF_REPAINT_DONE

SF_FB_POST_BEFORE
SF_FB_POST_AFTER
SF_FB_DEQUEUE_BEFORE
SF_FB_DEQUEUE_AFTER
SF_FB_LOCK_BEFORE
SF_FB_LOCK_AFTER

all events log the buffer conserned and a timestamp in microseconds.

by default the logging is not enabled, to turn it on:
adb shell service call SurfaceFlinger 1006 i31 1
adb shell setprop debug.graphic_log 1

The effect is immediate in SurfaceFlinger, but applications need to be
restarted.

Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
urfaceFlinger.cpp
f5f2712854599b4970643c6000fe6ae950a08ba9 09-Sep-2010 Antti Hatala <ahatala@nvidia.com> surfaceflinger: give hwcomposer a chance to release buffers

Change-Id: I605fa779702022865dd58df3b36f37c2644ade36
isplayHardware/DisplayHardware.cpp
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
586a0deb76012c4347298c11df460631853b67f8 09-Sep-2010 Antti Hatala <ahatala@nvidia.com> surfaceflinger: composite HWC_SKIP_LAYER layers

Change-Id: I363ede63287ae903d66d0d419343f4ecd81bcc00
urfaceFlinger.cpp
8392b504bdf63ac7820c79c7217a89f2b2411bd0 08-Sep-2010 Antti Hatala <ahatala@nvidia.com> surfaceflinger: unlock clients only after flip

Change-Id: I039291a36f05bbaa02b29325d4012114abd784b9
urfaceFlinger.cpp
413f750501c4392e096c7bed27af0764cbadeb94 26-Aug-2010 Mathias Agopian <mathias@google.com> am 6d4346ce: am 4cffbb47: Merge "fix [2946787] Screen flicker on low resolution setting in camcorder." into gingerbread

Merge commit '6d4346ce35a521d67f45d7c9658c450c0fc461d2'

* commit '6d4346ce35a521d67f45d7c9658c450c0fc461d2':
fix [2946787] Screen flicker on low resolution setting in camcorder.
9cca403ed0da6ac601a664e0731fad50843c0c2c 26-Aug-2010 Mathias Agopian <mathias@google.com> am 4cffbb47: Merge "fix [2946787] Screen flicker on low resolution setting in camcorder." into gingerbread

Merge commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4' into gingerbread-plus-aosp

* commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4':
fix [2946787] Screen flicker on low resolution setting in camcorder.
eff062c49e858d0dd94a1e57f6115bc84dba103e 25-Aug-2010 Mathias Agopian <mathias@google.com> fix [2946787] Screen flicker on low resolution setting in camcorder.

Change-Id: I7e86f2b6d85dcae8dd212890b978fa6ac7de6893
ayer.cpp
e34a3d1a294e1d83caa410f3006e474bef787e1a 25-Aug-2010 Mathias Agopian <mathias@google.com> am 46820412: am 8eb16af2: Merge "don\'t try to lock a buffer that wasn\'t allocated with SW usage bits" into gingerbread

Merge commit '468204124e95bbf74ae8cc000318ade29e311be6'

* commit '468204124e95bbf74ae8cc000318ade29e311be6':
don't try to lock a buffer that wasn't allocated with SW usage bits
2091772e7ce8ce5b7ff1ddb9921e60cbaa6bd5f0 25-Aug-2010 Mathias Agopian <mathias@google.com> am 8eb16af2: Merge "don\'t try to lock a buffer that wasn\'t allocated with SW usage bits" into gingerbread

Merge commit '8eb16af29303cda190133a1d220b9ecd9341e261' into gingerbread-plus-aosp

* commit '8eb16af29303cda190133a1d220b9ecd9341e261':
don't try to lock a buffer that wasn't allocated with SW usage bits
f1b38247d4d9c2ddc7315a72b609a95e0ed8050f 21-Aug-2010 Mathias Agopian <mathias@google.com> don't try to lock a buffer that wasn't allocated with SW usage bits

Change-Id: Iabbcec1bfa30dc47d45ece699dd178653f1b675b
ayer.cpp
4ad298c12c43563789fd2213428347caf2f74c64 25-Aug-2010 Mathias Agopian <mathias@google.com> am bc4389ed: am 8395b462: Merge "fix [2931513] Add support for setting the orientation of an ANativeWindow" into gingerbread

Merge commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64'

* commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64':
fix [2931513] Add support for setting the orientation of an ANativeWindow
95acdcc7de8d99bf40d11c6f297415787bb32973 25-Aug-2010 Mathias Agopian <mathias@google.com> am 8395b462: Merge "fix [2931513] Add support for setting the orientation of an ANativeWindow" into gingerbread

Merge commit '8395b4625b96f2133e2e4f595fdc69fbe222e4fc' into gingerbread-plus-aosp

* commit '8395b4625b96f2133e2e4f595fdc69fbe222e4fc':
fix [2931513] Add support for setting the orientation of an ANativeWindow
b661d66013b9803c50dc78ca0247ac39caef443a 20-Aug-2010 Mathias Agopian <mathias@google.com> fix [2931513] Add support for setting the orientation of an ANativeWindow

Also implement support for cropping.

Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
ayer.cpp
ayerBase.cpp
ayerBase.h
ayerBlur.cpp
ayerBuffer.cpp
extureManager.h
89c2dd2cc27ead77da131fe27810c99a11a92ad7 11-Aug-2010 Jamie Gennis <jgennis@google.com> Change the framework to use the new camera preview path.

This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated. The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface. The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.

Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
urfaceFlinger.cpp
3f45e44adf9d76c7b76d33aec4c6e93f794d470d 23-Aug-2010 Andreas Huber <andih@google.com> Merge "Squashed commit of the following:"
8b42e8a5d87dcdc8ea31368ab88de49b72ab5432 16-Aug-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 35cc68814a9537c31fde146e171e7b0bbdfe211e
Author: Andreas Huber <andih@google.com>
Date: Mon Aug 16 08:48:42 2010 -0700

Only enable support for yuv to yuv conversion on passion, where it's available, use the slower yuv->rgb565 path everywhere else.

commit d8ac5a8814103e60d11d2acf61997fc31a1dc58d
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 13 13:56:44 2010 -0700

The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.

commit 684972074b74318bdcb826ed9b5b0864d2d2e273
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 13 09:34:35 2010 -0700

A first shot at supporting the new rendering APIs.

Change-Id: Iea9b32856da46950501f1a700f616b5feac710fd
ndroid.mk
urfaceFlinger.cpp
f84f146159922eb1f5d9bec7ec9a71cda1e866b1 21-Aug-2010 Mathias Agopian <mathias@google.com> am a90a1e55: am 545eab8a: Merge "remove unused pixel format" into gingerbread

Merge commit 'a90a1e55c60604b930eecff03fe25429205ec7df'

* commit 'a90a1e55c60604b930eecff03fe25429205ec7df':
remove unused pixel format
8258339e47e827a3a26a4b54b0015b2fe6a01f8f 19-Aug-2010 Mathias Agopian <mathias@google.com> am 545eab8a: Merge "remove unused pixel format" into gingerbread

Merge commit '545eab8ae80b070177cc442931eadc8cd980de26' into gingerbread-plus-aosp

* commit '545eab8ae80b070177cc442931eadc8cd980de26':
remove unused pixel format
c04cffd5703607f31356c26016b6e3ec971f6511 19-Aug-2010 Mathias Agopian <mathias@google.com> remove unused pixel format

Change-Id: I55bc3cc41385743c07f7e4de06335c922f746f73
extureManager.cpp
1339581c921eea51e885a8c5c237e66d3904bc51 18-Aug-2010 Mathias Agopian <mathias@google.com> am 26bcc7b4: Merge "revert hwcomposer HAL changes. DO NOT MERGE." into gingerbread

Merge commit '26bcc7b44238ea54105ef5a6020fa5c37bb33f03' into gingerbread-plus-aosp

* commit '26bcc7b44238ea54105ef5a6020fa5c37bb33f03':
revert hwcomposer HAL changes. DO NOT MERGE.
000ca8fa9a1a92aa2f132ba41d11ece6d01cdadd 18-Aug-2010 Mathias Agopian <mathias@google.com> revert hwcomposer HAL changes. DO NOT MERGE.

This reverts commit:
94364b91a2894bf037b8beb027132fbb812e1434
f8e705dea48f77f1c2532fdbadd4997dd1851af0
b59beb5ca68d0228f60dda60d85e2d0226b33215
e0d5f5bcf5a8b26f4ad75f549cbf380b2c9faf20
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
3c7a766c66456476c774a627369e7f031660f06e 14-Aug-2010 Mathias Agopian <mathias@google.com> am 6a73368b: Merge "fix a typo that prevented glTexImage2D codepath to work" into gingerbread

Merge commit '6a73368be44f45a80cc4b65dc57b9ff529cb2d89' into gingerbread-plus-aosp

* commit '6a73368be44f45a80cc4b65dc57b9ff529cb2d89':
fix a typo that prevented glTexImage2D codepath to work
998831fbc3fc82beb0c490ee49d8748bbbb888e9 14-Aug-2010 Mathias Agopian <mathias@google.com> Merge "fix a typo that prevented glTexImage2D codepath to work" into gingerbread
f1c468e48160208afe4919f57de464369cd3cafc 14-Aug-2010 Mathias Agopian <mathias@google.com> fix a typo that prevented glTexImage2D codepath to work

Change-Id: I36a3bf9d1d2eacd9b14e00b0a6c53bf88bba381c
extureManager.cpp
38af31e3e25a16295caec8dea205d10075912662 13-Aug-2010 Erik Gilling <konkers@android.com> am 94364b91: surfaceflinger: don\'t check HWComposer numLayers unless one exists

Merge commit '94364b91a2894bf037b8beb027132fbb812e1434' into gingerbread-plus-aosp

* commit '94364b91a2894bf037b8beb027132fbb812e1434':
surfaceflinger: don't check HWComposer numLayers unless one exists
ae957658688ce174a8d58434b4567d022c22a6cf 13-Aug-2010 Erik Gilling <konkers@android.com> surfaceflinger: don't check HWComposer numLayers unless one exists

Change-Id: I4b83f7bf7ba1318c70054117f14e759fe0ad105c
urfaceFlinger.cpp
5e9615eaff388e02e5b54c35796cc741e0652795 13-Aug-2010 Mathias Agopian <mathias@google.com> am b7d1be01: Merge "Fix a couple issues with the new hwcomposer HAL" into gingerbread

Merge commit 'b7d1be01ae44428b947823fc48c1c126dcaa9732' into gingerbread-plus-aosp

* commit 'b7d1be01ae44428b947823fc48c1c126dcaa9732':
Fix a couple issues with the new hwcomposer HAL
45721773e1a68e96da4b6cc04cef276bae7ca3e9 13-Aug-2010 Mathias Agopian <mathias@google.com> Fix a couple issues with the new hwcomposer HAL

- we now clear the framebuffer upon request from the HAL
- the HAL list size could get out of sync with reality
- there was also an issue where sometime we could run past the list

Change-Id: Ic3a34314aed24181f2d8cc787096af83c046ef27
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
urfaceFlinger.cpp
ea6dbaf3029783fba305fe6323c504accc3c2fd7 12-Aug-2010 Mathias Agopian <mathias@google.com> am 65f2490e: Merge "should fix sim build, hopefully" into gingerbread

Merge commit '65f2490e1baa6eac5905cbc638e69581ebcd8dee' into gingerbread-plus-aosp

* commit '65f2490e1baa6eac5905cbc638e69581ebcd8dee':
should fix sim build, hopefully
f1352df47fe20aed23c216a78923c7d248f2bb91 12-Aug-2010 Mathias Agopian <mathias@google.com> should fix sim build, hopefully

Change-Id: I5390bd34dcca36fef43b5169386fff1b04cc842b
isplayHardware/HWComposer.cpp
8ea0bbd9b06ec0ca8c9a4c80a9f845cca5331947 12-Aug-2010 Mathias Agopian <mathias@google.com> am 90dc48b1: Merge "call into hwcomposer HAL when present" into gingerbread

Merge commit '90dc48b17f673b7e334e3254ea633450f994226c' into gingerbread-plus-aosp

* commit '90dc48b17f673b7e334e3254ea633450f994226c':
call into hwcomposer HAL when present
127fbb7943e25e8b4c19fcb0cc3a4ae8de67a42d 12-Aug-2010 Mathias Agopian <mathias@google.com> am 24d7050c: Merge "don\'t handle the transparent region of a layer in draw()" into gingerbread

Merge commit '24d7050ca605804efd5fde03f0d0d8d1d052c247' into gingerbread-plus-aosp

* commit '24d7050ca605804efd5fde03f0d0d8d1d052c247':
don't handle the transparent region of a layer in draw()
c1ee0bea391fedd41e6d4871d623b81dc456f2ee 12-Aug-2010 Mathias Agopian <mathias@google.com> am 8e7515d9: Merge "get rid of our LayerVector implementation" into gingerbread

Merge commit '8e7515d9c938f5addd08d97bccfccfa976e76c11' into gingerbread-plus-aosp

* commit '8e7515d9c938f5addd08d97bccfccfa976e76c11':
get rid of our LayerVector implementation
820863e7749c705f4ae4089e8b77eda022f6c2f6 12-Aug-2010 Mathias Agopian <mathias@google.com> am 025822a0: Merge "keep a list of visible sorted surfaces" into gingerbread

Merge commit '025822a03a09337ec382e708c5a798fe805109ed' into gingerbread-plus-aosp

* commit '025822a03a09337ec382e708c5a798fe805109ed':
keep a list of visible sorted surfaces
a350ff98692b3a50cad5cc93f9f83221242ca86a 11-Aug-2010 Mathias Agopian <mathias@google.com> call into hwcomposer HAL when present

Change-Id: I70f31c69a9436a43860e78977442863ecba6d27b
ndroid.mk
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/HWComposer.cpp
isplayHardware/HWComposer.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
bc7e31a84b936a5a9ac295db56f0836c50c1ac7f 11-Aug-2010 Mathias Agopian <mathias@google.com> don't handle the transparent region of a layer in draw()

this is already taken into consideration in computeVisibleRegion
and therefore not needed at draw time.

Change-Id: I3fc7336d22f1147dfcd3a20fd71bf79b946d971f
ayerBase.cpp
f6679fc6f70939643901f29a9a69e40c603e6e5f 11-Aug-2010 Mathias Agopian <mathias@google.com> get rid of our LayerVector implementation

we now use SortedVector<> with a special compare implementation.

Change-Id: I910459cf3b3c8993b55ad0786a8c348369262de5
ayerBase.cpp
ayerBase.h
urfaceFlinger.cpp
urfaceFlinger.h
4da751999358fffa4cefc4c8046dab72045925f6 11-Aug-2010 Mathias Agopian <mathias@google.com> keep a list of visible sorted surfaces

Change-Id: Ib815eeff894f8a3b1e79fbbf8186d5d91bb60285
urfaceFlinger.cpp
urfaceFlinger.h
4952ac0498ef1bf1d61ff9a44e413cdf986c6457 11-Aug-2010 Jean-Baptiste Queru <jbq@google.com> am bc881e66: Merge "frameworks/base: Swap width and height of temporary buffer only with orientation change"

Merge commit 'bc881e66d15181494fdd5d0ece83e20ef325453b' into gingerbread-plus-aosp

* commit 'bc881e66d15181494fdd5d0ece83e20ef325453b':
frameworks/base: Swap width and height of temporary buffer only with
ad1c5cf963e85d2efe7b34c07e076dbf6b6ab7d0 06-Aug-2010 Omprakash Dhyade <odhyade@codeaurora.org> frameworks/base: Swap width and height of temporary buffer only with
orientation change

Current code swaps the width and height by assuming that aspect
ratio of the buffer width and height will be same as that of the
layout clip width and height. That is not always true.
Change the check to orientation change.

Change-Id: Ie387f3a7369025427484e4173cbde7a08df2b9d7
ayerBuffer.cpp
208cb0772429b9ac800010829ecc7b854bdc2d24 28-Jul-2010 Mathias Agopian <mathias@google.com> fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.

this situation happened when the last buffer needed to be resized
(or allocated, the first time). the assumption was that the buffer
was in use by SF itself as the current buffer (obviously, this
assumption made no sense when the buffer had never been allocated, btw).

the system would wait until some other buffer became the "front" buffer.

we fix this problem by entirely removing the requirement that the
buffer being resized cannot be the front buffer. instead, we just
allocate a new buffer and replace the front buffer by the new one.

the downside is that this uses more memory (an extra buffer) for a
brief amount of time while the old buffer is being reallocated and
before it has actually been replaced.

Change-Id: I022e4621209474ceb1c671b23deb4188eaaa7285
ayer.cpp
ests/surface/Android.mk
ests/surface/surface.cpp
be48137beb68893870c26b7f8c59eac5d0bf517a 23-Jul-2010 Mathias Agopian <mathias@google.com> move native services under services/

moved surfaceflinger, audioflinger, cameraservice

all native services should now reside in this location.

Change-Id: Icd7336f7289db35df9c8c1857a5122bb8a6f1c86
ndroid.mk
arrier.h
lurFilter.cpp
lurFilter.h
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerBlur.cpp
ayerBlur.h
ayerBuffer.cpp
ayerBuffer.h
ayerDim.cpp
ayerDim.h
ODULE_LICENSE_APACHE2
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceFlinger.h
okenizer.cpp
okenizer.h
ransform.cpp
ransform.h
lz.cpp
lz.h
ests/Android.mk
ests/overlays/Android.mk
ests/overlays/overlays.cpp
ests/resize/Android.mk
ests/resize/resize.cpp
a1e6bc864fb821c1b470b7aad9b75c441f54eeb4 15-Jul-2010 Mathias Agopian <mathias@google.com> added BinderService<> template to help creating native binder services

Change-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe
urfaceFlinger.cpp
urfaceFlinger.h
81bac09fa6b01dd1495644d9c825c3666762fced 15-Jul-2010 Mathias Agopian <mathias@google.com> move native services under services/

moved surfaceflinger, audioflinger, cameraservice

all native services should now reside in this location.

Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
ndroid.mk
arrier.h
lurFilter.cpp
lurFilter.h
isplayHardware/DisplayHardware.cpp
isplayHardware/DisplayHardware.h
isplayHardware/DisplayHardwareBase.cpp
isplayHardware/DisplayHardwareBase.h
LExtensions.cpp
LExtensions.h
ayer.cpp
ayer.h
ayerBase.cpp
ayerBase.h
ayerBlur.cpp
ayerBlur.h
ayerBuffer.cpp
ayerBuffer.h
ayerDim.cpp
ayerDim.h
ODULE_LICENSE_APACHE2
essageQueue.cpp
essageQueue.h
urfaceFlinger.cpp
urfaceFlinger.h
extureManager.cpp
extureManager.h
ransform.cpp
ransform.h
lz.cpp
lz.h
ests/Android.mk
ests/overlays/Android.mk
ests/overlays/overlays.cpp
ests/resize/Android.mk
ests/resize/resize.cpp