Mutter was already trying to do things right (compared to KDE) so if __GL_MaxFramesAllowed=1 helps you then that suggests to me the issue is missing frame notifications from the backend/driver (COGL_FRAME_EVENT_SYNC/COGL_FRAME_EVENT_COMPLETE). If they are unsupported or absent then clutter_stage_cogl_schedule_update returns early and the clutter master clock would revert to a dumb fallback throttling method (which is the same as KDE's).
This also explains why reverting 383ba566b would seem to help some people. It's a workaround, but not a fix for the real problem.
I guess what we need now is a developer who can reproduce the problem (I can't) to find out why COGL_FRAME_EVENT_SYNC/COGL_FRAME_EVENT_COMPLETE events aren't arriving. Note: Arriving 150ms+ late is counted the same as not arriving, so that's possible too but would be extra strange.
Although not entirely the same.
Mutter was already trying to do things right (compared to KDE) so if __GL_MaxFramesA llowed= 1 helps you then that suggests to me the issue is missing frame notifications from the backend/driver (COGL_FRAME_ EVENT_SYNC/ COGL_FRAME_ EVENT_COMPLETE) . If they are unsupported or absent then clutter_ stage_cogl_ schedule_ update returns early and the clutter master clock would revert to a dumb fallback throttling method (which is the same as KDE's).
This also explains why reverting 383ba566b would seem to help some people. It's a workaround, but not a fix for the real problem.
I guess what we need now is a developer who can reproduce the problem (I can't) to find out why COGL_FRAME_ EVENT_SYNC/ COGL_FRAME_ EVENT_COMPLETE events aren't arriving. Note: Arriving 150ms+ late is counted the same as not arriving, so that's possible too but would be extra strange.