Enable PGO for hwui
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
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index 124182f..ad6ce2c4 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -250,7 +250,17 @@
// If enabled, every GLES call is wrapped & error checked
// Has moderate overhead
"hwui_enable_opengl_validation",
-],
+ ],
+
+ // Build libhwui with PGO by default.
+ // Location of PGO profile data is defined in build/soong/cc/pgo.go
+ // and is separate from hwui.
+ // To turn it off, set ANDROID_PGO_NO_PROFILE_USE environment variable.
+ pgo: {
+ instrumentation: true,
+ profile_file: "hwui/hwui.profdata",
+ benchmarks: ["hwui"],
+ },
}
// ------------------------