Skip to content

compositor-drm: Don't use overlay planes without atomic

Daniel Stone requested to merge daniels/weston:drm-no-legacy-overlays into master

Part of the point of using atomic modesetting was to allow us to finally not always sprites_are_broken in 678aabe8, and be able to use overlay planes by default.

One of the things atomic added was the ability to actually test configurations before committing them. The legacy interface doesn't allow this. By the time we go to actually executing drmModeSetPlane, it's too late to handle failure: we can't go back and actually paint that view with the renderer, because we've already done the renderer paint for this cycle.

The semantics of drmModeSetPlane were also underspecified: some drivers would block and not return until the next vblank, ensuring that calling it in a loop would tie you to the frame rate. Unfortunately this made it impossible to use with anything else, decimating the framerate to half of what it should be. Other drivers just returned immediately, necessitating a vblank wait.

For those reasons, we disabled overlay-plane usage by default with the legacy backend, and its use was extremely unsupported and discouraged. Now that we have atomic, have had it for a while, and most KMS drivers are atomic, we can kill the old overlay code.

Good riddance.

Merge request reports