summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* improve SurfaceFlinger 'dumpsys' logMathias Agopian2011-01-193-0/+43
| | | | | | | list the purgatory, which shows windows that have been closed, but for which the client still has references. Change-Id: I5168bb88cb328d5d77d71d0871deb9190f493126
* Add logs when taking a screenshot to help tracking issue 3361121Mathias Agopian2011-01-161-2/+23
| | | | Change-Id: I61d1e072ebe7061ee1d7255f6121b684e2923d1b
* Merge "partially fix [3306150] HTML5 video with H/W acceleration blackout" ↵Mathias Agopian2011-01-142-1/+19
|\ | | | | | | into honeycomb
| * partially fix [3306150] HTML5 video with H/W acceleration blackoutMathias Agopian2011-01-142-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to guarantee that a layer in SurfaceFlinger would never be destroyed before all references (to its ISurface) on the client side would be released. At some point, this guarantee got relaxed to allow to free gralloc resources sooner. This last change was incorrect, because: - in implementations with reference-counting the gralloc resources wouldn't be released anyways, until all the mapping were gone - in implementations without ref counting, the client side would most likely crash or do something bad - it also caused the SharedBufferStack slot to be reallocated to another surface, which could be problematic if the client continued to use the surface after the window manager destroyed it. So, we essentially reinstate the guarantee that layers won't be destroyed until after all references to their ISurface are released. NOTE: This doesn't entirely fix 3306150 because there is another problem there where the Browser continues to use a surface after it has been destroyed. Change-Id: I305c830dd722b30a6d53cbf3a9c714fd3cf7eb06
* | Merge "fix [3312683] Camera mirroring problem after switching from back to ↵Mathias Agopian2011-01-143-5/+17
|\ \ | | | | | | | | | front camera" into honeycomb
| * | fix [3312683] Camera mirroring problem after switching from back to front cameraMathias Agopian2011-01-133-5/+17
| |/ | | | | | | | | | | | | | | | | the crop as well as buffer orientation can change at every frame, when that happens we need to reset the hwc HAL (ie: set the GEOMETRY_CHANGED flag). currently we achieve this by taking the same code path than an actual geometry change which is a bit more heavy than necessary. Change-Id: I751f9ed1eeec0c27db7df2e77d5d17c6bcc17a24
* | Fix remote GraphicBuffer allocation in SurfaceFlinger.Jamie Gennis2011-01-132-21/+55
|/ | | | | | | | | | | This change fixes a horrible hack that I did to allow application processes to create GraphicBuffer objects by making a binder call to SurfaceFlinger. This change introduces a new binder interface specifically for doing this, and does it in such a way that SurfaceFlinger will maintain a reference to the buffers until the app is done with them. Change-Id: Icb240397c6c206d7f69124c1497a829f051cb49b
* Add the ISurfaceComposer::createGraphicBuffer IPC.Jamie Gennis2011-01-062-0/+21
| | | | | | | | This change adds a new binder method to the ISurfaceComposer interface. This IPC is intended to allow SurfaceFlinger clients to allocate gralloc buffers using SurfaceFlinger as a proxy to gralloc. Change-Id: Ide9fc283aec5da6268ba62cfed0c3319a50b640d
* fix a small bug that caused screenshot to show garbage in some casesMathias Agopian2010-12-161-1/+2
| | | | | | | we were not clearing the screen entirely, which caused garbage when the screen wasn't entirely covered by windows. Change-Id: Ie9ab9b94eabfa6cafddf45bb14bc733bdc8d35c0
* workaround [3201922] display not on: log full of gralloc errorsMathias Agopian2010-12-151-0/+4
| | | | | | | | | | | while we're waiting for the real fix in the gralloc/gpu driver, this workaround should resolve the issue. we make sure to call compositionComplete after everytime we do composition with the GPU (even for the screenshot case), which is where the buffer locks are released. Change-Id: I3cb5ad67d48c81a23100172bab77e86a70e29152
* Fix a problem where hwc and GL composition could show a different bufferMathias Agopian2010-12-142-19/+16
| | | | | | | | | | if a surface's buffers are reallocated, the current active buffer will end-up pointing on one of these until a new buffer is retired. we're now keeping a reference to the actual buffer until we retire a new one. Change-Id: Ib1703947e7a0340694d846e0962576318863b935
* fix debug.sf.showbackgroundMathias Agopian2010-12-141-0/+2
| | | | Change-Id: Ie4eeca006ad6d8030900d8cb0029e4d1c22474fb
* fix [3223749] media server crashes when switching mode from video capture to ↵Mathias Agopian2010-12-142-3/+18
| | | | | | | | | | | | | still image capture there was an issue were in some situation SF would call prepare() on hwc with a NULL handle and never call prepare again. in this situation, we onw set the SKIP flag to make sure that hwc won't process this layer and as soon as we receive our first buffer we trigger a recompute of the visible regions which will end-up calling prepare() again. Change-Id: I6b400b2df79712408b9315a9859290c7fcb1609e
* Merge "fix [3176642] Camera preview turns completely black for multiple ↵Mathias Agopian2010-12-141-1/+21
|\ | | | | | | toggles between camera and camcorder app"
| * fix [3176642] Camera preview turns completely black for multiple toggles ↵Mathias Agopian2010-12-131-1/+21
| | | | | | | | | | | | | | | | | | | | between camera and camcorder app There was a leak of Surface tokens when a surface was detached from a UserClient. We now always detach a surface from its client before attaching to the new one, this guarantees that its token is freed. Change-Id: Icfad0b16286ed58155bdfafdf36ab161440aa485
* | Merge "minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so."Mathias Agopian2010-12-141-1/+0
|\ \ | |/
| * minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so.Mathias Agopian2010-12-131-1/+0
| | | | | | | | Change-Id: I3bdca74351c8e480a05084bc412a96c5f685221d
* | [3258939] Need snapshot to limit which layers are includedMathias Agopian2010-12-102-15/+26
|/ | | | Change-Id: Id7351a0e3f53dde99b291cffba553d89fd4d7ca9
* [3211070] camera preview image is rendered offset from the UI overlay frameMathias Agopian2010-12-081-5/+12
| | | | | | somehow this change got lost. Change-Id: I36f6c7ef3f782918042b77e9dc91a4c811d84a40
* fix [3260137] Sometimes front-facing camera mirroring is wrongMathias Agopian2010-12-081-1/+2
| | | | | | make sure to take the buffer's orientation into account. Change-Id: I9fef89e66368ad2dec1cb8c7b77ac2b3b4858efb
* More clean-up. Get rid off the "blur" effect in SurfaceFlingerMathias Agopian2010-12-087-747/+2
| | | | | | | | For multiple reason, this effect is not maintainable and was never used due to its abysmal performance. it'll be resurected when it can be implemented efficiently. Change-Id: Id4222c9b86c629275cdec18873ef07be8723b6d2
* remove support for PUSH_BUFFER surfaces and overlaysMathias Agopian2010-12-0813-1095/+3
| | | | | | | the same functionality is now supported through the h/w composer HAL, and YUV support in the GPU. Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
* surfaceflinger: add support for gralloc dump hooksErik Gilling2010-12-084-1/+14
| | | | Change-Id: Ib6f539ed0132b70d040d653c03d52cc04249ac3c
* should fix build.Mathias Agopian2010-12-071-0/+1
| | | | Change-Id: I7705227ad123c73714af2ecb7ad84f5432a21c1d
* resolved conflicts for merge of a0f011ff to masterMathias Agopian2010-12-074-21/+18
|\ | | | | | | Change-Id: I4c17021fc269ce66c98cc345353600eda332f980
| * am 05813b0e: Merge changes I244b5469,I32044e91 into gingerbreadMathias Agopian2010-12-074-21/+19
| |\ | | | | | | | | | | | | | | | * commit '05813b0eb92cb1bc79607ee402f14ca1e4b43f6d': [3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions [3171580] Fix two typos related to fixed-size buffers
| | * [3171580] Fix two typos related to fixed-size buffersMathias Agopian2010-12-034-21/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mFixedSize was never set, this bug was introduced during some "cleanup", in practice this could cause some issues when a fixed-size buffer was used and the window was resized. Layer::drawForSreenShot() had a typo that had no effect. mFixedSize was used to determine if filtering was needed, which was a bit too conservative and created a dependency between filtering and "fixed size" states which should exist. Now we enable filtering based on the size of the buffer vs. the size of the layer. Change-Id: I32044e91b0c944c1b137efdceb3f01dfaa78119d
* | | am 48f42f8c: am 4153bf3a: Merge "[3171580] don\'t automatically log ↵Mathias Agopian2010-12-071-0/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | GraphicBuffer allocation failures" into gingerbread * commit '48f42f8c3fbd33b2f46c6290ff5963dd58938cf9': [3171580] don't automatically log GraphicBuffer allocation failures
| * | am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer ↵Mathias Agopian2010-12-071-0/+1
| |\ \ | | |/ | | | | | | | | | | | | | | | allocation failures" into gingerbread * commit '4153bf3a259624a2f2dc497b77b225a1fb517abc': [3171580] don't automatically log GraphicBuffer allocation failures
| | * [3171580] don't automatically log GraphicBuffer allocation failuresMathias Agopian2010-12-031-0/+1
| | | | | | | | | | | | | | | | | | | | | some of these failures are not fatal and even expected in some cases so they should not emit a dump in the log in those cases. Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
* | | Remove const_cast to layer handleLouis Huemiller2010-12-011-1/+1
| | | | | | | | | | | | Change-Id: Ica1e089cb56b5f9f46ab87abf735ffe7237fc926
* | | Merge "Implement reducing the buffer count of a Surface."Jamie Gennis2010-11-112-4/+50
|\ \ \
| * | | Implement reducing the buffer count of a Surface.Jamie Gennis2010-11-112-4/+50
| | | | | | | | | | | | | | | | | | | | Change-Id: I7f979c60c06d654aa8265002836277434bc1a64f Bug: 3095167
* | | | Remove a problematic empty update optimization.Jamie Gennis2010-11-101-4/+0
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change removes an optimization from SurfaceFlinger that skipped composition when it got window updates that had an empty dirty region. This optimization caused problems because it would skip the hwcomposer set call, which could leave the window's previous frame buffer bound to an overlay plane. When the application subsequently dequeued and tried to lock its next buffer (which would be the buffer currently bound to the overlay), the lock call would block until the next hwcomposer set call (which may never happen). Change-Id: I563b626a1d52c1f30eb82489eae0ceb4edc79936 Bug: 3138752
* | | am 5c0efef9: am 7d452f69: Merge "really fix [3118445] Transform * Transform ↵Mathias Agopian2010-10-273-13/+47
|\ \ \ | |/ / | | | | | | does not work as expected" into gingerbread
| * | am 7d452f69: Merge "really fix [3118445] Transform * Transform does not work ↵Mathias Agopian2010-10-273-13/+47
| |\ \ | | |/ | | | | | | as expected" into gingerbread
| | * really fix [3118445] Transform * Transform does not work as expectedMathias Agopian2010-10-273-13/+47
| | | | | | | | | | | | | | | | | | | | | | | | Two bugs were counter acting each other. - rotation matrices are on the left-hand side of multiplies - the transform of the overlay is applied before that of the layer Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
* | | am e1ca532d: am 457bed2b: Merge "fix [3123221] Video sticks playing back ↵Mathias Agopian2010-10-252-0/+16
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | upside down following orientation switch" into gingerbread Merge commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871' * commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871': fix [3123221] Video sticks playing back upside down following orientation switch
| * | am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down ↵Mathias Agopian2010-10-252-0/+16
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | following orientation switch" into gingerbread Merge commit '457bed2bc6561dd67429dde238453fee8602fa9b' into gingerbread-plus-aosp * commit '457bed2bc6561dd67429dde238453fee8602fa9b': fix [3123221] Video sticks playing back upside down following orientation switch
| | * Merge "fix [3123221] Video sticks playing back upside down following ↵Mathias Agopian2010-10-252-0/+16
| | |\ | | | | | | | | | | | | orientation switch" into gingerbread
| | | * fix [3123221] Video sticks playing back upside down following orientation switchMathias Agopian2010-10-242-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the overlay wasn't reconfigured when the screen-orientation changed. It was only done when a parameter of the surface itself changed. Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
* | | | am b4645353: am ce4d36ad: Merge "fix [3118445] Transform * Transform does ↵Mathias Agopian2010-10-254-46/+87
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | not work as expected" into gingerbread Merge commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368' * commit 'b4645353090f1bdd5cc1d4ab98feac7ccf966368': fix [3118445] Transform * Transform does not work as expected
| * | | am ce4d36ad: Merge "fix [3118445] Transform * Transform does not work as ↵Mathias Agopian2010-10-254-46/+87
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | expected" into gingerbread Merge commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e' into gingerbread-plus-aosp * commit 'ce4d36ad729f83253d4c5ec9906148f45cc00f8e': fix [3118445] Transform * Transform does not work as expected
| | * | fix [3118445] Transform * Transform does not work as expectedMathias Agopian2010-10-244-46/+87
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem wasn't in the multiply operator, but rather in the code that built the transform from the HAL bitmask. We now use the multiply operator to build the Transform from the bitmask, which guarantees, it'll always be correct. Also added a simple test for Transform. Change-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227
* | | am fb31036f: am 583fefc8: Merge "Use the context_priority extension when ↵Mathias Agopian2010-10-212-2/+16
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | present." into gingerbread Merge commit 'fb31036fd844444c395a2ae9c97439eec9f774e4' * commit 'fb31036fd844444c395a2ae9c97439eec9f774e4': Use the context_priority extension when present.
| * | am 583fefc8: Merge "Use the context_priority extension when present." into ↵Mathias Agopian2010-10-202-2/+16
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | gingerbread Merge commit '583fefc8dcadecc7fc933513d3569dd9c16c100c' into gingerbread-plus-aosp * commit '583fefc8dcadecc7fc933513d3569dd9c16c100c': Use the context_priority extension when present.
| | * Merge "Use the context_priority extension when present." into gingerbreadMathias Agopian2010-10-202-2/+16
| | |\
| | | * Use the context_priority extension when present.Mathias Agopian2010-10-112-2/+16
| | | | | | | | | | | | | | | | Change-Id: I12eadf1e32d576de5d811fba44afa73263e13eef
* | | | am 9f6d18ca: am 04358138: Merge "[3095807] screen takes a long time to turn ↵Mathias Agopian2010-10-161-2/+3
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | on" into gingerbread Merge commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a' * commit '9f6d18cadf9ac50062063f5f5ff5de7f6895696a': [3095807] screen takes a long time to turn on
| * | | am 04358138: Merge "[3095807] screen takes a long time to turn on" into ↵Mathias Agopian2010-10-141-2/+3
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | gingerbread Merge commit '043581382e43acbe29a8a62420bc765f49a9dd90' into gingerbread-plus-aosp * commit '043581382e43acbe29a8a62420bc765f49a9dd90': [3095807] screen takes a long time to turn on