Commit Graph

9454 Commits

Author SHA1 Message Date
Leon Scroggins III
6353ff5bb5 Merge "AnimatedImageDrawable: Eliminate unnecessary calls to redraw" into pi-dev
am: a2113aa4ad

Change-Id: Ice3ac92ebd4ae68d1fe9b8ae46f86e320058d169
2018-05-17 13:06:32 -07:00
TreeHugger Robot
a2113aa4ad Merge "AnimatedImageDrawable: Eliminate unnecessary calls to redraw" into pi-dev 2018-05-17 19:54:50 +00:00
Leon Scroggins III
4afdd1caa4 AnimatedImageDrawable: Eliminate unnecessary calls to redraw
Bug: 78866720
Test: Manual + systrace; existing CTS

Previously, we set hasAnimations to true when the AnimatedImageDrawable,
so that we would get a call to redraw. But if the image does not need to
show its next frame yet, the redraw was unnecessary.

Instead, add a new field to TreeInfo::Out, representing the delay time
until the image will need to be redrawn - i.e. when the duration of the
current frame has passed. Each call to prepareTree will post at most one
message to redraw, in time for the earliest animated image to be
redrawn. Post the message for one rendered frame ahead of time, so that
when it is time to show the next frame, the image has already gotten the
message to update.

On a screen with a single animated image, this drops the number of calls
to dispatchFrameCallbacks to as infrequent as possible. It is called
only when we need to draw a new frame of the image. On a screen with
multiple animated images, the calls may be redundant, but they will not
be more frequent than they would be without this change.

Switch to nsecs_t and systemTime internally, matching the rest of HWUI.

Remove mDidDraw and related. Its purpose was to prevent advancing the
animation while the image is not being drawn. But it isn't really
necessary. If it's not drawn, onDraw is not called, which is where we
trigger decoding. And onDraw already has a defense against getting too
far ahead - if its timer indicates that it should skip a frame or show
it very briefly, it will back up its timer. More importantly, mDidDraw
caused a bug, when combined with less frequent redraws. If the display
list containing the drawable doesn't need to be redrawn for other
reasons, the drawable's timer never advanced, so its animation stopped.

Fix software drawing. Compute the milliseconds in the future to draw the
next frame, and add that to SystemClock.uptimeMillis() to compute the
time to pass to scheduleSelf.

Change-Id: I13aab49922fa300f73b327be25561d7120c09ec4
2018-05-16 18:51:07 -04:00
Dan Willemsen
d00c851e55 Merge "Convert to Soong" am: acbd94d76f
am: b1005a8a2a

Change-Id: If5cb26e0669f79240d8fee1d40aaa2162d8e611f
2018-05-15 15:06:19 -07:00
Dan Willemsen
4888b1f6f0 Convert to Soong
See build/soong/README.md for more information.

Test: m libframeworks_coretests_jni
Test: m FrameworkCoreTests_install
Test: m libshim_jni
Test: m CtsShimPrivUpgrade
Test: m libfilterfw
Test: m PMTest_Java_dual
Test: m libdefcontainer_jni
Test: m libperftestscore_jni
Test: m libpmtest32 libpmtest64
Test: m libprintspooler_jni
Test: m libsmartcamera_jni
Test: m idmap
Test: m libdrmframework_jni
Test: m libdvr_loader com.google.vr.platform com.google.vr.platform.xml
Test: m libfilterpack_imageproc libfilterpack_base
Test: m libwebviewchromium_loader
Test: m shared_mem_test
Test: m test-touchlag
Change-Id: I868561dd237fa28647896d59049ab9260373ada1
2018-05-14 16:47:02 -07:00
Leon Scroggins
3ea0aae1d1 Merge "Use filtering when drawing nine-patches" into pi-dev
am: b638985cc1

Change-Id: Id7dfab69b931a96d802c0ab43a06fc74267aff5c
2018-05-09 09:54:47 -07:00
Leon Scroggins
b638985cc1 Merge "Use filtering when drawing nine-patches" into pi-dev 2018-05-09 16:38:41 +00:00
Ryan Mitchell
d94160943d Merge "AAPT: Fixed split resource dumping" into pi-dev
am: fb07d82086

Change-Id: I66dedae28679c07e0bfa76cfafba97d563356fcb
2018-05-08 10:28:36 -07:00
Leon Scroggins III
5a663768c4 Use filtering when drawing nine-patches
Bug: 77917978
Test: Look at toggles; CtsUiRenderingTestCases

Prior to this change, the toggles look pixelated due to using a
"nearest" filter instead of a "bilerp".

This matches the behavior of the hwui renderer.

