History log of /frameworks/native/services/surfaceflinger/MessageQueue.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
801ea093b0e923a61b832f2adba698a273479880 07-Mar-2017 Mathias Agopian <mathias@google.com> split libsensor our of libgui

Test: compile & run
Bug: treble cleanup
Change-Id: I5b2c2a14f7d3b364d25695cf0901c5b08cfb0fc9
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
53390e1e8c33ebee5bb8100e846f5263ba05ff73 04-Aug-2015 Pablo Ceballos <pceballos@google.com> libgui/SF: Fix some code warnings

A couple of fixes to satisfy the Eclipse static code analysis tool.
- Initialize all members in constructors
- Remove unused forward declarations
- Add parentheses when combining logical and bitwise operators
- Fix a case statement with no break (it was intentional)

Change-Id: Icecb8cc98c6f58b97ab33fffb621f0edc33a7d3c
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
fe761ab6c72bdcdb8a2cf0df1524f526d8609fee 13-Dec-2013 Brian Carlstrom <bdc@google.com> Track Looper decoupling from ALooper

Change-Id: I612f0de7002e24948a4cbbea7b416b4fbb3929aa
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
69a655caef30663403802281210363f643ceb946 12-Apr-2012 Mathias Agopian <mathias@google.com> Revert "handle surfaces posts independently from composition"

This reverts commit 562f4b2c1e555b853997113bb54b21303d642bc6.

Change-Id: I96efe11c2f0494ed2d57fc580e49c598d913830e
/frameworks/native/services/surfaceflinger/MessageQueue.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
/frameworks/native/services/surfaceflinger/MessageQueue.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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
99ce5cdeb383216dee95af4d90e47406b0948ea1 01-Feb-2012 Mathias Agopian <mathias@google.com> separate transactions from updates

with this changes, SF transactions are handled as soon as possible
but do not trigger updates. the update is delayed until the next
vsync.

this allows us to work much better without requiring triple-buffering.

Change-Id: I1fa10794d0cf742129f0877698b7b1e1f2ec7401
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
8aedd4737d6ce8548d2fd5def65b1e1737283821 25-Jan-2012 Mathias Agopian <mathias@google.com> SF now synchronizes to VSYNC

Change-Id: Ic5e4f2ea9927ce133eef9499c03161325e9d02c5
/frameworks/native/services/surfaceflinger/MessageQueue.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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
be42aef82f7de3ef04c8c257f882bd6e9653d304 03-Dec-2011 Mathias Agopian <mathias@google.com> fix an issue where invalidate/transactions could be missed

Change-Id: I84a1fcba1317b2631f5441de7b7ecd12af5ad022
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
222893641184014306a26a9d58690c8415181d12 03-Dec-2011 Mathias Agopian <mathias@google.com> fix an issue where updates could starve transactions

Bug: 5700586
Change-Id: Iaa4adc1a6aea1db6e2943efe4caca1f6cbebfa72
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
f61c57fe2e955e1c195bb0ca2dd7bcdaa922d5a9 24-Nov-2011 Mathias Agopian <mathias@google.com> rewrite SF's message loop on top of Looper

Change-Id: Ib56139f87a5c0b124e34da5c8151207219b2577b
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp
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
/frameworks/native/services/surfaceflinger/MessageQueue.cpp