Commit Graph

4423 Commits

Author SHA1 Message Date
Seigo Nonaka
09439752da Add perf test for SystemFonts.getAvailableFonts
Bug: 188201287
Test: atest SystemFontsPerfTest
Change-Id: Id08a53e980a012a682e95e7b41d363aae31c1232
2021-05-14 13:55:55 -07:00
Kohsuke Yatoh
048d4b1788 Close FDs / mmap handles promptly.
Currently we rely on GC to close them.
This may cause system_server crash depending on the timing of GC.

Bug: 187879195
Test: atest UpdatableSystemFontTest
Change-Id: I09ac3f349e5ec100e4164320cbf27977474cc4bb
2021-05-13 16:23:55 +00:00
Joe Hsu
c73c098665 Merge "Check FontFamily null before adding it." into sc-dev 2021-05-13 01:59:02 +00:00
Lucas Dupin
b52611aa8a Merge "Blend premultiplied colors" into sc-dev 2021-05-12 20:08:16 +00:00
Lucas Dupin
0ec7ddeba8 Blend premultiplied colors
Mixing alpha blended colors, and then premultiplying them in the end was
causing artifacts on the sparkles.

Bug: 187824279
Test: visual
Change-Id: Icde12c3fa737f597f18f2705eefa687a49a19445
2021-05-12 11:14:03 -07:00
joehsu
1681aa2eeb Check FontFamily null before adding it.
Missing ttf files under /product/fonts will cause NullPointerException.
This CL fixes it.

Bug: 187901462
Test: Flash Sabrina to Android S. Boot to check if there's still an error.
Change-Id: I9d39c2a6e4730563f35f43176f630ac0439767b3
2021-05-12 14:18:58 +08:00
Jordan Demeulenaere
47c51fe80e Enable {ANTI_ALIAS,DITHER}_FLAG by default (1/2)
Test: atest android.graphics.cts.PaintTest
Bug: 186644628
Change-Id: I5d5d03e430af380e23016c6deba5eca46067a22b
2021-05-11 17:40:08 +02:00
TreeHugger Robot
6836ab8607 Merge "Update ripple mask when invalidated" into sc-dev 2021-05-07 16:30:33 +00:00
Lucas Dupin
1cc81e18f6 Merge "Fix sparkle alpha blending" into sc-dev 2021-05-07 15:08:22 +00:00
Lucas Dupin
b73fa47929 Merge "Adding force-dark support to RippleDrawable" into sc-dev 2021-05-07 01:08:43 +00:00
Lucas Dupin
a79111e05c Fix sparkle alpha blending
We should not blend between the fill alpha and the sparkle alpha.
This would cause the sparkle pixel to have lower opacity than the fill,
when the fillAlpha > sparkleAlpha.

We do need to blend the fill and sparkle colors, but their alphas need
to be combined separately.

In the end we then premultiply the alpha into the color.

Test: manual
Bug: 186130682
Change-Id: I519f6c797839feda14e714c7375ee727aba2cf8b
2021-05-06 17:45:59 -07:00
Lucas Dupin
00af5271da Adding force-dark support to RippleDrawable
Add force-dark support to RippleDrawable by modifying the ink color.

Test: manual
Test: atest CanvasOp
Fixes: 186130682
Change-Id: I89eaaf3afa5ec53a74d2d08de8cff6484e55a912
2021-05-06 15:17:02 -07:00
Brad Stenning
1be127b866 Update Icon find shared library resources
Icon is building its own resource object and not including the default flag that would allow for including of shared-lib resources

Bug: 187332041
Test: Manual
Change-Id: I121b5f75cbe7d125f8adddb30c84024e2b1a80c7
2021-05-05 21:09:34 +00:00
Jay Aliomer
5121e27f89 Update ripple mask when invalidated
When a child drawable is updated, the invalidated mask
needs to reflect on the animation paint

