History log of /frameworks/native/libs/ui/Fence.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
df1baddb6f4a13e7253ca547549b3157725c3121 27-Dec-2017 Chia-I Wu <olv@google.com> libui: use unique_fd in Fence

Use unique_fd internally. Add a constructor to create a Fence from
a unique_fd.

Test: boots
Change-Id: I36e7a337885a6559ed6fe82c56b718f56108aaf8
/frameworks/native/libs/ui/Fence.cpp
8f47ce8194f80092a08b1e36475b2695280688eb 16-May-2017 Chris Forbes <chrisforbes@google.com> Merge "ui: Fix bad size check in Fence::unflatten" into klp-dev am: 25556811f0 am: 71d3ef1340 am: 5c5ee81b0c am: 05df3a6f4d am: 81bab8081e am: 209ad9b6fe am: d4cbd296d6 am: 593a1a217a am: e3bc28ad88 am: 600e610344 am: ce069c5a07 am: a078c0780c am: 1ceadac71b am: 912ff8af49 am: 161a9bcda1
am: eb576150d5

Change-Id: If60dd4fa06a11aa72671573784c0d7774ae4c3ec
912ff8af49167529afd18d0c9d1da958a544b36b 16-May-2017 Chris Forbes <chrisforbes@google.com> Merge "ui: Fix bad size check in Fence::unflatten" into klp-dev am: 25556811f0 am: 71d3ef1340 am: 5c5ee81b0c am: 05df3a6f4d am: 81bab8081e am: 209ad9b6fe am: d4cbd296d6 am: 593a1a217a am: e3bc28ad88 am: 600e610344 am: ce069c5a07 am: a078c0780c
am: 1ceadac71b

Change-Id: I89b2e528d27938fa6bae79b3e6baa8e89d7207dd
d4cbd296d66d788fd1867d21cae3b4df37fe93b9 16-May-2017 Chris Forbes <chrisforbes@google.com> Merge "ui: Fix bad size check in Fence::unflatten" into klp-dev am: 25556811f0 am: 71d3ef1340 am: 5c5ee81b0c am: 05df3a6f4d am: 81bab8081e
am: 209ad9b6fe

Change-Id: I31fe784570c5978faf7484b3f71a074523c0d33c
05df3a6f4d332448aab30a83204551424c114479 16-May-2017 Chris Forbes <chrisforbes@google.com> Merge "ui: Fix bad size check in Fence::unflatten" into klp-dev am: 25556811f0 am: 71d3ef1340
am: 5c5ee81b0c

Change-Id: Ie7ec2067057ea2dbd4b9af0c93a00ba53879b72f
9809602ac32dcb7bceaa5bc34df5b7fb68aacd38 10-May-2017 Chris Forbes <chrisforbes@google.com> ui: Fix bad size check in Fence::unflatten

Differs slightly from mnc+ patch: GetFlattenedSize was fixed in mnc.

Test: Boot device, run poc from bug, observe no longer crashes
Bug: 37285689
Change-Id: Id8b851733b088cce0d07493fbf76e7e24f9299ad
/frameworks/native/libs/ui/Fence.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
/frameworks/native/libs/ui/Fence.cpp
221de2a33d456738f7f64db0b015a960211d4834 22-Sep-2016 Brian Anderson <brianderson@google.com> Add Fence helpers: Time, Timeline, Snapshot

FenceTime will be used to:
1) Cache and share the result of a Fence's getSignalTime with
all clients that care about it, instead of requiring a
syscall for each client.
2) Allow tests to override the valid state and signalTimes of
the underlying fence by acting as a shim.

FenceTimeline will be used to efficiently get the signal
times of Fences without having query for Fences that
likely haven't signaled.

FenceTime::Snapshot is a stable copy of a FenceTime that
can be used for serialization since it doesn't change
while flattening.

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

Change-Id: I9a28df7ce797311dc4d56b1147edf590e9de1517
/frameworks/native/libs/ui/Fence.cpp
fd4c8c38051f9dad028e4e43e0eb39ba412b2c0a 07-Oct-2016 Matthew Bouyack <mbouyack@google.com> Use snprintf for SurfaceFlinger fence name

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

Change-Id: I6ac47c2434662ca561208daae232f02a9f136aaf
/frameworks/native/libs/ui/Fence.cpp
6fbefbbd8edc9953041289fbd77bb18c4964dce5 23-Mar-2015 Dan Stoza <stoza@google.com> libui: Clean up Fence and Region flattening

Fence was flattening incorrectly, causing issues with any fields
flattened after it, and Region was relying on being the last object
flattened. This change addresses both.

