| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
with this changes, SF transactions are handled as soon as possible
but do not trigger updates. the update is delayed until the next
vsync.
this allows us to work much better without requiring triple-buffering.
Change-Id: I1fa10794d0cf742129f0877698b7b1e1f2ec7401
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vsync events were sometimes delivered to connected
client who didn't request them. this happened if
another client requested the delivery and that client
was first in the client list.
also fix the vsync test which didn't request any events as
well as DisplayEventReveiver documentation which was misleading
about the necessity to request vsync events.
Change-Id: Ie990fda3f337f8f0042745c4b2cde67936c45686
|
|/
|
|
|
|
| |
don't hardcode it.
Change-Id: I4b37f37a9809cac937e6334c988b3185af2ebe22
|
|
|
|
| |
Change-Id: Ic5e4f2ea9927ce133eef9499c03161325e9d02c5
|
|
|
|
| |
Change-Id: I07e2fca7274d2e12bf5b4aee0050794bdb97a8b3
|
|
|
|
|
|
|
|
|
|
|
| |
--latency-clear [name]
clears the latency data for the specified layer or for
all layers if none is specified
--list
prints the list of all layers regardless of their visibility
Change-Id: I7c07ae020f838c173b98ee50f3fb3e93da78acbb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is now possible to say:
dumpsys SurfaceFlinger --latency
to print latency information about all windows
dumpsys SurfaceFlinger --latency window-name
to print the latency stats of the specified window
for instance: dumpsys SurfaceFlinger --latency SurfaceView
The data consists of one line containing global stats, followed by
128 lines of tab separated timestamps in nanosecond.
The first line currently contains the refresh period in nanosecond.
Each 128 following line contains 3 timestamps, of respectively
the app draw time, the vsync timestamp just prior the call to set and
the timestamp of the call to set.
Change-Id: Ib6b6da1d7e2e6ba49c282bdbc0b56a7dc203343a
|
|
|
|
| |
Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
|
|
|
|
| |
Change-Id: I97b1754dc7260fec083275c71a8f71ebfb2cefa8
|
|
|
|
|
|
|
| |
this bug was introduced recently. we were signaling *all* clients
regardless of the vsync rate.
Change-Id: I2ae8a6c820a390f602382596ba75e8ed737fb2ef
|
|
|
|
| |
Change-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e
|
|
|
|
|
|
|
| |
one-shot VSYNC listeners could miss a VSYNC event if
scheduled while in waitForVsync().
Change-Id: I720485784aecfea6cc7a23c77081d7af3c9c71db
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/157065
Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
See https://android-git.corp.google.com/g/156801
Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Several source files privately defined macros LIKELY and UNLIKELY in terms
of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and
CC_UNLIKELY which are intended for this purpose. So rename the private
uses to use the standard names.
In addition, AudioFlinger was relying on the macro expanding to extra ( ).
Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
|
|/
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/156016
Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
|
|
|
|
|
|
|
|
|
|
|
| |
- add the ability to set the vsync delivery rate, when the rate is
set to N>1 (ie: receive every N vsync), SF process' is woken up for
all of vsync, but clients only see the every N events.
- add the concept of one-shot vsync events, with a call-back
to request the next one. currently the call-back is a binder IPC.
Change-Id: I09f71df0b0ba0d88ed997645e2e2497d553c9a1b
|
|
|
|
|
|
|
|
|
| |
the deadlock would happen when the pipe became invalid and SF
trying to remove the connection from its list.
we know make sure to process events without holding a lock.
Change-Id: I39927ed8824fc7811e16db3c7608a2ebc72d9642
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I84a1fcba1317b2631f5441de7b7ecd12af5ad022
|
|\ \
| |/
|/|
| |
| |
| |
| | |
condition" into ics-mr1
* commit 'a91e54fed6a0690d59c97bab9b081b2614880563':
SurfaceFlinger: fix layer removal race condition
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Layer::lockPageFlip() and layer::onRemove() could be called on
different threads and race such that lockPageFlip() successfully
called mSurfaceTexture->updateTexImage() but then gets NULL back from
mSurfaceTexture->getCurrentBuffer(), leading to a crash.
This change moves Layer::onRemove() calls to
SurfaceFlinger::commitTransaction() so they happen after the Layer is
done being drawn from and only happen on the main surfaceflinger
thread.
Change-Id: I4b550caadff4cc1878d7c3bca6129193fb0c713e
|
| |
| |
| |
| |
| | |
Bug: 5700586
Change-Id: Iaa4adc1a6aea1db6e2943efe4caca1f6cbebfa72
|
|\ \
| |/
| |
| |
| |
| |
| | |
the h/w implementation of EGL" into ics-mr1
* commit 'e2970700e921da4226061988a6e8953b1fbfb5a9':
add a way to access the version string of the h/w implementation of EGL
|
| |\
| | |
| | |
| | | |
EGL" into ics-mr1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
we use a hidden egl extension. the version string is printed
in SF's dumpsys log.
Change-Id: I123eb4bde6de462bb2404c67b74d6d6219a48d6a
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | | |
* commit '55d3880eed3450748eb7b97281e030902ee29c2a':
SurfaceTexture: add EGL_KHR_fence_sync option
SurfaceTexture: add a blit-to-FBO test
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This change adds a compile-time option for SurfaceTexture to use the
EGL_KHR_fence_sync extension to synchronize access to Gralloc buffers.
Bug: 5122031
Change-Id: I7e973a358631fff5308acf377581b811911fe790
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
use gui/DisplayEvent to receive the events. Events are
dispatched through a unix pipe, so the API is compatible
with utils/Looper. see gui/DisplayEvent.h for more info.
Bug: 1475048
Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
|
| |
| |
| |
| |
| |
| |
| |
| | |
Revert "Add support for sending VSYNC events to the framework"
This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.
Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
* changes:
Add support for sending VSYNC events to the framework
BitTube::read now handles EAGAIN
split ComposerService out of SurfaceComposerClient.h
rewrite SF's message loop on top of Looper
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
use gui/DisplayEvent to receive the events. Events are
dispatched through a unix pipe, so the API is compatible
with utils/Looper. see gui/DisplayEvent.h for more info.
Bug: 1475048
Change-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794
|
| |
| |
| |
| | |
Change-Id: Ib56139f87a5c0b124e34da5c8151207219b2577b
|
|/
|
|
| |
Change-Id: Id8465f679b96636041b4b891d0b358c387d456c3
|
|
|
|
| |
Change-Id: Ibdd40b337c547e80ef8541856015f1380c8d58ed
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- don't advertise extensions that are not supported
by any implementation
- remove EGL_ANDROID_swap_rectangle which is not
implemented by anybody and confuses people
- add some comments about mandatory extensions
Bug: 5428001
Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
|
|
|
|
| |
Change-Id: I8d89e5e27f1abc5a2e36cb832eb4db2ca83c2cc6
|
|
|
|
|
|
|
|
|
|
| |
This fixes the issue:
"Call not sent" dialog takes too long to dismiss after hitting OK"
Note: the system would recover after a 5 second timeout.
Bug: 5534520
Change-Id: Ifa37e594b50581f498479a5858672441b3d7dd87
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ScreenShot layer is now created hidden. The screenshot itself
is aquired during the transaction when the layer is made visible.
This guarantees the screenshot and the layer happen atomically
with respect to screen updates.
Bug: 5534521
Change-Id: Ida23e1f13d5716ec83b78a15712e0646d6cf8729
|
|/
|
|
|
|
|
| |
this is TEMPORARY until we can do this properly.
Bug: 5572464
Change-Id: I6537706d636a83a4a50e2900d6b829dd89b6f245
|
|
|
|
|
| |
Bug: 5432124
Change-Id: If948b9797b1ec6fff80ca5ea94508abcaced9f31
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I07ab2709fa694e41aa3fcc5b9dfc809f55853ab4
|
|\ \
| |/
|/|
| |
| |
| |
| | |
from a hwc thread" into ics-mr0
* commit 'aa938c8d9c0e71c9b556657cb33794210ce6ebf8':
mDirtyRegion is single threaded, but could be accessed from a hwc thread
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We now have mInvalidateRegion which holds the region to invalidate, it
can be set from any thread as long as mInvalidateLock is held. We use
fine-grained locking here because mInvalidateRegion can be set from anywhere,
in particular frmo HWC callbacks.
Bug: 5466774
Change-Id: Iafca20aa3f5b25a87755e65bde7b769aa8f997bc
|