summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueThreadState.cpp
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2023-08-14 13:59:40 -0700
committer Siarhei Vishniakou <svv@google.com> 2023-08-14 15:57:16 -0700
commit8a2e589e28329fd597dbb0d14f4f8f443fe9a4b0 (patch)
tree96307b009dc90e17f52039b4c704e52acaa82325 /libs/gui/BufferQueueThreadState.cpp
parent18f8c58c3654d769a6ac69ff7ea74ef322f0ea2d (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