Bug: http://b/67862169
Turn off PGO for hwui since it caused a performance regression in
tesetBitmapDrawPerf.
Test: Built successfully and tested the performance with benchmarks.
Change-Id: I7be1ff919cc03eb72e2464867a417cc3dad7a260
The in-place algorithm in ProtoOutputStream will have at most 2 copies
of possible nested message values incidentd is getting which makes it
more ram-efficient, and minimize allocations.
Bug: 65641021
Test: the units pass
Change-Id: Ic3fe99b7e27895bd613a129ba0f12ccfca4af317
This patch is trying to apply PGO for hwui. According to some research
on PGO before, we got a 5% to 10% performance improvement with PGO on
hwui and we hope to enable it.
The patch specified a hwui.profdata file, which locates in internal
google_data/pgo_profile directory, to work as the profile to feed PGO.
This profdata can be re-collected through the PGO collecting script in
the benchmark directory, and it was based on hwuimicro/hwuimacro
benchmark for now.
PGO can be turned of by setting ANDROID_PGO_NO_PROFILE_USE environment
variable.
Test: Build hwui successfully and verified the performance improvement
on device through benchmark.
Bug: http://b/63768402
Change-Id: Ib63e5504be34bdfe49f6bc2c52964c30c81f1416
- Convert to use soong, which allows bundling test data with benchmarks.
- Also separate libandroidfw_benchmarks so that it doesn't depend
on gtest.
Test: manual
Change-Id: I45bd222fafa87172c77b7f5bb2a7a89ddca72361
Implement ProtoOutputStream.h to write protobuf format data.
Usage of dumping proto:
ProtoOutputStream proto(fd);
proto.write(fieldId, value1); // dump a single value
// start to dump a message:
long long token = proto.start(messageFieldId);
proto.write(nestedField1, nestedValue1);
...
proto.end(token);
fieldId will be generated by protoc-cpp plugin(TBD). It is an encoded uint64_t
value, with 0 - 32 bits as its proto number, 33 - 40 bits reserved for
field type, int32, bool, string, message, etc. and 41 - 43 bits for
single, repeated or packed type. Currently packed field is not
supported.
Bug: 65641021
Test: N/A, need to wait for protoc-cpp plugin and will test in
incident_helper
Change-Id: Ic188615b950235aae0edeee4876b78d31feb5619
For now we reimplement global transactions in the Java side
JNI layer.
Bug: 64815723
Bug: 64816140
Bug: 64815766
Test: Existing tests pass. go/wm-smoke
Change-Id: I6c0a7b5e65b1b6cc844ac61f3269629af60a4244
The current use of SkTypeface::Style and the naming of
Typeface::fSkiaStyle are misleading. Neither is used to actually
interact with Skia (which no longer uses the type in its API). Instead,
this type and field are used to track the values which will be exposed
through the jni layer which match the Android SDK values for the
constants on the android.graphics.Typeface type.
This change allows Skia to hide and eventually remove SkTypeface::Style,
as this is the last known external user. Additionally this allows
Android an easier path when updating the Typeface API in the future.
Test: refactoring CL. Existing unit tests still pass.
Change-Id: Ic820105a5b0d98727586fdc4a9a1c45e8ad40ff3
Fix order of matrix multipication and use drawImage instead of
shader.
Test: Ran camera app, message app and smart face lock app.
Bug: 67405584
Change-Id: I3df161d58218e1b1845f1c1ca2db2b12c51b3532
Extract protobuf class out and creates EncodedBuffer class
which holds protobuf data.
Next step is to create a ProtoOutputStream and let incident helper
adapt the change as well.
please see frameworks/base/core/java/android/util/proto
Bug: 65641021
Test: unit tested
Change-Id: I0dd343b2e62d60f091c8f857fae3452ec8da6b96
Fix camera preview shown inverted. Apply texture matrix when
drawing opengl layer.
Test: Ran camera preview in message app and smart lock with face.
Ran CtsUiRenderingTestCases and CtsGraphicsTestCases tests.
Bug: 65534412
Change-Id: I3ed52a6c62921fcdfe30104dd176802ed1533fad
Unpin images when skia pipeline object is destroyed. This fixes
an assert in skia ~SkImage_Raster.
Test: Built and ran Android on a device.
Bug: 66730647
Change-Id: I73603efd4fc2ca584cdb8f6a4774e48a187f6787
Theme copying should behave the way it did with the old AssetManager
(copy only the framework attributes when copying from a Theme object
from a different AssetManager).
Cleanup the dependencies on libziparchive in ApkAssets.
Test: make libandroidfw_tests
Test: out/host/<platform>/nativetests64/libandroidfw_tests/libandroidfw_tests --testdata=frameworks/base/libs/androidfw/tests/data
Change-Id: I973f7e6eb14ce311306e2ec66a623a4790c8d233
We didn't trace the draw from cache.
Here we add trace for draw into bitmap, which is normally heavy.
fix: 65060698
Bug: 65060698
Test: run test app and get systrace and check
Change-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e
(cherry picked from commit cf0c41dbc2)
Fix alpha not being applied for Views that have non overlapping
rendering (getHasOverlappingRendering is false).
Test: Ran system UI
Bug: 65857651
Change-Id: I31001de0f67bf95ab8425189a4b78427d062585d
This is a test that simulates a standard TV application screen.
The UI elements:
A full screen background bitmap.
Few rows of cards.
Each card has a bitmap and an info area.
Info area has two lines text.
Each card is dimmed, implemented in two modes:
1. adding translucent color RenderNode on top of card
2. applying ColorFilter to bitmap.
Firt card of each row is scaled up and has shadow.
The animations:
Cards are updating translation Y and updating display list
and overlay color alpha or colorfilter.
Test: there are four tests:
tvapp: baseline test, with rounded corner, use Color RenderNode to dim
tvapp_norc: no rounded corner
tvapp_cf: use colorfilter to dim
tvapp_norc_cf: no rounded corner, use colorfilter to dim
Bug: 64990221
Change-Id: I385e349386c41e32b7313180db8c81b8f3e39f88