Fixes: 187290156
Test: visual
Change-Id: I30065027f73f646c887933648d8e296ec651c299
2021-05-05 16:14:04 -04:00
Nader Jawad
603d612707 Merge "Update hole punch logic in HWUI" into sc-dev 2021-05-05 02:59:18 +00:00
Jorim Jaggi
a4d6988f12 Merge "Mark first frames in metrics properly" into sc-dev 2021-05-04 10:55:59 +00:00
Nader Jawad
197743ff9c Update hole punch logic in HWUI
--Updated HWUI holepunch logic for SurfaceView to
also apply the stretch to the hole punch
--Updated RenderNode callbacks to also include
an offset from the ancestor RenderNode that also
has a stretch configured on it
--Added new test activity to verify hole punch
logic

Bug: 179047472
Test: manual
Change-Id: Ibbaf8248a31839ba9dc352ecb9fef54e1276918e
2021-05-03 18:08:47 -07:00
Jay Aliomer
7df767f3d8 Merge "Only generate paint/mask bitmap when starting animations" into sc-dev 2021-05-03 19:06:53 +00:00
Jay Aliomer
8cd53fb886 Only generate paint/mask bitmap when starting animations
Fixes: b/185570903
Test: performance testing bitmap threashold
Change-Id: Ia94011b3c7c34bf44e9ed7356873748724059c2a
2021-05-03 13:07:59 -04:00
Jorim Jaggi
9516605d63 Mark first frames in metrics properly
Such that we only set the flag in case window visibility actually
changes. There are a lot of other cases where we need to do a
window relayout which can lead to visible jank.

Test: FrameMetricsListenerTest, manual
Bug: 185902609
Change-Id: Ia09ce640f3a89bf9dd4ff0f4e4469e88a513709a
2021-05-03 15:49:25 +02:00
Seigo Nonaka
2a77167ce4 Skip FontFamily creation if the font files don't exists.
Bug: 186580197
Test: atest FontFamilyUpdateRequestTest FontListParserTest
      FontManagerTest NativeSystemFontTest
      PersistentSystemFontConfigTest SystemFontsTest
      SystemFontsUniqueNameTest UpdatableFontDirTest
      UpdatableSystemFontTest
Change-Id: Ibbcfb9ed43d05dd9db0132f3a7cb0321243be054
2021-04-28 17:06:17 -07:00
John Reck
3aa5a8fb72 Merge "Fix that CSL cache hits produce bad drawables" into sc-dev 2021-04-27 19:59:13 +00:00
John Reck
b541034702 Fix that CSL cache hits produce bad drawables
onState() needs to be called to initialize the color to be drawn
with. ColorStateListDrawable(ColorStateList) does this as part
of the call to setColorStateList(), however this was missing from
ColorStateListDrawable(ColorStateListDrawableState) which is hit
when doing ColorStateListDrawableState#newDrawable() when
Resources has a cache-hit on a drawable to load.

Fixes: 186254988
Test: app in bug
Change-Id: Ifb3626f6f85b03dd66142a2f91ba06bc648bff16
2021-04-26 21:16:44 -04:00
Brian Osman
28fd1926c0 Merge "Update frameworks/base to use newer SkRuntimeEffect::MakeForShader" into sc-dev 2021-04-26 21:52:55 +00:00
TreeHugger Robot
6a31678645 Merge "Fix a potential thread safety issue in VectorDrawable" into sc-dev 2021-04-26 20:41:47 +00:00
Brian Osman
64ee324b93 Update frameworks/base to use newer SkRuntimeEffect::MakeForShader
This enforces stricter rules on the SkSL at effect creation time, and
ensures it's valid as an SkShader (vs. an SkColorFilter). Also updated
some SkSL that was already (or would become) illegal:

- Child shaders must be declared 'uniform', not 'in'
- sampling a child requires coordinates

