Commit Graph

6652 Commits

Author SHA1 Message Date
Fyodor Kupolov
4fa88b4ddb Merge "[DO NOT MERGE] Check bounds in offsetToPtr" into mnc-dev am: 07beec953b
am: 4707bd455e

Change-Id: I5ad21560d103ccd099c8c82b591bdd432bad50aa
2017-03-09 19:51:56 +00:00
Fyodor Kupolov
4707bd455e Merge "[DO NOT MERGE] Check bounds in offsetToPtr" into mnc-dev
am: 07beec953b

Change-Id: Ia5853c9741163b5e38a432ca645e4082bfa0a7bb
2017-03-09 19:43:55 +00:00
Fyodor Kupolov
23efadc807 [DO NOT MERGE] Check bounds in offsetToPtr
Check whether specified offset belongs to mData.
Also added a default argument bufferSize to check the end offset.

Size of the ashmem descriptor can be modified between
ashmem_get_size_region call and mmap. createFromParcel method was updated
to check ashmem size again immediately after memory is mapped.

Test: manual - using the test app from the bug
Bug: 34128677
Change-Id: I3ecd1616a870ce20941ce9b20a1843d2b4295750
(cherry picked from commit 45e2e95c2f)
2017-03-01 01:29:05 +00:00
Andriy Naborskyy
11da2b5de3 Merge "DO NOT MERGE ANYWHERE Revert "DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous"" into cw-e-dev 2016-11-12 03:18:55 +00:00
neo.chae
c58ec27e1c Fix idmap leak in zygote process am: 0244ca8d10 am: 82537abc3b am: 85afb42c16 am: b4b2203c5e
am: fb74b8773a

Change-Id: I4a2630b7217462897070029a613489c7909aedf6
2016-11-11 00:02:56 +00:00
neo.chae
fb74b8773a Fix idmap leak in zygote process am: 0244ca8d10 am: 82537abc3b am: 85afb42c16
am: b4b2203c5e

Change-Id: Ifd540b5f9cb1e32a002ed86c67eda30189f4e23f
2016-11-10 23:44:32 +00:00
Andriy Naborskyy
c5bf8bc74d DO NOT MERGE ANYWHERE Revert "DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous"
This reverts commit 80e6d8873b.

Bug: 32771832

Change-Id: Ia2f2ffd08dfd87cbce1ec750d6b61277799b536f
2016-11-10 03:17:08 +00:00
neo.chae
b4b2203c5e Fix idmap leak in zygote process am: 0244ca8d10 am: 82537abc3b
am: 85afb42c16

Change-Id: Ibb5ac24b2149637bf19b9a16153b1fcde5dbb45f
2016-11-09 20:25:12 +00:00
neo.chae
82537abc3b Fix idmap leak in zygote process
am: 0244ca8d10

Change-Id: Ia35ded23161ad5c5c6fe4dea388e74b8d8af2955
2016-11-09 09:21:46 +00:00
neo.chae
0244ca8d10 Fix idmap leak in zygote process
Fix a idmap leak in AssetManager::addSystemOverlays.
And, The fix could also prevent fd leak of idmap.

Test: none
Bug: 32691930

Signed-off-by: Hyangseok Chae <neo.chae@lge.com>

(cherry picked from commit 6a742a3850)

Change-Id: Idc4af77db2b0cb739bd6b009b6af0f9123be1aac
2016-11-08 09:59:44 +00:00
Thomas Buhot
80e6d8873b DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous
from AOSP: https://android-review.googlesource.com/#/c/183305/

On the critical path of the cold launch of applications
the main thread of the started application tells the RenderThread
to create a surface. This process is synchronous and blocks
the main thread of the application until the creation
of the EGLContext is complete.
As a consequence the launch time of the application is delayed
by time spent allocating the EGL Context in the RenderThread.

With this optimization the launch time of any application
is improved (for example settings by 20 to 40 ms).

Change-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08
Signed-off-by: Thomas Buhot <thomas.buhot@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
2016-10-25 18:48:50 -07:00
Nancy Zheng
74dfcf90f1 Pulling in https://android-review.googlesource.com/#/c/186482/1
Fix memory leak in HWUI

