Summary: | xf86-video-amdgpu - commit 0d60233d introduced stuttering with mouse cursor operations | ||
---|---|---|---|
Product: | DRI | Reporter: | tempel.julian |
Component: | DRM/AMDgpu | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | alexander, harry.wentland, me, nicholas.kazlauskas |
Version: | unspecified | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
tempel.julian
2019-01-12 19:00:11 UTC
Still a DC issue. This is perfectly normal usage of the cursor UAPI, Wayland compositors such as gnome-shell use it similarly. In this case it's not actually the mouse operations themselves causing the stuttering but the framebuffer change. This is a known limitation with the async plane updates API in DRM and not something we can really fix in DC until there's a better API for async updates. The page-flip IOCTL advertises itself as non-blocking but in reality it's not - if there's any commit work touching the plane it's going to be blocked until that finishes and that'll be any non asynchronous cursor update, gamma update, property update, or anything else that occurs. This is what the stuttering comes from. So while it's a valid use of the cursor UAPI to double buffer cursors it's not something I'd really recommend doing for an atomic driver with how DRM is currently setup. Maybe this can be a configurable option in the meantime? I'm not sure how much work that would be to add and maintain, though. (In reply to Nicholas Kazlauskas from comment #2) > Maybe this can be a configurable option in the meantime? > I'm not sure how much work that would be to add and maintain, though. Yeah, I'm afraid I'm not really hot on adding an option for this. We can't ask Wayland compositors to work around this, either. This was fixed in kernel with "Allow cursor async updates for framebuffer swaps". |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.