History log of /frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5d26c1e38dabb3ad8b4b6e1000375f3b1a6b7693 02-Mar-2010 Mathias Agopian <mathias@google.com> Added a name to Surface created by SurfaceFlinger

Updated the window manager to use this new facility.
Surfaces name are now printed by "dumpsys".
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
000479f9e325b4e426a67033abd92d47da412725 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
66c77a5b42517b15c933431e12445b856d804ce5 09-Feb-2010 Mathias Agopian <mathias@google.com> Add support for physically rotated displays

This feature is currently controled by a system property.
"ro.sf.hwrotation" can be set to either 90 or 270. It'll cause
SF to rotate the screen by 90 and 270 degres respectively.

That is, if the driver reports 800x480 for instance, and
ro.sf.hwrotation is set to 90, applications will "see" a
480x800 display and will run in portrait.

This is implemented by introducing an extra "display"
transformation in the GraphicPlane.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
0e44976aa425b0c2a0dcf6ec8db918e6a6f51b1a 02-Dec-2009 Mathias Agopian <mathias@google.com> fix [2297155] SurfaceFlinger's freeze-timeout doesn't work

There was bug in the logic that calculated the relative timeout, the start time was
reset each time an event was received, which caused the timeout to never occur if
an application was constantly redrawing.

Now we always check for a timeout when we come back from the waitEvent() and
process the "anti-freeze" if needed, regardless of whether an event was received.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
08c19beee4c8a2fce3f9d2baa78c9d436bedf65d 29-Oct-2009 Andy McFadden <fadden@android.com> DO NOT MERGE: Another gcc 4.0.3 workaround.

Temporarily make a function public that doesn't need to be. When
host gcc-4.0.3 is gone from the build servers we can undo this.

(Cherry-picked from eclair-mr2.)
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
6950e428feaccc8164b989ef64e771a99948797a 06-Oct-2009 Mathias Agopian <mathias@google.com> fix [2167050] glTexImage2D code path buggy in SurfaceFlinger

When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.

Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.

This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
2e4b68d57bb64d7e93139238c5a8be91ff956c2a 24-Sep-2009 Mathias Agopian <mathias@google.com> fix [2133214] STOPSHIP: revert I4a06bb4f: workaround for [2113743] Sholes: frozen then runtime restart going to list view

Revert "workaround for [2113743] Sholes: frozen then runtime restart going to list view"

This reverts commit 4a06bb4f3355b0ef2b76aa883704da9d154c44ae.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
fa0a4bde3fa520aa10de88239af04b45a3e28da0 21-Sep-2009 Andy McFadden <fadden@android.com> Work around gcc 4.0.3 bug.

This appears to fix the sim-eng build on the gDapper build machines.

Basic problem is that LayerBuffer::OverlaySource has a constructor that
calls SurfaceFlinger.signalEvent(). SurfaceFlinger lists LayerBuffer
as a friend, but that's not enough to convince gcc that the embedded
OverlaySource class is also a friend. I don't see a way to make them
friendly, so I marked signalEvent() as public.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
4a06bb4f3355b0ef2b76aa883704da9d154c44ae 18-Sep-2009 Mathias Agopian <mathias@google.com> workaround for [2113743] Sholes: frozen then runtime restart going to list view
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
9779b221e999583ff89e0dfc40e56398737adbb3 08-Sep-2009 Mathias Agopian <mathias@google.com> fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly

Rewrote SurfaceFlinger's buffer management from the ground-up.
The design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.

The main new feature is to be able to dequeue all buffers at once (very important when there are only two).

A client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.

The current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.

eg. Allowed sequence: DQ, DQ, LOCK, Q, LOCK, Q
eg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
a8d49178f94e025be8be00460739315b9c273e4c 27-Aug-2009 Mathias Agopian <mathias@google.com> dumpsys SurfaceFlinger will now always dump SF's state, even if SF is deadlocked
(in this case the state is dumped without the proper locks held which could result to a crash)

in addition, the last transaction and swap times are printed to the dump as well as the time spent
*currently* in these function. For instance, if SF is unresponsive because eglSwapBuffers() is stuck,
this will show up here.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
18b6b49ea5235fb6c0802db9a0cc2c6dd20646cb 20-Aug-2009 Mathias Agopian <mathias@google.com> fix a bug that caused the PixelFormat viewed by Surface to be wrong.

