summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* fix [2037525] Fail to start camera after adb sync new CameraMathias Agopian2009-09-092-33/+29
| | | | | | | | | we ended-up locking a Mutex that had been destroyed. This happened because we gave an sp<Source> to the outside world, and were called after LayerBuffer had been destroyed. Instead we now give a wp<LayerBuffer> to the outside and have it do the destruction.
* rename Mutexes to make the code easier to followMathias Agopian2009-09-082-19/+21
|
* delete old and unused source filesMathias Agopian2009-09-0710-1864/+0
|
* fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properlyMathias Agopian2009-09-0715-689/+278
| | | | | | | | | | | | | | | 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
* attempt to fix [2099362] Possible SurfaceFlinger crashMathias Agopian2009-09-041-2/+6
|
* fix [2098939] Smooth gradients show banding on SholesMathias Agopian2009-09-041-1/+2
|
* Add colorkey to gl clear operationRebecca Schultz Zavin2009-09-023-4/+17
| | | | Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
* dumpsys SurfaceFlinger will now always dump SF's state, even if SF is deadlockedMathias Agopian2009-08-262-1/+58
| | | | | | | | (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.
* fix a bug that caused the PixelFormat viewed by Surface to be wrong.Mathias Agopian2009-08-194-18/+17
| | | | | 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.
* fix [2063336] Surface.lockSurface throws IllegalArgumentException when out ↵Mathias Agopian2009-08-191-5/+3
| | | | of memory
* fix a bug that could cause a window to be hidden in some cases.Mathias Agopian2009-08-131-1/+6
| | | | | | | this would happen is the window is made visible but the client didn't render yet into it. This happens often with SurfaceView. Instead of filling the window with solid black, SF would simply ignore it which could lead to more disturbing artifacts. in theory the window manager should not display a window before it has been drawn into, but it does happen occasionnaly.
* Surface::GPU and Surface::HARDWARE are now deprecated; they will be set ↵Mathias Agopian2009-08-132-5/+0
| | | | | | automatically if needed. this also ripples into the window manager API by making some constant there deprecated as well.
* make sure EGL_ANDROID_swap_rectangle is actually supported before using itMathias Agopian2009-08-121-4/+11
|
* Better error handling in EGL extensionsMathias Agopian2009-08-121-1/+1
|
* second take, hopefully this time it doesn't break one of the builds: ↵Mathias Agopian2009-08-112-4/+2
| | | | "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
* second take, hopefully this time it doesn't break one of the builds: ↵Mathias Agopian2009-08-118-28/+32
| | | | "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
* Revert "SurfaceFlinger will now allocate buffers based on the usage ↵Fred Quintana2009-08-118-32/+28
| | | | | | specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything." This reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.
* SurfaceFlinger will now allocate buffers based on the usage specified by the ↵Mathias Agopian2009-08-118-28/+32
| | | | | | | clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything. This change makes SurfaceHolder.setType(GPU) obsolete (it's now ignored). Added an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.
* enable HW acceleration for the Dim Surface on 8k devicesMathias Agopian2009-08-101-0/+3
|
* remove unused and confusing commentMathias Agopian2009-08-071-10/+0
|
* minor code clean-upMathias Agopian2009-08-071-36/+15
|
* added two EGL helpers for selecting a config matching a certain pixelformat ↵Mathias Agopian2009-08-061-26/+6
| | | | or native window type
* free surface buffers before trying to allocate new ones, so we have more ↵Mathias Agopian2009-08-031-0/+1
| | | | chance of success
* NPOT EGLimage without GL_ARB_texture_non_power_of_two would be improperly ↵Mathias Agopian2009-07-301-1/+2
| | | | | | | | | | | | scalled The current gralloc allocates buffer memory for render targets that will typically have NPOT dimensions. Assuming that the vendor driver supports converting the resulting NPOT android_native_buffer_t to a NPOT EGLImage, SurfaceFlinger calls glEGLImageTargetTexture2DOES(), and uses glGetError() to test whether the GL can support creating an EGL target texture with the specified NPOT EGLImage. If it is supported, the DIRECT_TEXTURE flag remains set, otherwise it is cleared. Tangentially, if the driver advertises the GL_ARB_texture_non_power_of_two extension, the NPOT_EXTENSION flag is set, otherwise it is cleared. If the driver supported creating an EGL target texture from a NPOT source EGLImage, it implicitly creates a NPOT texture. This does not need any glScalef() texture coordinate correction in LayerBase::drawWithOpenGL(). However, the same driver may not advertise the GL_ARB_texture_non_power_of_two extension nor generally support NPOT textures that were not derived from EGLImages. So SurfaceFlinger may flag only DIRECT_TEXTURE, not NPOT_EXTENSION. Therefore, the test in LayerBase::drawWithOpenGL() should only perform the glScalef() if neither NPOT_EXTENSION or DIRECT_TEXTURE are flagged. Otherwise scaling is applied to NPOT EGL target textures when none is required.
* am 1521cd6e: Merge change 8015 into donutAndroid (Google) Code Review2009-07-291-0/+3
|\ | | | | | | | | | | | | Merge commit '1521cd6e657ba4efa9382ab73d3cbba3bdf50ead' * commit '1521cd6e657ba4efa9382ab73d3cbba3bdf50ead': Reset the mDpiX and mDpiY values when qemu.sf.lcd_density is defined.