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)
/frameworks/native/libs/gui/ConsumerBase.cpp
|
c6ff79830b9126f948791f03164a58ad079e9e5d |
|
14-Jun-2017 |
Eino-Ville Talvala <etalvala@google.com> |
ConsumerBase: discardFreeBuffers() also needs to dump its own cache ConsumerBase has its own cached slots with graphic buffer references, so it's not enough to just ask the buffer queue consumer to free buffers. Add code equivalent to what happens in the onBuffersReleased callback. Test: Bug: 62593139 Change-Id: Ibc1444b868c6150aa2da1c209e06bdba42f1595d
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
723c48987209c93a902c29a858880b4fe340509d |
|
30-Mar-2017 |
Yin-Chia Yeh <yinchiayeh@google.com> |
DO NOT MERGE: ConsumerBase: call freeBufferLocked when a slot is overwritten Cherrypicked from master. Test: the CL + camera service side fix pass ReprocessCaptureTest Bug: 34461678 Change-Id: Ia7863321bcb46cba53532fc1570c5facd9280aaa
/frameworks/native/libs/gui/ConsumerBase.cpp
|
f8b4ca51111cd2e566d1774ac464da859db78976 |
|
16-Mar-2017 |
Romain Guy <romainguy@google.com> |
Revert "Get rid of IGraphicBufferAlloc" This reverts commit 78491c9f694cb0767996503c629776a8eda950d7. Change-Id: I78d5c0a30ab80265f697f681387872b6763b2d1e
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
e9e9fe40fb702ab1390a32c61981bc927177258a |
|
01-Mar-2017 |
Mathias Agopian <mathias@google.com> |
fallout of cleaning-up libutils includes Test: run & compile Bug: n/a Change-Id: I99e462d2db6560742fa3f065d5de50cd60111130
/frameworks/native/libs/gui/ConsumerBase.cpp
|
a34320a81c9787958f1b02e93e828472e54864b5 |
|
16-Feb-2017 |
Dan Stoza <stoza@google.com> |
libui: Remove STL from Fence Renames Fence::hasSignaled to Fence::getStatus, and changes its return type from std::experimental::optional (STL is no longer permitted in libui) to an enum class. Also updates its one caller. Test: Builds and sailfish boots Change-Id: I682039b9fd88bf79f1e2a955944c4a564ed6f60b
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
29cacbe8fedffe0f6db2c2836f76b6497caf78ab |
|
18-Oct-2016 |
Matthew Bouyack <mbouyack@google.com> |
In SurfaceFlinger, test fence before merging am: 377c203375 Change-Id: Icfbcbe58de9f6930f06774f47e6576ec523115bd
|
377c2033750ad2a47e5c560f982a0242ea7dc79e |
|
08-Oct-2016 |
Matthew Bouyack <mbouyack@google.com> |
In SurfaceFlinger, test fence before merging If the old fence for a given layer has already expired, we can replace it with the new fence rather than merging the two. This saves 300-400us per frame on Android Wear Change-Id: I5d907c336c7383ae4e2e0f71e42f23749494a359
/frameworks/native/libs/gui/ConsumerBase.cpp
|
c7d352eb17bc507d9e28ec878895bd888166e514 |
|
10-Oct-2016 |
Matthew Bouyack <mbouyack@google.com> |
Use snprintf for SurfaceFlinger fence name am: fd4c8c3805 Change-Id: I16d3eb7cde318f2078be36acea22b9bc84975b63
|
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/gui/ConsumerBase.cpp
|
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)
/frameworks/native/libs/gui/ConsumerBase.cpp
|
bc2df65a3f3f4b8abaaaa2a4e576a3a42c2d30f3 |
|
22-Jul-2016 |
Eino-Ville Talvala <etalvala@google.com> |
BufferQueue consumers: Add discardFreeBuffer method This method releases all free buffers owned by the buffer queue, in order to save memory (at the cost of potential future reallocation of buffers). Bug: 28695173 Change-Id: I458d10373e639e3144faf673af2ba01aca36e65a
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
65d9f6d63ab3bad1d835df14c662028a748eb3c5 |
|
04-May-2016 |
Pablo Ceballos <pceballos@google.com> |
libgui: Prevent segfaulting in abandoned ConsumerBase mConsumer will be null if the ConsumerBase has been abandoned. Prevent it from being dereferenced in those cases. Bug 27718219 Change-Id: I9a3ecadb0655ec61cd2fd15ee98b3e1bef078cff
/frameworks/native/libs/gui/ConsumerBase.cpp
|
e07e3e5ef56b768d73e78fb273f2cfe6ebffc945 |
|
15-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Revert "Add a callback thread to ConsumerBase" This reverts commit 22b5702b40eca423171124e69c3d4ad03a3e6900. Bug 27557176 Change-Id: Icc0e79af82329e6414ed44a99e90631cfcf140fa
/frameworks/native/libs/gui/ConsumerBase.cpp
|
83b1e685d252e589fa4a2e7e54c1f416aca63043 |
|
13-Mar-2016 |
Brian Carlstrom <bdc@google.com> |
frameworks/native: Make Thread::run threadName argument required Bug: 27557176 Change-Id: I009046d04cc127ee280c7b2038c04fab540fc5e6
/frameworks/native/libs/gui/ConsumerBase.cpp
|
22b5702b40eca423171124e69c3d4ad03a3e6900 |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Add a callback thread to ConsumerBase - Add a message queue and callback thread in ConsumerBase. - This is used to prevent deadlocks when ConsumerBase calls into BufferQueueConsumer and that generates a callback. Bug 27229287 Change-Id: I45c41e5a554555511fcfa5c185a7d60b0d969b7e
/frameworks/native/libs/gui/ConsumerBase.cpp
|
47650f4f66a49e1815ad08ca4fb12a661d133abc |
|
05-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
native: Rename mBuf to mSlot Remove the union in BufferItem. Bug: 19769719 Change-Id: I4e496b5aafce0fc5206dc7551a741f9c262c2cd0
/frameworks/native/libs/gui/ConsumerBase.cpp
|
699a32bcdfaf0390a269a275b979d46ca815654a |
|
18-May-2015 |
Michael Lentine <mlentine@google.com> |
Merge "Refactor ConsumerBase and it's derived classes." into mnc-dev
|
847f11e215e86b107ab50c1359fc7bc3cd7a3a11 |
|
18-May-2015 |
Michael Lentine <mlentine@google.com> |
Refactor ConsumerBase and it's derived classes. Move setDefaultBufferSize, setDefaultBufferFormat, and setDefaultBufferDataSpace into ConsumerBase and remove them from CpuConsumer and BufferItemConsumer. Bug: 19977701 Change-Id: Ic68992464c5da6da7a41c4063a53029a69efcd1b
/frameworks/native/libs/gui/ConsumerBase.cpp
|
e478305181bb8dc8706361bc702256fe73f958de |
|
15-May-2015 |
John Reck <jreck@google.com> |
Add ConsumerBase::isAbandoned Bug: 20105644 Change-Id: I21526b5397ea51a15500c44a99daa9d75fc4ea67
/frameworks/native/libs/gui/ConsumerBase.cpp
|
a4650a50a0b35e9e4342d6600b6eb24fd94bb8e5 |
|
12-May-2015 |
Dan Stoza <stoza@google.com> |
Fix PTS handling for buffer replacement This changes the way that SurfaceFlinger's shadow buffer management works such that instead of tracking the size of the shadow queue in the BufferQueue, SF tracks the last frame number it has seen, and passes that into the acquireBuffer call. BufferQueueConsumer then ensures that it never returns a buffer newer than that frame number, even if that means that it must return PRESENT_LATER for an otherwise valid buffer. Change-Id: I3fcb45f683ed660c3f18a8b85ae1f8a962ba6f0e
/frameworks/native/libs/gui/ConsumerBase.cpp
|
dc13c5b85b099050c73297a19f1ef89308f7620b |
|
12-May-2015 |
Dan Stoza <stoza@google.com> |
libgui: Hook up onFrameReplaced This completes the plumbing from ConsumerListener::onFrameReplaced into SurfaceFlinger (and other consumers that may care). Change-Id: I376e78ace95d6748e8662e6b4d47c0dfa697a300
/frameworks/native/libs/gui/ConsumerBase.cpp
|
634f5ee6a713b3cf4086a2af8e9b56e76cba245f |
|
03-Apr-2015 |
Dan Stoza <stoza@google.com> |
libgui: Plumb detachBuffer through ConsumerBase Exposes IGraphicBufferConsumer::detachBuffer as a ConsumerBase method. attachBuffer is not currently exposed, because all current clients will be recycling buffers through the allocator. Bug: 19628705 Change-Id: I3e519767fa43d5d880c1d5695e31b60f6ad588af
/frameworks/native/libs/gui/ConsumerBase.cpp
|
1c87e474d87d6d1380fb61d476d606b1a2fda1c1 |
|
13-Mar-2015 |
Dan Stoza <stoza@google.com> |
DO NOT MERGE libgui: Remove IGBC::BufferItem Removes IGraphicBufferConsumer::BufferItem. Depends on the following changes: I187b3a7d05196b6289596afac8fb9a9d4aebff76 I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc Cherry-pick of Id1fa56d092188f2cb712768d5d2fc6a9027fb73c Change-Id: I3edf0db8fba656fd78e18a5a7f1137f0fb6b237d
/frameworks/native/libs/gui/ConsumerBase.cpp
|
cf3834db104e0b052056e3a06d46e3f222f0d372 |
|
11-Mar-2015 |
Dan Stoza <stoza@google.com> |
DO NOT MERGE libgui: Prepare for IGBC::BufferItem removal Currently, there are two instances of BufferItem: one inside of IGraphicBufferConsumer, and a standalone one inside of libgui. They only differ in the name of one of the fields, and we want to remove the IGBC version. This changes things so that client code may be incrementally switched over to the libgui version. This is a squashed commit containing the following changes: I64f495105f56cbf5803cea4aa6b072ea29b70cf5 I1394e693314429ada93427889f10b7b01c948053 I9c3bc8037fa9438d4d9080b8afb694219ef2f71f I699ed0a6837076867ca756b28d1ffb2238f7a0d9 Iac8425e1241774304a131da2fb9dec6e82922f13 Change-Id: Ic4d51f5df6dbc70b376d13fceba2335b9bae4f3d
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.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
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
5273a978337cbee2c1aae2f4d5c1b0e9d8dd6e1c |
|
09-Sep-2014 |
Dan Albert <danalbert@google.com> |
resolved conflicts for merge of 86aeb9ef to lmp-dev-plus-aosp Change-Id: I82fe2b385156d9bdb9e7183e308d7b2a4167b6ce
|
8b49125f10e3fd991c631e12856ce1ebf5a56d7e |
|
09-Sep-2014 |
Dan Albert <danalbert@google.com> |
Make string literal concatenation play nice with C++11. In C++11 mode, "foo"MACRO_THAT_EXPANDS_TO_STRING gets lexed as a user defined literal. Add space around the macro. Change-Id: I2741f5be9c0b1562e0f413d1309ef9d687e89b41
/frameworks/native/libs/gui/ConsumerBase.cpp
|
55fc54970b674280376bbf037153ca1a5e53bc32 |
|
11-Jun-2014 |
Mark Salyzyn <salyzyn@google.com> |
am 72676e7d: am 0e1313cd: Merge "libgui: 64-bit compile issues" * commit '72676e7d0db89d477495245aa15f1a128b5c35bc': libgui: 64-bit compile issues
|
911004506dcb6ee68efdfd6636e0ffc72e6972b8 |
|
09-Jun-2014 |
Mark Salyzyn <salyzyn@google.com> |
libgui: 64-bit compile issues Change-Id: I29961c1567b8431518a7d032ea43385e23b7bb37
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
399184a4cd728ea1421fb0bc1722274a29e38f4a |
|
04-Mar-2014 |
Jesse Hall <jessehall@google.com> |
Add sideband streams to BufferQueue and related classes Sideband streams are essentially a device-specific buffer queue that bypasses the BufferQueue system. They can be used for situations with hard real-time requirements like high-quality TV and video playback with A/V sync. A handle to the stream is provided by the source HAL, and attached to a BufferQueue. The sink HAL can read buffers via the stream handle rather than acquiring individual buffers from the BufferQueue. Change-Id: Ib3f262eddfc520f4bbe3d9b91753ed7dd09d3a9b
/frameworks/native/libs/gui/ConsumerBase.cpp
|
7d2d160cdc3cba9f4454f38433c94b68376cb843 |
|
13-Nov-2013 |
Igor Murashkin <iam@google.com> |
gui: Update header docs for IGraphicBufferConsumer/Producer/BufferQueue Also fix compiler warnings for libgui Change-Id: I0ee38d9ad5eaa82d55bf812d291da8c433581cef
/frameworks/native/libs/gui/ConsumerBase.cpp
|
db89edc94bd2a78226b407f9f7261e202e7fa325 |
|
02-Aug-2013 |
Mathias Agopian <mathias@google.com> |
All consumers now take an IGraphicBufferConsumer instead of a BufferQueue this means they only have access to the consumer end of the interface. we had a lot of code that assumed consumers where holding a BufferQueue (i.e.: both ends), so most of this change is untangling in fix that Bug: 9265647 Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
595264f1af12e25dce57d7c5b1d52ed86ac0d0c9 |
|
17-Jul-2013 |
Mathias Agopian <mathias@google.com> |
BufferQueue improvements and APIs changes this is the first step of a series of improvements to BufferQueue. A few things happen in this change: - setSynchronousMode() goes away as well as the SynchronousModeAllowed flag - BufferQueue now defaults to (what used to be) synchronous mode - a new "controlled by app" flag is passed when creating consumers and producers those flags are used to put the BufferQueue in a mode where it will never block if both flags are set. This is achieved by: - returning an error from dequeueBuffer() if it would block - making sure a buffer is always available by replacing the previous buffer with the new one in queueBuffer() (note: this is similar to what asynchrnous mode used to be) Note: in this change EGL's swap-interval 0 is broken; this will be fixed in another change. Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
/frameworks/native/libs/gui/ConsumerBase.cpp
|
1585c4d9fbbba3ba70ae625923b85cd02cb8a0fd |
|
28-Jun-2013 |
Andy McFadden <fadden@android.com> |
Pay attention to buffer timestamps When acquiring a buffer, SurfaceFlinger now computes the expected presentation time and passes it to the BufferQueue acquireBuffer() method. If it's not yet time to display the buffer, acquireBuffer() returns PRESENT_LATER instead of a buffer. The current implementation of the expected-present-time computation uses approximations and guesswork. Bug 7900302 Change-Id: If9345611c5983a11a811935aaf27d6388a5036f1
/frameworks/native/libs/gui/ConsumerBase.cpp
|
c5d7b7d323bba8772a9005f7d300ad983a04733a |
|
03-May-2013 |
Lajos Molnar <lajos@google.com> |
BufferQueue: track buffer-queue by instance vs. by reference Instead of representing the buffer-queue as a vector of buffer indices, represent them as a vector of BufferItems (copies). This allows modifying the buffer slots independent of the queued buffers. As part of this change, BufferSlot properties that are only been relevant in the buffer-queue have been removed. Also, invalid scalingMode in queueBuffer now returns an error. ConsumerBase has also changed to allow reuse of the same buffer slots by different buffers. Change-Id: If2a698fa142b67c69ad41b8eaca6e127eb3ef75b Signed-off-by: Lajos Molnar <lajos@google.com> Related-to-bug: 7093648
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
ad669b04f4633957eea55b8ad2d8253adcefe39b |
|
06-Apr-2013 |
Jamie Gennis <jgennis@google.com> |
libgui: fix an EGLImage leak This moves the call to ConsumerBase::abandon from the ConsumerBase dtor to ConsumerBase::onLastStrongRef. The abandon call relies on virtual methods to perform the clean-up, so calling it from the ConsumerBase dtor after the derived classes dtors ran was skipping some of the clean-up. The onLastStrongRef method should get called just before the most derived class's dtor gets called. Bug: 8349135 Change-Id: I836946826927cc1ed69c049049f525f92b17a269
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.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/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
a4367996681bae2612beebecb871961c5b361b2c |
|
07-Dec-2012 |
Jamie Gennis <jgennis@google.com> |
am 50f8d285: am d4e70620: am 72c3f7d8: Revert "ConsumerBase: free buffers outside the lock" * commit '50f8d2856b6644059b31684687842bf9c1f2e814': Revert "ConsumerBase: free buffers outside the lock"
|
72c3f7d88160b7c279f90f0efe3c1cb12cd140ae |
|
07-Dec-2012 |
Jamie Gennis <jgennis@google.com> |
Revert "ConsumerBase: free buffers outside the lock" This reverts commit b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4.
/frameworks/native/libs/gui/ConsumerBase.cpp
|
b5fe96b8130b5bacbc1762ba7f819a9f9b72bf59 |
|
07-Dec-2012 |
Jamie Gennis <jgennis@google.com> |
am 05989772: am 3ed2736c: am b21a4e3b: ConsumerBase: free buffers outside the lock * commit '05989772d5b46cd5328e88d546f04deef39cc3c8': ConsumerBase: free buffers outside the lock
|
b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4 |
|
07-Dec-2012 |
Jamie Gennis <jgennis@google.com> |
ConsumerBase: free buffers outside the lock This change makes ConsumerBase::onBuffersReleased hold a reference to all its gralloc buffers until after the mutex is unlocked. This prevents slow gralloc::free calls from causing lock contention with rendering threads. Bug: 7675940 Change-Id: I0ec805d1b612afeeecfffec03f982371d27d93be
/frameworks/native/libs/gui/ConsumerBase.cpp
|
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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
9504eb915c9628e130f45019bdefda0168089886 |
|
05-Oct-2012 |
Jesse Hall <jessehall@google.com> |
Fix race condition in ConsumerBase::addReleaseFence() This needs the ConsumerBase mutex locked, but wasn't locking it. Two of the four places that called it already held the lock so were fine. Now addReleaseFence() takes the lock itself, and I added addReleaseFenceLocked() for the two already-locked callers, since in one of them dropping the lock would be inconvenient. Bug: 7289269 Change-Id: I7a5628adb516f8eec782aa6c14128202f96d7b0a
/frameworks/native/libs/gui/ConsumerBase.cpp
|
7aff4a5de47bf32b0934f5744cd1df4ce666d2d2 |
|
24-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
ConsumerBase: make fence names meaningful Change-Id: I3580120cb63c027c327e80ec70e68650b75395de
/frameworks/native/libs/gui/ConsumerBase.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
/frameworks/native/libs/gui/ConsumerBase.cpp
|
9fea3421ffddf6480f57f55a25936a886043d909 |
|
08-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceTexture: inherit from ConsumerBase (try 2) This change makes SurfaceTexture inherit from ConsumerBase. It removes all of the functionality from SurfaceTexture that is now provided by the base class. This includes fixes for two bugs that were found after checking this change in the first time and then reverting it. Change-Id: Ie2d9f4f27cfef26fdac341de3152e842b01a58d2
/frameworks/native/libs/gui/ConsumerBase.cpp
|
ce7a6c0fc9d75b80da030d1790321e84475f956a |
|
20-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
Revert "SurfaceTexture: inherit from ConsumerBase" This reverts commit ed059a8d754770c3cf28b78dba30f7a6ba475dbe Change-Id: I72542c2595771a40c2c88251e0d6eb54e305b99b
/frameworks/native/libs/gui/ConsumerBase.cpp
|
ed059a8d754770c3cf28b78dba30f7a6ba475dbe |
|
08-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceTexture: inherit from ConsumerBase This change makes SurfaceTexture inherit from ConsumerBase. It removes all of the functionality from SurfaceTexture that is now provided by the base class. Change-Id: I4a881df42810a14ee32d4ef7c8772a8f2510f4c7
/frameworks/native/libs/gui/ConsumerBase.cpp
|
1a4d883dcc1725892bfb5c28dec255a233186524 |
|
03-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
surfaceflinger: refactor FrambufferSurface This change refactors the FramebufferSurface class to inherit from the new ConsumerBase class. Bug: 6620200 Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
/frameworks/native/libs/gui/ConsumerBase.cpp
|