Change-Id: If49de061de6e2f11f4d846b4d8c18627dfb7e109
/frameworks/native/libs/ui/Fence.cpp
d31824004277f554000417cea349d69f18655e95 17-Nov-2014 Dan Stoza <stoza@google.com> libui: 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: I470a267e9b1c373f2d5c960f005c3b0e02b2db63
(cherry picked from commit 303b9a51239d36d237a7d40c67b5085cdb3c1059)
/frameworks/native/libs/ui/Fence.cpp
288f2ef6294b99a4a53355273ae8ad0f5a525f65 15-Apr-2014 Colin Cross <ccross@android.com> libui: fix passing Fence object over binder

The Fence object was writing a size_t into the binder buffer
in flatten, which changes size if the producer and consumer
are running in a 32-bit and a 64-bit process. Use a uint32_t
instead.

Change-Id: Ifed526513800ce27f9d605101cddd922292cca37
/frameworks/native/libs/ui/Fence.cpp
e142428a9c8b9d2380032cd4d7b55ee440fe8770 30-Jul-2013 Mathias Agopian <mathias@google.com> Make Flattenable not virtual

Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
/frameworks/native/libs/ui/Fence.cpp
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
/frameworks/native/libs/ui/Fence.cpp
1df8c345854155cbbcb9f80de9d12d66ea70ac08 20-Dec-2012 Jamie Gennis <jgennis@google.com> libgui: disallow NULL Fence pointers

This change eliminates the uses of a NULL sp<Fence> indicating that no waiting
is required. Instead we use a non-NULL but invalid Fence object for which the
wait methods will return immediately.

Bug: 7892871
Change-Id: I5360aebe3090422ef6920d56c99fc4eedc642e48
/frameworks/native/libs/ui/Fence.cpp
7c36cd231542990e0ef8240fcc8dfd35a9e4b38b 15-Jan-2013 Jesse Hall <jessehall@google.com> Fix memory leak when getting signal time for unsignaled fences

Bug: 8000983
Change-Id: Ie88ed23fc5e8c95bfade364e090e90b7f070fa8e
/frameworks/native/libs/ui/Fence.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
/frameworks/native/libs/ui/Fence.cpp
b5c9dcdf3bdab1862047060b8e18c9d1831db8bb 09-Oct-2012 Mathias Agopian <mathias@google.com> Fence didn't manager sync_wait error codes properly

error codes are returned in errno, this caused ::waitForwever()
to only wait for 1 second and return improper error code (-1).

needed to help debugging 7316632

Bug: 7316632
Change-Id: Ie144f614a88393393972a3a770c6b4b0581f961a
/frameworks/native/libs/ui/Fence.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
/frameworks/native/libs/ui/Fence.cpp
d83d67b5d5e98b7f0bdf54b68f6ea28fa4905a33 31-Jul-2012 Mathias Agopian <mathias@google.com> log more info on fence sync_merge error

also fix a typo where the wrong value was passed to sterror.

Change-Id: I4df2abe582e14c8f816b65818f4593a6bd3c23ea
/frameworks/native/libs/ui/Fence.cpp
c777b0b3b9b0ea5d8e378fccde6935765e28e329 28-Jun-2012 Jesse Hall <jessehall@google.com> Pass fences with buffers from SurfaceTextureClient

Change-Id: I09b49433788d01e8b2b3684bb4d0112be29538d3
/frameworks/native/libs/ui/Fence.cpp
f9783af225aa3b41ec0af36f90941a714269abb7 25-Jun-2012 Jesse Hall <jessehall@google.com> Return fence to client in dequeuBuffer

Change-Id: Ic19750793ad993f0e85391f3cabd743ba565d4c9
/frameworks/native/libs/ui/Fence.cpp
ef19414bd8b77a26f5751f3845be79025a8263fe 14-Jun-2012 Jesse Hall <jessehall@google.com> Transfer HWC release fences to BufferQueue

After a HWC set, each SurfaceFlinger Layer retrieves the release fence
HWC returned and gives it to the layer's SurfaceTexture. The
SurfaceTexture accumulates the fences into a merged fence until the
next updateTexImage, then passes the merged fence to the BufferQueue
in releaseBuffer.

In a follow-on change, BufferQueue will return the fence along with
the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the
fence to signal before returning.

The releaseFence default value for BufferQueue::releaseBuffer() is
temporary to avoid transient build breaks with a multi-project
checkin. It'll disappear in the next change.

Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
/frameworks/native/libs/ui/Fence.cpp
f25e183a70bd631f75dce51e85b7d568472a0cdb 14-Jun-2012 Jamie Gennis <jgennis@google.com> libui: add the Fence class

This change adds the Fence class to libui for to wrap the libsync
functionality.

Change-Id: I93a31baeee608b93c14da807a32013dabf783f84
/frameworks/native/libs/ui/Fence.cpp