| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
* commit 'af6eaf656ec0de5fcbea03968daffe2c845e2089':
Fix ANR caused by hwuiTask thread
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If hwuiTask thread is exited while HWUI renders something,
some tasks can remain unfinished forever.
This can make ANR problem if RenderThread waits this kind of tasks.
According to the current implementation, hwuiTask threads are
exited when HWUI receives trimMemory() callback with level >= 20
and some applications such as SystemUI can receive trimMemory()
with level >= 20 even though they renders something yet.
(For instance, when RecentsActivity in SystemUI is finished,
HWUI receives trimMemory() callback with level >= 20
but SystemUI should still render the status bar and navigation bar.)
This patch prevents the tasks from remaining unfinished and
make the tasks executed immediately if they cannot be added
to their TaskProcessors.
Change-Id: I5bd26439aa5f183b1a7c1ce466362e27554b4d16
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
onGLContextDestroyed" into lmp-mr1-dev
* commit '5f3e21cebeecf042e8e18a5021b3965415d9ff60':
Allow ~Layer() to happen after onGLContextDestroyed
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 19146354
Change-Id: I9e885936168bd541bfbed4064ad67ab524f58e32
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | | |
* commit 'f70492898b3efa3c5f480f195062fa6f293bc764':
kill HAVE_PTHREADS.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 19083585
Change-Id: Ib466949bb6cd6d1bbc4680e989f0f9fae62ca564
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | | |
automerge: 554a6f5
* commit '554a6f5278ec05077d8252249afc911897fbfe76':
Process base APK
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The base APK may have resources with configurations that compete
against some splits. The base APK must be involved in the selection
of splits.
Bug:18982001
Change-Id: Ieb29b5a36cf2c68e7831484d98a9fd275acd97e8
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | | |
common case"
* commit '996d39743a73cc37fb888779d52323743f50c666':
Fast loadInverse() implementation for the common case
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Most matrices used by the UI toolkit are translation matrices, whose
inverses can be quickly computed by using the negated translation
vector.
Change-Id: I54a28a634a586085779bfc26f3a4160cd5ab2b22
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id93a59ae6c82f6068c58b22e2a651ff8a3b8f530
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | | |
* commit '2c9f86aa21b8d7ea6a77eaca9a49ccdb31245129':
Vsyncs are hard
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Bug: 18866485
Change-Id: I7d304df0f20a3296956cb6887a72adba9243f117
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* commit '9568307cf32c8abc6703dc7a1b0b0fee56c4f8f5':
Fix redundant file backups
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We'd observed a bug in which an unchanged file was nevertheless
being redundantly transmitted for backup on every backup pass.
The underlying issue turns out to have been the FileBackupHelper
base implementation's logic for diffing the prior-state file
set against the current state, in the case when there had been
deletions of prior files. In addition, there was also a
parallel bug in which file checksums were not calculated
properly in some cases, leading to at least one additional
redundant backup of the file in question.
Bug 18694053
Change-Id: Ie0dec06486b5fef4624561737019569c85d6b2a0
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | | |
S_ISLNK and S_ISSOCK."
* commit 'd6c475dc246b1681f5c9af9e00ac74183812329c':
Use more intention-revealing tests for S_ISLNK and S_ISSOCK.
|
| | |/
| |/|
| | |
| | | |
Change-Id: Ia7f13eb7d5a36cf2b4c0a253b2b4d7f7af396951
|
|\ \ \
| | |/
| |/|
| | |
| | | |
* commit '165fb8f5aa0709a8dc35f99a9b81f6906452a648':
Tweak RT-animator scheduling
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 18226391
The issue occurs as a result of a dispatchFrame itself
taking longer than 12ms, the alloted budget. The result
is that a vsync request (which occured at the end) would
miss the vsync that occured 1ms prior to the end of the frame.
As a result it would end up waiting for the following vsync,
essentially dropping to 30fps even though 60 could have been
sustained.
Fix this with a few tweaks.
First, adjust the UI thread's delay bias from (now + 4ms) to
(vsync + 4ms), this prevents RT animators from slowly drifting
if the vsync occurs mid-task.
Second, request a vsync preemptively prior to running callbacks.
This way if any callbacks needs the next vsync and it takes
"too long", we will catch that vsync.
Finally, fix an issue where the display event queue was always
drained & rejected at the end of a task loop. Instead, drain
and reject all stale vsyncs. This still prevents the issue of
both UI thread & RT thread trying to drive 2 frames in a single
pulse, but also allows RT to notice that it missed a vsync
pulse it needed and that it should speed-up a bit in response
Change-Id: I9d6be037737e9283297898cac2e3563453e797cd
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
change" into lmp-mr1-dev
* commit '93492d1a478770783abab764855c8d47e0264f71':
Revert overdraw avoidance visualization change
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
bug:18787324
Partial revert of 23d307c8d88f4a3849163b9e5b7cd11d0d4f372c.
Change-Id: Ic8b91b046707fc5b8fa53c35ea7b37bb19c3c943
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I7227b0eac126bf470ed50249a7809b845872983b
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
automerge: b21a7ad
* commit 'b21a7ad02e43900ea5480e796cb1518bd5829e3f':
Force-flush state sync on texid change
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Bug: 18718646
Caused because the Texture object thought the GLES texture
was in a different state than it was as it persists across
EGL/GL contexts. Fix this by force-flushing the default
values when the texid has changed.
Change-Id: I264bac9a2beb08df8e2ba8a85ad15f0dd1fce22a
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
automerge: 00905a9
* commit '00905a984c07ffc9960ce83548631c59aae37ec6':
Correct layer size formatting in trace
|
| |\ \ \ \
| | |/ / /
| |/| | | |
|
| | |/ /
| | | |
| | | |
| | | |
| | | | |
bug:18722704
Change-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
automerge: e4a6ed9
* commit 'e4a6ed9d6d8721c9fad018b0d43dfe7daf4b24e7':
Don't preload textures for AssetAtlas
|
| |\ \ \ |
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 18317479
RenderNode::prepareSubTree calls prefetchAndMarkInUse
on every bitmapResoruce in the DisplayList. However,
this resulted in textures being uploaded for bitmaps
that would be drawn from the AssetAtlas instead.
To fix this we teach TextureCache about the AssetAtlas
so that calls to TextureCache return the Texture from
AssetAtlas if it exists. Thus usage of AssetAtlas
is now purely to allow for further optimizations via
draw merging instead of a requirement to get
any benefit at all.
Change-Id: I65282fa05bac46f4e93822b3467ffa0261ccf200
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
would cause obtainStyleAttributes to fail" into lmp-mr1-dev
* commit '740acf213c56c406132294790fa2fadd0380cfa7':
Fix issue where non-resource attributes would cause obtainStyleAttributes to fail
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
obtainStyleAttributes to fail" into lmp-mr1-dev
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
fail
A sentinal value of 0x00000000 was used to mark the first time an AttributeFinder
was used. If the resource ID of an attribute was also 0x00000000 (which occurs with
non-resource attributes, like 'style'), then it would be mistaken as the sentinel
start value.
Bug:18421787
Change-Id: I4be353e0f8c940cb6f262d155129f048dcc444ae
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | | |
Change-Id: Ib9d6d301282bbaae6b23b9ce07b9e6a4e9075991
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
bug:18667472
Previously, we were allocating per-frame temporary paths within the
PlaybackStateStruct, but these are not safe as layers allocate these
transiently. Instead, move these to the OpenGLRenderer, which has
better define lifecycle.
Additionally, don't store SkPath objects directly in vector, since
they are then subject to relocation.
Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
|
|\ \ \ \
| |/ / /
| | | |
| | | | |
Change-Id: I60bf82ff71d9af0d80e7da8856efb4641c85885b
|
| |\ \ \ |
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 18317479
Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
counting" into lmp-mr1-dev
* commit '497499b1eb76726090ea46dcfc5b8ab0221cd447':
Remove unnecessary/erroneous reference counting
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The SkBitmap* used by HWUI holds a reference to the PixelRef (which
in turn holds the colorTable) so keeping an additional ref is not
only unnecessary, but also potentially problematic.
If a bitmap changes its pixelRef after it has been added to a displayList,
then we end up with unbalanced ref/unref calls that cause the newly added
PixelRef to be unref'd and prematurely deleted, while the original PixelRef
is leaked.
bug: 18659976
Change-Id: I34a06152e7bb2d733249a207dafd36b9b5dc0712
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I36dea45f7571096136ea7bda5e2680bd85a0df32
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Private attributes are typically placed after public
attributes in the resource table. Each time a new version
of the Android framework is released, new public attributes
take the place of the private attributes, and the private
attributes are shifted after the new public ones.
This means that any apps built against the newer SDK
may inadvertently be using private attributes on older
devices.
This change moves all private attributes to a completely
different type ID, so there will never be collisions across
versions.
These private attributes are automatically moved to a synthesized
type only for the system resources.
Bug:18263655
Change-Id: I7a850512953fadcc9f3524d509cea30249782db8
|
|\ \ \ \
| |/ / /
| | | |
| | | | |
Change-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 18203577
The issue occurs as a result of performTraversals() both doing
a window relayout call *and* early-returning because it's not dirty.
To fix this pauseSurface() returns whether or not the RT-side is
"dirty" to force ViewRootImpl to do a draw even if mDirty is
otherwise empty.
Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef
|
|\ \ \
| | |/
| |/|
| | |
| | | |
* commit '503071ae41374a66f61e53e05a91243473db83b9':
RRO: prevent duplicate system overlays
|