| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hand merge from ics-aah
> Utils: Fix a bug in the linear transformation code.
>
> Fix a bug where an incorrect result would be computed if you used the
> linear transformation code to do a reverse transformation (from B's
> domain into A's domain) when the scaler fraction was negative.
>
> Change-Id: I8e5f109314d235a177ab41f65d3c4cd08cff78be
> Signed-off-by: John Grossman <johngro@google.com>
Change-Id: Id90e18f685c61c1a89fd91c32adcf01363b3e8f3
Signed-off-by: John Grossman <johngro@google.com>
|
|\
| |
| |
| |
| | |
* commit 'db1597a98958b78dc0d8eced19ae1406382b70d6':
Fix shutdown sequence to avoid SIGSEGV when running am command
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the app_process is shutting down the main thread will close the
binder fd while pool threads are executing an ioctl (in
IPCThreadState::stopProcess called by AppRuntime::onStarted in
app_main.c).
The binder driver will then return all pending calls in ioctl
without any error and with a command. One of the threads gets a
BR_SPAWN_LOOPER which will create a new thread (the other thread
gets a BR_NOOP). This new thread then calls
vm->AttachCurrentThread. Usually this results in a log entry with
"AndroidRuntime: NOTE: attach of thread 'Binder Thread #3' failed",
but sometimes it also causes a SIGSEGV. This depends on the timing
between the new thread an the main thread that calls DestroyJavaVM
(in AndroidRuntime::start).
If IPCThreadState.cpp is compiled with "#define LOG_NDEBUG 0" the
pool thread will loop and hit the
ALOG_ASSERT(mProcess->mDriverFD >= 0) in
IPCThreadState::talkWithDriver.
Crashes like this has been seen when running the am command and
other commands that use the app_process.
This fix makes sure that any command that is received when the driver
fd is closed are ignored and IPCThreadState::talkWithDriver instead
returns an error which will cause the pool thread to exit and detach
itself from the vm. A check to avoid calling ioctl to a fd with -1
was also added in IPCThreadState::threadDestructor.
Another solution might be to change the binder driver so that it
returns an error when the fd is closed (or atleast not a
BR_SPAWN_LOOPER command). It might also be possible to call exit(0)
which is done when System.exit(0) is called from java.
Change-Id: I3d1f0ff64896c44be2a5994b3a90f7a06d27f429
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ISurfaceTexture::dequeueBuffer now returns the buffer's fence for the
client to wait on. For BufferQueue, this means passing it through
Binder so it can be returned to the SurfaceTextureClient. Now
SurfaceTextureClient is responsible for waiting on the fence in
dequeueBuffer instead of BufferQueue: one step closer to the goal.
Change-Id: I677ae758bcd23acee2d784b8cec11b32cccc196d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After a HWC set, each SurfaceFlinger Layer retrieves the release fence
HWC returned and gives it to the layer's SurfaceTexture. The
SurfaceTexture accumulates the fences into a merged fence until the
next updateTexImage, then passes the merged fence to the BufferQueue
in releaseBuffer.
In a follow-on change, BufferQueue will return the fence along with
the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the
fence to signal before returning.
The releaseFence default value for BufferQueue::releaseBuffer() is
temporary to avoid transient build breaks with a multi-project
checkin. It'll disappear in the next change.
Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
|
| |
| |
| |
| |
| |
| |
| | |
FramebufferNativeWindow::dequeueBuffer now waits for the next buffer
to be non-front in addition to being free.
Change-Id: I991f154958cc6b488b1241aba83d1f95a0513b3c
|
| |
| |
| |
| |
| |
| |
| | |
This change updates the uses of ANativeWindow to use the new ANW functions that
accept and return Sync HAL fence file descriptors.
Change-Id: I3ca648b6ac33f7360e86754f924aa072f95242f6
|
| |
| |
| |
| |
| |
| |
| | |
This change adds the Fence class to libui for to wrap the libsync
functionality.
Change-Id: I93a31baeee608b93c14da807a32013dabf783f84
|
| |
| |
| |
| |
| |
| |
| |
| | |
SF now has its own implementation of ANW for the
framebuffer and it uses BufferQueue. FramebufferNativeWindow
is now only used by stand-alone apps.
Change-Id: Iddeb24087df62bd92b0f78e391dda9b97ddc859c
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
SurfaceFlinger will no longer directly synchronize with early suspend.
Instead, PowerManagerService will synchronize with SurfaceFlinger to
ensure that a black frame has been drawn on the display, and then
trigger all early suspend handlers.
Change-Id: I07acdd628440d23fdb69db94319ec5d65d3f4919
|
|\ \ \
| |/ /
|/| /
| |/
| | |
* commit '1ba24574b2debd3ca012adbbd77f12bed4f2d266':
Aligning native Parcel implementation to Java.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Java implementation of writing the RPC response header
calculates the length of the header including the 4 bytes
specifying the header length but the native implementation
excludes the 4 bytes specifying the length from the header
length.
The native implementation has been aligned to the Java impl.
Change-Id: I325bf272a63152d8fded4cf4e51a906b5a9bfe19
|
|\ \
| |/
| |
| |
| |
| |
| | |
pointers." into jb-dev
* commit 'd5085da3c0c103bba0c2c927382f7d414275b661':
Support looper callbacks based on smart pointers.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 6559630
Change-Id: I5a667f219f431838638acefbc9fa6afa610971bd
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* commit '805867612c0c11d3bb494cbf454cbb2de21a1b75':
Delete unused poll() code.
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't need this code anymore and it is just in the way.
Bug: 6559630
Change-Id: I1dc9decf85d5ea1feab159c2985da6c20baffdd5
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* commit 'dce1547d65877b89cec4e52ee8e5b39830911d00':
Remove unused statistics code.
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 6559630
Change-Id: Iacdf4bb4c1c125c09305cbd8cb443c7c80cfc010
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
SurfaceTexture::updateTexImage
* commit '584fcb3218e07d7b4cc0aeaef41faa4e891b45a4':
add the ability to reject buffers in SurfaceTexture::updateTexImage
|
| |/
| |
| |
| |
| |
| |
| |
| | |
SurfaceFlinger is using this new feature to reject buffers that
don't have the right size.
Bug: 6498869
Change-Id: I8a7250a47db6c082a357b703feb3b9d0fc8d3443
|
|\ \
| |/
| |
| |
| | |
* commit '138a8d7510e6ba8a402ffacc38c7cc5bfaa5e571':
Enable SurfaceTexture fence sync for the emulator
|
| |
| |
| |
| |
| |
| |
| |
| | |
The host-accelerated GL ES driver doesn't do the implicit
synchronization required when fence sync isn't used.
Bug: 6515813
Change-Id: I6a667f2db6b519f3557b5abda78775f767841dae
|
|\ \
| |/
| |
| |
| |
| |
| | |
buffers on failures
* commit '83f1d83975345bada9886e9ea0ef2b950d90cd77':
make sure BufferQueue releases newly acquired buffers on failures
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
this prevents SurfaceTexture producer to hang in dequeueBuffer()
when something goes wrong in the consumer.
only the consumer gets an error and the current frame is kept
instead of the new one. the producer is unaware of the problem.
Bug: 6476587
Change-Id: Ie6db5526632aabc3e60229b93dfe29c19491ade4
|
|\ \
| |/
| |
| |
| | |
* commit 'ac4a48251180a79ae19e3a7112537c3d0fa260c6':
Remove misleading and wrong ALOGW
|
| |
| |
| |
| |
| | |
Bug: 6476587
Change-Id: I4345f1100db02786bb50ad83ca7b559cad301706
|
|\ \
| |/
| |
| |
| |
| |
| | |
new items" into jb-dev
* commit 'e0607f0507fe647bd9262facfaf75146c074e933':
fix a corruption in Vector<> when adding new items
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
would happen when vectors are copied and new items is
added in both vectors. we didn't duplicate the underlying
storage when adding items in vectors.
Bug: 6515797
Change-Id: If544c07d96c05821e088d7f2c9b5736f7e306c31
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
slots" into jb-dev
* commit 'bd56aabb92097546073c8dd8949bb03161e72c56':
Recreate EGLImage for previously used slots
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SurfaceTexture would only create an EGLImage for a buffer slot when
BufferQueue returns a GraphicBuffer, i.e. either the slot was acquired
for the first time ever, or the buffer for the slot was reallocated.
But the EGLImage may also need to be re-created for a
previously-acquired buffer if the slot's EGLImage was destroyed during
detachFromContext(); in this case BufferQueue won't return a
GraphicBuffer since SurfaceTexture already has a reference to the
correct buffer.
Bug: 6461693
Change-Id: Ib95d0d757192efe336c5fda0866f857481a6617d
|
|\ \
| |/
| |
| |
| |
| | |
* commit 'dd73996552938ac5165a35f09d389abedcf421ef':
SurfaceFlinger: recompute visible regions less
libgui: remove setPostTransformCrop
|
| |\
| | |
| | |
| | |
| | |
| | | |
* changes:
SurfaceFlinger: recompute visible regions less
libgui: remove setPostTransformCrop
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change removes the setPostTransformCrop function from
SurfaceTextureClient. It also includes a small logging fix in BufferQueue.
Bug: 6299171
Change-Id: Ifd0ed05b95dad6085e7a8267fda4d69b76ea3bad
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* commit 'bd1132249479e52ddd128171da24327358e2191c':
Fix log spam about CPU frequency on one device
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previous kernels have allowed opening the CPU frequency file regardless
whether the CPU is up or not. This fixes some log spam on one device
with dynamic hot plug CPU feature, which does not allow opening the CPU
frequency file if CPU is down.
Also, since the file descriptors are global and have long lives, add
the close-on-exec flag.
Change-Id: Ia14a2b9e20038dfb96a573920176a47a96bd3f5a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Aimed for use cases where gralloc buffers need to be consumed by CPU
users, such as camera image data streams.
The CpuConsumer is a synchronous queue, which exposes raw pointers to
the underlying graphics buffers to applications. Multiple buffers may
be acquired at once, up to the limit set at time of construction.
Change-Id: If1d99f12471438e95a69696e40685948778055fd
|
|\ \
| |/
| |
| |
| | |
* commit 'f15a83f5814219c167f87cb8aaea622fc8493499':
SurfaceFlinger: add a crop to the layer state
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds a crop rectangle specified in window coordinates to the layer
state. The all window pixels outside this crop rectangle are treated as though
they were fully transparent. This change also adds the plumbing necessary for
WindowManager to set that crop.
Change-Id: I582bc445dc8c97d4c943d4db8d582a6ef5a66081
|
|\ \
| |/
| |
| |
| |
| |
| | |
jb-dev
* commit 'f30fd01497a53cbff8692721026c3f7b6830158e':
Workaround for add_tid_to_cgroup failed to write
|
| |\ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 6467109
Change-Id: I6dff8e608d83c7a7c453c25c94ad100f113769b9
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* commit 'cd1806e210f2633423f0fb14d39fa00d03974223':
libgui: improve some logging and dumping
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change updates some of the SurfaceTextureClient and BufferQueue logging
and dumping to include the crop, transform and scaling mode. It also removes
the uses of the NO_SCALE_CROP scaling mode enum, which was added by accident in
a previous change.
Change-Id: I62912716a1e48885fb22f12b92678aa13f10fcd9
Bug: 6470541
|
|\ \
| |/
| |
| |
| | |
* commit '555f89d8df316cdc5a25dbedb8614c2ac7a5e0a9':
Add callback hack to find out when to reload system properties.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Every IBinder object can accept a new transaction to tell it that
it might want to reload system properties, and in the process
anyone can register a callback to be executed when this happens.
Use this to reload the trace property.
This is very much ONLY for debugging.
Change-Id: I55c67c46f8f3fa9073bef0dfaab4577ed1d47eb4
|