| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Idd67a3f936deae7ba5d1cd5000d191fad271381e
|
|
|
|
|
|
| |
Bug: 5010576
Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
|
|
|
|
|
|
|
|
|
|
|
|
| |
this is the first step in unifying surfacetexture and surface.
for this reason the header files were not moved, as most of them
will eventually go away.
NOTE: currently we keep libsurfaceflinger_client.so as an empty
library to workaround prebuilt binaries wrongly linking against
it.
Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
API addition: The timestamps are represented as nanoseconds from some
arbitrary time point. Like the SurfaceTexture transform matrix, the
timestamp retrieved by getTimestamp is for the last frame sent to the
GL texture using updateTexImage().
Camera HAL change: Expect vendors to set these timestamps using
native_window_set_buffers_timestamp(). For now, they are
autogenerated by SurfaceTextureClient if set_buffers_timestamp() is
never called, but such timing is likely not accurate enough to pass a
CTS test.
bug:3300707
Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
|
|
|
|
|
|
|
|
| |
This change adds a query to the ANativeWindow interface for getting the
concrete type of the ANativeWindow.
Bug: 4086509
Change-Id: I64aa86d72fbca3b52a98e1fc35608737781a3178
|
|
|
|
|
|
|
|
|
| |
This change makes SurfaceFlinger treat layers for which the active
buffer has the GRALLOC_USAGE_PROTECTED bit set as if they have the
'secure' flag set.
Change-Id: Ic60b6513a63e4bb92ec6ce9fd12fd39b4ba5f674
Bug: 4081304
|
|
|
|
|
|
|
|
|
| |
This change adds a new 'method' to the ANativeWindow interface to check
whether buffers queued to the window will be sent directly to the system
window compositor.
Change-Id: I4d4b199e328c110b68b250029aea650f03c8724d
Bug: 3495535
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds a new query to ANativeWindow for getting the minimum
number of buffers that must be left un-dequeued during the steady-state
operation of the ANativeWindow.
Change-Id: Ie8c461fc26b02ecde02ddb4f95bf763662cf1551
Related-Bug: 3356050
|
|/
|
|
|
|
|
|
|
| |
This change adds a null pointer check before dereferencing buffers in
a Surface list of known GraphicBuffer objects. If not all the buffers
have been dequeued before this list can legitimately contain NULL
entries.
Change-Id: I0e105b53a3f6f9a5404716b7bf150c793ff648a6
|
|
|
|
|
|
|
| |
this is useful for running standalone tests
with standalone SurfaceFlinger.
Change-Id: I08d054f6214affa3a777a82765f4e0bd256ba26d
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changes the ANativeWindow API and the two implementations to reset
the window's crop rectangle to be uncropped when the window's buffer
geometry is changed.
Bug: 3359604
Change-Id: I64283dc8382ae687787ec0bebe6a5d5b4a0dcd6b
|
|\ \
| |/
|/|
| |
| |
| |
| | |
gingerbread
* commit '72abf01a8b6958ac1f86d36302a8462c4f51fd9d':
Fix the ISurfaceComposer onTransact switch.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Two of the cases in the ISurfaceComposer onTransact switch statement
were missing 'break' statements at the end, and would fall through to
the next case block. This change adds those break statements.
Change-Id: I6dcc84263d3ea03d94612c667103283846b3dee1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.
noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.
Change-Id: I210413d4c8c0998dae05c8620ebfc895d3e6233d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Generally we never want to lock a buffer for write access if it is at
the "head" on the surfaceflinger side. The only exception (1) is when
the buffer is not currently in use AND there is at least one queued
buffer -- in which case, SurfaceFlinger will never use said buffer
anymore, because on the next composition around, it will be able to
retire the first queued buffer.
The logic above relies on SurfaceFlinger always retiring
and locking a buffer before composition -- unfortunately this
didn't happen during a screenshot.
This could leave us in a situation where a buffer is locked by the
application for write, and used by SurfaceFlinger for texturing,
causing a hang.
Here, we fix this issue by never assuming the exception (1), it was
intended as an optimization allowing ANativeWindow::lockBuffer() to
return sooner and was justified when most of SF composition was
done in software. The actual buffer locking is now ensured by
gralloc. We could have handled screenshots in a similar way to
a regular composition, but it could have caused glitches on screen,
essentially, taking a screenshot could cause to skip a frame.
Change-Id: I1f226b1ebdf6918439b687c2723955d55b842c55
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
when we validate the surface there, most errors are in fact allowed
because it is legal to cancel a buffer after a surface has been
destroyed (for instance). in that case make sure to not log
error messages as they are very confusing.
Change-Id: Iecdfbaf6d9ee5da54d56cd7ea7a0d430c30934b0
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change fixes a horrible hack that I did to allow application
processes to create GraphicBuffer objects by making a binder call to
SurfaceFlinger. This change introduces a new binder interface
specifically for doing this, and does it in such a way that
SurfaceFlinger will maintain a reference to the buffers until the app is
done with them.
Change-Id: Icb240397c6c206d7f69124c1497a829f051cb49b
|
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds a new binder method to the ISurfaceComposer interface.
This IPC is intended to allow SurfaceFlinger clients to allocate gralloc
buffers using SurfaceFlinger as a proxy to gralloc.
Change-Id: Ide9fc283aec5da6268ba62cfed0c3319a50b640d
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I3bdca74351c8e480a05084bc412a96c5f685221d
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | | |
Change-Id: I38e260dd47349b9af3a999dda683a083a94be16d
|
|/ /
| |
| |
| | |
Change-Id: Id7351a0e3f53dde99b291cffba553d89fd4d7ca9
|
| |
| |
| |
| |
| |
| |
| | |
the same functionality is now supported through
the h/w composer HAL, and YUV support in the GPU.
Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
|
| |
| |
| |
| |
| | |
Change-Id: I7f979c60c06d654aa8265002836277434bc1a64f
Bug: 3095167
|
| |
| |
| |
| | |
Change-Id: Id744e71d2cd23c287925a5090e13a6d9908cdd99
|
|\ \
| |/
| |
| | |
on its buffers format" into gingerbread
|
| |
| |
| |
| |
| |
| |
| |
| | |
this is to allow applications to change the format of a surface's
buffer, and have it reflected in EGL; which is needed for
EGLConfig validation.
Change-Id: Iee074c30ad765881e2409c1d37450b05e561c44d
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
for screen on and screen off add support for screen on animation" into gingerbread
Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f'
* commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f':
implement part of [3094280] New animation for screen on and screen off
|
| |
| |
| |
| |
| |
| | |
add support for screen on animation
Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96'
* commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96':
Remove dead code, and make the animation a setting.
turn off the electron beam
|
| |
| |
| |
| | |
Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Register buffers with Gralloc when unflattening a GraphicBuffer (rather than
doing it in the Surface class).
- Add support for a GraphicBuffer that wraps an android_native_window_t*.
Change-Id: I029ac086111bbac800e5ca37eb505f558b718cd8
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
buffers to ANativeWindow" into gingerbread
Merge commit 'ff04e97faf75c435e453d4c1caf7eeac8b9c1ceb'
* commit 'ff04e97faf75c435e453d4c1caf7eeac8b9c1ceb':
fix [2835280] Add support for cancelling buffers to ANativeWindow
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a new ANativeWindow::cancelBuffer() API that can be used to
cancel any dequeued buffer, BEFORE it's been enqueued. The buffer is
returned to the list of availlable buffers. dequeue and cancel are not
mutually thread safe, they must be called from the same thread or
external synchronization must be used.
Change-Id: I86cc7985bace8b6a93ad2c75d2bef5c3c2cb4d61
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.
we also now have some client code to interface with the screenshot service.
it's now possible to request a screenshot at a lower resolution.
Change-Id: I33689bba98507ab928d0898b21596d0d2fe4b953
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.
we also now have some client code to interface with the screenshot service.
it's now possible to request a screenshot at a lower resolution.
Change-Id: I5a3b0e431421800e3aad601d9af8f94adffbc71f
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Merge commit '495ad4f22096aa172d025c16c25497e7dad8f2bd'
* commit '495ad4f22096aa172d025c16c25497e7dad8f2bd':
simple test app for screen capture API
add support for [1974164] Be able to take a screen shot on the device
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
screenshots are taken using ISurfaceComposer::captureScreen() which returns
the size of the screenshot and an IMemoryHeap containing the data.
screenshots have limitations:
- they will always fail if a secure window is up on screen
- require GL_OES_framebuffer_object extension
- in some situation, video planes won't been captured
Change-Id: I741c68a2d2984fb139039301c3349e6780e2cd58
|
|\ \
| |/
| |
| | |
Change-Id: I2305fef9f4dd46183337217d822df3c675b6b6e5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are 16 events logged in the event log:
SF_APP_DEQUEUE_BEFORE
SF_APP_DEQUEUE_AFTER
SF_APP_LOCK_BEFORE
SF_APP_LOCK_AFTER
SF_APP_QUEUE
SF_REPAINT
SF_COMPOSITION_COMPLETE
SF_UNLOCK_CLIENTS
SF_SWAP_BUFFERS
SF_REPAINT_DONE
SF_FB_POST_BEFORE
SF_FB_POST_AFTER
SF_FB_DEQUEUE_BEFORE
SF_FB_DEQUEUE_AFTER
SF_FB_LOCK_BEFORE
SF_FB_LOCK_AFTER
all events log the buffer conserned and a timestamp in microseconds.
by default the logging is not enabled, to turn it on:
adb shell service call SurfaceFlinger 1006 i31 1
adb shell setprop debug.graphic_log 1
The effect is immediate in SurfaceFlinger, but applications need to be
restarted.
Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
gingerbread
Merge commit 'd322d16323176ddd5fef3383798176f64d0078c8'
* commit 'd322d16323176ddd5fef3383798176f64d0078c8':
fix a race in SF buffer management
|
| |
| |
| |
| |
| |
| | |
also remove some unused code.
Change-Id: Iae2c3309b7a08055f3e13a5b866c5c084993e352
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
orientation of an ANativeWindow" into gingerbread
Merge commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64'
* commit 'bc4389edfbb5777aec1a9af7863b2ca3ade2fa64':
fix [2931513] Add support for setting the orientation of an ANativeWindow
|
| |
| |
| |
| |
| |
| | |
Also implement support for cropping.
Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
|
|/
|
|
|
|
|
|
|
|
|
|
| |
This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated. The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface. The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.
Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dequeue all allocated buffers at once.
this situation happened when the last buffer needed to be resized
(or allocated, the first time). the assumption was that the buffer
was in use by SF itself as the current buffer (obviously, this
assumption made no sense when the buffer had never been allocated, btw).
the system would wait until some other buffer became the "front" buffer.
we fix this problem by entirely removing the requirement that the
buffer being resized cannot be the front buffer. instead, we just
allocate a new buffer and replace the front buffer by the new one.
the downside is that this uses more memory (an extra buffer) for a
brief amount of time while the old buffer is being reallocated and
before it has actually been replaced.
Change-Id: I022e4621209474ceb1c671b23deb4188eaaa7285
|