Wayland Looks To Do Multi-Monitor The Right Way

Written by Michael Larabel in Wayland on 9 February 2011 at 10:42 PM EST. 37 Comments
WAYLAND
Two weeks ago the hot discussion item being talked about by those interested in the Wayland Display Server was how to handle input with Wayland (e.g. using X Input, create a separate "Inland" input project, or designing something entirely different). The new subject now brought up on the Wayland mailing list is how to handle multiple monitor support. Fortunately, it looks like Kristian plans to implement multiple monitor/display support in a different -- and better -- way than how it's dealt with by the X.Org Server.

The multi-monitor topic was brought up by Marty Jack after he wrote a patch that allocates the CRTCs to avoid black screens on multiple monitors. Up to this point, Kristian Høgsberg, the creator of Wayland, hasn't really said how he would like support for multiple monitors to be implemented. That changed though this afternoon. In Marty's email, he mentions, "I don't know what Kristian's ultimate vision of this is. Do we allow windows to move like they do now on a virtual desktop where you can slide one to a RightOf monitor by dragging it and it appears part on one and part on the other? A lot of the data structure and processing change for multiple monitors would depend on whether it is possible to have one pair of big FBs added to both CRTCs at the same time, with different (x,y,w,h) if it is tiled and the same (x,y) if it is cloned or how he would want to handle this case [moving the rbo, fb_id, image up to drm_compositor]. With some philosophical guidance I could get the underpinnings in place."

AMD's Alex Deucher was the first to respond with his thoughts. "The sensible way to handle this is one surface per crtc otherwise we run into the same problems we hit with X where a multi-head desktop is too wide for the render/texture limits of the hardware."

Kristian then officially said, "As Alex says, the plan is to have one fb per crtc. The compositor will render the scenegraph into two framebuffers which we will then page flip to each crtc. Eventually we'll only rerender the parts that change so that typically we'll only update the fb where something changed."

For anyone dependent upon multiple displays on their desktop or other systems, this is great news and should be better than the support offered by the X.Org Server and its antiquated code. Only updating the portions of the screen where there's damage / changed contents is a win for performance/efficiency and as said by having one frame-buffer per CRTC will allow multiple displays to be powered without hitting any rendering limitations imposed by having a single frame-buffer spanning multiple CRTCs/displays.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week