| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
we use the IBinder instead.
Change-Id: I4aa0b58869ba43f19980013620051e5a261b062d
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I9f82f574112141b6aa074c42303056cd52d5c478
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I8c8282a0debd551db290dd6849faf272a88c704c
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Ibf2746fdca26851677cd90199c60eab80f6d0c73
|
|\ \ |
|
| |/
| |
| |
| |
| |
| | |
This change moves the GraphicBufferAlloc class from SurfaceFlinger to libgui.
Change-Id: Idf31d2004efa2651b60590733f73c4a7b831e8a9
|
|/
|
|
|
|
|
| |
In SurfaceFlingerConsumer, check to see if native fence sync is
enabled. If so, defer the texture binding step to Layer::onDraw.
Change-Id: I7d4034a31c0143207eea2509dfa13ef3820f9b8c
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| | |
outside the lock"
* commit '50f8d2856b6644059b31684687842bf9c1f2e814':
Revert "ConsumerBase: free buffers outside the lock"
|
| |
| |
| |
| | |
This reverts commit b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4.
|
|\ \
| |/
| |
| |
| |
| |
| | |
the lock
* commit '05989772d5b46cd5328e88d546f04deef39cc3c8':
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
|
| |
| |
| |
| |
| | |
Bug: 7584338
Change-Id: Ieb8c27a544ac583af9aa1e0376e33a673d2d9673
|
| |
| |
| |
| |
| |
| |
| | |
cherry pick into master since auto-merger is blocked
Bug: 7584338
Change-Id: Ie7d7c238de1fd224b3b0bae9669a8dcb2f700a79
|
|\ \
| |/
| |
| |
| | |
* commit 'c208cdd402d767228a34074d589c6368cc656b7d':
fix an out-of-bounds memory access
|
| |
| |
| |
| |
| |
| |
| |
| | |
in this particular case, this OOB is always harmless
(and that's why it didn't get fixed from MR1), however,
it interfers with valgrind debugging.
Change-Id: Ic977e03287e59c4b124a89146c9023bd0cb540a8
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This prevents strong reference cycles when the listener implementation also
holds a strong pointer to the ConsumerBase
Bug: 7425644
Change-Id: I1514b13a32b18d421c902dddebec0765a989c55c
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
This change fixes a number of small glitches that can occur when
multiple components in the same process are updating surfaces.
One would expect that updates to disjoint sets of surfaces would
not collide but this is not the case. The first component to
close the global transaction causes all pending updates to
be applied, including those that another component might not
have finished setting up if it also had an open transaction
at the same time.
Change-Id: I99345958581abbe0e1e325a5bcba37e8941a313a
|
|
|
|
|
|
|
|
|
| |
This change adds support for displays that are not allowed to display surfaces
with the eSecure flag set. All non-virtual displays are considered secure,
while virtual displays have their secure-ness specified at creation time.
Bug: 7368436
Change-Id: I81ad535d2d1e5a7ff78269017e85b111f0098500
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change makes BufferQueue::dequeueBuffer release its mutex before
allocating new buffers. This should alleviate lock contention in
SurfaceFlinger where SF's main thread can get blocked waiting for an allocation
operation to complete.
Bug: 7335075
Change-Id: I1b000539cc616a695afab2e9c68507db69e57b13
|
|/
|
|
|
|
|
|
|
|
| |
This change adds a transaction flag for WindowManager to indicate that a
transaction is being used to animate windows around the screen. SurfaceFlinger
will not allow more than one of these transactions to be outstanding at a time
to prevent the animation "frames" from being dropped.
Bug: 7353840
Change-Id: I6488a6e0e1ed13d27356d2203c9dc766dc6b1759
|
|
|
|
|
| |
Bug: 7309812
Change-Id: Ia401d642094a46c62f0d26c65da1d11341e203a1
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I0440a942d3e685d619ec9cc402d3293cb3f52df1
|
|
|
|
|
|
|
|
|
|
|
| |
The CleanSpec is missing parens, which causes $P to be interpreted as a
single variable, and the following printed to the log:
Clean step: rm -rf RODUCT_OUT/obj/SHARED_LIBRARIES/libgui_intermediates
This patch adds parens as needed.
Change-Id: I587998fa67a4884418c286360a577cdbb6ea9a21
|
|
|
|
|
| |
Change-Id: Iffc48412b8c951116a956a3ac7dab8d75eed13da
Bug: 7238122
|
|
|
|
|
|
|
|
|
| |
This change adds debug info to SurfaceFlinger's dumpsys to indicate that the
USE_WAIT_SYNC compile option was enabled, and it removes the
ALLOW_DEQUEUE_CURRENT_BUFFER option.
Bug: 7238122
Change-Id: I70e08e34c2ef58aa6d2f88229e781a119f84b5a9
|
|
|
|
|
| |
Bug: 7217641
Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
|
|
|
|
|
|
|
|
| |
This allows us to blank and unblank displays other than the built-in
display (e.g. HDMI).
Bug: 7240511
Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
|
|
|
|
|
|
| |
This reverts commit a50b51c03aca449920fc8581a738032a7bce7150
Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a line to the "dumpsys SurfaceFlinger" output that shows
build-time configuration values.
Example:
Build configuration: [sf HAS_CONTEXT_PRIORITY] [libui] \
[libgui USE_FENCE_SYNC]
Bug 7206633
Change-Id: Ibe1856b459d34a4be6ee83a4ebfd2807e6cc68a0
|
|
|
|
|
| |
bug: 7211067
Change-Id: Id8658a8df429d76c20ab9112858b38e52343dc9c
|
|
|
|
| |
Change-Id: I3580120cb63c027c327e80ec70e68650b75395de
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change fixes an issue causing the mEglContext member of a SurfaceTexture
to get incorrectly zeroed out. This would happen when a call to
ConsumerBase::releaseBufferLocked resulted in the current buffer being freed.
Freeing the current buffer would set SurfaceTexture::mCurrentTexture to -1,
which would then be used by SurfaceTexture::releaseBufferLocked to reset the
current slot's EGLSyncKHR to EGL_NO_SYNC_KHR (= 0). This would overwrite the
mEglContext field, resulting in context mismatch errors in
SurfaceTexture::doGLFenceWaitLocked.
The fix is to simply use the buffer slot that's passed in to
SurfaceTexture::releaseBufferLocked rather than mCurrentTexture.
Change-Id: I0e5e2bd88fcbb354c35a3744f317716fff3e0e41
|
|
|
|
|
| |
Change-Id: Ib7ad11597ef7c79162a0b0a49a1b8ae16d192c10
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|
|
|
|
|
|
|
|
| |
This change makes updateTexImage default to performing the necessary
synchronization and adds an argument for SurfaceFlinger to disable that
synchronization so that it can be performed lazily.
Change-Id: I7c20923cc786634126fbf7021c9d2541aa77be5d
Bug: 6991805
|
|
|
|
|
|
|
|
|
|
| |
The Surface createDisplay() call takes a display name for debugging.
This change carries it through SurfaceFlinger and displays it in
the "dumpsys SurfaceFlinger" output.
Bug 7058158
Change-Id: I79f3474a8656ff1beb7b478e0dbf2c5de666118a
|
|
|
|
|
|
|
| |
Added a test to confirm that the transform hint is being respected.
Bug: 7162482
Change-Id: I892fe962f8cf2759ff951b4f5065b9ac2732c3d1
|
|
|
|
|
|
|
|
|
| |
The hints were being set a little too late, so the pre-rotation stuff
wasn't quite working.
Bug 7054997
Change-Id: Id8d5c626db7a76f768ba762a145b315878ee08e6
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ComposerService object wasn't watching for SurfaceFlinger
restarts, which doesn't usually matter because the app framework
restarts when SurfaceFlinger dies. However, mediaserver continues
to run, which means its ComposerService object was trying to use
a dead handle, and playback of DRM movies was failing.
This adds a DeathRecipient listener and some logic to re-establish
the SurfaceFlinger connection.
Bug 6645813
Change-Id: I07581b881d3835601aa57d5358c8259d93bc4515
|
| |
| |
| |
| |
| |
| |
| | |
This change adds a call to eglDestroySync after we've dup'd the fd for the
Android fence that the EGLSyncKHR object wraps.
Change-Id: I4fa6ece863260793630d70bb9a69d6284d05d99e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds a compile-option to use eglWaitSyncANDROID to ensure that
texturing operations that access the current buffer of a SurfaceTexture do not
occur until the buffer is completely written. It also moves this
synchronization into a new SurfaceTexture method called doGLFenceWait and
changes SurfaceFlinger's Layer class to use that method rather than performing
its own wait on the fence.
Change-Id: I70afa88086ca7ff49a80e3cd03d423767db7cb88
|
| |
| |
| |
| |
| |
| |
| | |
This change adds support for using Android fences that come from EGLSyncKHR
objects as the release fence for a buffer.
Change-Id: Ice192ce2ec001020f909a2018afdf0f17b24dec9
|
|/
|
|
|
|
|
|
| |
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
|