diff options
author | 2024-03-21 04:54:39 +0000 | |
---|---|---|
committer | 2024-03-21 04:54:39 +0000 | |
commit | aefd4a49d88b3aaf5637e9e2d84feb64115bdb1d (patch) | |
tree | 51d209b7925a3d4306a36144a50e46826042773c | |
parent | f49bc7438d79a10e5a1800b1e147ecffb22935e1 (diff) |
Revert "Stylus Metrics: Switch to non-bootstrap statslog library"
This reverts commit f49bc7438d79a10e5a1800b1e147ecffb22935e1.
Reason for revert: ARC boot is failing after this CL http://b/330281690
Change-Id: Ib508544df1d4ab4b7587c3f04804cec2d2310d77
-rw-r--r-- | libs/input/Android.bp | 49 | ||||
-rw-r--r-- | libs/input/MotionPredictorMetricsManager.cpp | 33 | ||||
-rw-r--r-- | libs/input/tests/Android.bp | 9 |
3 files changed, 76 insertions, 15 deletions
diff --git a/libs/input/Android.bp b/libs/input/Android.bp index 5e38bdc493..3278c23b6f 100644 --- a/libs/input/Android.bp +++ b/libs/input/Android.bp @@ -248,7 +248,6 @@ cc_library { "libcutils", "liblog", "libPlatformProperties", - "libstatslog", "libtinyxml2", "libutils", "libz", // needed by libkernelconfigs @@ -289,6 +288,17 @@ cc_library { target: { android: { + export_shared_lib_headers: ["libbinder"], + + shared_libs: [ + "libutils", + "libbinder", + // Stats logging library and its dependencies. + "libstatslog_libinput", + "libstatsbootstrap", + "android.os.statsbootstrap_aidl-cpp", + ], + required: [ "motion_predictor_model_prebuilt", "motion_predictor_model_config", @@ -303,6 +313,43 @@ cc_library { }, } +// Use bootstrap version of stats logging library. +// libinput is a bootstrap process (starts early in the boot process), and thus can't use the normal +// `libstatslog` because that requires `libstatssocket`, which is only available later in the boot. +cc_library { + name: "libstatslog_libinput", + generated_sources: ["statslog_libinput.cpp"], + generated_headers: ["statslog_libinput.h"], + export_generated_headers: ["statslog_libinput.h"], + shared_libs: [ + "libbinder", + "libstatsbootstrap", + "libutils", + "android.os.statsbootstrap_aidl-cpp", + ], +} + +genrule { + name: "statslog_libinput.h", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_libinput.h --module libinput" + + " --namespace android,stats,libinput --bootstrap", + out: [ + "statslog_libinput.h", + ], +} + +genrule { + name: "statslog_libinput.cpp", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_libinput.cpp --module libinput" + + " --namespace android,stats,libinput --importHeader statslog_libinput.h" + + " --bootstrap", + out: [ + "statslog_libinput.cpp", + ], +} + cc_defaults { name: "libinput_fuzz_defaults", cpp_std: "c++20", diff --git a/libs/input/MotionPredictorMetricsManager.cpp b/libs/input/MotionPredictorMetricsManager.cpp index 149a36ee31..6872af2aa5 100644 --- a/libs/input/MotionPredictorMetricsManager.cpp +++ b/libs/input/MotionPredictorMetricsManager.cpp @@ -21,11 +21,14 @@ #include <algorithm> #include <android-base/logging.h> -#include <statslog.h> #include "Eigen/Core" #include "Eigen/Geometry" +#ifdef __ANDROID__ +#include <statslog_libinput.h> +#endif + namespace android { namespace { @@ -45,18 +48,22 @@ inline constexpr float PATH_LENGTH_EPSILON = 0.001; void MotionPredictorMetricsManager::defaultReportAtomFunction( const MotionPredictorMetricsManager::AtomFields& atomFields) { - android::util::stats_write(android::util::STYLUS_PREDICTION_METRICS_REPORTED, - /*stylus_vendor_id=*/0, - /*stylus_product_id=*/0, - atomFields.deltaTimeBucketMilliseconds, - atomFields.alongTrajectoryErrorMeanMillipixels, - atomFields.alongTrajectoryErrorStdMillipixels, - atomFields.offTrajectoryRmseMillipixels, - atomFields.pressureRmseMilliunits, - atomFields.highVelocityAlongTrajectoryRmse, - atomFields.highVelocityOffTrajectoryRmse, - atomFields.scaleInvariantAlongTrajectoryRmse, - atomFields.scaleInvariantOffTrajectoryRmse); + // Call stats_write logging function only on Android targets (not supported on host). +#ifdef __ANDROID__ + android::stats::libinput:: + stats_write(android::stats::libinput::STYLUS_PREDICTION_METRICS_REPORTED, + /*stylus_vendor_id=*/0, + /*stylus_product_id=*/0, + atomFields.deltaTimeBucketMilliseconds, + atomFields.alongTrajectoryErrorMeanMillipixels, + atomFields.alongTrajectoryErrorStdMillipixels, + atomFields.offTrajectoryRmseMillipixels, + atomFields.pressureRmseMilliunits, + atomFields.highVelocityAlongTrajectoryRmse, + atomFields.highVelocityOffTrajectoryRmse, + atomFields.scaleInvariantAlongTrajectoryRmse, + atomFields.scaleInvariantOffTrajectoryRmse); +#endif } MotionPredictorMetricsManager::MotionPredictorMetricsManager( diff --git a/libs/input/tests/Android.bp b/libs/input/tests/Android.bp index 1144f4d861..e67a65a114 100644 --- a/libs/input/tests/Android.bp +++ b/libs/input/tests/Android.bp @@ -64,7 +64,6 @@ cc_test { "libcutils", "liblog", "libPlatformProperties", - "libstatslog", "libtinyxml2", "libutils", "server_configurable_flags", @@ -83,6 +82,14 @@ cc_test { address: true, }, }, + android: { + static_libs: [ + // Stats logging library and its dependencies. + "libstatslog_libinput", + "libstatsbootstrap", + "android.os.statsbootstrap_aidl-cpp", + ], + }, }, } |