std::unique_ptr::release just releases the ownership of the
managed object. To delete the object, std::unique_ptr::reset
function should be called.

Bug: 26116596
Change-Id: If65f74085b1fc2be3a9fffc433326e0bcdb40ff3
2016-01-13 15:23:56 -08:00
Matthew Bouyack
7f667e7a08 In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos
and save the result. Then pass that value to
UiFrameInfoBuilder::setVsync as both arguments.

The order of function argument evaluation is undefined in C++. Because
the value returned from TimeLord::latestVsync may be changed by
the preceding call to TimeLord::computeFrameTimeNanos the values of the
arguments passed to UiFrameInfoBuilder::setVsync is also undefined. This
change removes any ambiguity.

Change-Id: Ie71ee453f9ccc725edfe5f7cc9b277f2a809dfdc
2016-01-12 12:01:48 -08:00
Chris Craik
0cf48e9120 Merge "Revert "Remove -ffast-math from libhwui makefile"" into mnc-dr-dev 2015-11-05 20:21:45 +00:00
Tenghui Zhu
76d20b4a5c Merge "When the incoming light source is invalid, don't generate any shadow" into mnc-dr-dev 2015-11-05 20:05:37 +00:00
Chris Craik
e0fa7476a5 Revert "Remove -ffast-math from libhwui makefile"
This reverts commit e02ec7c37a.

Change-Id: Iea7fadf04c4ffa62be28f783342ae749f89bf931
2015-11-05 17:58:28 +00:00
Teng-Hui Zhu
cf22d184a3 When the incoming light source is invalid, don't generate any shadow
b/25417885

Change-Id: I4b87e35ca68091fd0409cb9fe9b9400af860a507
2015-11-04 17:04:18 -08:00
Chris Craik
10eb6ab94b Merge "Early return when the scale is 0." into mnc-dr-dev 2015-11-04 19:28:39 +00:00
Teng-Hui Zhu
cdce35a7e8 Early return when the scale is 0.
b/24534579

Change-Id: Ib3581ec99387ca70ca036026f64857a49657d94b
(cherry picked from commit 8d0ec38953)
2015-11-04 18:31:50 +00:00
Chris Craik
e02ec7c37a Remove -ffast-math from libhwui makefile
bug:25417885

Change-Id: I8244bd28c2d46fc449398b9bf5104bf7cbaded8a
2015-11-04 10:14:57 -08:00
John Reck
492a56cc93 Revert "Use clang for libhwui"
Bug 25462107

This reverts commit d354fd2c66.

Change-Id: Ib7c50b5becf247f837f3cc20f9128d9411d22563
2015-11-04 15:21:35 +00:00
Chris Craik
d354fd2c66 Use clang for libhwui
bug:25417885

Change-Id: I0ef8034d79ba3682925e3c2a4b7ccd833fd4f156
2015-11-03 10:34:28 -08:00
Chris Craik
892768fb3e am 0b804542: Merge "Constrain drawBitmap matrix-to-rect optimization" into mnc-dev
* commit '0b8045425ff58f992046ff2be35bc91001dabf7b':
  Constrain drawBitmap matrix-to-rect optimization
2015-08-19 00:54:00 +00:00
Chris Craik
e688bf7203 Constrain drawBitmap matrix-to-rect optimization
bug:22962165

Optimization is not valid if matrix would flip image.

Change-Id: Ieee42390517bd3466b7d94596f0fbbe192ab757e
2015-08-18 14:53:47 -07:00
John Reck
a975a84498 am 70e5db94: Merge "Fix crash in kModeProcessNoContext" into mnc-dev
* commit '70e5db9413f82bf1f000bd99b3d2dbecf6e4ab04':
  Fix crash in kModeProcessNoContext
