DRM: decide what to do with outputs missing a CRTC
Right now, they show up as disabled without a mode (and with a zero size). However I'm not sure this is the right thing to do.
Some backends don't support a mode, so outputs without a mode can be perfectly fine outputs.
Disabled outputs can be just turned off by the user (DPMS), they just don't emit frame events, but still show up as Wayland globals.
The issue is that outputs without a CRTC show up in the output layout and are exposed as a Wayland global. Some sway clients handle this poorly, and I don't think these outputs should be visible to clients anyway.
As said before, we still want these outputs to be visible to the compositor so it can modeset them and disable other outputs depending on the user configuration.
Possible solutions:
- In the output layout, don't expose outputs that have a non-empty list of modes but don't have a current mode. We'll probably do similar checks in sway too (when e.g. spawning
swaybg
). - Add a new output property basically saying "this output isn't available right now"
Note that we already have special cases for outputs that have modes anyway -- because those need a modeset immediately when created.