Depends on changes in Skia (Ib7d0abdd51981bddf36ec5c3fd84bb651f405f0f)
to respect the filter quality when drawing to a GPU canvas and to
remove the resulting "bleeding" effect from drawImageLattice.

Change-Id: I59d81a17f351e18574539479a38a580a02e1619b
2018-05-08 17:23:11 +00:00
Ryan Mitchell
fb07d82086 Merge "AAPT: Fixed split resource dumping" into pi-dev 2018-05-08 17:17:17 +00:00
android-build-team Robot
ccb89f9263 Merge "Adding batterystats history to proto dump." into pi-dev
am: 291b944d89

Change-Id: Ie1766ac31bc048eeba13d540c446372ef56c2da6
2018-05-08 08:11:22 -07:00
android-build-team Robot
291b944d89 Merge "Adding batterystats history to proto dump." into pi-dev 2018-05-08 14:58:09 +00:00
Kweku Adams
71a9531806 Adding batterystats history to proto dump.
It will only print out a dump for userdebug or eng builds.

Bug: 77727638
Test: flash device and check output of incident proto and
'dumpsys batterystats -c --history'

Merged-In: Ib74d4c664f23a61e6fc33f700ba6a3c6fad32c74
Change-Id: Ia0c993d1281cc350d93f9c13f5540b349a4bfb84
2018-05-07 17:53:57 -07:00
Ryan Mitchell
30487e0a79 AAPT: Fixed split resource dumping
AAPT would not print resource values for splits passed in with the -I
flag. This fix prints out each split separately with the correct type
specs and values.

Bug: 79195967
Test: aapt dump --values -I base-hdpi.apk resources base-master.apk
Change-Id: I223186136e98180fec4a3d96f92f53407db59e2d
2018-05-07 15:36:44 -07:00
John Reck
d41c17308b Merge "Ensure GL & Gralloc both support FP16 before using it" into pi-dev
am: bf39913bbc

Change-Id: Ic3a72f4684966e04b64101b2798c4ec3c0549549
2018-05-07 13:34:52 -07:00
John Reck
bf39913bbc Merge "Ensure GL & Gralloc both support FP16 before using it" into pi-dev 2018-05-07 20:26:02 +00:00
John Reck
b29c772429 Ensure GL & Gralloc both support FP16 before using it
Change-Id: I3bda750b6011d9a69969fc938a230c2445ee8dae
Merged-In: Id8a53885178d698c7b2fd6fc5ea8d4e36ce2ef15
Fixes: 77973662
Test: builds & CTS passes
2018-05-07 16:49:45 +00:00
Derek Sollenberger
1babd54e4c Support readback of TextureView into 565 and extended sRGB.
am: 2324991a77

Change-Id: If80572b06965089415c32b6ded8b6b1b5fda19b5
2018-05-04 12:00:32 -07:00
Derek Sollenberger
2324991a77 Support readback of TextureView into 565 and extended sRGB.
Bug: 78906699
Test: CtsViewTestCases
Change-Id: I89e8544a883dcb3eb222c164ab57d20e55a073c3
2018-05-04 18:46:52 +00:00
Yi Jin
68a16c4277 Merge "Add a section flag to bypass failure if a specific path can't be found." into pi-dev
am: e09cde0cd9

Change-Id: I01c5a7a2c1ead02f5af0514cf9bf9b83f1682316
2018-05-02 15:10:58 -07:00
Yi Jin
e09cde0cd9 Merge "Add a section flag to bypass failure if a specific path can't be found." into pi-dev 2018-05-02 21:36:23 +00:00
android-build-team Robot
72b1215615 Merge "Invoke create_recording_canvas correctly in macro bench tests" into pi-dev
am: f28901f6c5

Change-Id: I855fec4f3cf126485999a008cec9648967cbf21f
2018-05-02 12:52:01 -07:00
android-build-team Robot
f28901f6c5 Merge "Invoke create_recording_canvas correctly in macro bench tests" into pi-dev 2018-05-02 19:38:43 +00:00
Anton Hansson
0f185f8b19 Merge "frameworks/base: Update a few more references to android.jar." am: 85e68063a9
am: 52e98e1b7a

Change-Id: Iffb2389f8ef3dcca139a99a617c2079910f3c902
2018-05-02 10:24:32 -07:00
Yi Jin
7fe3dee3ae Add a section flag to bypass failure if a specific path can't be found.
This is a temporary solution to bypass failure of reading cpu info or 
battery type in P if the path doesn't exist on some devices. See bug for
details. However in Q, incidentd should implement reading from the
common Linux kernel interfaces.

