summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* If there is no hwc, call eglSwapBuffers for the main displayJesse Hall2012-08-311-2/+3
| | | | | Bug: 7068568 Change-Id: I6a0309613fe3619d065b9047af6c3fb32b510d97
* Merge "HWC 1.1: hook up hotplug event, use new display config queries" into ↵Jesse Hall2012-08-312-16/+110
|\ | | | | | | jb-mr1-dev
| * HWC 1.1: hook up hotplug event, use new display config queriesJesse Hall2012-08-312-16/+110
| | | | | | | | Change-Id: I2fd359e5fc7e1948072c6bc6b6fe47ea5e8025c1
* | BufferQueue: use max acquired buffer countJamie Gennis2012-08-301-2/+1
| | | | | | | | | | | | | | | | | | 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
* | Merge "BufferQueue: clean up buffer counting" into jb-mr1-devJamie Gennis2012-08-302-3/+3
|\ \
| * | BufferQueue: clean up buffer countingJamie Gennis2012-08-292-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Handle new device api version encoding" into jb-mr1-devJesse Hall2012-08-301-9/+39
|\ \ \ | | |/ | |/|
| * | Handle new device api version encodingJesse Hall2012-08-291-9/+39
| |/ | | | | | | Change-Id: I3d36058bd5d31c23b3cc4a7eb5aa033b6f3c1955
* | fix a crasher when setting a display to a null surfaceMathias Agopian2012-08-291-27/+32
| | | | | | | | | | Bug: 7076303 Change-Id: I843dd4ee4a603b8ad51bc1ad14e429db15050bec
* | we were sometimes not setting fences properlyMathias Agopian2012-08-291-26/+36
|/ | | | | | | | | this would happen when the composition was handled entirely in h/w composer, in this case, we would not set the fences for any involved layers. Bug: 7049373 Change-Id: I1439dc156ce23c24041cdfbbebfe8ff4fdf790f8
* the layer list per display could contain non-visible layersMathias Agopian2012-08-281-7/+12
| | | | | | | | this happened because we didn't check that the visible region was within the bounds of the display. Bug: 7064121 Change-Id: I2e81850a3dc3d1474253520ad7f9e559c26d5a96
* we were not always clearing the screen properlyMathias Agopian2012-08-272-13/+13
| | | | Change-Id: I269dd866e965aebd9b3c4667095818202982f4a3
* Eradicate DisplayID.Mathias Agopian2012-08-2715-149/+125
| | | | | | | | DisplayDevices are now keyed of the wp<IBinder> the client uses. DisplayID has now become DisplayType which is just used to identify physical displays (as opposed to virtual displays such as wifi displays). Change-Id: I0c5968f2c902dcd699a7e0afacf833ff070c12ea
* Banish DisplayID from the SurfaceFlinger API.Jeff Brown2012-08-278-37/+42
| | | | | | | | | | | | | | | Use only display tokens in the API to refer to new displays. Don't require the caller to specify the display when creating a surface (since in general a surface could be shown on any display). This is intended to be a minimum change just to update the API. Note that SurfaceFlinger still uses DisplayID in a few places internally that might cause some features not to work properly when there are multiple displays (LayerScreenshot, for example). Change-Id: I3d91eec2da406eefd97bcd53655d403ad865a7e6
* Added display initialization methodAndy McFadden2012-08-243-12/+43
| | | | | | | | | | The primary display device was being configured to "blank" by default, which prevented the boot animation from appearing (unless you got lucky with the hardware composer state). Bug 6975688 Change-Id: I0fa52e9e719c6e997c5725a7baf15d9718461b78
* surfaceflinger: fix display id selectionJamie Gennis2012-08-242-1/+25
| | | | | | | This change fixes display ID selection so that it never chooses negative numbers as display IDs. Change-Id: I5af1acc7b1270b371595e096b18e2a6ad250c7ba
* Revert "Added display initialization method"Andy McFadden2012-08-242-42/+11
| | | | | | | | Something doesn't seem right (again). This reverts commit 53ade0853ca003c9e917b5e7d34e1b1338d7b87d. Change-Id: Id5786997ca9dd2a447363e8ac95213ea37468504
* Added display initialization methodAndy McFadden2012-08-242-11/+42
| | | | | | | | | | The primary display device was being configured to "blank" by default, which prevented the boot animation from appearing (unless you got lucky with the hardware composer state). Bug 6975688 (This reverts an earlier revert.)
* teach HWC about multiple displaysMathias Agopian2012-08-233-130/+140
| | | | Change-Id: I5e72a83d419a729835cb0e1ec45557b4d3fb56b1
* remove support for HWC < 1.0Mathias Agopian2012-08-232-287/+60
| | | | Change-Id: If7e676a6e3524afeb9af3875125d2131d95db38b
* HWComposer now has its own concept of display IDsMathias Agopian2012-08-235-113/+169
| | | | | | | | | | | | HWComposer can now create IDs representing a display it can deal with. IDs MAIN and HDMI are reserved. SurfaceFlinger associate HWComposer IDs with a DisplayDevice and uses that when it talks to HWComposer. A DisplayDevice doesn't have to have a HWComposer ID, in that case it just can't use h/w composer composition. Change-Id: Iec3d7ac92e0c22bf975052ae2847402f58bade71
* Merge "simplify further vsync handling" into jb-mr1-devMathias Agopian2012-08-232-85/+78
|\
| * simplify further vsync handlingMathias Agopian2012-08-232-85/+78
| | | | | | | | | | | | | | | | | | | | | | | | - we now clean-up "dead" connection in the main loop, this entirely avoid the problem with the side effects of releasing strong references. We now only hold on to strong reference for the connection we will signal. - also simplify how we build the list of "ready" connections, by only adding them to the list when we did receive a vsync event Change-Id: I2a84da431320a2af8e8a93e07622a1d258236f43
* | Merge "Update for cleanups in hwc interface" into jb-mr1-devJesse Hall2012-08-232-18/+35
|\ \ | |/ |/|
| * Update for cleanups in hwc interfaceJesse Hall2012-08-222-18/+35
| | | | | | | | Change-Id: I363fd8b085167a1af6c14b68012bda5c62bfe59f
* | Merge "Revert "Added display initialization method"" into jb-mr1-devRamanan Rajeswaran2012-08-222-42/+11
|\ \ | |/ |/|
| * Revert "Added display initialization method"Ramanan Rajeswaran2012-08-222-42/+11
| | | | | | | | | | | | This reverts commit 3f3956236aac97b6aa25fa89f0983d5e9d065fdb Change-Id: Ia2a15d9a5db88add6019edf9d955cef1f73d432d
* | Pass the correct number of displays based on HWC versionJesse Hall2012-08-222-8/+10
|/ | | | Change-Id: I27372f5d3102ad56f6d67722d631ae18d37f8330
* Added display initialization methodAndy McFadden2012-08-212-11/+42
| | | | | | | | | | The primary display device was being configured to "blank" by default, which prevented the boot animation from appearing (unless you got lucky with the hardware composer state). Bug 6975688 Change-Id: Idaa0d0b98ebb331a17d1b16774c6b05bfa1e8728
* fix various issues in SF's EventThreadMathias Agopian2012-08-202-51/+51
| | | | | | | | | | | | | | | | - one issues caused most timestamps to be reported as 0 - on rare occasions an uninitialized variable could be used - vsync counts per connection were accessed unthreadsafely we now have 2 lists of connections in the main loop, one just keeps a list of strong refs to the connections because once we have a strong ref we're not allowed to release it while holding the lock. the 2nd list holds the connections that have a vsync event to be reported. all the calculations are made with the lock held. Change-Id: Iacfad3745b05df79d9ece3719bd4c34ddbfd5b83
* Fix deadlock in SF.Mathias Agopian2012-08-172-102/+87
| | | | | | | | | | | | | | | problem was that we were acquiring a strong reference on Connection object with a lock held, when those got out of scope (lock still held) their dtor could be called if all other refs had dropped, the dtor would acquire the lock again to remove the Connection from the main list. boom. we rearange the code so this doesn't happen. Bug: 6942208 Change-Id: I0a0ebabce2842d29d60d645b64aac2f26640e59b
* refactor compositing code to avoid multiple eglMakeCurrent() callsMathias Agopian2012-08-164-155/+166
| | | | | | | | when multiple displays are connected, we ended-up having to call eglMakeCurrent() twice per display due to a limitation in EGL. this fixes that. Change-Id: I11e4584df50f8c24bbecee74e37b28b3ee031d2f
* reimplement wifi display hack with new external display SF frameworkMathias Agopian2012-08-165-84/+88
| | | | | | | | | | | | | | | fix a few bugs with external displays - HWComposer doesn't really handle multiple displays yet so there is a lot of ugliness there - We also need to make sure that external displays are not blanked by default - due to some EGL limitations surfaces being swapped need to be current Change-Id: I82bff05b43bcebd8da863c7c76b4edbc3bc223a9
* display states can't share the dirty flagsMathias Agopian2012-08-161-2/+6
| | | | Change-Id: Ifade9f2f1a0df9a36aede77a6cf5eee4be534f98
* binder interfaces can't be compared directlyMathias Agopian2012-08-161-1/+1
| | | | | | we always need to compare their binder Change-Id: I70d554ebc5009fe81e87923235f91451f32e1a30
* oopsie, missed a spot when fixing b/6970310Mathias Agopian2012-08-151-1/+1
| | | | Change-Id: Ia320fddc7cc4b0666a4fee678af710ecf5f83ff5
* we were mistakenly optimizing out SF's main transactions in some casesMathias Agopian2012-08-151-27/+30
| | | | | | | | | | due to a typo, SF's main transaction was conditional to having a display transaction. more correct fix for 6970310 Bug: 6970310 Change-Id: Iafd8c4e02afa5db829cc1c65950cfcc74754c6af
* Use new PowerManager API.Jeff Brown2012-08-151-4/+3
| | | | Change-Id: I66165d9954e2d1da9204216382a05a873f1393f4
* Fix layer removal transaction.Jeff Brown2012-08-151-2/+2
| | | | | | | | | | | | | Layers were not properly being removed because we were setting the wrong transaction type flag at the time of removal. When layers are removed, we must use eDisplayTransactionNeeded, not eTransactionNeeded, to ensure that the mLayersRemoved flag is checked and the appropriate cleanup occurs. Bug: 6970310 Change-Id: Id4b2897a34d4ac00aa0f92349c0ec6db95c1aaf7
* Don't crash when recovering from WM deathJesse Hall2012-08-141-0/+2
| | | | | Bug: 6956162 Change-Id: I27244b960c77187b4c4cd7297989c4c872e94a3a
* make sure to repaint the screen when unblank()ingMathias Agopian2012-08-131-0/+2
| | | | Change-Id: I38e3a8e6bb31ef3d2f1fcaec7490cb92a4427db2
* xdpi / ydpi were reported as 0Mathias Agopian2012-08-137-92/+79
| | | | | Bug: 6975723 Change-Id: Ia7fa37ec11e2308804f5034959a37e508d292d31
* make multi-display more realMathias Agopian2012-08-103-107/+204
| | | | | | | - displays are represented by a binder on the client side - c++ clients can now create and modify displays Change-Id: I203ea5b4beae0819d742ec5171c27568f4e8354b
* screenshots could stop working after camera was usedMathias Agopian2012-08-102-3/+7
| | | | | | | | | once a secure window is put on screen the display would retain its "secure" flag forever, preventing screenshots from being taken. Bug: 6933967 Change-Id: I5be8355145ca7d580d84552311642f8fa912fe6a
* avoid crashing when we don't have an h/w composerMathias Agopian2012-08-101-1/+1
| | | | | | | should fix the emulator Bug: 6956162 Change-Id: I38247b59d276b8db078c4dc2caba7d3fb545912c
* libgui includes refactoringMathias Agopian2012-08-105-72/+36
| | | | Change-Id: I1d24ec17f5003ec2abab5f7472daaff4cc4cc2d3
* Add a display parameter to HWComposer where neededMathias Agopian2012-08-104-72/+90
| | | | | | | | - also replace C casts with C++ casts - only the interface is changed, HWComposer still doesn't fully handle multiple displays Change-Id: I48eb89bff2edb76bf1d4d41f46802b9b2a7166a8
* now able to set the layer stack on a DisplayDeviceMathias Agopian2012-08-103-1/+10
| | | | Change-Id: Ia9691cf221b9444c243eb468d9e276a30e600b6b
* Changes to support multi-display HWCJesse Hall2012-08-072-66/+154
| | | | Change-Id: I07efff54f2980dcb013935747b03e099b8f1181b
* Merge changes Ic3d35a93,I46ec942d into jb-mr1-devJamie Gennis2012-08-066-154/+132
|\ | | | | | | | | | | * changes: SurfaceTexture: fix an out of bounds array access surfaceflinger: refactor FrambufferSurface