| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Surfaces can now be parcelized and sent to remote
processes. When a surface crosses a process
boundary, it looses its connection with the
current process and gets attached to the new one.
Change-Id: I39c7b055bcd3ea1162ef2718d3d4b866bf7c81c0
|
| |
|
|
|
|
| |
Change-Id: If3c5655d1231f8f0c49ba68f972b1b20c93b3f87
|
|
|
|
|
|
|
| |
simplified things a lot, the biggest change is that the concept
of "ClientID" is now gone, instead we simply use references.
Change-Id: Icbc57f80865884aa5f35ad0d0a0db26f19f9f7ce
|
|
|
|
|
|
|
|
|
|
|
| |
opaque 32-bits windows are now allocated as RGBX_8888 buffers and
SurfaceFlinger always uses GL_MODULATE instead of trying to
optimize to GL_REPLACE when possible (makes no sense on
h/w accelerated GL).
we still have a small hack for devices that don't support
RGBX_8888 in their gralloc implementation where we revert to
RGBA_8888.
|
|
|
|
|
|
|
| |
the most important change here is the renaming of
ISurfaceFlingerClient to ISurfaceComposerClient
Change-Id: I94e18b0417f50e06f21377446639c61f65f959b3
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
edges
we were incorrectly flagging push_buffer surfaces as invalid
Change-Id: I4dfd4ffbbe8a71f7e23e835db8d71966416c29bb
|
|
|
|
|
|
|
|
|
| |
the new native_window_set_buffers_geometry allows
to specify a size and format for all buffers to be
dequeued. the buffer will be scalled to the window's
size.
Change-Id: I2c378b85c88d29cdd827a5f319d5c704d79ba381
|
|
|
|
|
|
|
|
| |
this change introduces R/W locks in the right places.
on the server-side, it guarantees that setBufferCount()
is synchronized with "retire" and "resize".
on the client-side, it guarantees that setBufferCount()
is synchronized with "dequeue", "lockbuffer" and "queue"
|
|
|
|
|
|
| |
this fixes the issue where the display is all messed-up sometimes.
Change-Id: I20be91b5166bfff0c6d353a777351842c9df8e95
|
|
|
|
|
|
| |
there is a new resize() api, which currently only allows growing.
Change-Id: Ia37b81b73be466d2491ffed7f3a23cd8e113c6fe
|
|
|
|
|
|
|
|
|
|
|
|
| |
the new TextureMagager class now handle texture creation and upload
as well as EGL image creation and binding to GraphicBuffers. This is
used indirectly by Layer and directly by LayerBuffer
the new BufferManager class handles the set of buffers used for a
Layer (Surface), it abstracts how many buffer there is as well as
the use of EGLimage vs. regular texture ops (glTexImage2D).
Change-Id: I2da1ddcf27758e6731400f6cc4e20bef35c0a39a
|
|
|
|
|
|
|
|
| |
this hack was used for gpus that don't support cached buffers
for s/w clients. currently we have no gpu with this issue.
this removes quite a bit of complexity.
Change-Id: I72564669f124f92805030e61983711f61c76b6d9
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
of a pinch zoom." into froyo
Merge commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59' into kraken
* commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59':
fix [2664345] Flash: Bad flicker at the end of a pinch zoom.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
get rid of the "fake rtti" code, and use polymorphism instead.
also simplify how we log SF's state (using polymorphism)
Change-Id: I2bae7c98de4dd207a3e2b00083fa3fde7c467922
|
| |
| |
| |
| | |
Change-Id: I83438b40effd21538f1c74396dc665254b9d5ab6
|
| |
| |
| |
| |
| |
| | |
get rid of the glDrawTexi path and use floating points instead of fixed point maths
Change-Id: I3aa9ce2dc082f702160e605a16ba5fe987cdf087
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
content crashes the Nexus One and causes it to reboot (runtime restart)" into froyo
Merge commit 'e7d5a2f9ae47d8ea8face3f1e451314ed36f4026' into kraken
* commit 'e7d5a2f9ae47d8ea8face3f1e451314ed36f4026':
fix [2594950] Flash: Zooming in on some content crashes the Nexus One and causes it to reboot (runtime restart)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
Change-Id: If3b0774b70cbe943894c15ffa1da111ad887010f
|
|
|
|
|
|
| |
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.
|