Re: [USB redirection] position offset for touch-screen

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi guys,
I wanna make a summary about the USB touchscreen redirection offset problem. Hope to be helpful.

What is the problem?
Using KVM/QEMU windows10 VM, with spice & QXL enabled, USB touchscreen device redirection does not work as expected. There is some offset. 
More specifically, the behaviour is quite different for different resolutions. 

Case 1: both client OS and guest OS resolution are 1024x768. It works as expected, no offsets.
Case 2: client OS 1920x1080, guest OS 1024x768, there are offsets, but the proportion seems right. Video record is here:
Case 3: Both client OS and guest OS are 1920x1080, there are significant offsets. Video record is here:

What have I done to analyze this problem?
I have tried to capture the USB data packets to prove that the data Guest OS accepted is OK. Record here:

What have I tried to overcome?
I changed the QEMU vga device type from qxl to virtio or std. The offset is gone. 

However if you access your VM on SPICE remotely, from my experience, the performance of qxl is better than virtio.
That means if you want to use qxl to support USB touchscreen redirection, the workaround above is not for you.

With the help of  Uri Lublin(ulublin@xxxxxxxxxx),  I prefer to believe there is something buggy between qxl and SPICE-vdagent.  For the performance consideration, I need QXL, not virtio. 

Because there is no GPU on my server and I need to access my virtual desktop from the remote. I will try to find a better solution. If you have any suggestions, please let me know.


On Wed, May 18, 2022 at 9:59 AM Walter Mitty <waltermitty121906@xxxxxxxxx> wrote:
GuestOS: Win10
Host OS: Ubuntu 20.04
Client OS: Ubuntu 20.04

I enabled usb redirection on a touch screen. The position VM actually rendered has offset from the touching point on screen. I wanna fix it. But I don't know where to start. Could anyone give me some advice please?

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]