summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger
Commit message (Collapse)AuthorAgeFilesLines
...
* fix [2269022] The raw picture displayed post shutter seems to have ↵Mathias Agopian2009-11-191-1/+6
| | | | | | | low-resolution Make sure to always enable linear filtering in LayerBuffer. This change doesn't affect devices using overlays.
* fix [2262591] Junk on screen in ERD46Mathias Agopian2009-11-162-3/+1
| | | | | | | | since we're using the GPU for composition, don't use a texture for dimming, instead simply use an alpha-blended quad. also workaround what looks like a GL driver bug by calling glFinish() before glReadPixels().
* addresses several bugs: 2206097, 2166583, 2261119, 2216759Mathias Agopian2009-11-131-1/+3
| | | | | | | | | | | | | 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.
* fix [2143798] Need to figure out how to do video on Passion w/ GPUMathias Agopian2009-11-112-9/+69
| | | | | | | | | | This builds on the EGLImage solution. We simply use copybit to convert from the YUV frame into an EGLImage created for that purpose and proceed with the regular EGLImage code. We need to do this because "regular" GL doesn't support YUV textures. We could improve upon this by detecting exacly what the GL supports and bypass this extra step if not required, but we'll do this later if needed.
* fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts ↵Mathias Agopian2009-11-021-0/+2
| | | | | | | | when playing back video we lost the concept of vertical stride when moving video playback to EGLImage. Here we bring it back in a somewhat hacky-way that will work only for the softgl/mdp backend.
* Merge change Id8b28e4f into eclairAndroid (Google) Code Review2009-10-301-3/+4
|\ | | | | | | | | * changes: fix [2225964] Android runtime restarted in surfaceflinger/BlurFilter.cpp
| * fix [2225964] Android runtime restarted in surfaceflinger/BlurFilter.cppMathias Agopian2009-10-291-3/+4
| | | | | | | | | | crash was due to an unintialized variable, which caused the wrong bluring format to be used and caused a memory overrrun.
* | Merge change I56779290 into eclairAndroid (Google) Code Review2009-10-302-21/+41
|\ \ | | | | | | | | | | | | * changes: fix[2222341] Soft reset while going back from camcorder settings
| * | fix[2222341] Soft reset while going back from camcorder settingsMathias Agopian2009-10-302-21/+41
| | | | | | | | | | | | | | | | | | add a way to convert a mapped "pushbuffer" buffer to a gralloc handle which then can be safely used by surfaceflinger, without including gralloc_priv.h
* | | Merge change If007a2fa into eclairAndroid (Google) Code Review2009-10-301-3/+1
|\ \ \ | |/ / | | | | | | | | | * changes: return proper error code from eglCreateImageKHR
| * | return proper error code from eglCreateImageKHRMathias Agopian2009-10-291-3/+1
| |/
* | DO NOT MERGE: Another gcc 4.0.3 workaround.Andy McFadden2009-10-301-0/+2
|/ | | | | | | 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.)
* fix [2143798] Need to figure out how to do videoMathias Agopian2009-10-278-187/+94
| | | | | | | | | 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
* fix [2211532] improves sholes graphics performanceMathias Agopian2009-10-233-64/+146
| | | | | | | Instead of using glTex{Sub}Image2D() to refresh the textures, we're using an EGLImageKHR object backed up by a gralloc buffer. The data is updated using memcpy(). This is faster than glTex{Sub}Image2D() because the texture is not swizzled. It also uses less memory because EGLImageKHW is not limited to power-of-two dimensions.
* fix [2164183] sometimes device just wants to stay asleepMathias Agopian2009-10-071-3/+3
| | | | | | | | | | | When switching rapidily orientation back and forth, surfaces end-up acquiring the freeze-lock when the first orientation change happens, but never release it because by the time the 2nd orientation change comes in, the surface size is back to its original size and doesn't appear to have resized. we now always release the freeze-lock when we receive a buffer of the expected size.
* fix [2170319] gmail bulk operation checkbox latency on passionMathias Agopian2009-10-071-2/+4
| | | | | | | | | | | | | | | This also fixes [2152536] ANR in browser When SF is enqueuing buffers faster than SF dequeues them. The update flag in SF is not counted and under some situations SF will only dequeue the first buffer. The state at this point is not technically corrupted, it's valid, but just delayed by one buffer. In the case of the Browser ANR, because the last enqueued buffer was delayed the resizing of the current buffer couldn't happen. The system would always fall back onto its feet if anything -else- in tried to draw, because the "late" buffer would be picked up then.
* Revert "temporarily disable the use of glTexImage2D for sw buffers on sholes."Mathias Agopian2009-10-061-4/+4
| | | | | | This reverts commit c131c5671965b69b0dee3e4afa3b3dd5e3c0c405. Approved by Hiroshi
* Merge change I4961c959 into eclairAndroid (Google) Code Review2009-10-063-5/+5
|\ | | | | | | | | * changes: fix [2152536] ANR in browser
| * fix [2152536] ANR in browserMathias Agopian2009-10-063-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A window is created and the browser is about to render into it the very first time, at that point it does an IPC to SF to request a new buffer. Meanwhile, the window manager removes that window from the list and the shared memory block it uses is marked as invalid. However, at that point, another window is created and is given the same index (that just go freed), but a different identity and resets the "invalid" bit in the shared block. When we go back to the buffer allocation code, we're stuck because the surface we're allocating for is gone and we don't detect it's invalid because the invalid bit has been reset. It is not sufficient to check for the invalid bit, I should also check that identities match.
* | temporarily disable the use of glTexImage2D for sw buffers on sholes.Mathias Agopian2009-10-061-4/+4
|/ | | | | | we're going to first cut a build without this change. Approved by Dr. Hiroshi.
* fix [2168528] enable glTexImage2D code path in SF for software-only buffersMathias Agopian2009-10-064-5/+23
|
* fix [2167050] glTexImage2D code path buggy in SurfaceFlingerMathias Agopian2009-10-0614-560/+134
| | | | | | | | | | | | | | 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.
* Attempt to fix [2152536] ANR in browserMathias Agopian2009-10-028-33/+16
| | | | | | | | | | | The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable. When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT. This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status in all code paths where a surface is removed from the list. Additionaly added more information in the logs, should this happen again.
* attempt to work around [2155085, 2150246] stuck in closeTransaction()Mathias Agopian2009-09-301-1/+8
|
* fix [2152247] Windows sometimes drawn scaled up.Mathias Agopian2009-09-301-4/+34
|
* invalidate the surface when the physical changesMathias Agopian2009-09-302-7/+10
|
* introduce the notion of the requested size in the Layer stateMathias Agopian2009-09-293-19/+29
|
* remove unused codeMathias Agopian2009-09-293-16/+3
|
* remove dead codeMathias Agopian2009-09-291-6/+0
|
* don't emit GL commands when sf is in freeze modeMathias Agopian2009-09-271-9/+1
| | | | | | | | We were emitting GL commands, calling composition complete and releasing clients without ever calling eglSwapBuffers(), which is completely wrong on non-direct renders. This could cause transient drawing artifacts when unfreezing the screen (upon orientaion change for instance) and could also block the clients for ever as they are waiting for their previous buffer to be rendered.
* Allways dump the list of allocated buffers when an allocation fails.Mathias Agopian2009-09-271-0/+4
| | | | Hopefully this will help us understand cases of failures such as [2148405]
* minor SurfaceFlinger code cleanup and remove unnecessary testsMathias Agopian2009-09-245-79/+67
|
* turn dithering off if it's not neededMathias Agopian2009-09-235-11/+30
|
* fix [2142193] disable GL_LINEAR when not neededMathias Agopian2009-09-233-19/+32
|
* fix [2133214] STOPSHIP: revert I4a06bb4f: workaround for [2113743] Sholes: ↵Mathias Agopian2009-09-233-20/+6
| | | | | | | | 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.
* Work around gcc 4.0.3 bug.Andy McFadden2009-09-211-0/+2
| | | | | | | | | | 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.
* workaround for [2113743] Sholes: frozen then runtime restart going to list viewMathias Agopian2009-09-203-6/+20
|
* fix [2129080] Soft reboot after clicking around and then rubbing the screenMathias Agopian2009-09-171-3/+9
|
* Android side of the fix for [2121211] Sholes has stutter during animationsMathias Agopian2009-09-173-3/+8
| | | | 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
* add basic time stats for surfaces lock timeMathias Agopian2009-09-171-2/+3
|
* Overlay could not set position or rotation immediately after created, it ↵Benny Wong2009-09-161-0/+1
| | | | | | should be triggered by signalEvent(). Originally from: https://partner.source.android.com/g/#change,1074
* disable backbuffer preservation when possible, which may improve performance ↵Mathias Agopian2009-09-161-0/+7
| | | | a bit
* fix [2119400] sholes: artifacting when switching orientationMathias Agopian2009-09-161-13/+13
|
* fix again [2102410] Home Screen is not displayed in the background in ↵Mathias Agopian2009-09-163-18/+84
| | | | Landscape Mode
* revert to black video background, since we don't need the color-key anylongerMathias Agopian2009-09-151-1/+2
|
* add support for RGBX_8888 surfaces in SurfaceFlingerMathias Agopian2009-09-143-2/+10
|
* fix [2117464] SF can crash when calling dumpsysMathias Agopian2009-09-141-2/+13
|
* fix [2112575] stuck on DequeueCondition for a surface that doesn't exist anymoreMathias Agopian2009-09-105-25/+65
| | | | this also fixes part of [2111536] Device is soft rebooted after ending the call through voice dialer
* add a debug property to disable h/w composition. debug.sf.hw, when set to 0 ↵Mathias Agopian2009-09-091-2/+13
| | | | will disable h/w composition
* fix [2102410] Home Screen is not displayed in the background in Landscape ModeMathias Agopian2009-09-092-11/+35
| | | | the blurring code now handles NPOT textures.