【发布时间】:2016-03-30 19:17:44
【问题描述】:
首先你好,这是我在stackoverflow中的第一个问题:)
硬件设置是 2 个 nvidia gtx980 GPU,每个 GPU 连接到 3 个显示器。 拼接墙布置为一排 6 台显示器。 我们正在使用专有的 nvidia 驱动程序。 xserver 版本为 1.15.1 (7.7)。
我们创建了一个 uinput 多点触控 ABS (MT) 设备,该设备连接到与核心指针不同的主设备。 ABS_X 和 ABS_MT_POSITION_X 的最大值和最小值根据两个 xscreen 的大小 (0, 11520 - 1) 设置。这是使用 xinput list [device id] 检查的。
由于我们使用两个 GPU,我们无法创建一个大 xscreen,但我们安排了 2 个 xscreen(每个 GPU 一个),每个 xscreen 上对齐三个显示器。
问题在于第二个 xscreen (xscreen1)。当我们发出 x 坐标高于 5760(第一个 xscreen 的大小)的触摸事件时,xserver 会在远处的 x 坐标上报告点(可能在第二个 xscreen 的末尾或更远)。我们已经从 xscreen0 开始检查了这一点并移至第二个。 y 坐标得到正确报告(因为两个 xscreen 都是 y 对齐的)。
虚拟多点触控设备的校准矩阵是单位矩阵。 如果将 uinput 设备创建为 ABS 单点设备(我猜像 wacom 数位板),则 x 坐标将正确报告。
我认为问题可能出在 evdev 或 xserver 内部(因为我已经阅读了在服务器内部而不是在 evdev 中校准的新版本)。如果是这种情况,任何关于这可能发生在哪里的提示都会很棒。如果不是这种情况,我们非常感谢任何帮助。
【问题讨论】:
标签: touch xserver xinput evdev uinput