what happened is that the efective pixel format is calculated by SF but Surface nevew had access to it directly.
in particular this caused query(FORMAT) to return the requested format instead of the effective format.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
33863dd9e1005478d20b70fad42e447ac97f5abf 28-Jul-2009 Mathias Agopian <mathias@google.com> resolved conflicts for merge of ac38dfc5 to master
12cedff50ca229a5d025e1011f1518c32e858138 28-Jul-2009 Mathias Agopian <mathias@google.com> fix [2017532] Partial Update leaves residual image.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
94aadce3a266fc63c2ae81e67c847a89c4961ef4 07-Jul-2009 Mathias Agopian <mathias@google.com> trying to fix the sim, I'm not even sure this syntaxe is valid, but my compilo doesn't complain
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
d763b5d9197e01662cafa376e1227e53e0463a3c 03-Jul-2009 Mathias Agopian <mathias@google.com> get rid of references to MemoryDealer in SurfaceFlinger
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
359140c171f67b9b29a1beae9743b49d0759414b 03-Jul-2009 Mathias Agopian <mathias@google.com> free gralloc buffers as soon as possible (when a surface is not visible any longer), client who have the buffers still mapped won't crash, btu may see garbage data
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
6edf5af578c1ab1fcd44b7c08ca371456e4b7430 20-Jun-2009 Mathias Agopian <mathias@google.com> fix a memory corruption where a SF Client could be used after it's been destroyed
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
9cc88529e4cbf54df3eed968666472d3fa658d13 19-Jun-2009 Mathias Agopian <mathias@google.com> implement dimming with a texture on msm7k so it uses copybit
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
151e859e0fc3a930bdf6d270d275e69e9eba0cbf 16-Jun-2009 Mathias Agopian <mathias@google.com> new Permission class used to improve permission checks speed (by caching results)
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
2d5ee25556cb363700dc5127f88ca05fb9493e14 05-Jun-2009 Mathias Agopian <mathias@google.com> fix a bunch of problems with destroying surfaces.

now, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
947f4f4d384ea26eb2145cc070a3eed42c59534a 22-May-2009 Mathias Agopian <mathias@google.com> merge master to master_gl
e755d649771706b24b34e545476c8f2c8f9e09f6 22-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 69a6c3eb: Merge change 2292 into donut

Merge commit '69a6c3ebd46a8de0e896747757f364322c12608d'

* commit '69a6c3ebd46a8de0e896747757f364322c12608d':
split boot animation out of SurfaceFlinger
627e7b50be41e4fdee758a1bfad3a55de56b4e27 22-May-2009 Mathias Agopian <mathias@google.com> split boot animation out of SurfaceFlinger

Conflicts:

data/etc/platform.xml
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
0795272aa226f4e965968a03daddc53ce30b7cda 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
dff8e58d47ede6e748c0b02e128ca33b42a4f362 04-May-2009 Mathias Agopian <mathias@google.com> update surfaceflinger, libui and libagl to the new gralloc api

- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp

- disabled copybits test, since it clashes with the new gralloc api

- Camera/Video will be fixed later when we rework the overlay apis
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
ef07dda442f210bc7a6b5fbdd4a0bed4e6d8ad50 22-Apr-2009 Mathias Agopian <mathias@google.com> get rid of the "show fps" debug option
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
6ead5d9f140529edfb744584fa5427b84b4dc13a 21-Apr-2009 Mathias Agopian <mathias@google.com> a brand new MessageQueue for SurfaceFlinger.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
6cf0db228ca275dfcda57d79c55e5fa306809632 18-Apr-2009 Mathias Agopian <mathias@google.com> more Surface lifetime management

Surfaces are now destroyed once all references from the clients are gone, but they go through a partial destruction as soon as the window manager requests it.
This last part is still buggy. see comments in SurfaceFlinger::destroySurface()
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
17f638b39f2e8b610ecfa1290e5bc42ab7700c98 17-Apr-2009 Mathias Agopian <mathias@google.com> more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.

The WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we'll try to fix later).
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
1473f46cbc82aa6f0ba744cc896a36923823d55b 10-Apr-2009 Mathias Agopian <mathias@google.com> Integrate from //sandbox/mathias/donut/...@145728

SurfaceFlinger rework for new EGL driver model support.
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
eb0c86e18b7d620b679ff2a45a0233867a53a334 28-Mar-2009 Mathias Agopian <> AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143320
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
3552f53c8370ced8680951f4ac811a126da02b0e 28-Mar-2009 Mathias Agopian <> AI 143309: am: CL 143160 am: CL 142856 new-new-new-new rotation animation. it may still change one more time.
Original author: mathias
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143309
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
66b8ec99c5fc505877b3711a52e284bbb451f836 28-Mar-2009 Mathias Agopian <> AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor
Original author: mathias
Merged from: //branches/cupcake/...

Automated import of CL 143171
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
89a187299eeaa9f973ace3dba4916b3fbd36063e 27-Mar-2009 Mathias Agopian <> AI 143160: am: CL 142856 new-new-new-new rotation animation. it may still change one more time.
Original author: mathias
Merged from: //branches/cupcake/...

Automated import of CL 143160
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
afbf448b7d04abe25497f838c1df5d05048f9d12 25-Mar-2009 Mathias Agopian <> Automated import from //branches/master/...@142447,142447
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
2764f30a74484870de03fa1a2aca0c01f991c711 25-Mar-2009 Mathias Agopian <> Automated import from //branches/donutburger/...@142446,142446
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
013456784a6853254acb942209ff4dac95bdf50c 25-Mar-2009 Mathias Agopian <> Automated import from //branches/master/...@141504,141504
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
4cf7abeed2c748314327462986e452fc1ccc6e99 25-Mar-2009 Mathias Agopian <> Automated import from //branches/donutburger/...@141502,141502
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/libs/surfaceflinger/SurfaceFlinger.h