summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* separate transactions from updatesMathias Agopian2012-02-019-171/+248
| | | | | | | | | | with this changes, SF transactions are handled as soon as possible but do not trigger updates. the update is delayed until the next vsync. this allows us to work much better without requiring triple-buffering. Change-Id: I1fa10794d0cf742129f0877698b7b1e1f2ec7401
* Merge "fix an issue with vsync event delivery"Mathias Agopian2012-01-312-7/+5
|\
| * fix an issue with vsync event deliveryMathias Agopian2012-01-312-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | vsync events were sometimes delivered to connected client who didn't request them. this happened if another client requested the delivery and that client was first in the client list. also fix the vsync test which didn't request any events as well as DisplayEventReveiver documentation which was misleading about the necessity to request vsync events. Change-Id: Ie990fda3f337f8f0042745c4b2cde67936c45686
* | Nexus S now reports the proper frame-rateMathias Agopian2012-01-301-1/+0
|/ | | | | | don't hardcode it. Change-Id: I4b37f37a9809cac937e6334c988b3185af2ebe22
* SF now synchronizes to VSYNCMathias Agopian2012-01-308-14/+120
| | | | Change-Id: Ic5e4f2ea9927ce133eef9499c03161325e9d02c5
* remove unneeded codeMathias Agopian2012-01-292-22/+2
| | | | Change-Id: I07e2fca7274d2e12bf5b4aee0050794bdb97a8b3
* added a few more commands to SF's dumpsysMathias Agopian2012-01-286-8/+65
| | | | | | | | | | | --latency-clear [name] clears the latency data for the specified layer or for all layers if none is specified --list prints the list of all layers regardless of their visibility Change-Id: I7c07ae020f838c173b98ee50f3fb3e93da78acbb
* improve SurfaceFlinger dumpsysMathias Agopian2012-01-249-131/+203
| | | | | | | | | | | | | | | | | | | | | | | | It is now possible to say: dumpsys SurfaceFlinger --latency to print latency information about all windows dumpsys SurfaceFlinger --latency window-name to print the latency stats of the specified window for instance: dumpsys SurfaceFlinger --latency SurfaceView The data consists of one line containing global stats, followed by 128 lines of tab separated timestamps in nanosecond. The first line currently contains the refresh period in nanosecond. Each 128 following line contains 3 timestamps, of respectively the app draw time, the vsync timestamp just prior the call to set and the timestamp of the call to set. Change-Id: Ib6b6da1d7e2e6ba49c282bdbc0b56a7dc203343a
* hack up frame latency measurementJamie Gennis2012-01-244-1/+43
| | | | Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
* Get AID_GRAPHICS from right placeGlenn Kasten2012-01-131-7/+1
| | | | Change-Id: I97b1754dc7260fec083275c71a8f71ebfb2cefa8
* fix a bug with vsync managementMathias Agopian2012-01-121-8/+7
| | | | | | | this bug was introduced recently. we were signaling *all* clients regardless of the vsync rate. Change-Id: I2ae8a6c820a390f602382596ba75e8ed737fb2ef
* remove dead/usnused codeMathias Agopian2012-01-114-42/+0
| | | | Change-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e
* Fix an issue with VSYNCMathias Agopian2012-01-111-38/+31
| | | | | | | one-shot VSYNC listeners could miss a VSYNC event if scheduled while in waitForVsync(). Change-Id: I720485784aecfea6cc7a23c77081d7af3c9c71db
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-084-23/+23
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-065-9/+9
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* Merge "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE"Steve Block2012-01-053-23/+23
|\
| * Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-043-23/+23
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
* | Merge "Use the standard CC_LIKELY and CC_UNLIKELY macros"Glenn Kasten2012-01-053-19/+18
|\ \ | |/ |/|
| * Use the standard CC_LIKELY and CC_UNLIKELY macrosGlenn Kasten2012-01-053-19/+18
| | | | | | | | | | | | | | | | | | | | | | Several source files privately defined macros LIKELY and UNLIKELY in terms of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and CC_UNLIKELY which are intended for this purpose. So rename the private uses to use the standard names. In addition, AudioFlinger was relying on the macro expanding to extra ( ). Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
* | Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-036-17/+17
|/ | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
* Improve the VSYNC api a bit.Mathias Agopian2011-12-066-35/+132
| | | | | | | | | | | - add the ability to set the vsync delivery rate, when the rate is set to N>1 (ie: receive every N vsync), SF process' is woken up for all of vsync, but clients only see the every N events. - add the concept of one-shot vsync events, with a call-back to request the next one. currently the call-back is a binder IPC. Change-Id: I09f71df0b0ba0d88ed997645e2e2497d553c9a1b
* fix a deadlock when removing a DisplayEventConnectionMathias Agopian2011-12-052-21/+46
| | | | | | | | | the deadlock would happen when the pipe became invalid and SF trying to remove the connection from its list. we know make sure to process events without holding a lock. Change-Id: I39927ed8824fc7811e16db3c7608a2ebc72d9642
* Merge "fix an issue where invalidate/transactions could be missed"Mathias Agopian2011-12-042-6/+9
|\
| * fix an issue where invalidate/transactions could be missedMathias Agopian2011-12-032-6/+9
| | | | | | | | Change-Id: I84a1fcba1317b2631f5441de7b7ecd12af5ad022
* | am a91e54fe: am f57c1388: Merge "SurfaceFlinger: fix layer removal race ↵Jesse Hall2011-12-022-1/+10
|\ \ | |/ |/| | | | | | | | | condition" into ics-mr1 * commit 'a91e54fed6a0690d59c97bab9b081b2614880563': SurfaceFlinger: fix layer removal race condition
| * SurfaceFlinger: fix layer removal race conditionJesse Hall2011-12-022-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Layer::lockPageFlip() and layer::onRemove() could be called on different threads and race such that lockPageFlip() successfully called mSurfaceTexture->updateTexImage() but then gets NULL back from mSurfaceTexture->getCurrentBuffer(), leading to a crash. This change moves Layer::onRemove() calls to SurfaceFlinger::commitTransaction() so they happen after the Layer is done being drawn from and only happen on the main surfaceflinger thread. Change-Id: I4b550caadff4cc1878d7c3bca6129193fb0c713e
* | fix an issue where updates could starve transactionsMathias Agopian2011-12-022-9/+2
| | | | | | | | | | Bug: 5700586 Change-Id: Iaa4adc1a6aea1db6e2943efe4caca1f6cbebfa72
* | am e2970700: am e8ba2aba: Merge "add a way to access the version string of ↵Mathias Agopian2011-11-301-1/+9
|\ \ | |/ | | | | | | | | | | the h/w implementation of EGL" into ics-mr1 * commit 'e2970700e921da4226061988a6e8953b1fbfb5a9': add a way to access the version string of the h/w implementation of EGL
| * Merge "add a way to access the version string of the h/w implementation of ↵Mathias Agopian2011-11-301-1/+9
| |\ | | | | | | | | | EGL" into ics-mr1
| | * add a way to access the version string of the h/w implementation of EGLMathias Agopian2011-11-291-1/+9
| | | | | | | | | | | | | | | | | | | | | we use a hidden egl extension. the version string is printed in SF's dumpsys log. Change-Id: I123eb4bde6de462bb2404c67b74d6d6219a48d6a
* | | am 55d3880e: am bb1e7d43: Merge changes I7e973a35,Ib3386fcc into ics-mr1Mathias Agopian2011-11-301-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | * commit '55d3880eed3450748eb7b97281e030902ee29c2a': SurfaceTexture: add EGL_KHR_fence_sync option SurfaceTexture: add a blit-to-FBO test
| * | SurfaceTexture: add EGL_KHR_fence_sync optionJamie Gennis2011-11-291-1/+1
| |/ | | | | | | | | | | | | | | This change adds a compile-time option for SurfaceTexture to use the EGL_KHR_fence_sync extension to synchronize access to Gralloc buffers. Bug: 5122031 Change-Id: I7e973a358631fff5308acf377581b811911fe790
* | Add support for sending VSYNC events to the frameworkMathias Agopian2011-11-2915-27/+720
| | | | | | | | | | | | | | | | | | use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
* | Fix build.Mathias Agopian2011-11-295-110/+27
| | | | | | | | | | | | | | | | Revert "Add support for sending VSYNC events to the framework" This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382. Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
* | Merge changes If4126023,Iacda2386,I1eb691f7,Ib56139f8Mathias Agopian2011-11-297-243/+174
|\ \ | |/ |/| | | | | | | | | | | * changes: Add support for sending VSYNC events to the framework BitTube::read now handles EAGAIN split ComposerService out of SurfaceComposerClient.h rewrite SF's message loop on top of Looper
| * Add support for sending VSYNC events to the frameworkMathias Agopian2011-11-295-27/+110
| | | | | | | | | | | | | | | | | | use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794
| * rewrite SF's message loop on top of LooperMathias Agopian2011-11-283-216/+64
| | | | | | | | Change-Id: Ib56139f87a5c0b124e34da5c8151207219b2577b
* | temporarily hardcode Nexus S refresh rateMathias Agopian2011-11-231-0/+1
|/ | | | Change-Id: Id8465f679b96636041b4b891d0b358c387d456c3
* remove hack that hardcoded the refresh rateMathias Agopian2011-11-161-4/+0
| | | | Change-Id: Ibdd40b337c547e80ef8541856015f1380c8d58ed
* rework a bit how we manage EGL extensionsMathias Agopian2011-11-141-16/+0
| | | | | | | | | | | | | - don't advertise extensions that are not supported by any implementation - remove EGL_ANDROID_swap_rectangle which is not implemented by anybody and confuses people - add some comments about mandatory extensions Bug: 5428001 Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
* Back to 59fpsDave Burke2011-11-091-1/+1
| | | | Change-Id: I8d89e5e27f1abc5a2e36cb832eb4db2ca83c2cc6
* Fix an issue where we could wait for a non-existing transactionMathias Agopian2011-11-071-14/+16
| | | | | | | | | | This fixes the issue: "Call not sent" dialog takes too long to dismiss after hitting OK" Note: the system would recover after a 5 second timeout. Bug: 5534520 Change-Id: Ifa37e594b50581f498479a5858672441b3d7dd87
* Merge "Fix rotation displays frame N-1 briefly while rotating" into ics-mr1Mathias Agopian2011-11-074-9/+52
|\
| * Fix rotation displays frame N-1 briefly while rotatingMathias Agopian2011-11-044-9/+52
| | | | | | | | | | | | | | | | | | | | The ScreenShot layer is now created hidden. The screenshot itself is aquired during the transaction when the layer is made visible. This guarantees the screenshot and the layer happen atomically with respect to screen updates. Bug: 5534521 Change-Id: Ida23e1f13d5716ec83b78a15712e0646d6cf8729
* | workaround to set the WM refresh rate to 48 Hz for tuna devices onlyMathias Agopian2011-11-042-0/+15
|/ | | | | | | this is TEMPORARY until we can do this properly. Bug: 5572464 Change-Id: I6537706d636a83a4a50e2900d6b829dd89b6f245
* fix Corrupted graphics while playing You Tube on orientation changeMathias Agopian2011-10-261-0/+2
| | | | | Bug: 5432124 Change-Id: If948b9797b1ec6fff80ca5ea94508abcaced9f31
* Merge "Fix software GL renderer."Xavier Ducrohet2011-10-211-1/+1
|\
| * Fix software GL renderer.Xavier Ducrohet2011-10-211-1/+1
| | | | | | | | Change-Id: I07ab2709fa694e41aa3fcc5b9dfc809f55853ab4
* | am aa938c8d: Merge "mDirtyRegion is single threaded, but could be accessed ↵Mathias Agopian2011-10-212-2/+23
|\ \ | |/ |/| | | | | | | | | from a hwc thread" into ics-mr0 * commit 'aa938c8d9c0e71c9b556657cb33794210ce6ebf8': mDirtyRegion is single threaded, but could be accessed from a hwc thread
| * mDirtyRegion is single threaded, but could be accessed from a hwc threadMathias Agopian2011-10-212-2/+23
| | | | | | | | | | | | | | | | | | | | We now have mInvalidateRegion which holds the region to invalidate, it can be set from any thread as long as mInvalidateLock is held. We use fine-grained locking here because mInvalidateRegion can be set from anywhere, in particular frmo HWC callbacks. Bug: 5466774 Change-Id: Iafca20aa3f5b25a87755e65bde7b769aa8f997bc