Draft: add new frame scheduler interface


  • an equivalent of this if necessary
  • and of this - the condition is not checked anymore after these patches
  • add a helper that can work off wl frame callbacks and headless frame events so that wl-without-presentation-time and headless can work again
  • figure out what's happening to needs_frame (cc #3692). none of the examples handle it, but that was true before, which I guess means they were broken already? (edit: the non-scene examples never stop the rendering loop, so they don't need to handle it)
  • examples: destroy the frame scheduler on output destruction
  • examples: check that wlr_frame_scheduler_schedule_frame() is being called when it should
  • docs
  • more (rigorous) testing

wlr_frame_scheduler_schedule_frame() has different semantics to wlr_output_schedule_frame() - now, frame signals will be emitted only if schedule_frame was called since the last signal. IIRC frame signals were emitted also after commits in the old system, and examples are probably still assuming that commits are enough to get them a new frame, but it's getting late and I don't want to make 11 of the same change again right now.

Edited by Rose Hudson

Merge request reports