How to fix assert from ProcRRSetProviderOutputSource.

Michal Srb msrb at suse.com
Thu Jun 5 05:59:21 PDT 2014


Hi,

When you have two graphic cards that both have Source Output and Sink Output 
capabilities (intel and nouveau for example). It's very easy to flip 
parameters of xrandr --setprovideroutputsource and attempt to provide outputs 
of the main screen to the slave screen.

That triggers assert fault in:
  ProcRRSetProviderOutputSource
  xf86RandR14ProviderSetOutputSource
  DetachUnboundGPU
    assert(slave->isGPU);

And whole X server crashes. I would like to fix it, but I am not sure what 
would be the best approach:

1) Add check to ProcRRSetProviderOutputSource and return BadValue when the 
provider is the main screen.

2) Filter out Sink Output capability of the main screen, that way 
ProcRRSetProviderOutputSource would also return BadValue and xrandr and other 
tools will be aware in advance that the screen can not work as Sink Output.

3) Something else?

Michal Srb


More information about the xorg-devel mailing list