History log of /frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
00d0b54af1a6405366a659b34f0022dedf054ddf 03-Dec-2009 Erik Gilling <konkers@android.com> surfaceflinger: remove un-cached buffer hack for SGX

Signed-off-by: Erik Gilling <konkers@android.com>
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
830df4b16971527b07a829cf80a0c9e07a89b89a 14-Nov-2009 Mathias Agopian <mathias@google.com> addresses several bugs: 2206097, 2166583, 2261119, 2216759

2206097: Broken suggestions while composing message
2166583: Color artifacts with MDP dithering
2261119: Passion transition animations are rough
2216759: Screen flicker when dropdown list in background window shows or hides

This is part of enabling GPU composition instead of using the MDP. This change
is dependent on another change in the vendor project.

Specifically this change disables the use of EGLImageKHR for s/w buffers
for cache coherency reasons. memcpy is used instead.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
9042b4564de5477b18e680c7dce13b587a681dd9 27-Oct-2009 Mathias Agopian <mathias@google.com> fix [2143798] Need to figure out how to do video

Use EGLImageKHR instead of copybit directly.
We now have the basis to use streaming YUV textures (well, in fact
we already are). When/if we use the GPU instead of the MDP we'll
need to make sure it supports the appropriate YUV format.

Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
460b60c9b064ef02e9eaf56ecf2f266fd7c4089c 07-Oct-2009 Mathias Agopian <mathias@google.com> Revert "temporarily disable the use of glTexImage2D for sw buffers on sholes."

This reverts commit c131c5671965b69b0dee3e4afa3b3dd5e3c0c405.

Approved by Hiroshi
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
c131c5671965b69b0dee3e4afa3b3dd5e3c0c405 07-Oct-2009 Mathias Agopian <mathias@google.com> temporarily disable the use of glTexImage2D for sw buffers on sholes.

we're going to first cut a build without this change.

Approved by Dr. Hiroshi.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
351a7073fb60eb3534ec8c69ab263f057a124500 06-Oct-2009 Mathias Agopian <mathias@google.com> fix [2168528] enable glTexImage2D code path in SF for software-only buffers
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
f2d28b74850ea0869aef2ce0727a6abb7b166a5c 24-Sep-2009 Mathias Agopian <mathias@google.com> minor SurfaceFlinger code cleanup and remove unnecessary tests
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
b1a1874625a6aca967601fcda53a82d8d712df45 18-Sep-2009 Mathias Agopian <mathias@google.com> Android side of the fix for [2121211] Sholes has stutter during animations

a new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
af369f6280c9eec0caa3f53f8e27f3713e1a7d25 17-Sep-2009 Mathias Agopian <mathias@google.com> disable backbuffer preservation when possible, which may improve performance a bit
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
24d237db943051942b5966f5e788d67050ec0ba5 05-Sep-2009 Mathias Agopian <mathias@google.com> add a debug property to disable h/w composition. debug.sf.hw, when set to 0 will disable h/w composition
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
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/DisplayHardware/DisplayHardware.cpp
42fd8050ba2dafe0a697fb5a6929ba086ce80426 13-Aug-2009 Mathias Agopian <mathias@google.com> make sure EGL_ANDROID_swap_rectangle is actually supported before using it
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
88e3e6bd04dcf166ddd92ce3a84e1f9f54ac2f66 13-Aug-2009 Mathias Agopian <mathias@google.com> Better error handling in EGL extensions
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38 08-Aug-2009 Mathias Agopian <mathias@google.com> minor code clean-up
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
265d9c076a588cf4cd811fbafd999c7ffe36641b 07-Aug-2009 Mathias Agopian <mathias@google.com> added two EGL helpers for selecting a config matching a certain pixelformat or native window type
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
b2b28f31228139395c6f4930c3374f758f68f501 29-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 1521cd6e: Merge change 8015 into donut

Merge commit '1521cd6e657ba4efa9382ab73d3cbba3bdf50ead'

* commit '1521cd6e657ba4efa9382ab73d3cbba3bdf50ead':
Reset the mDpiX and mDpiY values when qemu.sf.lcd_density is defined.
d75fe9aa835b0811911e1727de8e15b329dafd49 29-Jul-2009 David 'Digit' Turner <digit@google.com> Reset the mDpiX and mDpiY values when qemu.sf.lcd_density is defined.

This will make android.view.Display return corresponding values for
the screen's DPI.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
cafec0325010926130b03ce7ba50b2b180905e37 10-Jul-2009 Mathias Agopian <mathias@google.com> fix [1969200] Uninitialized double passed to Math.sqrt()
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
3a6b160a3b52cd96fb383d5ee93c22e5e938e0e2 30-Jun-2009 Mathias Agopian <mathias@google.com> when there is a choice between UPDATE_ON_DEMAND and SWAP_BUFFER optimizations, choose UPDATE_ON_DEMAND which is often more efficient.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
ecfa7ccd4fc3066a4cfd4d84d7de286d95581c78 30-Jun-2009 Mathias Agopian <mathias@google.com> fix a bug that caused artifacts when SWAP_RECTANGLE was enabled
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
8c9687ae291a1e0a63d4236069066284f56192cd 27-Jun-2009 Mathias Agopian <mathias@google.com> fix an update bug with SHOW_UPDATE debug feature. Fix a problem with the debug binder codes too
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
26c28b16f3464eeb98b091b915ccf494ac31c35f 25-Jun-2009 Mathias Agopian <mathias@google.com> make use of new eglGetRenderBufferANDROID extension to clean-up a bit a few hacks added recently
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
cbc4c9f8d56317b2fe8964c15c9785ebeef98ca7 24-Jun-2009 Mathias Agopian <mathias@google.com> hack copybit back in for video playback on msm7k. we have h/w accelerated video again
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
f73bbd042367b65780316d2335784686dedd0459 20-Jun-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master
3c08a446c5b4f2682da1d8461bd1ed94060c29dc 19-Jun-2009 David 'Digit' Turner <digit@google.com> Fix sim-eng build and simplify previous lcd-density related patch
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
2a578ae518ff3d8a2d4768b3d190e4702509e82c 18-Jun-2009 David 'Digit' Turner <digit@google.com> Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density

ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.

In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop

This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.

A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
e19476214a2fe718c82461f54e6b56cee7faa5f4 12-Jun-2009 Mathias Agopian <mathias@google.com> protect ANDROID specific egl extension with #define
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
1277bb01166bc7ef75305014cff36166b4c2b393 03-Jun-2009 Mathias Agopian <mathias@google.com> when looking for an EGLConfig always pick the first one that matches, not the last one
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
97b8056c3182a973c67d3c1b196150d4b9e30f3a 08-May-2009 Mathias Agopian <mathias@google.com> add support for update-on-demand in SurfaceFlinger
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
927d37cb788670b91af0f1a7a93c68046a838d23 07-May-2009 Mathias Agopian <mathias@google.com> fix EGL extension string names
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
2e20bffbab8084fedce39d14d7dd17b08f6e9ba2 05-May-2009 Mathias Agopian <mathias@google.com> created an new EGL extension called ANDROID_swap_rectangle

ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.

However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
ac2523b161df2bb507cc88906bb070878266770d 06-May-2009 Mathias Agopian <mathias@google.com> move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don't include it from egl.h

the android_native_ types are just forward declared in egl.h
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
6279619e4279daf77feff0c76e089b26ad66124f 05-May-2009 Mathias Agopian <mathias@google.com> minor clean-up in FramebufferNativeWindow
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
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/DisplayHardware/DisplayHardware.cpp
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/DisplayHardware/DisplayHardware.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp