[PATCH 00/12] implement per connector clone mode

Xiong Zhang xiong.y.zhang at intel.com
Fri Mar 7 00:27:18 PST 2014

With the help of Ander, this is the new round clone mode patchset.

The implementation points are:
a. master output are in compositor->output_list, clone output are in
master_output->clone_output_list. we create global_output for master
output only. Client can't get any information for clone output. 

b. All the external repaint request are for master output. when master
output repaint, all the associated clone output should repaint also.
Master output and clone outputs have seperate frame buffer, but they
reference the same surface.

Note there are still two minor issues for this:
a. when the refresh rate difference between master and clone is large
enough, sometimes the picture among them may be different.

b. when the size of clone output is larger than master output, the display
for extra area on clone output is ugly and mess.
   when the size of clone output is smaller than master output, clone output 
can just show partial master output.
   I will supply one patch to scale clone output for this case.

patch 1~2: bug fix patch for output unplug in extend mode
patch 3~6: refactor patch for clone mode
patch 7~12: implement clone mode

Ander Conselvan de Oliveira (3):
  compositor: Move output positining logic out of the backends
  compositor: Add output to the compositor output list in the core
  compositor: Track damage properly for overlapping outputs

Xiong Zhang (9):
  shell.c: Set dirty for visible views on destroyed output
  shell.c: Restore maximized and fullscreen window on destroyed output
  compositor-drm: Abstract drm_output_set_mode()
  compositor: Add per connector clone mode support
  compositor: Move all clone outputs when move master outptu
  compositor: Output repaint in clone mode
  compositor-drm: Deal with VT switch in clone mode
  compositor: Hot plug a output in clone mode
  compositor: Output unplug in clone mode

 desktop-shell/shell.c     |  30 +++++-
 src/compositor-drm.c      | 161 +++++++++++++++++-----------
 src/compositor-fbdev.c    |  12 +--
 src/compositor-headless.c |   8 +-
 src/compositor-rdp.c      |   5 +-
 src/compositor-rpi.c      |   9 +-
 src/compositor-wayland.c  |  32 +++---
 src/compositor-x11.c      |  34 +++---
 src/compositor.c          | 263 +++++++++++++++++++++++++++++++++++++++++-----
 src/compositor.h          |  14 ++-
 weston.ini.in             |   2 +
 11 files changed, 419 insertions(+), 151 deletions(-)


More information about the wayland-devel mailing list