summaryrefslogtreecommitdiffstats
path: root/libs/gui
Commit message (Collapse)AuthorAgeFilesLines
* Don't use fence sync for qcom legacyArne Coucheron2013-03-231-0/+2
| | | | Change-Id: Ice64233a25edee763a36a3ba34230d1360a0d610
* libgui: Add support to update buffer geometry.Ramkumar Radhakrishnan2013-03-103-0/+173
| | | | | | | | | Add native window properties NATIVE_WINDOW_UPDATE_BUFFERS_GEOMETRY to the perform function of SurfaceTextureClient and SurfaceTexture to update the width, height and format of the buffer dynamically from the client before queue buffer call. Change-Id: I62447fcf523b507d534085cd0835f55a978c4ead
* Add support for custom buffer sizes.Ramkumar Radhakrishnan2013-03-104-0/+94
| | | | | | | | Add native window properties NATIVE_WINDOW_SET_BUFFERS_SIZE to the perform function of SurfaceTextureClient to set the user defined size of graphic buffers. Change-Id: I1dc2203990a3641fbb9ddab9a86f7e9017f05270
* Reset the FrameNumber for dropped frame in async modeNaomi Luis2013-03-061-0/+2
| | | | | | | | | In Async, reset the framenumber of frames dropped by the BufferQueue. This allows the client to dequeue and use this frame before the other queued frames which may be with the MDP. CRs-fixed: 448606 Change-Id: Icaabf77b55a7275dc98ba1fdfba89508feb92145
* Merge tag 'android-4.2.2_r1' of ↵Steve Kondik2013-02-151-3/+2
|\ | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/native into 1.1 Android 4.2.2 release 1 Conflicts: libs/ui/GraphicBufferAllocator.cpp Change-Id: Id60a6580bf5a3ba04f8e1e2b1b950e0b93888166
| * Revert "ConsumerBase: free buffers outside the lock"Jamie Gennis2012-12-071-24/+10
| | | | | | | | This reverts commit b21a4e3b5f7f07ed160ca6e1809313e2a8e2a6a4.
| * ConsumerBase: free buffers outside the lockJamie Gennis2012-12-061-10/+24
| | | | | | | | | | | | | | | | | | 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
| * fix typo that broke all the buildsMathias Agopian2012-11-191-6/+3
| | | | | | | | | | Bug: 7584338 Change-Id: Ieb8c27a544ac583af9aa1e0376e33a673d2d9673
| * fix an out-of-bounds memory accessMathias Agopian2012-11-151-4/+6
| | | | | | | | | | | | | | | | 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
* | libgui: Use fences for all QCOM targetsSteve Kondik2013-02-011-1/+1
| | | | | | | | Change-Id: I32d6d8c8c06a2541aa655fb8f2a99c2c0ac0f64b
* | SurfaceComposerClient: bring back getDisplayWidth, Height & OrientationChirayu Desai2013-01-261-0/+20
| | | | | | | | | | | | enable it with either ICS_CAMERA_BLOB or MR0_CAMERA_BLOB CFLAG Change-Id: Ieb5d36ad2a87ed1f0aa28ae3afbd5d48c880d6ab
* | Add setOrientation backBumble-Bee2012-12-141-0/+14
| | | | | | | | this is needed for some tegra ICS and JB_MR0 prebuilts
* | libgui: Add ICS/MR0-compatible client::createSurface constructorsRicardo Cerqueira2012-11-261-0/+24
| | | | | | | | Change-Id: Ia5b04d93320c65ac32a92cbd93daa6a64e6cee1c
* | Revert "Revert "Compatibility work around for bad graphics driver dependency.""Ricardo Cerqueira2012-11-251-0/+9
| | | | | | | | | | | | This reverts commit 38b657265ccc5ae45bd7860a68b0d9373b47a2f3. Change-Id: If350d73839f1ed5e01af4299d44837e619d14d66
* | Revert "Revert "A vendor ril depends on a native screen shot code.""Robert Burns2012-11-231-0/+8
|/ | | | | | This reverts commit 94f261556cc5f4aa628cd5b71bf923b583f6e3c3. Fixes RIL on toroplus
* SurfaceFlinger: add support for secure displaysJamie Gennis2012-10-222-21/+11
| | | | | | | | | 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
* Merge "BufferQueue: alloc without holding the lock" into jb-mr1-devJamie Gennis2012-10-171-11/+25
|\
| * BufferQueue: alloc without holding the lockJamie Gennis2012-10-111-11/+25
| | | | | | | | | | | | | | | | | | | | 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
* | SurfaceFlinger: add animation transactionsJamie Gennis2012-10-151-1/+22
|/ | | | | | | | | | 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
* Add blankDisplay/unblankDisplay to SurfaceComposerClient.Jeff Brown2012-10-081-0/+8
| | | | | Bug: 7309812 Change-Id: Ia401d642094a46c62f0d26c65da1d11341e203a1
* Fix race condition in ConsumerBase::addReleaseFence()Jesse Hall2012-10-053-3/+8
| | | | | | | | | | | 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
* Fix missing parens in CleanSpec.mk.Stephen Hines2012-10-041-0/+1
| | | | Change-Id: I0440a942d3e685d619ec9cc402d3293cb3f52df1
* Fix broken CleanSpec.mk in libs/guiRaph Levien2012-10-041-1/+1
| | | | | | | | | | | 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
* libgui: enable fence support for exynos5Jamie Gennis2012-10-032-1/+3
| | | | | Change-Id: Iffc48412b8c951116a956a3ac7dab8d75eed13da Bug: 7238122
* libgui: fix up compile optionsJamie Gennis2012-10-034-51/+12
| | | | | | | | | 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
* Add Fence::waitForever which logs a warning timeout, and use itJesse Hall2012-10-024-8/+12
| | | | | Bug: 7217641 Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
* Pass display arg to blank/unblankAndy McFadden2012-09-281-4/+8
| | | | | | | | This allows us to blank and unblank displays other than the built-in display (e.g. HDMI). Bug: 7240511 Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
* Revert "Compatibility work around for bad graphics driver dependency."Iliyan Malchev2012-09-271-9/+0
| | | | | | This reverts commit a50b51c03aca449920fc8581a738032a7bce7150 Change-Id: Ibdcd776a7f241dbb2475403ea04f939249774c41
* Show build config in dumpsys SurfaceFlingerAndy McFadden2012-09-252-1/+40
| | | | | | | | | | | | | 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
* fix a crasher in SurfaceTexture's setFilteringEnabledMathias Agopian2012-09-241-5/+19
| | | | | bug: 7211067 Change-Id: Id8658a8df429d76c20ab9112858b38e52343dc9c
* ConsumerBase: make fence names meaningfulJamie Gennis2012-09-241-1/+1
| | | | Change-Id: I3580120cb63c027c327e80ec70e68650b75395de
* SurfaceTexture: fix an out of bounds array writeJamie Gennis2012-09-211-1/+1
| | | | | | | | | | | | | | | | 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
* gui: conditionally set USE_NATIVE_FENCE_SYNC for msm8960Jeff Boody2012-09-182-0/+54
| | | | | Change-Id: Ib7ad11597ef7c79162a0b0a49a1b8ae16d192c10 Signed-off-by: Iliyan Malchev <malchev@google.com>
* SurfaceTexture: default to doing GL syncJamie Gennis2012-09-181-2/+15
| | | | | | | | | 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
* Plumb display name into SurfaceFlingerAndy McFadden2012-09-182-7/+9
| | | | | | | | | | 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
* New testAndy McFadden2012-09-161-0/+53
| | | | | | | Added a test to confirm that the transform hint is being respected. Bug: 7162482 Change-Id: I892fe962f8cf2759ff951b4f5065b9ac2732c3d1
* Fix transform hintsAndy McFadden2012-09-161-2/+4
| | | | | | | | | The hints were being set a little too late, so the pre-rotation stuff wasn't quite working. Bug 7054997 Change-Id: Id8d5c626db7a76f768ba762a145b315878ee08e6
* Merge "Watch for SurfaceFlinger death" into jb-mr1-devAndy McFadden2012-09-121-2/+37
|\
| * Watch for SurfaceFlinger deathAndy McFadden2012-09-061-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | SurfaceTexture: eglDestroySync after duping its fdJamie Gennis2012-09-101-0/+1
| | | | | | | | | | | | | | 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
* | SurfaceTexture: use eglWaitSyncJamie Gennis2012-09-101-2/+72
| | | | | | | | | | | | | | | | | | | | | | 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
* | SurfaceTexture: use EGL-created native fencesJamie Gennis2012-09-091-26/+64
| | | | | | | | | | | | | | This change adds support for using Android fences that come from EGLSyncKHR objects as the release fence for a buffer. Change-Id: Ice192ce2ec001020f909a2018afdf0f17b24dec9
* | libgui: move fence handling into ConsumerBaseJamie Gennis2012-09-064-24/+40
|/ | | | | | | | 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
* display projection API now has a single function instead of 3Mathias Agopian2012-09-041-43/+17
| | | | Change-Id: I9bf46d372b77d547486d4bbe6f1953ec8c65e98f
* BufferQueue: add a setMaxAcquiredBufferCount checkJamie Gennis2012-09-042-0/+26
| | | | | | | This change adds a check to verify the validity of the value passed to setMaxAcquiredBufferCount. Change-Id: I39730557aa58261e678bd6e4fce11bab78e98362
* libgui: add BufferQueue test infrastructureJamie Gennis2012-08-312-0/+97
| | | | | | | | | This change adds some infrastructure for testing the BufferQueue class. It also includes a test that tests the new check in BufferQueue::acquireBuffer that prevents the consumer from acquiring more than one buffer beyond the max acquired buffer count that was set. Change-Id: I38554ad3f9a53d2ddeba7ef0deee35ec2e2f9775
* libgui: disable CpuConsumer testsJamie Gennis2012-08-311-3/+9
| | | | | | | This change disables the CpuConsumer tests because they require a Gralloc format that is not supported on all devices. Change-Id: Ifaa618062c1dae53d9fcb9e16ba92c480d3dbd0c
* SurfaceTexture: fix a few testsJamie Gennis2012-08-302-6/+18
| | | | Change-Id: Ic74fe8791361f8fe91ad7149720fafd4cc154ac1
* libgui: add some error checksJamie Gennis2012-08-303-29/+35
| | | | | | This change adds a few error checks both in the framework and in some tests. Change-Id: I2baf2676942a0dc15866e75852a775a0091ed16d
* BufferQueue: add a check for the max acquired bufsJamie Gennis2012-08-301-0/+17
| | | | | | | This change adds an error check to ensure that consumers don't acquire more buffers than the maximum that they set. Change-Id: I026643564bde52732e4ee6146972b207ddbbba77