backends/drm: allow delaying hardware cursor updates with adaptive sync
This delays cursor updates to be in sync with the primary plane whenever the latter is updating with a high enough refresh rate for the cursor to still be usable. That way, VRR doesn't "stop working" when the cursor gets moved, and stutter is reduced.
Because of https://gitlab.freedesktop.org/drm/amd/-/issues/2186, this is guarded behind the KWIN_DRM_DELAY_VRR_CURSOR_UPDATES
environment variable and disabled by default. I want to backport this to 6.0, in order to make the issue easier to test for kernel developers. For 6.1 I want to enable this by default for non-AMD GPUs, and maybe force a software cursor for AMD GPUs to work around this as well.
Draft because this shouldn't go into 6.0.0 anymore, to prevent surprise bugs it should be tested in master for at least a few days.
cc #194 #85 (closed)