Schedule full repaint after updating outputs
The full screen repaint is needed to avoid flickering when outputs change.
In hindsight, the drm backend needs to ask the compositor to render a new frame rather than trying to present a black buffer. This requires major architectural changes.