diff options
author | 2024-03-20 13:53:40 -0700 | |
---|---|---|
committer | 2024-03-20 16:48:35 -0700 | |
commit | 1af8b968a8cd93d2642d9a8bf84f23a8db9d016e (patch) | |
tree | e0ab39ae8b118230f2383e03a8b8637ac90bebe4 | |
parent | 0c81eb0a8749c606007b08c07d0c03acd5e30b39 (diff) |
Add flag to enable jerk prediction pruning.
For now this flag will simply allow all motion predictions (no-op).
Test: atest libinput_tests
Bug: 266747654
Change-Id: I7f8254bb4ea6702fecbb8cd8cfa568dbd06e4f37
-rw-r--r-- | libs/input/MotionPredictor.cpp | 13 | ||||
-rw-r--r-- | libs/input/input_flags.aconfig | 7 |
2 files changed, 19 insertions, 1 deletions
diff --git a/libs/input/MotionPredictor.cpp b/libs/input/MotionPredictor.cpp index c4e3ff6dee..e836a4c92f 100644 --- a/libs/input/MotionPredictor.cpp +++ b/libs/input/MotionPredictor.cpp @@ -22,17 +22,21 @@ #include <cmath> #include <cstddef> #include <cstdint> +#include <limits> #include <string> #include <vector> #include <android-base/logging.h> #include <android-base/strings.h> #include <android/input.h> +#include <com_android_input_flags.h> #include <attestation/HmacKeyManager.h> #include <ftl/enum.h> #include <input/TfLiteMotionPredictor.h> +namespace input_flags = com::android::input::flags; + namespace android { namespace { @@ -197,7 +201,14 @@ std::unique_ptr<MotionEvent> MotionPredictor::predict(nsecs_t timestamp) { // device starts to speed up, but avoids producing noisy predictions as it slows down. break; } - // TODO(b/266747654): Stop predictions if confidence is < some threshold. + if (input_flags::enable_jerk_prediction_pruning()) { + // TODO(b/266747654): Stop predictions if confidence is < some threshold + // Arbitrarily high pruning index, will correct once jerk thresholding is implemented. + const size_t upperBoundPredictionIndex = std::numeric_limits<size_t>::max(); + if (i > upperBoundPredictionIndex) { + break; + } + } const TfLiteMotionPredictorSample::Point predictedPoint = convertPrediction(axisFrom, axisTo, predictedR[i], predictedPhi[i]); diff --git a/libs/input/input_flags.aconfig b/libs/input/input_flags.aconfig index b48b0fb924..c1f5e2a53b 100644 --- a/libs/input/input_flags.aconfig +++ b/libs/input/input_flags.aconfig @@ -128,3 +128,10 @@ flag { description: "Enable fling scrolling to be stopped by putting a finger on the touchpad again" bug: "281106755" } + +flag { + name: "enable_jerk_prediction_pruning" + namespace: "input" + description: "Enable prediction pruning based on jerk thresholds." + bug: "266747654" +} |