2015-08-04 19:48:30 +00:00
John Reck
95cd24bb9d Fix crash in kModeProcessNoContext
Bug: 22931143
Change-Id: I9897a28b1edd006aee67ae2343874ad92bbd15a0
2015-08-04 18:19:11 +00:00
John Reck
2e529712e6 am c03ab87a: Merge "Disable skipping frames on empty damage" into mnc-dev
* commit 'c03ab87ac9f721ff22bfe5e9c0cd0e5be64f261e':
  Disable skipping frames on empty damage
2015-08-04 01:00:24 +00:00
John Reck
6d4d0db312 Disable skipping frames on empty damage
Bug: 22592975

Optimization added in MNC is not quite correct, occasionally
it will fail to repaint when it was supposed to leading
to buffer corruption. Disable the optimization for now.

Change-Id: I34dfdfb357eda298198043ded7335d4588a003fd
2015-08-03 22:47:49 +00:00
Chris Craik
7dfb1d9931 am 730c0f65: Merge "Fix stencil mask usage in HWUI" into mnc-dev
* commit '730c0f6591b1c99699e9d0ecf36d696f7d87629f':
  Fix stencil mask usage in HWUI
2015-07-30 19:37:15 +00:00
Chris Craik
730c0f6591 Merge "Fix stencil mask usage in HWUI" into mnc-dev 2015-07-30 19:30:58 +00:00
Chris Craik
fa51a0e1ce Fix stencil mask usage in HWUI
bug:21588246

Ensure we always set the mask before clearing, and removes
some unneeded optimizations around mask usage in
debug (overdraw) mode.

Change-Id: I71ed06c16f8d9f158953d5aa160098514f0f7f00
2015-07-30 11:06:53 -07:00
Adam Lesinski
e1e94c7d58 am fd44b56d: Merge "AAPT: Fix printing of resource configurations" into mnc-dev
* commit 'fd44b56d599bc6c6e7397dcdfaa6d613805a88cb':
  AAPT: Fix printing of resource configurations
2015-07-28 00:16:38 +00:00
Adam Lesinski
5b0f1be0a2 AAPT: Fix printing of resource configurations
Print out proper, copied configuration. We add fields to ResTable_config
and if we don't copy and fill in defaults when reading old configurations,
we end up with garbage values. This can potentially cause a crash as well.

Bug:22773426
Change-Id: I64f5ebe73ee72453bcdad3a19e48f8e7ad58e9c2
2015-07-27 17:04:43 -07:00
John Reck
c5d3dde6c7 am 8b1154c4: Merge "Move updateMatrix() call to animateCommon" into mnc-dev
* commit '8b1154c487c25388107dc024376435f3b0ae2385':
  Move updateMatrix() call to animateCommon
2015-07-24 00:02:23 +00:00
John Reck
49dec430e8 Move updateMatrix() call to animateCommon
Bug: 22667315

HWUI internally always assumes that RenderNode->properties()
has a fully-baked matrix. However, RenderThread animations violate
this and will perform an update of that matrix after they run. This
was missing in the fallback scenario where an animation was
running on a View that is detached from the tree.

If a RenderThread animation is started on an attached view, it becomes
detached, and is then re-attached it will crash in the staging
properties push. The fix for this is to move the call to updateMatrix
from animate() to animateCommon() so that the animateNoDamage()
path will similarly perform the necessary matrix update.

Change-Id: I4c899a6f68659342a6515f1d7f20d3c4af65caf0
2015-07-23 22:37:21 +00:00
John Reck
e5783e58db am 2abf0f24: Fix a race condition that could cause lockup
* commit '2abf0f24af60b8644d5b61eed9666793083546ee':
  Fix a race condition that could cause lockup
2015-07-23 19:20:47 +00:00
John Reck
2abf0f24af Fix a race condition that could cause lockup
Bug: 22676664

If a task is queued on a worker thread that is busy
processing a task AND a trim memory signal comes along
prior to the initial task being completed then the
tasks that were queued prior to the exit request will
never be processed.

This is bad, as when those futures are used later on, such
as in trying to delete them from the cache, they will block
waiting for the orphaned task to be finished.

Simple fix is to just never stop the worker threads. Increase
RAM usage slightly as we won't reclaim that stack space, but
this cost is fairly small

