I've reintroduced "lazy positioning" in the move plugin for the attached branch, which causes us not to send any ConfigureWindow requests to the driver unless we absolutely have to, or the the window is later ungrabbed. That pretty much causes the "massive slowdown when dragging stuff while redirected windows are rendering" problem to go away.
Of course this bug is quite vague and is large in scope, so it only fixes one aspect of it really.
Lazy positioning is currently an option that's off by default, it could have some unknown side effects and needs more testing. At the moment, we have a version that limits the number of ConfigureWindow requests to frames, and that keeps the framerate at a steady 12fps instead of grinding to a halt here.
I've reintroduced "lazy positioning" in the move plugin for the attached branch, which causes us not to send any ConfigureWindow requests to the driver unless we absolutely have to, or the the window is later ungrabbed. That pretty much causes the "massive slowdown when dragging stuff while redirected windows are rendering" problem to go away.
Of course this bug is quite vague and is large in scope, so it only fixes one aspect of it really.
Lazy positioning is currently an option that's off by default, it could have some unknown side effects and needs more testing. At the moment, we have a version that limits the number of ConfigureWindow requests to frames, and that keeps the framerate at a steady 12fps instead of grinding to a halt here.