diff options
| author | 2023-08-14 13:59:40 -0700 | |
|---|---|---|
| committer | 2023-08-14 15:57:16 -0700 | |
| commit | 8a2e589e28329fd597dbb0d14f4f8f443fe9a4b0 (patch) | |
| tree | 96307b009dc90e17f52039b4c704e52acaa82325 /libs/gui/BufferQueueThreadState.cpp | |
| parent | 18f8c58c3654d769a6ac69ff7ea74ef322f0ea2d (diff) | |
Override VelocityTracker strategy for non-differential axes only
VelocityTracker may use different strategies, depending on the system
flags. By default, the behaviour is like this:
AXIS_X -> lsq2
AXIS_Y -> lsq2
AXIS_SCROLL -> impulse
However, if we provide a specific strategy to VT, then things would
change. The new map would look like this:
AXIS_X -> provided strategy
AXIS_Y -> provided strategy
AXIS_SCROLL -> provided strategy
This works fine if the user specifies "impulse" as the desired strategy,
because impulse supports all of the axes.
However, lsq2 only works in non-differential mode.
The combination of "AXIS_SCROLL -> lsq2" is not allowed.
To fix this, we only allow the specified strategy to affect
non-differential axes.
This is fine, because currently, impulse is the only strategy that can
work in the differential mode.
To reproduce the issue:
1. Run `atest VelocityTrackerTest`. Test should pass, because the
default strategy is being used.
2. Connect the device to internet
3. Reboot the device
4. Run `atest VelocityTrackerTest` again. Test should fail because the
device would pick up an "lsq2" strategy value and then try to run the
axis_scroll tests with it.
Bug: 295290374
Test: atest VelocityTrackerTest
Change-Id: I702a2a3e58db3ce2e0ff0c33122839a527eebab2
Diffstat (limited to 'libs/gui/BufferQueueThreadState.cpp')
0 files changed, 0 insertions, 0 deletions