2041913a05b79b96c5c084f30bb8944049a976c8 |
|
22-Apr-2017 |
Jiwen 'Steve' Cai <jwcai@google.com> |
BufferQueue: plumbing mConsumerIsProtected This replaces current logic in BufferQueue that uses GRALLOC_USAGE_PROTECTED to indicate whether an ANativeWindow is capable of handling hardware protected gralloc buffers. Current logic is problematic as it enforces producer to use protected buffer no matter whether producer side is capable of writing into a protected buffer. This new solution, however, introduces a new NATIVE_WINDOW_* flag that consumer can set on IGraphicBufferConsumer to indicate its capacity, which can then be queried by producer via Surface::query (or IGraphicBufferProducer::query). When consumer is capable of reading protected buffer (e.g. a protected GL context), the producer can generate either a protected or unprotected buffer. When consumer is not capable of reading protected buffer, the producer should only generate unprotected buffer. Bug: 35726763 Test: videoplayer-nodrm-protected.apk and videoplayer-drm-protected.apk both works. Change-Id: I1bf6814c9f1f81f9e04f0e89646b0733ff1a4758
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
3d4039d7a291cd9b6f2dd4b46fcdb576f2db3356 |
|
24-Sep-2016 |
Brian Anderson <brianderson@google.com> |
Use FenceTime to share fence times and reduce open fds. FenceTimes are created and shared for each Fence that FrameTimestampHistory and FrameTracker care about. On the consumer side, the FenceTimes are also added to shared timelines that are owned by SurfaceFlinger or unshared timelines owned by Layer. The timelines are checked at the end of every frame to minimize the number of file descriptors open. On the producer side, the FenceTimes are added to the ConsumerFrameEventHistory instead, since the timelines that would be tracked by SurfaceFlinger are not shared with anyone else in the consumer's process. The timelines are checked just after a frame is queued to minimize the number of file descriptors open. Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter=*GetFrameTimestamps* Change-Id: Ifd4301affe1b24705b2bee7608c5a2c09dfb4041
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
1ff500569866920f44b73991b9755b10d49db713 |
|
15-Nov-2016 |
Fabien Sanglard <sanglardf@google.com> |
Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f am: c261a17e51 am: ce40ad2441 am: 97ce922887 am: f69a37981f Change-Id: I84075320a494263410ba9454a8c1ec97fe5098f3
|
c261a17e516fd2ac5b391c38031759faaef6feb3 |
|
15-Nov-2016 |
Fabien Sanglard <sanglardf@google.com> |
Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 am: b17adaa85f Change-Id: I4259f7bbfafe66f7690c1ecd80f8c81a398ae78f
|
b17adaa85f8bd7112c0efb872ce461aaf70f73ef |
|
15-Nov-2016 |
Fabien Sanglard <sanglardf@google.com> |
Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 am: 275b2347ef am: aff7827b4f am: c8684d517a am: 57dbf1c224 Change-Id: I5f91ea6e826a24d37bf8c7f7cbcc49a235532a14
|
275b2347efa92198ce6c69e0cc78ecf7d3c99aaf |
|
15-Nov-2016 |
Fabien Sanglard <sanglardf@google.com> |
Fix SF security vulnerability: 32660278 am: 2d8a2432e0 am: e5c91fe2e2 am: 9d14ab5409 Change-Id: I0ed8d425157308f35b43818a9592267c06cdc807
|
2d8a2432e04234d9edbb3b099f9bbbaa36ad4843 |
|
09-Nov-2016 |
Fabien Sanglard <sanglardf@google.com> |
Fix SF security vulnerability: 32660278 Because of lack of mutex lock when get mSidebandStream, if one thread getSidebandStream, another thread setSidebandStream frequently, an UAF will be triggered. Bug: 32660278 Test: Marlin device with poc Change-Id: Idbcf0976ce2db682d0f13455105c45a5c7481a45
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
6e7e2b44efa6427cc106b20cea76d9a80dadcac9 |
|
27-Sep-2016 |
Colin Cross <ccross@android.com> |
Fix logging implicit sign conversions The warnings were being hidden by the use of -isystem to include frameworks/native/include. Bug: 31752268 Test: m -j Change-Id: I2ce11db524ee9d8f846fdf3ed6fb882d5ef57956 (cherry picked from commit 152c3b749a8ec634afc66dddef7d33130472aeb1)
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
8211047138ea7892c73f4e6f6291a85a11759e0c |
|
22-Jul-2016 |
Eino-Ville Talvala <etalvala@google.com> |
DO NOT MERGE ANYWHERE: BufferQueue consumers: Add discardFreeBuffer method This method releases all free buffers owned by the buffer queue, in order to save memory (at the cost of potential future reallocation of buffers). Bug: 28695173 Change-Id: I458d10373e639e3144faf673af2ba01aca36e65a
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
245cc5b57da46d5852aa820be2a96f37425b3337 |
|
19-Apr-2016 |
Pablo Ceballos <pceballos@google.com> |
BQ: Avoid unnecessary calls to consumer listener Try to avoid unnecessary calls to the consumer listener's onBuffersReleased() since they can potentially deadlock. Bug 28254168 Change-Id: Ib064e5ebe1403a1028589342b3c33e6f40bb54a9
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
3559fbf93801e2c0d9d8fb246fb9b867a361b464 |
|
17-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Rename single buffer mode to shared buffer mode Change-Id: Id43d0737d9367981644e498942ebc0077d61038c
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
4782b268d54d737294de7b51bdff4ecda2f1c1f0 |
|
02-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "Revert "Revert "Partial revert of "Fix Surface slot caching"""" into nyc-dev
|
3827379b2e414b4c96793dd3555302638db02562 |
|
02-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Revert "Revert "Partial revert of "Fix Surface slot caching""" This reverts commit 16c9c304a33af36faa352d32777bc48c50bf7b74. Change-Id: Icbdcba8a646ac40c0533c1c04f5b15769332976c
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
d8bb8da1b742c34e0d2c97cfd6d097b21df9bc47 |
|
29-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "Revert "Partial revert of "Fix Surface slot caching""" into nyc-dev
|
c59eed57f048f3568f99e5d64ea9e15130ace78d |
|
23-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 am: 5da66d4fca am: ea91df0a24 am: f32db75e29 am: 804776a095 * commit '804776a095086816268d819ebeb7de2934afac1d': Add SN logging
|
5da66d4fca1b95ffe45883e637cbcbb693ea6cf4 |
|
23-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Add SN logging am: d46695bb66 am: e39a6e160d am: 5e0fa1d392 * commit '5e0fa1d39283de9e41df9fccfee6a8f6102421cb': Add SN logging
|
5e0fa1d39283de9e41df9fccfee6a8f6102421cb |
|
23-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Add SN logging am: d46695bb66 am: e39a6e160d * commit 'e39a6e160d4dcf16531c2afe3364e639be58a2f7': Add SN logging
|
d46695bb661ee294a0778e403044cd910c233ec1 |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Add SN logging Bug 27046057 Change-Id: Iede7c92e59e60795df1ec7768ebafd6b090f1c27
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
aaf51e52cfa937a8938a4429a14432a8424c66d0 |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "Add interface for controlling single buffer auto refresh" into nyc-dev
|
738d34b162e0b54fbbc04f72c46204b5adb6554f |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb am: 8b640e6403 am: 5d2c73e7dc am: 724f7954db am: 82b9819d93 * commit '82b9819d930c48124812c1a499a91218305a5d14': BQ: Add permission check to BufferQueueConsumer::dump
|
8b640e6403de9dd328b2605c9f21b62d1d31e7d6 |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 am: f419ec1bfb * commit 'f419ec1bfb969f1add4c90b5b188041968f5f227': BQ: Add permission check to BufferQueueConsumer::dump
|
f419ec1bfb969f1add4c90b5b188041968f5f227 |
|
20-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "BQ: Add permission check to BufferQueueConsumer::dump" into lmp-dev am: 793be16dd3 am: 7e83de0114 * commit '7e83de0114538b006b4299fd608983ecd61b6422': BQ: Add permission check to BufferQueueConsumer::dump
|
16c9c304a33af36faa352d32777bc48c50bf7b74 |
|
19-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Revert "Partial revert of "Fix Surface slot caching"" This reverts commit 981066c3a5be3e4775b6537ef32268f7e108c912.
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
981066c3a5be3e4775b6537ef32268f7e108c912 |
|
18-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Partial revert of "Fix Surface slot caching" - Partially reverts commit 789a0c82cb370d6b82f401cc130af58c85802cbf. - Leaves the fix in Surface, but reverts all changes to the Producer/Consumer listeners. Bug 27246023 Bug 27229287 Change-Id: I9283f9e59e666b5ae44c0db25f99a80d05eea3ee
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
88f692852f99a7d0ae3990211d193b06ad209818 |
|
12-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
BQ: Add permission check to BufferQueueConsumer::dump Bug 27046057 Change-Id: Id7bd8cf95045b497943ea39dde49e877aa6f5c4e
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
789a0c82cb370d6b82f401cc130af58c85802cbf |
|
05-Feb-2016 |
Pablo Ceballos <pceballos@google.com> |
Fix Surface slot caching - Now that it's possible to resize a BufferQueue while buffers are dequeued/acquired, it's no longer correct for Surface to clear its cache when the BufferQueue is resized since it must keep at least the currently dequeued buffers. - Add an onSlotsFreed callback to IProducerListener so that producers that wish to be notified about buffers being freed can do so. Note that this isn't currently used in Surface. - Review and fixup all the places where the producer/consumer listeners for freed buffers should be called. Change-Id: I4ab0c92bc69b75a3c072ddf5d74d78f941dba4c8
/frameworks/native/libs/gui/BufferQueueConsumer.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
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
72daab652e3481566c01ce45c6afdb9fcec6f140 |
|
08-Dec-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Flexible resizing - Allow the producer to call setMaxDequeuedBufferCount and the consumer to call setMaxAcquiredBufferCount when buffers are currently dequeued/acquired as long as the new value is not less than the number of dequeued/acquired buffers. Bug 22768206 Change-Id: I599a4027a6ae9cb0a1c0d5ec60cb5e65b86a345b
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
9e314337cdc65b1fbf52060e9a6a4ddf2215c352 |
|
12-Jan-2016 |
Pablo Ceballos <pceballos@google.com> |
BQ: Conditionally compile validateConsistencyLocked - Only enable it on userdebug and eng builds so that it won't slow down user builds. Change-Id: I70933a23d54657fdf5cbc23873da4fbee84b9a26
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
23b4abe024ea88c45e0b94c80e1fb537a573b143 |
|
08-Jan-2016 |
Pablo Ceballos <pceballos@google.com> |
BQ: Improved buffer/slot tracking - Explicitly track active buffers and unused slots on top of the already existing tracking for free slots and free buffers. Change-Id: Ife2678678e96f0eb0b3fb21571058378134bd868
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
063121849890da78b1ad7fb96c54c795de5d1fd6 |
|
08-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
SF: Force refresh when in single buffer mode - Add a boolean to BufferItem to track whether single buffer mode is enabled. When it is, force SurfaceFlinger to acquire a new buffer and refresh on every vsync. Bug 24940410 Change-Id: Iea67330c416b6fb14500865f98c67f1c12f23197
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
ccdfd60d79a8b7f1ed6401d0f2e8e29166a10584 |
|
08-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Add support for single buffer mode - Adds a single buffer mode to BufferQueue. In this mode designate the first dequeued buffer as the shared buffer. All calls to dequeue() and acquire() will then return the shared buffer, allowing the producer and consumer to share it. - Modify the buffer slot state tracking. Add a new SHARED state for the shared buffer in single buffer mode. Also track how many times a buffer has been dequeued/queued/acquired as it's possible for a shared buffer to be both dequeued and acquired at the same time, or dequeued/acquired multiple times. This tracking is needed to know when to drop the buffer out of the SHARED state after single buffer mode has been disabled. - Add plumbing for enabling/disabling single buffer mode from Surface. Bug 24940410 Change-Id: I3fc550c74bacb5523c049a227111356257386853
/frameworks/native/libs/gui/BufferQueueConsumer.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
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
19e3e06e3c65a7c001a6fe0971744ba5ff536515 |
|
20-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Modify consumer buffer count interfaces - Rename setDefaultMaxBufferCount() to setMaxBufferCount(). Modify it to be hard maximum on the number of buffers that can't be overwritten by the producer. - Enforce the maximum buffer count in setMaxAcquiredBufferCount(), setMaxDequeuedBufferCount(), and setAsyncMode(). - Remove mOverrideMaxBufferCount as it's no longer needed since overriding is no longer possible. - Expose setMaxAcquiredBufferCount() in GLConsumer. - Remove disableAsyncBuffer(), it was only being used for single buffer mode. Single buffer mode is now achievable with setMaxBufferCount(). Bug 13174928 Change-Id: Ia33799f42751272a711fbd8559f7602ce9f18e4f
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
5f920c1a2cf12c0638c05fbddee8ff6c1193731c |
|
14-Jul-2015 |
Lajos Molnar <lajos@google.com> |
BufferQueueConsumer: signal onFrameReleased on dropped frames Bug: 22552826 Change-Id: I9bdfeb8c68f403301af90d4b494f0ae7166a767c
/frameworks/native/libs/gui/BufferQueueConsumer.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
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
79e287890da9de37a834cceebdefe32a7d3ac0ac |
|
04-May-2015 |
Dan Stoza <stoza@google.com> |
Merge "libgui: Clear frame number while freeing slot" into mnc-dev
|
52937cd9a543fe66696c38ae50ec141aa70ec1e4 |
|
02-May-2015 |
Dan Stoza <stoza@google.com> |
libgui: Clear frame number while freeing slot Clears the frame number of a slot when it is freed, since it is used to determine if a released buffer is stale. Bug: 20445852 Change-Id: I02415e7b25a1eafe7414d6eb1cedf62ac5543cd9
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
ecc504043fddb7a75042ce402c67aedfac04d5e2 |
|
28-Apr-2015 |
Dan Stoza <stoza@google.com> |
SurfaceFlinger: Fix PTS on stale buffers SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was getting out of sync for a few reasons. This change fixes these by doing the following: - Adds a check to re-synchronize the shadow copy every time we successfully acquire a buffer by first dropping stale buffers before removing the current buffer. - Avoids trying to perform updates for buffers which have been rejected (for incorrect dimensions) by SurfaceFlinger. - Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the consumer to notify the BufferQueue that it is maintaining a shadow copy of the queue and prevents it from dropping so many buffers during acquireBuffer that it ends up returning a buffer for which the consumer has not yet received an onFrameAvailable call. Bug: 20096136 Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f (cherry picked from commit 2e36f2283f48ab764b496490c73a132acf21df3a)
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
0de7ea752900b5da29ad19c2799040235477f3c5 |
|
23-Apr-2015 |
Dan Stoza <stoza@google.com> |
libgui: Change BufferQueue to use free lists BufferQueue used to choose free buffers by scanning through its array of slots and picking one based on timestamp. This changes that mechanism to use a pair of free lists: one with buffers attached and one without. This makes it easier to choose either type of free slot depending on the needs of the current operation. Fixes an issue with the first version of this change, found in bugs 20482952, 20443314, and 20464549. Bug: 13175420 Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
1fc9cc25a487d4d9dea3cc185331e3481ead36ff |
|
22-Apr-2015 |
Dan Stoza <stoza@google.com> |
Revert "libgui: Change BufferQueue to use free lists" This reverts commit 8dddc990103b71137be2a6365a26b1ac36598e68. Change-Id: I0b0fed9f1394c6f6ae812f6c562ead4473a8226e
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
8dddc990103b71137be2a6365a26b1ac36598e68 |
|
17-Apr-2015 |
Dan Stoza <stoza@google.com> |
libgui: Change BufferQueue to use free lists BufferQueue used to choose free buffers by scanning through its array of slots and picking one based on timestamp. This changes that mechanism to use a pair of free lists: one with buffers attached and one without. This makes it easier to choose either type of free slot depending on the needs of the current operation. Bug: 13175420 Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
82c6bcc9705eabcaf5b9e45bc81867b0e2d61a02 |
|
20-Feb-2015 |
Eino-Ville Talvala <etalvala@google.com> |
DO NOT MERGE Add dataSpace to buffer queues; remove old format enums. - Wire up new dataSpace parameter through buffer queue stack - Update tests to include the parameter - Switch eglApi to using dataSpace to indicate sRGB gamma/linear difference - Remove RAW_SENSOR in favor of RAW16 - Remove use of sRGB format enums - Add default dataspace to buffer queue core - Add query for default dataspace Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df Change-Id: I461952389c18051176c6b75e664f20ad369f5760
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
8f515ce1c57379cafac4357bc4fdb61dd346ec5f |
|
09-Jun-2014 |
Mark Salyzyn <salyzyn@google.com> |
libgui: 64 bit compile issues (part deux) - nsecs_t printed with PRId64 - int64_t/uint64_t print issues - some size_t printing issues. - missing argument to BQ_LOGV Change-Id: I493f2b578e801dc38c44f8c536faa45266720402
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
4cbf3c53447215a31f69d3ac615ba0daa902f717 |
|
21-Apr-2014 |
Dan Stoza <stoza@google.com> |
Merge "BufferQueue: Guard against unbounded queue growth"
|
fb39827ebce4637dcba03770f6644cf67e932e06 |
|
21-Apr-2014 |
Dan Stoza <stoza@google.com> |
Merge "BufferQueue: Increase max slots from 32 to 64"
|
ae3c3682333f25e860fe54e2bae3599bb466cdb6 |
|
19-Apr-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Guard against unbounded queue growth Adds logic to dequeueBuffer that blocks if there are currently too many buffers in the queue. This prevents unbounded growth around times where the slots are cleared but the queue is not (e.g., during rapid connect/disconnect or setBufferCount activity). This replaces the fix from ag/377958 in a more general way. Bug: 11293214 Change-Id: Ieb7adfcd076ff7ffe3d4d369397b2c29cf5099c3
/frameworks/native/libs/gui/BufferQueueConsumer.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/BufferQueueConsumer.cpp
|
99b18b447dec188bcec37b415603b9dd400fc7e1 |
|
28-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Add StreamSplitter Adds a StreamSplitter class, that takes one IGraphicBufferConsumer interface and multiple IGraphicBufferProducer interfaces and implements a one-to-many broadcast of GraphicBuffers (while managing fences correctly). Change-Id: I38ecdf3e311ac521bc781c30dde0cc382a4376a3
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
d1c103655533321b5c74fbefff656838a8196153 |
|
28-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Hook up IProducerListener Actually call the producer listener's callback during IGraphicBufferConsumer::releaseBuffer Change-Id: Idfa6bb08d62629cd3a198318e6c6fd6a731e73ef
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
73ed82f809a40560fd3a6d53d18e5c846362d764 |
|
13-Mar-2014 |
Jesse Hall <jessehall@google.com> |
Merge "Add sideband streams to BufferQueue and related classes"
|
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/BufferQueueConsumer.cpp
|
9f3053de78630815d60cf48a2cf2348cc5867c45 |
|
07-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Allow detaching/reattaching buffers Adds detachBuffer and attachBuffer calls to both the producer and consumer sides of BufferQueue. Buffers may be detached while dequeued by the producer or acquired by the consumer, and when attached, enter the dequeued and acquired states, respectively. Bug: 13173343 Change-Id: Ic152692b0a94d99e0135b9bfa62747dab2a54220
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
3e96f1982fda358424b0b75f394cbf7c1794a072 |
|
03-Mar-2014 |
Dan Stoza <stoza@google.com> |
Change BufferQueue into producer/consumer wrapper Now that BufferQueue has been split into core + producer + consumer, rewrite BufferQueue to be a thin layer over a producer and consumer interface. Eventually, this layer will be deprecated in favor of only using either the producer or consumer interface, as applicable. Change-Id: I340ae5f5b633b244fb594615ff52ba50b9e2f7e4
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|
289ade165e60b5f71734d30e535f16eb1f4313ad |
|
28-Feb-2014 |
Dan Stoza <stoza@google.com> |
Split BufferQueue into core + producer + consumer Change-Id: Idc39f1e511d68ce4f02202d35425a419bc0bcd92
/frameworks/native/libs/gui/BufferQueueConsumer.cpp
|