Bug: 78028767
Bug: 78239764
Test: atest incidentd_test
Change-Id: I08ffcb21709efe5478d2ac46121deb5795af1024
Merged-In: I08ffcb21709efe5478d2ac46121deb5795af1024
2018-05-02 01:31:08 +00:00
Anton Hansson
0c70390040 frameworks/base: Update a few more references to android.jar.
These files are moving. Update the paths so that the old files can be
deleted.

Bug: 77525052
Test: ./build for one of these scripts
Change-Id: Iacca1f1930d6a2614866f6503a2b4c1eba4d4018
2018-05-01 18:34:10 +01:00
Derek Sollenberger
9298ad1b78 Merge "Respect a Layer's (e.g. SurfaceTexture) colorSpace when compositing" into pi-dev 2018-05-01 16:57:28 +00:00
Derek Sollenberger
551d08e2d5 Respect a Layer's (e.g. SurfaceTexture) colorSpace when compositing
This CL extracts the android_dataspace from the GLConsumer and converts
it to a SkColorSpace.  HWUI always expects to composite into an sRGB
destination so when we draw the layer we run the draw through a
colorFilter that converts the input colorSpace into that of the
destination.

Test: CtsViewTestCases
Bug: 78016220
Merged-In: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b
Change-Id: Ic0446a0d861e86a5a9d0382346b57fcc45c8a61b
2018-05-01 02:45:43 +00:00
Stan Iliev
4f901c8cec Invoke create_recording_canvas correctly in macro bench tests
create_recording_canvas expects as a last parameter a render node,
which is used to reuse deallocated display lists. Passing the
render node improved performance in several tests and it is
matching how HWUI is using that API too.

bug: 69131471
Test: tvappGlTex DrawFrame is 1ms faster
Change-Id: I93d8da694c178d3fb8d1aa52afa76dd8271e93cb
2018-04-30 20:22:19 +00:00
Todd Kennedy
13588dc9e4 Merge "Allow using reserved package IDs" into pi-dev 2018-04-26 21:29:17 +00:00
Todd Kennedy
325129964e Allow using reserved package IDs
Pre-O, the platform treats negative resource IDs [those with
a package ID of 0x80 or higher] as invalid.  In order to work
around this limitation, we allow the use of traditionally
reserved resource IDs [those between 0x02 and 0x7E].

Bug: 78041707
Test: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests
Test: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests
Test: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.

Change-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160
2018-04-26 10:27:30 -07:00
Leon Scroggins
5bb709c31e Merge "Attach color space after performing a readback" into pi-dev 2018-04-24 20:01:22 +00:00
Leon Scroggins III
3eadfde67f Attach color space after performing a readback
Bug: 78463311
Test: I28713c3e5ce38dea15c75542801f9aef0e5b5b0a

Bitmap::getSkBitmap() is used by Bitmap#compress before encoding. If the
Bitmap has Config HARDWARE, we have to do a readback first. We cannot
necessarily do the readback using the SkColorSpace of the Bitmap, since
that requires creating an SkSurface, which does not support all
SkColorSpaces. Instead, continue using nullptr for the readback, and
then change the info and reattach the SkPixelRef.

This fixes a bug where encoding a non-SRGB HARDWARE Bitmap and then
decoding it results in a Bitmap with the wrong ColorSpace.

Change-Id: If55b2dbfeb17d81ceaf9594b32ed69b6a9058f06
2018-04-23 16:09:14 -04:00
Yao Chen
49954cd681 Add socket listener to statsd. And remove Davey atom.
+ The socket listener is behind a flag. It's disabled until we get sepolicy changes in.
+ Data parsing code is from logd, because we use the same format.

+ Removed Davey from JankTracker because it violates our new sepolicy

Test: manually
Bug: 78239479

Change-Id: Ib17729fbc362cdb13385f780e2d636a95adf9bc3
2018-04-20 17:41:25 -07:00
y
9efbbef2e0 AAPT2: Support id reference chaining from AAPT
AAPT would allow for ids to be declared in the form:

<item name="name" type="id>@id/other</item>

@id/name should hold a reference to @id/other. When
getResources().getValue() is called on R.id.name with resolveRefs
enabled, the resuling reference should be R.id.other.

Bug: 69445910
Test: Created tests for correct parsing of id references and correct
resolving of deep references

Change-Id: Id1feb37b2565c213dc6a19b4c401906260d7fc14
2018-04-18 11:46:53 -07:00
TreeHugger Robot
1c70ecb455 Merge "Unpin bitmaps but don't purge all scratch resources." into pi-dev 2018-04-16 17:05:45 +00:00
Ryan Mitchell
3ddd801449 Merge "AAPT2: GetBag infinite recursion fix" into pi-dev 2018-04-13 17:44:11 +00:00
y
57cd195c43 AAPT2: GetBag infinite recursion fix
Style resources with circular parental dependencies caused infinite
recursion when calling AssetManager2::GetBag. This fix allows recursion
to cease when a circular dependency is found.

