| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug #11829 that can be found here:
http://code.google.com/p/android/issues/detail?id=11829
causes various graphic artefacts.
According to naseer.ahmed it needed modifications in SurfaceFlinger and libagl
The modifications comes from:
https://www.codeaurora.org/gitweb/quic/la/?p=platform/frameworks/base.git;a=shortlog;h=refs/heads/froyo_almond
at commit 33e6506d96d7602284e18ea8c66dbfd04dc72aa3
Change-Id: I703bace69cb7a41ac8ed69ca1e28b98aa618e0f3
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
|
|
|
|
| |
Change-Id: Ic6daad4beb95941a4323384adea85b6312682927
|
|
|
|
|
|
|
|
|
| |
Disable the use of DIM_WITH_TEXTURE flag which uses OpenGL textures for a specific platform.
If Display Hardware uses SLOW_CONFIG, use OpenGL textures for speedup.
This improves scrolling response in LayerDim menus.
Change-Id: Icda97eaab3e0745e5b0841a7f5c866283999356d
CRs-fixed: 253607
|
|
|
|
|
|
|
|
|
|
|
| |
orientation change
Current code swaps the width and height by assuming that aspect
ratio of the buffer width and height will be same as that of the
layout clip width and height. That is not always true.
Change the check to orientation change.
Change-Id: Ie387f3a7369025427484e4173cbde7a08df2b9d7
|
| |
|
|
|
|
|
|
| |
Added support for user-defined calibration.
Added support for user-defined calibration.
|
| |
|
| |
|
|
|
|
|
|
| |
older devices.
Change-Id: I6a1dbe519df3b07292d738ffa9f6be95b794875e
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds a mRenderEffect variable that can be used
to control rendering effects at runtime. One example effect
of "night mode" is included which renders the entire system
in using a red-only filter.
In particular, this is useful on devices with OLED displays
where the power consumption of the red channel is much less
than green and blue.
Change-Id: I64fb47a186e5b1c6be5db7e179ab6796e66bf341
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the window manger puts SurfaceViews up before they have been
rendered into, because of that surfaceflinger doesn't have
anything ready to draw for that surface when an udpate occurs
and responds by filling the surface with black.
With this fix, we only fill those areas of the framebuffer
that would otherwise be undefined (no content at all).
in the Flash case, the "flash" window is not drawn at all
until it has some content, instead the underlaying browser
window is shown.
Change-Id: Ifb610f7f8c27b88edf83e09adc4803fc295c15a1
|
|
|
|
|
|
|
|
| |
<= 16
don't use glDrawTexi() anymore
Change-Id: If71334de39114b0edce7771366f8d8dc26f6911e
|
|
|
|
|
|
|
|
|
|
| |
causes it to reboot (runtime restart)
We now limit the size of the surface to the maximum size supported by the GPU.
On Nexus One this will 2048 -- it could be different on other devices.
Surface creation fails if the limit is exceeded.
Change-Id: I9ecfc2e9c58c9e283782b61ebfc6b590f71df785
|
|
|
|
|
|
| |
it resized
Change-Id: Ib9a3622e7a568ba26717a93b5bfa4a191651f4d0
|
|
|
|
|
|
|
|
|
| |
captured picture on Sapphire
if a buffer couldn't be allocated because of an OOM, SF could, in some case dereference
a null pointer.
Change-Id: I5321248c38a21e56d5278b6aada2694e64451378
|
|
|
|
| |
Change-Id: I450191f1335f57bffc51aff3e27295395847dbc0
|
|
|
|
| |
Change-Id: I6a57f89c25defc293fd748cc1fbd710031c02ec2
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- fix a bug when hacking video buffers into gralloc buffers
where the buffer size was incorrect this was causing the
"direct-form-texture" mode to fail
- also when the above fails, make sure to revert to the
"mdp copy mode" before going to "slow mode"
- finally disable completely the "direct-from-texture" mode
for now. It cannot work because the allocated buffers can't
respect the GPU constraints (alignment and such). We'll
have to find a solution for that.
|
|/
|
|
|
| |
Change-Id: I5ae4e74bfa3e25b55be2cddf7b3c51368a140ab9
Signed-off-by: Dima Zavin <dima@android.com>
|
|
|
|
|
| |
the "freeze" timeout was not initialized properly which caused it
to kick-in immediately instead of after 5s
|
|
|
|
|
| |
Updated the window manager to use this new facility.
Surfaces name are now printed by "dumpsys".
|
|
|
|
| |
log SF's idea of the front buffer in dumpsys.
|
|
|
|
|
| |
libskia was only used for a small part of SkTransform. We now implement
Transform is surfaceflinger directly.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
We now always first try to use the EGLImageKHR directly before
making a copy with copybit. The copy may be needed when
EGLImage doesn't support the requested format, which is
currently the case with YUV.
|
| |
|
|
|
|
| |
portrait mode.
|
| |
|
|
|
|
|
| |
create the texture name once and for all for a given BufferSource
and make sure to recreate it when we're forced to delete the texture.
|
|
|
|
|
| |
handled all cases where the scale factor of a video is out of bounds of
supported scale factors in copybit.
|
|
|
|
|
|
|
|
|
| |
snapshot
make sure to fallback properly to software when copybit operation fails.
with this change, the preview image will at least be displayed in b&w
(since GL doesn't support the yuv format). This would also fix
2363506, but that one is now handled more cleanly.
|
|
|
|
| |
don't try to use copybit for incompatible buffers
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
screen is truncated after launching and back to home screen by home key repeatedly
When a surface is removed from the screen while it holds a "freeze lock", the
release of that lock happens in the destructor as a "safety net". However, it
doesn't trigger an update at that point.
Make sure that "freeze locks" are released from the transaction at the point
a surface is removed from the screen (if it's not on screen, it shouldn't
prevent the screen to redraw, and therefore cannot hold a freeze lock).
The refresh corresponding to that transaction will pick it up as soon as possible.
|
|
|
|
|
| |
never call eglCreateImageKHR() with a NULL native buffer, which can
happen in OOM conditions.
|
|
|
|
|
|
|
|
|
|
| |
this was introduced by a recent change. when we try to figure out the size of
the yuv->rgb temporary buffer, the output resolution has not been computed yet
and an invalid buffer size is used. most of the time the allocation fails
and the system reverts to "standard" GL will uses onle the Y plane.
the allocation of the temporary buffer is moved to onDraw(), the first
time it is called, by that time, the window is positioned properly.
|
|
|
|
|
|
|
|
| |
always rescale videos to their target size using copybit during yuv->rgb
conversion. this improves performance of the GPU pass and doesn't require
linear filtering to be enabled. Also always use 16-bits buffers.
the average processing time for 720p dropped from ~50ms to ~30ms
|
|
|
|
| |
This reverts commit bf0c320afbf6bf2441916755ecb443b64afbe73f.
|
|
|
|
| |
Signed-off-by: Erik Gilling <konkers@android.com>
|
|
|
|
|
|
| |
The image buffer used by glTexImage2d() would be uninitialized when no copybit engine
can be found.
We now always initialize images, since the abscence of copybit is not necessarily fatal.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
always check that the visible region isn't empty after all visible regions are recomputed
clear he freeze-lock if it is.
|
| |
|
|
|
|
|
| |
we had to add a call to glFinish() before glReadPixels() because of a bug in the GL ES
driver of a certain device. This is not needed anymore.
|