6f96080f333c70104424f42ac263c4c9c7a9dd2a |
|
20-May-2011 |
Mathias Agopian <mathias@google.com> |
Fix a race that could cause GL commands to be executed from the wrong thread. Bug: 4483050 Change-Id: I37f0f3156059c208c6168ee6131d0e267d823188
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
cf8b94562c7cbd5c7ced01dca9bbca25011a04e8 |
|
10-Mar-2011 |
Mathias Agopian <mathias@google.com> |
revert the surface purgatory list and dependent changes. 6d0f6cb Revert "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only" 6154412 Revert "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)" 37c2a37 fix [3408713] Dialog window invisible sometimes It looks like there is a surface leak, it's unclear where it is. Without those reverts, this would cause a leak of the associated buffers which is far more problematic. this change might hide the surface leak. Bug: 4078032 Change-Id: Iedcda3ffcdd2f69d41047b5c3134c1e867ff90d7
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
951d3fec41c8c77f5ce86a5394573e8180d93927 |
|
10-Feb-2011 |
Mathias Agopian <mathias@google.com> |
Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only 37c2a37 fix [3408713] Dialog window invisible sometimes d35c666 fix [3385504] Surface flinger hang when adding dim surface 1723b04 fix [3389263] OMX.Nvidia.h264.decode fails to shutdown 1b0114f fix a surface leak in SurfaceFlinger Bug: 3513017 Change-Id: Ia13ed8c9cdcb1f484e177cdcaff687e7c88a10c3
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
21956040a77808909ebda426fbd3cce6c8ed059f |
|
19-Jan-2011 |
Mathias Agopian <mathias@google.com> |
fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE) Generally we never want to lock a buffer for write access if it is at the "head" on the surfaceflinger side. The only exception (1) is when the buffer is not currently in use AND there is at least one queued buffer -- in which case, SurfaceFlinger will never use said buffer anymore, because on the next composition around, it will be able to retire the first queued buffer. The logic above relies on SurfaceFlinger always retiring and locking a buffer before composition -- unfortunately this didn't happen during a screenshot. This could leave us in a situation where a buffer is locked by the application for write, and used by SurfaceFlinger for texturing, causing a hang. Here, we fix this issue by never assuming the exception (1), it was intended as an optimization allowing ANativeWindow::lockBuffer() to return sooner and was justified when most of SF composition was done in software. The actual buffer locking is now ensured by gralloc. We could have handled screenshots in a similar way to a regular composition, but it could have caused glitches on screen, essentially, taking a screenshot could cause to skip a frame. now that we removed the notion of a "inUse" buffer in surfaceflinger a lot of code can be simplified / removed. noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete" is also gone.
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
68d3478860fecc9b8fbf256796a832a037434555 |
|
15-Jan-2011 |
Mathias Agopian <mathias@google.com> |
partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE) 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. also improve SurfaceFlinger 'dumpsys' log list the purgatory, which shows windows that have been closed, but for which the client still has references.
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
1989af22b5aa94430c7a43e13f3307d25be8c837 |
|
03-Dec-2010 |
Mathias Agopian <mathias@google.com> |
[3171580] Fix two typos related to fixed-size buffers 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
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
e031ba8d20c39910a42ed58db06c3770bdf32eb7 |
|
26-Oct-2010 |
Mathias Agopian <mathias@google.com> |
really fix [3118445] Transform * Transform does not work as expected 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
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
5ba59975ebd31faf8049b8b1cbd707ebbb32806f |
|
11-Oct-2010 |
Mathias Agopian <mathias@google.com> |
fix a bug where FLIP_H would do a 180 rotation Change-Id: Ie2cc4a8543a5625750c8596f87edcb66fcbca31f
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
597c7f67b5f2491c6098a1de241a3f0fd274688a |
|
29-Sep-2010 |
Mathias Agopian <mathias@google.com> |
refactored screenshot code the core screenshot function now can capture the screen at any lower resolution performing bilinear filtering. we also now have some client code to interface with the screenshot service. it's now possible to request a screenshot at a lower resolution. Change-Id: I33689bba98507ab928d0898b21596d0d2fe4b953
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
e96aa3e859cb747e241dfa2999fcd142a688ed57 |
|
20-Aug-2010 |
Mathias Agopian <mathias@google.com> |
fix [2931513] Add support for setting the orientation of an ANativeWindow Also implement support for cropping. Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
cfa275908a220c5e1cf496f7fdde1c04e24e95da |
|
18-Aug-2010 |
Mathias Agopian <mathias@google.com> |
revert hwcomposer HAL changes. DO NOT MERGE. This reverts commit: 94364b91a2894bf037b8beb027132fbb812e1434 f8e705dea48f77f1c2532fdbadd4997dd1851af0 b59beb5ca68d0228f60dda60d85e2d0226b33215 e0d5f5bcf5a8b26f4ad75f549cbf380b2c9faf20
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
e0d5f5bcf5a8b26f4ad75f549cbf380b2c9faf20 |
|
11-Aug-2010 |
Mathias Agopian <mathias@google.com> |
call into hwcomposer HAL when present Change-Id: I70f31c69a9436a43860e78977442863ecba6d27b
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
8514b92bc4dfab58aa762d75322e4c285b6ada17 |
|
11-Aug-2010 |
Mathias Agopian <mathias@google.com> |
don't handle the transparent region of a layer in draw() this is already taken into consideration in computeVisibleRegion and therefore not needed at draw time. Change-Id: I3fc7336d22f1147dfcd3a20fd71bf79b946d971f
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
1efba9a61716356014f4c452fd9e099c5ebe9bd0 |
|
11-Aug-2010 |
Mathias Agopian <mathias@google.com> |
get rid of our LayerVector implementation we now use SortedVector<> with a special compare implementation. Change-Id: I910459cf3b3c8993b55ad0786a8c348369262de5
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|
08e83bb3b7cc41f603867acbeb1168019cf535fe |
|
15-Jul-2010 |
Mathias Agopian <mathias@google.com> |
move native services under services/ moved surfaceflinger, audioflinger, cameraservice all native services should now reside in this location. Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
/frameworks/base/services/surfaceflinger/LayerBase.cpp
|