Repository navigation
Conversation
A partial update contains every plane in use, including the ones that did not change, because some drivers mishandle partial updates (see the note in build_planes). For the cursor plane that undoes a move the compositor did itself between frames: a compositor that moves the cursor with drmModeMoveCursor (as Mutter does, so the newest pointer position goes on screen at the next scanout instead of a frame later) sees the cursor jump back to where the DrmCompositor last placed it with every commit that only changed other planes, and a move issued while such a commit is queued waits for it. With the new flag an unchanged cursor plane (skipped by try_assign_cursor_plane) is left out of partial updates. The primary plane is still part of every update, so this is not the kind of partial update the note is about. Full updates still contain every plane, the cursor plane at the position last set by the DrmCompositor; the compositor's next move puts it right. Without the flag nothing changes. Tested in a compositor that moves the cursor with the legacy ioctl (based on 0.7.0, where the same change was applied unconditionally): the cursor no longer jumps back or shows twice, and moves no longer wait behind queued commits. This change was written with the help of an AI assistant (Claude).
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
New flag: the cursor plane is not sent in every commit if it did not change. So a cursor that is moved separately does not jump back.
The code of the fix was written by AI (Claude). The description was translated to English with AI. I reviewed the change and use it in my compositor.
Checklist