-
Fix scheduling of the frame clock when we don't receive "frame drawn" messages from the compositor. If we received "frame drawn" events recently, then the "smooth frame time" would be in sync with the vsync time. When we don't receive frame drawn events, the "smooth frame time" is simply incremented by constant multiples of the refresh interval. In both cases we can use this smooth time as the basis for scheduling the next clock cycle. By only using the "smooth frame time" as a basis we also benefit from more consistent scheduling cadence. If, for example, we got "frame drawn" events, then didn't receive them for a few frames, we would still be in sync when we start receiving these events again.
cf91cf48