Full modeset is done at quit even when initial KMS mode is being used
When the current KMS mode is used, there should be no full modesetting at quit. That causes an unnecessary screen blanking on digital displays.
As things are, calling wl_display_destroy()
will cause a full modeset in atomic_crtc_commit()
because the connector's state->modeset
is set to true in drm_connector_state_init()
, which is called from dealloc_crtc()
.
My guess would be that the fix should be something like don't set state->modeset
to true in drm_connector_state_init()
if a certain condition is met, like the output is using the original KMS mode.
What do you think?