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
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
ad678e18b66f495efa78dc3b9ab99b579945c9e2 |
|
24-Jul-2013 |
Mathias Agopian <mathias@google.com> |
single buffer mode for BufferQueue Bug: 9891035 Change-Id: Id1ab5f911a6dc4c1d8235e65775b3d3635231ad4
/frameworks/native/include/gui/BufferQueue.h
|
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
/frameworks/native/include/gui/BufferQueue.h
|
a3fbda3cef04d51a35a3eb64b2f744a989800856 |
|
19-Jul-2013 |
Mathias Agopian <mathias@google.com> |
BuffferQueue disconnect is now always asynchrnous we tag queued buffers with the "bufferqueue cannot block" flag and use that bit to discard a buffer in the queue by new ones comming in. this allows us to remove the buffer queue drain in disconnect while maintaining the right behaviour if it gets connected again (since each buffer remembers how it was enqueued). Change-Id: I1e703d363a687b70b19ba49cef32213116e8bd3f
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
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/include/gui/BufferQueue.h
|
9e3cb55b8f6f007906872decfe3b8a2541e94dd2 |
|
07-May-2013 |
Lajos Molnar <lajos@google.com> |
BufferQueue: remove freeAllBuffersExceptHeadLocked() Now that we are having separate buffer-instances for the buffer- queue, we can free all buffers; we don't have to keep the head alive. Change-Id: I023e9161a2501d99333f8868ce438afa914ec50f Signed-off-by: Lajos Molnar <lajos@google.com> Related-to-bug: 7093648
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
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/include/gui/BufferQueue.h
|
753e3415cdaa99f9453d1ea71b163bf1b148e127 |
|
05-Apr-2013 |
Andy McFadden <fadden@android.com> |
Updated comments Updated many comments. Added one minor error check. Change-Id: Ib935dd99d417bada91d2e198008a50dd94269316
/frameworks/native/include/gui/BufferQueue.h
|
4c00cc11141da7d159eb2323b186ed344115c0f1 |
|
16-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Fix argument types in IGraphicBufferProducer methods Bug: 8384764 Change-Id: I7a3f1e1a0584a70af04f9eafef900505389d2202
/frameworks/native/include/gui/BufferQueue.h
|
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/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
c68f2ecfa02037144d1a3856f637a77f523cf416 |
|
31-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
BufferQueue: add a setMaxAcquiredBufferCount check This change adds a check to verify the validity of the value passed to setMaxAcquiredBufferCount. Change-Id: I39730557aa58261e678bd6e4fce11bab78e98362
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
e191e6c34829aec406a9cfe3e95211f884a311ff |
|
25-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
BufferQueue: simplify max buffer count handling This change reworks how the maximum buffer count is computed. Change-Id: I7d3745814b9bd6f6f447f86bfea8eb7729914ebf
/frameworks/native/include/gui/BufferQueue.h
|
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
/frameworks/native/include/gui/BufferQueue.h
|
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/include/gui/BufferQueue.h
|
b42b1ac1587aebda5e2f334d95b620271fafba4e |
|
28-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Return fence from acquireBuffer Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
/frameworks/native/include/gui/BufferQueue.h
|
c777b0b3b9b0ea5d8e378fccde6935765e28e329 |
|
28-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Pass fences with buffers from SurfaceTextureClient Change-Id: I09b49433788d01e8b2b3684bb4d0112be29538d3
/frameworks/native/include/gui/BufferQueue.h
|
f78575400977f644cf0b12beb2fa5fc278b6ed4c |
|
15-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Pass fences from BufferQueue to SurfaceTextureClient ISurfaceTexture::dequeueBuffer now returns the buffer's fence for the client to wait on. For BufferQueue, this means passing it through Binder so it can be returned to the SurfaceTextureClient. Now SurfaceTextureClient is responsible for waiting on the fence in dequeueBuffer instead of BufferQueue: one step closer to the goal. Change-Id: I677ae758bcd23acee2d784b8cec11b32cccc196d
/frameworks/native/include/gui/BufferQueue.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
/frameworks/native/include/gui/BufferQueue.h
|
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
/frameworks/native/include/gui/BufferQueue.h
|
e41b318bc4708e1dee9364e73215ff0d51fb76a1 |
|
17-Apr-2012 |
Eino-Ville Talvala <etalvala@google.com> |
Add a BufferQueue CPU consumer. Aimed for use cases where gralloc buffers need to be consumed by CPU users, such as camera image data streams. The CpuConsumer is a synchronous queue, which exposes raw pointers to the underlying graphics buffers to applications. Multiple buffers may be acquired at once, up to the limit set at time of construction. Change-Id: If1d99f12471438e95a69696e40685948778055fd
/frameworks/native/include/gui/BufferQueue.h
|
d72f233ffa125856a44976a50a66ceb669f49ab2 |
|
07-May-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: Add support for post-xform crops. This change adds support for specifying a crop rectangle to a SurfaceTextureClient that is in post-transformed coordinate space. Change-Id: I247901de343e71b32850f7ae3bac62dfa612ad3d Bug: 6299171
/frameworks/native/include/gui/BufferQueue.h
|
efc7ab6dcea8c22ddd7c0259ef4ab4bbf1e93044 |
|
18-Apr-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: Add plumbing for active rectangle This change adds the plumbing to SurfaceTextureClient, BufferQueue, and SurfaceTexture to get the active rectangle passed to the ANativeWindow to the buffer consumer. Change-Id: I35da0889b266327ebb079b6a7136fa3e2e8b00e6
/frameworks/native/include/gui/BufferQueue.h
|
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
/frameworks/native/include/gui/BufferQueue.h
|
f0bc2f1d8d37977bd3aef3d3326a70e9e69d4246 |
|
10-Apr-2012 |
Mathias Agopian <mathias@google.com> |
use in/out structures for queueBuffer() IPC Change-Id: Ie125df2444b62a9a2200586a717dca268852afc9
/frameworks/native/include/gui/BufferQueue.h
|
fbcda930dd8b2823cfeb160fd0131f5897b7522f |
|
10-Apr-2012 |
Daniel Lam <dalam@google.com> |
BufferQueue returns proper code on acquire Also removed unnecessary debug messages from SurfaceTextureClient. Change-Id: I291897a44170142f9d42a007b008823fad4683e0
/frameworks/native/include/gui/BufferQueue.h
|
abe61bfda4938abd932465e27c29ba9e41aea606 |
|
27-Mar-2012 |
Daniel Lam <dalam@google.com> |
BufferQueue no longer hardcodes buffer counts BufferQueue is now more flexible as it can be used by SurfaceMediaSource in addition to SurfaceTexture. Change-Id: I4222be8918d63372c44fcd412d9ad241c6a3eeb9
/frameworks/native/include/gui/BufferQueue.h
|
9abe1ebc9575dc5a19bf1dfce6e9b02e03374457 |
|
27-Mar-2012 |
Daniel Lam <dalam@google.com> |
Fixed disconnect bug in SurfaceTexture BufferQueue's disconnect could race with updateTexImage where invalid buffers could be released. Additionally fixed similar bug with setBufferCount. Tests were added to stress the disconnect mechanism. Change-Id: I9afa4c64f3e025984e8a9e8d924852a71d044716
/frameworks/native/include/gui/BufferQueue.h
|
851ef8f1bfbb164d61b1528a529a464f0a60dbaf |
|
30-Mar-2012 |
Mathias Agopian <mathias@google.com> |
reduce IPC with BufferQueue collapse setCrop, setTransform and setScalingMode to queueBuffer() this ends up simplifying things quite a bit and reducing the numnber of IPC needed per frame. Change-Id: I3a13c07603abe4e76b8251e6380b107fde22e6d9
/frameworks/native/include/gui/BufferQueue.h
|
f71c4ae136f7749b9dfdaa2dd64d771868eeeb2d |
|
24-Mar-2012 |
Daniel Lam <dalam@google.com> |
Added a DummyConsumer for use with BufferQueue. The DummyConsumer is a consumer that can connect to BufferQueue that does nothing. It is required as BufferQueue checks if a consumer is connected. Also fixes a bug where SurfaceTexture was reusing old texture slots. Bug: 6172739 Change-Id: I5e7a118dd4d07807ba4c763200242b5ee7d3412b
/frameworks/native/include/gui/BufferQueue.h
|
fa5b40ebb8923133df12dc70591bfe35b3f1c9b3 |
|
15-Mar-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: add BQ consumer buffer free notifications This change adds a new callback for BufferQueue consumers to be notified when the BufferQueue frees some or all of its buffers. This is needed to retain SurfaceTexture behavior where all buffers would be freed when the producer disconnects. This change also modifies the SurfaceTextureGLToGLTest.EglDestroySurfaceUnrefsBuffers test to catch when the buffers are not freed. The implementation is a little complicated because it needs to avoid circular sp<> references across what will be a binder interface (so wp<> can't be used directly). It also needs to avoid the possibility of locking the BufferQueue and consumer (e.g. SurfaceTexture) mutexes in the wrong order. This change also includes a few additional fixes and test cleanups. Change-Id: I27b77d0af15cb4b135f4b63573f634f5f0da2182
/frameworks/native/include/gui/BufferQueue.h
|
b267579ba8dfe3f47d2a481c5a3c2254e3d565a1 |
|
23-Feb-2012 |
Daniel Lam <dalam@google.com> |
SurfaceTexture: Fully refactored from BufferQueue SurfaceTexture and BufferQueue are separate objects. Change-Id: I230bc0ae6f78d0f9b2b5df902f40ab443ed5a055
/frameworks/native/include/gui/BufferQueue.h
|
eae59d2ea77ef57aab203fb185a880ce37ac38d6 |
|
23-Jan-2012 |
Daniel Lam <dalam@google.com> |
Removed dependecies between BufferQueue and SurfaceTexture Refactored SurfaceTexture and BufferQueue such that share no protected members. Created an consumer facing interface for BufferQueue in preparation of connecting SurfaceTexture and BufferQueue through a binder. Change-Id: I938e63e085128148c58d0e26c7213b30145c109f
/frameworks/native/include/gui/BufferQueue.h
|
fbb16559168b88e30ffbe6d466f4c044366f503c |
|
27-Feb-2012 |
Jamie Gennis <jgennis@google.com> |
Merge "Revert "Removed dependecies between BufferQueue and SurfaceTexture""
|
90ac799241f077a7b7e6c1875fd933864c8dd2a7 |
|
26-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix libgui header location Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
/frameworks/native/include/gui/BufferQueue.h
|
9b10c47e112afc3600380895046a4a56e34cf6a8 |
|
27-Feb-2012 |
Daniel Lam <dalam@google.com> |
Revert "Removed dependecies between BufferQueue and SurfaceTexture" This reverts commit a631399f71dbc7659d2f241968f85d337726ae61
/frameworks/native/include/gui/BufferQueue.h
|
333023884112259f145bb23c41a05211198d9792 |
|
23-Jan-2012 |
Daniel Lam <dalam@google.com> |
Removed dependecies between BufferQueue and SurfaceTexture Refactored SurfaceTexture and BufferQueue such that share no protected members. Created an consumer facing interface for BufferQueue in preparation of connecting SurfaceTexture and BufferQueue through a binder. Change-Id: Iff55e740e36a7f70c9f7a17ee7a5af38e3d21f0f
/frameworks/native/include/gui/BufferQueue.h
|
b856052c00dfef70d0957482c72c2979ffc4733a |
|
31-Jan-2012 |
Daniel Lam <dalam@google.com> |
Refactored query function from SurfaceTexture into BufferQueue Change-Id: Id1cb6cc38d01edb4fcfcad867c5a7693bdcc3ab1
/frameworks/native/include/gui/BufferQueue.h
|
6b091c53000c843211c218ce40287a7edca9bc63 |
|
23-Jan-2012 |
Daniel Lam <dalam@google.com> |
Refactored ISurfaceTexture calls from SurfaceTexture into BufferQueue. Change-Id: I514f6b802f6b49c9ae27bed37bf0b9d23da03c9a
/frameworks/native/include/gui/BufferQueue.h
|