-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Significant input latency when processing output command even if no-op #6280
Comments
Seems like the input reconfigure is happening here: Lines 482 to 489 in 12e223e
and it happens because nothing in the output command chain avoids no-op changes and this input reconfigure is unconditional. From the discussion around #5629 I think assuming this for the wlroots changes is fine as they will be no-ops down in the wlroots code but the sway part of the output config will still run and cause this kind of side effect. A potential solution for this would be to keep a |
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
It may also be helpful to understand what makes
|
That would be one per keyboard input device, I guess. |
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
When an output command doesn't actually change anything in the output config the processing will still all be done and cause other changes. Notably if you run a command like: output * dpms on even if it does nothing it will still cause all the inputs to be reconfigured and very noticeable amounts of input latency to occur. To fix this save the current output config in the output data and on configure, if the config is the same just return without doing anything else. Fixes swaywm#6280
There is something in sway that creates significant input latency when output commands run, even if they're actually no-ops. To reproduce:
while true; do sleep 1; swaymsg "output * dpms on"; done
I noticed this because I had the following swayidle setup:
This results in very noticeable latency when typing or moving the mouse at any moment after 5 seconds as it runs the
dpms on
command unconditionally expecting it to be a no-op. It's common to see these kinds of warnings in the logs because of this:And the pointer lag is very noticeable because of this.
Edit: removed the part about XWayland. Although the presence of XWayland increases the latency it was already there before that. The problem is the output command not ending up as a no-op and reconfiguring inputs instead.
The text was updated successfully, but these errors were encountered: