Bug 99103

Summary: Same output (DisplayPort) is used in multi-head configuration for different Devices/Displays
Product: xorg Reporter: Stefan.LAUTERWASSER
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: blocker    
Priority: medium    
Version: 7.6 (2010.12)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Configuration is 8x monitors, 8x devices, 8x screens with 2x Radeon E6760 CompactPCI Boards (MEN G214)
none
xorg.conf
none
Xorg.0.log
none
working multi-head configuration with 8 monitors
none
working xinerama configuration with 8 monitors (slow performance)
none
Xorg.0.log of nearly working xinerama configuration with 8 monitors (slow performance)
none
Xorg.0.log of nearly working xinerama configuration with 8 monitors (slow performance) none

Description Stefan.LAUTERWASSER 2016-12-15 19:13:58 UTC
Created attachment 128489 [details]
Configuration is 8x monitors, 8x devices, 8x screens with 2x Radeon E6760 CompactPCI Boards (MEN G214)

The latest version I used was from Fedora 22, 4.2.6-200.fc22.x86_64.
I expect it was version 7.6 but I missed to save the log files.

The current configuration is CentOS 7 3.10.0-327.36.3.el7.x86_64 with module version 7.5.

I was not able to detect any failure - it just look wrong and seam to be a simple failure.

Xorg configuration is 8x monitors, 8x devices, 8x screens
with 2x Radeon E6760 CompactPCI Boards (MEN G214)
See attached Xorg.0.log.

== Result ==
Graphic Board ONE:
Monitor 1 and 2 are aktive/working - Monitor 3 and 4 is black.
Monitor 1 has Display :0.0.
Monitor 2 has Display :0.3.
Display :0.1 and :0.2 are working but not visible.
Display :0.1 and :0.2 seams to be between Monitor 1 and 2.
DisplayPort-1 will be used more often last DISPLAY is visible.

Graphic Board TWO:
Monitor 1 and 2 are aktive/working - Monitor 3 and 4 is black.
Monitor 1 has Display :0.4.
Monitor 2 has Display :0.7.
Display :0.5 and :0.6 are working but not visible.
Display :0.5 and :0.6 seams to be between Monitor 1 and 2.
DisplayPort-1 will be used more often last DISPLAY is visible.

Seams to be simple - right? I hope it is.
Please help, I don't want to use fglrx driver.
Oh, just for information - fglrx is working, but slower in our usecase.
Comment 1 Stefan.LAUTERWASSER 2016-12-15 19:16:00 UTC
Created attachment 128490 [details]
xorg.conf
Comment 2 Stefan.LAUTERWASSER 2016-12-15 19:18:36 UTC
Created attachment 128491 [details]
Xorg.0.log

Please ignore "radeon.modeset=0 rd.driver.blacklist=radeon"
I switched between fglrx and radeon that's the reason glx module also is not installed correctly.
Comment 3 Stefan.LAUTERWASSER 2016-12-16 14:35:48 UTC
May help:
- Monitor numbering driver internally seams to work.

- Who makes the mapping from card0-DP-1 to DisplayPort-0 etc.?
  The difference to fglrx driver is that the card index is not part of the name.
  E.g. fglrx name looks like 0-DisplayPort-0.

- modes are available, but not all monitors are enabled

bash> grep " connected" /var/log/Xorg.0.log
[  5443.924] (II) RADEON(0): Output DisplayPort-0 connected
[  5443.958] (II) RADEON(1): Output DisplayPort-1 connected
[  5443.992] (II) RADEON(2): Output DisplayPort-1 connected
[  5444.027] (II) RADEON(3): Output DisplayPort-1 connected
[  5444.106] (II) RADEON(4): Output DisplayPort-6 connected
[  5444.185] (II) RADEON(5): Output DisplayPort-7 connected
[  5444.264] (II) RADEON(6): Output DisplayPort-7 connected
[  5444.343] (II) RADEON(7): Output DisplayPort-7 connected


bash> head -n 1 /sys/bus/pci/drivers/radeon/*/drm/card*/card*/modes
==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-1/modes <==
1680x1050

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-2/modes <==
1680x1050

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-3/modes <==

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-4/modes <==

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-5/modes <==
1680x1050

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-6/modes <==
1680x1050

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-7/modes <==
1920x1200

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-8/modes <==
1920x1200

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-9/modes <==

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-10/modes <==

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-11/modes <==
1920x1200

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-12/modes <==
1920x1200


bash> head -n 1 /sys/bus/pci/drivers/radeon/*/drm/card*/card*/enabled
==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-1/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-2/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-3/enabled <==
disabled

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-4/enabled <==
disabled

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-5/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:05:00.0/drm/card0/card0-DP-6/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-7/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-8/enabled <==
enabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-9/enabled <==
disabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-10/enabled <==
disabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-11/enabled <==
disabled

==> /sys/bus/pci/drivers/radeon/0000:06:00.0/drm/card1/card1-DP-12/enabled <==
disabled
Comment 4 Michel Dänzer 2016-12-19 10:03:03 UTC
In short, this configuration (Zaphod style, with 4 screens per GPU) isn't supported. The radeon driver only supports 2 screens per GPU in Zaphod mode.

Unless you really need multiple X11 protocol screens and/or static configuration in xorg.conf, I'd suggest trying without xorg.conf and letting the desktop environment manage the display configuration via RandR 1.4. Note that in this case I highly recommend using at least the xf86-video-ati 7.8.0 release, possibly even current Git master, and ideally a newer version of Xorg as well.

Alternatively, you could try combining two displays per Zaphod screen, but I'm not sure that'll work out.
Comment 5 Stefan.LAUTERWASSER 2016-12-19 12:01:52 UTC
(In reply to Michel Dänzer from comment #4)
> In short, this configuration (Zaphod style, with 4 screens per GPU) isn't
> supported. The radeon driver only supports 2 screens per GPU in Zaphod mode.
Sorry, I saw the restriction of 6 monitors per GPU and didn't saw any restriction of 2 screens per GPU - I may overlooked.

Is the limit simulated or by design? I have an idea of the differences supporting one or two, but didn't understand the differences in supporting two or six screens - the idea of fragmentation exists already.
You don't need to explain in details, but if you are able to refer to some background information - I am just a bit stupid and nosy.

> Unless you really need multiple X11 protocol screens and/or static
> configuration in xorg.conf, I'd suggest trying without xorg.conf and letting
> the desktop environment manage the display configuration via RandR 1.4. Note
> that in this case I highly recommend using at least the xf86-video-ati 7.8.0
> release, possibly even current Git master, and ideally a newer version of
> Xorg as well.
We use only X server with openbox - not that rich desktop environment.
I tried to configure with xrandr command but I have no idea how to create displays without xorg.conf and I don't know how to bind a output to a display.
I am able to create displays and output binding with xorg.conf only, can you show me a different way/command?
But if the driver doesn't support more than 2 screens how can xrandr help?

> Alternatively, you could try combining two displays per Zaphod screen, but
> I'm not sure that'll work out.
Our safety concept currently does not allow more than one monitor per screen and display - we change that in future if we have to, but currently cannot.
Comment 6 Alex Deucher 2016-12-19 18:19:55 UTC
(In reply to Stefan.LAUTERWASSER from comment #5)
> (In reply to Michel Dänzer from comment #4)
> > In short, this configuration (Zaphod style, with 4 screens per GPU) isn't
> > supported. The radeon driver only supports 2 screens per GPU in Zaphod mode.
> Sorry, I saw the restriction of 6 monitors per GPU and didn't saw any
> restriction of 2 screens per GPU - I may overlooked.

X screens (e.g., :0.0, :0.1) not monitors.  Depending on the asics the hardware supports up to 6 monitors per GPU.  You can have multiple monitors per X screen.

> 
> Is the limit simulated or by design? I have an idea of the differences
> supporting one or two, but didn't understand the differences in supporting
> two or six screens - the idea of fragmentation exists already.
> You don't need to explain in details, but if you are able to refer to some
> background information - I am just a bit stupid and nosy.

Zaphod mode is a legacy feature and as Michel said, it only supports two X screens per GPU.

> 
> > Unless you really need multiple X11 protocol screens and/or static
> > configuration in xorg.conf, I'd suggest trying without xorg.conf and letting
> > the desktop environment manage the display configuration via RandR 1.4. Note
> > that in this case I highly recommend using at least the xf86-video-ati 7.8.0
> > release, possibly even current Git master, and ideally a newer version of
> > Xorg as well.
> We use only X server with openbox - not that rich desktop environment.
> I tried to configure with xrandr command but I have no idea how to create
> displays without xorg.conf and I don't know how to bind a output to a
> display.
> I am able to create displays and output binding with xorg.conf only, can you
> show me a different way/command?
> But if the driver doesn't support more than 2 screens how can xrandr help?
> 

The driver supports up to 6 monitors, but only 2 independent X screens.  With randr, you have one X screen with up to 6 monitors.
Comment 7 Stefan.LAUTERWASSER 2017-06-22 10:22:32 UTC
Created attachment 132133 [details]
working multi-head configuration with 8 monitors

I am not sure, but I think these entry fixed the issue more or less:

Section "Device"
    Option          "ZaphodHeads" "DisplayPort-X"
EndSection

Also new entries are:

Section "Module"
    Load            "dri"
    Load            "extmod"
EndSection

Section "DRI"
    Mode            0666
EndSection

Section "Device"
    Option          "AccelMethod" "glamor"
    Option          "DRI3" "True"
    Option          "TearFree" "True"
EndSection

I also have to enable the the monitors manually via xrandr after x start-up - don't know why:

DISPLAY=:0.4 xrandr --output DisplayPort-1-4 --auto
DISPLAY=:0.5 xrandr --output DisplayPort-1-5 --auto
DISPLAY=:0.6 xrandr --output DisplayPort-1-6 --auto
DISPLAY=:0.7 xrandr --output DisplayPort-1-7 --auto
Comment 8 Stefan.LAUTERWASSER 2017-06-22 10:29:11 UTC
Created attachment 132134 [details]
working xinerama configuration with 8 monitors (slow performance)

I also created and tested a Xinerama/one Display configuration.

Here I also have to enable the the monitors manually via xrandr after x start-up - also don't know why:

DISPLAY=:0.0 xrandr --output DisplayPort-1-4 --auto --right-of DisplayPort-3
DISPLAY=:0.0 xrandr --output DisplayPort-1-5 --auto --right-of DisplayPort-1-4
DISPLAY=:0.0 xrandr --output DisplayPort-1-6 --auto --right-of DisplayPort-1-5
DISPLAY=:0.0 xrandr --output DisplayPort-1-7 --auto --right-of DisplayPort-1-6

RESULT:
Display :0.0
Screen 0: minimum 320 x 200, current 14400 x 1200, maximum 16384 x 16384
DisplayPort-0 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
DisplayPort-1 connected 1920x1200+1920+0 (normal left inverted right x axis y axis) 518mm x 324mm
DisplayPort-2 connected 1920x1200+3840+0 (normal left inverted right x axis y axis) 518mm x 324mm
DisplayPort-3 connected 1920x1200+5760+0 (normal left inverted right x axis y axis) 518mm x 324mm
DisplayPort-1-4 connected 1680x1050+7680+0 (normal left inverted right x axis y axis) 474mm x 296mm
DisplayPort-1-5 connected 1680x1050+9360+0 (normal left inverted right x axis y axis) 474mm x 296mm
DisplayPort-1-6 connected 1680x1050+11040+0 (normal left inverted right x axis y axis) 474mm x 296mm
DisplayPort-1-7 connected 1680x1050+12720+0 (normal left inverted right x axis y axis) 474mm x 296mm

It is working - slow - but it is working. :-)
Comment 9 Stefan.LAUTERWASSER 2017-06-22 10:40:08 UTC
Created attachment 132135 [details]
Xorg.0.log of nearly working xinerama configuration with 8 monitors (slow performance)

working multi-head configuration with 8 monitors
working xinerama configuration with 8 monitors (slow performance)

The reason for manual enabling the monitors looks in the Xorg.0.log file like:

[ 14959.533] (II) RADEON(G0): Output DisplayPort-1-4 has no monitor section
[ 14959.569] (II) RADEON(G0): Output DisplayPort-1-5 has no monitor section
[ 14959.605] (II) RADEON(G0): Output DisplayPort-1-6 has no monitor section
[ 14959.640] (II) RADEON(G0): Output DisplayPort-1-7 has no monitor section

But I don't know how to fix these issue.
Comment 10 Stefan.LAUTERWASSER 2017-06-22 10:45:44 UTC
Sorry, please ignore/delete last - and this - post. The id's in the files are not matching. I have to retest it.
Comment 11 Stefan.LAUTERWASSER 2017-06-22 10:53:23 UTC
Created attachment 132136 [details]
Xorg.0.log of nearly working xinerama configuration with 8 monitors (slow performance)

working multi-head configuration with 8 monitors
working xinerama configuration with 8 monitors (slow performance)

The reason for manual enabling the monitors looks - after fixing identifiers - in the Xorg.0.log file like:

[ 17828.932] (EE) RADEON(G0): Cannot position output DisplayPort-1-4 relative to unknown output DisplayPort-3
[ 17828.932] (EE) RADEON(G0): Cannot position output DisplayPort-1-5 relative to output DisplayPort-1-4 without modes
[ 17828.932] (EE) RADEON(G0): Cannot position output DisplayPort-1-6 relative to output DisplayPort-1-5 without modes
[ 17828.932] (EE) RADEON(G0): Cannot position output DisplayPort-1-7 relative to output DisplayPort-1-6 without modes


But I don't know how to fix these issue. Please help.
Comment 12 Martin Peres 2019-11-19 07:59:56 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/168.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.