Bug 2009304
Summary: | Mouse cursor offset in GNOME VMs with Wayland (but not X11), due to use of Atomic API | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kamil Páral <kparal> | ||||||||||||||
Component: | mutter | Assignee: | Florian Müllner <fmuellner> | ||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||||
Priority: | unspecified | ||||||||||||||||
Version: | 35 | CC: | alon, awilliam, cfergeau, fmuellner, geraldo.simiao.kutz, gnome-sig, hdegoede, jadahl, jforbes, kraxel, marcandre.lureau, otaylor, philip.wyett, robatino, sandmann, sgraf, victortoso, walters | ||||||||||||||
Target Milestone: | --- | ||||||||||||||||
Target Release: | --- | ||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||
OS: | Unspecified | ||||||||||||||||
Whiteboard: | AcceptedBlocker | ||||||||||||||||
Fixed In Version: | mutter-41.0-3.fc35 | Doc Type: | If docs needed, set a value | ||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||
Clone Of: | Environment: | ||||||||||||||||
Last Closed: | 2021-10-07 23:31:55 UTC | Type: | Bug | ||||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||||
Documentation: | --- | CRM: | |||||||||||||||
Verified Versions: | Category: | --- | |||||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||
Embargoed: | |||||||||||||||||
Bug Depends On: | |||||||||||||||||
Bug Blocks: | 1891955 | ||||||||||||||||
Attachments: |
|
Description
Kamil Páral
2021-09-30 10:20:48 UTC
Created attachment 1827637 [details]
bug demonstration on Wayland
Created attachment 1827638 [details]
bug doesn't appear on X11
Created attachment 1827639 [details]
VM libvirt XML
Created attachment 1827640 [details]
VM libvirt XML without mouse integration
In this VM configuration I removed the mentioned devices which enable mouse integration, and the problem no longer occurs.
I'm proposing this as a F35 final blocker. There is no specific criterion, but shifted mouse cursor coordinates break many common use cases of the graphical desktop. From text selection (selecting different characters than you expect) to drawing applications to simply clicking on smaller buttons (if you position the mouse in a certain way, a neighboring button/widget might get clicked instead). As I mentioned on the other bug, Kamil, I *did* see this in earlier releases, but usually only on KDE. I hadn't seen it on Workstation till F35. With F35 host and guest I get it every time in Workstation or KDE. Not sure if it's the host or guest end that matters, when you say "I checked VMs with Fedora 33 and 34 Workstation (with Wayland)" do you mean you tested 33 and 34 in the *guest*? > when you say "I checked VMs with Fedora 33 and 34 Workstation (with Wayland)" do you mean you tested 33 and 34 in the *guest*?
Yes, I tested different VM guests (all Workstation), and only saw the problem in F35. The host was the same in all cases (F35).
That's odd, I'm seeing it with an F34 guest on F35 as well. I think it's a fresh install from F34 Workstation live. I tried removing spice-vdagent and qemu-guest-agent from the guest, but neither made any difference. So maybe this is in the core of spice, not the agent? also tried downgrading spice-server to 0.14.3 and qemu to 6.0.0; neither of those helped unless I missed restarting something between downgrades... and qemu 5.2.0 no good either. hmm. Discussed during the 2021-10-04 blocker review meeting: [1] The decision to classify this bug as an AcceptedBlocker was made: "In contrast to 2006746, this bug seems to happen on all boots of an F35 Workstation or KDE VM, and it causes substantial functionality issues, so we accept it as a sufficiently serious problem to constitute a violation of several graphical desktop usage requirements when running in a VM." [1] https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2021-10-04/f35-blocker-review.2021-10-04-16.02.log.html This is likely a resurfacing of the mutter on Wayland cursor hotspot issue which we already hit and resolved quite some time ago. The atomic API does not allow specifying the cursor hotspot causing issues with virtual-machines which draw the cursor them-selves. The solution is to not use the atomic API (at least for the cursor) when running on say QXL graphics or a couple of other virtual GPUs. @jadahl I believe that you fixes this the last time, can you take a look ? This might be a mutter regression; or maybe new VMs created on F35 (the host is F35 too) use a new type of virtual GPU which needs to be added to the list of virtual GPUs mutter checks for ? The attached libvirt xml description of the VM has this: <video> <model type="virtio" heads="1" primary="yes"/> <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/> </video> Maybe the use of virtio instead of qxl is new(ish) (I thought it was the default for a while already but not sure) and this is missing from the list of virtual GPUs which mutter treats specially to avoid the hotspot issue? Hans, switching from virtio GPU to qxl indeed fixes the problem, the cursor offset is no longer present. A log output of running with MUTTER_DEBUG=kms in the environment would help. Probably a missing driver entry in this list: https://gitlab.gnome.org/GNOME/mutter/-/blob/af0460d0cedd5a66b2110ab2a99e67c647e7b6fb/src/backends/native/meta-kms-impl-device-atomic.c#L1149-1152 Created attachment 1829408 [details] journal with MUTTER_DEBUG=kms (In reply to Jonas Ådahl from comment #15) > A log output of running with MUTTER_DEBUG=kms in the environment would help. Attached. (In reply to Kamil Páral from comment #17) > Created attachment 1829408 [details] > journal with MUTTER_DEBUG=kms > > (In reply to Jonas Ådahl from comment #15) > > A log output of running with MUTTER_DEBUG=kms in the environment would help. > > Attached. Thanks. This confirms my suspicion: Oct 05 14:55:14 fedora gnome-shell[973]: Added device '/dev/dri/card0' (virtio_gpu) using atomic mode setting. "virtio_gpu" isn't part of the deny list for atomic mode setting, which breaks the cursor hotspot. aha, and indeed, I'm using virtio in my affected VMs, and the time I started doing this probably does line up with when I started seeing the problem, now I think of it. It sounds like KDE would need to fix this separately, right? (In reply to Adam Williamson from comment #20) > It sounds like KDE would need to fix this separately, right? Yes, the fix here is in mutter. We could also fix it in F34, I guess. Wouldn't help the official lives, but would help installed VMs and the live respins (next time they're built). Filed https://bugzilla.redhat.com/show_bug.cgi?id=2011066 for the KDE/Plasma case. FEDORA-2021-4037e861a9 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2021-4037e861a9 FEDORA-2021-358f502f0e has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-358f502f0e FEDORA-2021-358f502f0e has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-358f502f0e Created attachment 1829898 [details]
video of bug fixed with mutter-41.0-3
Upgraded to new mutter-41.0-3.fc35.x86_64 and now my VM running on virtio F35 workstation with wayland session works fine, no more cursor offset. Congrats :)
Verified also by me. (In reply to Fedora Update System from comment #26) > FEDORA-2021-358f502f0e has been submitted as an update to Fedora 34. > https://bodhi.fedoraproject.org/updates/FEDORA-2021-358f502f0e update tested for F34 and bug fixed too, all is fine :) FEDORA-2021-358f502f0e has been pushed to the Fedora 34 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-358f502f0e` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-358f502f0e See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2021-4037e861a9 has been pushed to the Fedora 35 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-4037e861a9` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-4037e861a9 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2021-358f502f0e has been pushed to the Fedora 34 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2021-4037e861a9 has been pushed to the Fedora 35 stable repository. If problem still persists, please make note of it in this bug report. |