Change-Id: I818b011f9bc6ba06942fdad81c27656bd97b42d4
2015-07-23 17:34:14 +00:00
John Reck
9317d0b990 am 1fddd3ef: Merge "Mark isInUse per-window" into mnc-dev
* commit '1fddd3efa9ac10e794d7bdf457b7b52c7e4614f7':
  Mark isInUse per-window
2015-07-21 21:04:45 +00:00
John Reck
00e79c9947 Mark isInUse per-window
Bug: 22509159
Change-Id: I0ae0f1fa582ee38dcb9f24ca20f0b4d0c57ccb32
2015-07-21 10:46:54 -07:00
Chris Craik
b6e41a0882 am 0bb5c26b: Merge "Fix AssetAtlas usage in BitmapShaders" into mnc-dev
* commit '0bb5c26bcea4b171583e57134b9717c77fbdcb14':
  Fix AssetAtlas usage in BitmapShaders
2015-07-18 00:07:13 +00:00
Chris Craik
0bb5c26bce Merge "Fix AssetAtlas usage in BitmapShaders" into mnc-dev 2015-07-17 23:59:17 +00:00
Chris Craik
6ad690e16f Fix AssetAtlas usage in BitmapShaders
bug:22521999

Change-Id: I60859748ceee19ebc89ec98845e550ea26e36ecd
2015-07-17 15:53:24 -07:00
Chris Craik
7b0fa466b5 am 0f724601: Merge "Fix clip area behavior for REPLACE op" into mnc-dev
* commit '0f724601d78d8f36a297333227d9c460e10b3203':
  Fix clip area behavior for REPLACE op
2015-07-16 22:23:34 +00:00
Chris Craik
8ce8f3f4d6 Fix clip area behavior for REPLACE op
bug:22291400

Work around clippath-clipped-to-view-bounds behavior by
implementing REPLACE op fast path, avoiding the transition to
SkRegion/SkPath.

Change-Id: I63c1cf961db2d6e3759d83914de1036c9ac7497a
2015-07-16 13:31:41 -07:00
John Reck
d5612d06c4 am ba4f0757: Merge "Don\'t crash on makeCurrent fail" into mnc-dev
* commit 'ba4f0757779d6e91e52ebee0fd4c847b673a69e2':
  Don't crash on makeCurrent fail
2015-07-16 17:01:22 +00:00
John Reck
f2dcc2aecb Don't crash on makeCurrent fail
Bug: 22444755

WindowManager may decide to yank the surface at any point, so
attempt to kinda handle this

Change-Id: Id2f665d2f0f93bccd4ec977fbf52dca4dc1ec891
2015-07-16 09:17:59 -07:00
Chris Craik
e2a5c184e3 am 941bcedb: Merge "Fix unsafety in SkiaShader storage, and texture unit accounting" into mnc-dev
* commit '941bcedb4c03832cd54225217697c7b8cba6e07c':
  Fix unsafety in SkiaShader storage, and texture unit accounting
2015-07-14 17:35:50 +00:00
Chris Craik
e310f83d59 Fix unsafety in SkiaShader storage, and texture unit accounting
bug:22390304

Fixes two issues:

1) The max texture unit wasn't large enough to handle the most complex
ComposeShader case (1 for draw primitive, 2 for gradient shader, 1 for
bitmap shader).

2) If a shader isn't supported by SkiaShader::store, the shader data
needs to be explicitly disabled, so we won't read uninitilized data
from it when trying to read shader information out.

Change-Id: I29ee7b7c1e07f67db88c1707bdc857daa305e713
2015-07-13 13:34:07 -07:00
Tom Hudson
8ac76504fe am 9613e9b7: Merge "New setLocalMatrix() operation for HWUI" into mnc-dev
* commit '9613e9b76410b15b7f2700080a17476bf9f3461c':
  New setLocalMatrix() operation for HWUI
2015-07-10 12:46:24 +00:00
Tom Hudson
9613e9b764 Merge "New setLocalMatrix() operation for HWUI" into mnc-dev 2015-07-10 12:35:12 +00:00