Bug: skia:11813
Change-Id: I743b985b5012723186a43e58e9e3ccf29d809d2b
(cherry picked from commit 7556777511)
2021-04-26 18:31:36 +00:00
John Reck
549ee05ac5 Fix a potential thread safety issue in VectorDrawable
Bug: 158839504
Test: speculative
Change-Id: Id9f229f08fe5897dda25441fbaa15c98f8130de9
2021-04-22 16:55:09 -04:00
Seigo Nonaka
80269f9f2b Use PostScript name as a key of updated font map
Bug: 185818011
Test: atest FontManagerTest
Test: atest UpdatableFontDirTest
Test: atest UpdatableSystemFontTest
Test: atest FontFamilyUpdateRequestTest
Test: atest PersistentSystemFontConfigTest
Test: atest SystemFontsUniqueNameTest

Change-Id: I78e6ee962dbd50201105599361727b71de11cf2a
2021-04-22 10:51:32 -07:00
Lucas Dupin
68ff6fb718 Merge "Clamp ink color alpha" into sc-dev 2021-04-21 16:24:42 +00:00
Lucas Dupin
fe06390a3c Clamp ink color alpha
On the old version of the ripple, the alpha is limited to 50%, we should
also do the same on the latest designs.

Bug: 184165556
Test: manual
Change-Id: Iec14394e0a0bca00283a713a409dd0794eb6fb9a
2021-04-20 21:36:37 -07:00
Lucas Dupin
668bb09e1a More subtle sparkle animation
- Reduce sparkle size
- Make sparkles fade out earlier
- Adjust animation duration

Test: visual
Fixes: 185826327
Change-Id: I477300f861dad4ec489b7a4d36b0ed7d75bf72e8
2021-04-19 15:40:55 -07:00
Lucas Dupin
469e1b4942 Merge "Make sparkle color and alpha customizable" into sc-dev 2021-04-19 21:32:28 +00:00
Lucas Dupin
9548384364 Make sparkle color and alpha customizable
This CL introduces a new attr: effectColor.
The attribute can be used on ripple tags to customize the color and
alpha of the ripple decoration.

It's also possible to change the effect color via code by invoking
RippleDrawable#setEffectColor.

Fixes: 185602477
Test: atest RippleDrawableTest
Change-Id: I9b50f330729a67ef4b529283a92c83c28387fa0b
2021-04-19 21:32:12 +00:00
Huihong Luo
81d78b91f9 Merge "Webview overlay support" into sc-dev 2021-04-19 04:45:52 +00:00
TreeHugger Robot
2ce8aef9ee Merge "Update native font API to read updated font files." into sc-dev 2021-04-17 22:36:55 +00:00
TreeHugger Robot
0566ee964d Merge "Add FontConfig.Font.getPostScriptName API" into sc-dev 2021-04-17 22:34:51 +00:00
Huihong Luo
054b8d3000 Webview overlay support
The basic idea is to create a child surface control from the root surface control passed from ViewRootImpl to the render thread.

Transactions are sent back to the java layer to get merged.

In case of offscreen layers, SurfaceControl must be disabled.

This new feature is disabled for Vulkan at the moment, a new CL will be used to enable the support.

Bug: 173671170
Test: manual, webview apks
Change-Id: I119405d13eca3c59fd3ec78e50dc7739f78411d4
2021-04-17 13:24:48 -07:00
Seigo Nonaka
5681124abb Add FontConfig.Font.getPostScriptName API
Bug: 184003133
Bug: 185508395
Test: atest FontManagerTest#fontManager_PostScriptName
Change-Id: Ie44e0d500c61b37035a0b39039891da13cd6a5ce
2021-04-17 00:46:04 -07:00
Lucas Dupin
6d1601a740 Move sparkle animation to RenderThread
The sparkle loop animation was happening on the UI thread and is poses
some interesting challengers:
- Animations freezes when UI thread is busy, for example when
  startActivity is called.
- onDraw calls add unnecessary work to the UI thread, leading to jank
  in some cases, like PIP