Bug: 77928512
Change-Id: Ib900c36ab1aef5da5b03234a9484c4dad3b63c02
Test: Manual test of b/77928512 and duplicates of 74493983
2018-04-13 08:50:09 -07:00
TreeHugger Robot
d0fdef9229 Merge "Revert "Revert "Update material_deep_teal_500 to #008577.""" into pi-dev 2018-04-12 23:23:00 +00:00
Kweku Adams
1856a4cfcc Adding privacy tags to graphicsstats proto.
Creating a copy of the graphicsstats proto so that one can be tagged
with privacy annotations and the other can be used internally while
still using the protobuf-cpp-lite library.

Bug: 72570104
Test: flash device and check incident output
Merged-In: I2d72e7bd17689c1401a16d5a13956e6528ddb525
Change-Id: I0a46ee6cc463b133925be1cf8dee8cf3d107930c
2018-04-12 14:23:15 -07:00
Derek Sollenberger
92a9eb9713 Unpin bitmaps but don't purge all scratch resources.
This is a partial revert of b1f27aae89.

Test: hwui_unit_tests
Bug: 77654081
Change-Id: I5a58c156a280edfe3e9973ac3a8a30c97a2cff8b
2018-04-12 13:42:19 -04:00
Andrew Sapperstein
8546c30fbf Revert "Revert "Update material_deep_teal_500 to #008577.""
This reverts commit 431d9d63e9.

Reason for revert: Rolling forward with a fix.

Change-Id: I5804e240535b84e0f4b2d306649b1981a9871632
Merged-In: I5804e240535b84e0f4b2d306649b1981a9871632
Bug: 74118164
Test: atest cts/hostsidetests/theme
2018-04-11 20:48:11 +00:00
Krzysztof Kosiński
052dd1e712 Merge "hwui/debug: Remove glMultiDrawElementsBaseVertexOES stubs." into pi-dev 2018-04-10 22:23:09 +00:00
Ryan Mitchell
135d82ac45 Merge "ResStringPool: Fix security vulnerability" into pi-dev 2018-04-09 23:38:37 +00:00
TreeHugger Robot
2b28f0699a Merge "Improving jank tests diagnostics" into pi-dev 2018-04-06 20:57:25 +00:00
Vadim Tryshev
a90b243e46 Improving jank tests diagnostics
When there were 0 total frames, ProfileData generates something like:
Janky frames: 0 (nan%)

Then the test fails to parse it, and ends up with a mysterious
"Failed to parse NUM_JANKY" diag (see the bug).

Making the case 0/0 a 0%.

Bug: 77528721
Test: atest google/perf/jank/SystemUI/UbSystemUIJankTests:android.platform.systemui.tests.jank.LauncherJankTests#testOpenAllAppsContainer
Change-Id: Ib65b80dc689f7b6ee06b108114ffd7de9d739721
2018-04-06 12:25:40 -07:00
y
e46df9d47e ResStringPool: Fix security vulnerability
Adds detection of attacker-modified size and data fields passed to
ResStringPool::setTo(). These attacks are modified apks that AAPT would
not normally generate. In the rare case this occurs, the installation
cannot be allowed to continue.

Bug: 71361168
Bug: 71360999
Test: run cts -m CtsAppSecurityHostTestCases \
          -t android.appsecurity.cts.CorruptApkTests
Change-Id: If7eb93a9e723b16c8a0556fc4e20006aa0391d57
2018-04-06 18:12:42 +00:00
Jorim Jaggi
767e25ed61 Add ability to change context priority of RT GL context
Test: Use method, observe GPU preemption behavior
Bug: 75985430
Change-Id: Idc08d37f8c95f52c5aab7edf09c0cbff72b8482d
2018-04-06 12:12:07 +00:00
TreeHugger Robot
72a39eb3be Merge "This cl tries to fix cts tests IncidentdTest" into pi-dev 2018-04-05 18:48:59 +00:00
Yi Jin
ad3e6e5d5a This cl tries to fix cts tests IncidentdTest
1. Disable BatteryType section which is device-specific
2. Make timeout longer since meminfo section timedout in test
3. make some negative values sint
4. varint can be 64 bits, there is a bug implicitly convert it to 32
which loses values.
5. Found another bug which failed to read 64 bits varint, create a
native test to make sure it works.

Bug: 77291057
Test: atest CtsIncidentHostTestCases:com.android.server.cts.IncidentdTest
Change-Id: I04cc730741f7901f37ac57a11af7777d57118a23
2018-04-04 16:29:55 -07:00