xserver-multidpi/hw/xfree86/modes
Hans de Goede 5c7af02b10 xrandrprovider: Do not use separate lists for unbound / source / offload slaves
A single provider can be both a offload and source slave at the same time,
the use of seperate lists breaks in this case e.g. :

xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 0 name:modesetting
Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 0 name:modesetting

xrandr --setprovideroutputsource 1 0x7b
xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 1 name:modesetting
Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 1 name:modesetting

xrandr --setprovideroffloadsink 1 0x7b
xrandr --listproviders
Providers: number : 3
Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 2 name:modesetting
Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 2 name:modesetting
Provider 2: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 2 name:modesetting

Not good. The problem is that the provider with id 0x46 now is on both
the output_slave_list and the offload_slave_list of the master screen.

This commit fixes this by unifying all 3 lists into a single slaves list.

Note that this does change the struct _Screen definition, so this is an ABI
break. I do not expect any of the drivers to actually use the removed / changed
fields so a recompile should suffice.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2016-06-17 11:35:58 +02:00
..
Makefile.am xfree86: Remove DisplayID support 2014-09-26 15:27:18 -04:00
xf86Crtc.c xf86Crtc: don't set the root window property on slave GPUs. 2016-05-04 15:33:10 -04:00
xf86Crtc.h xfree86/modes: Remove xf86_reload_cursors v2 2016-05-30 17:54:51 +09:00
xf86Cursors.c xfree86/modes: Remove xf86_reload_cursors v2 2016-05-30 17:54:51 +09:00
xf86cvt.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
xf86DiDGA.c Convert hw/xfree86 to new *allocarray functions 2015-04-21 16:58:08 -07:00
xf86EdidModes.c xfree86: Fix the 1792x1344-75 EST III mode 2015-09-23 13:18:22 -04:00
xf86gtf.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
xf86Modes.c xfree86 warning reduction 2014-01-12 10:14:49 -08:00
xf86Modes.h Eliminate the use of xf86Rename.h 2013-04-24 10:22:20 -07:00
xf86RandR12.c xrandrprovider: Do not use separate lists for unbound / source / offload slaves 2016-06-17 11:35:58 +02:00
xf86RandR12.h Eliminate the use of xf86Rename.h 2013-04-24 10:22:20 -07:00
xf86Rotate.c prime: add rotation support for offloaded outputs (v2) 2015-07-08 11:13:09 -07:00