Test: manual
Fixes: 184760248
Change-Id: Ie2840c767da61476678839eaac215dc3aff95b5c
2021-04-15 15:26:32 -07:00
Seigo Nonaka
b950a1f746 Update native font API to read updated font files.
Bug: 184974821
Test: atest NativeSystemFontTest
Change-Id: Ia7fdf6155e07445d7f16edb88fd2a7293e63080c
2021-04-15 11:03:37 -07:00
Jorim Jaggi
10f328c580 Change hwui jank detection to use deadline & gpu completion (1/2)
- Use GPU finish time as well as actual deadline to determine jank
rate.
- Use dynamic interval to adjust for 60/90hz switching
- Move frame metrics reporting into JankTracker to adjust the
deadline communicated to the app when in stuffing scenario.
- Adjust double-stuffing detection to be a bit more readable.

Test: GraphicsStatsValidationTest.java
Test: adb shell dumpsys gfxinfo
Test: FrameMetricsListenerTest
Test: Log output of FrameMetricsObserver
Bug: 169858044
Change-Id: I3a6b8ed163e2cf9cf2b67667110340ebe35f98a1
2021-04-13 15:18:27 +00:00
Bo Liu
027b218847 Integrate HWUI with PerformanceHintManager
PerformanceHintManager.Session is in java, so add JNI and a HintSessionWrapper
class in HardwareRenderer. Then pass the two calls as two std::functions
into DrawFrameTask.

Note Session is created per HardwareRenderer, not global (per
RenderThread).

Session includes UI thread, render thread, and the thread pool.
Desired duration is from the intended start duration to the frame
deadline. Add an actual frame start time to compute

Add system properties:
debug.hwui.use_hint_manager to enable PerformanceHintManager
debug.hwui.target_cpu_time_percent to control percentage of frame time
  to be used for target cpu duration.

Test: Manual test that there are no crashes and values make sense.
Bug: 158791282
Change-Id: I83f25433c10daa20033803fb7c4ae45eab34f1d3
2021-04-10 10:21:17 -07:00
Jeff DeCew
7e70261733 Merge "Use ImageResolver for BigPictureStyle when using BigPicture" into sc-dev 2021-04-09 14:24:34 +00:00
Jeff DeCew
64686e20e4 Use ImageResolver for BigPictureStyle when using BigPicture
Bug: 163595585
Fixes: 183719542
Test: manual visual testing
Change-Id: Id86cd976a0f28978d697dd6f46cc29c4b76fcc8b
2021-04-08 20:04:36 -04:00
Lucas Dupin
ad14c212bc Merge "Ripple radius bug" into sc-dev 2021-04-08 23:49:41 +00:00
Lucas Dupin
990702017c Merge "Correctly fade sparkles in" into sc-dev 2021-04-08 23:28:56 +00:00
Lucas Dupin
b2e37616d3 Correctly fade sparkles in
The ring that masks sparkles was suddenly appearing after a few frames,
causing the sparkles to show up, instead of fade in.

Fixes: 184594674
Test: visual
Change-Id: Id88c26352379e689663808fa8c70834b7ea840b5
2021-04-08 13:12:58 -07:00
Lucas Dupin
439036a934 Do not animate sparkles when animations are off
Bug: 184746725
Test: manual
Test: car CTS
Change-Id: I5c25678760f2f76cda8430c33b4c75d14ae43903
2021-04-08 10:37:08 -07:00
Jay Aliomer
3047cb298d Ripple radius bug
Fixes: b/183912412
Test: manual test
Change-Id: I9bf3a32f2f983eb6d837e1e51d6feb1845564d22
2021-04-08 17:05:00 +00:00
Nader Jawad
2dc632aee3 Holepunch layers for SurfaceView
Update RenderNodeDrawable to hole punch areas into
layers created for SurfaceView

Bug: 184297961
Test: Added CTS test to SurfaceViewTests
Change-Id: I1f03a4fe34c5a8b7411ebe728ea3d4195fcd1fac
2021-04-06 22:03:00 -07:00