Bug 861505

Summary: Support Xinerama and Composite simultaneously
Product: Red Hat Enterprise Linux 7 Reporter: Daniel Dadap <ddadap>
Component: xorg-x11-serverAssignee: Adam Jackson <ajax>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: ajax, aplattner, ddadap, ichute, jdonohue, jkachuck, mdomonko, tpelka
Target Milestone: rcFlags: mdomonko: needinfo? (ddadap)
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-03-04 12:05:25 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 861997    

Description Daniel Dadap 2012-09-28 17:11:49 EDT
Note: this is filed against RHEL 6, but it's really a request for RHEL 7

Description of problem:
The X server finally allows for Xinerama and Composite to be enabled at the same time, but trying to actually use Xinerama and Composite simultaneously is too buggy to be usable.

Users who need to configure multiple X screens (due to e.g. needing to drive multiple GPUs, with one or more displays per GPU) are therefore left with the following options:

    a) Don't enable Xinerama: This allows Composite to work, and in theory, desktop environments with compositing window managers should be able to work; however, GNOME 3 seems to crash and go into fallback mode when running multiple X screens. Also, leaving Xinerama disabled prevents X clients from spanning multiple X screens or from being moved between screens, which may be necessary for some use cases.
    b) Disable composite: This allows Xinerama to work, but prevents compositing window managers from running. GNOME 3 goes into fallback mode.

Version-Release number of selected component (if applicable):
I selected "xorg-x11-server", but the issues that prevent Xinerama and Composite from interacting well with each other probably span multiple software components.

X server and desktop environment:
    xorg-x11-server 1.12.0-5.el7
    mutter 3.4.1
    GNOME Shell 3.4.1

GL driver info from `glxinfo`:
    OpenGL vendor string: nouveau
    OpenGL renderer string: Gallium 0.4 on NVC0
    OpenGL version string: 2.1 Mesa 8.0.3

`uname -a`:
    Linux ddadap-rhel7-test 3.3.0-0.20.el7.x86_64 #1 SMP Mon Jul 9 16:28:22 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
Attempt to use Xinerama and Composite at the same time, and run GNOME 3.

Steps to Reproduce:
1. Install two GPUs. I used recent NVIDIA GPUs with the Nouveau driver included with RHEL 7.
2. Configure separate X screens with Xinerama and start a GNOME 3 desktop session
3. Open a window, and attempt to move it between screens
  
Actual results:
The window becomes invisible when moved to another screen. The cursor is still visible. The window can be dragged to the other screen, and left there, where it will remain invisible. It can then be dragged back to the original screen, where it becomes visible again.

Expected results:
The window should be visible the whole time. This is only the first and most obvious bug I noticed; there will probably be more.

Additional info:
Comment 9 Michal Domonkos 2014-01-15 12:34:33 EST
Hi Daniel,

Do you use any specific configuration file for Xinerama?

The thing is that with the latest RHEL7 compose it works for me out-of-the-box, without the need of any explicit Xorg configuration.  Once I boot up a machine with 2 GPUs, one monitor per each, Xorg will span the desktop for me automatically.  It's not completely flawless yet but I can drag windows from one monitor to the other without any issues.

Thank you!

Michal
Comment 11 Joe Donohue 2014-05-28 17:54:00 EDT
Can someone validate if this is completely fixed in RHEL 7.0?

Thanks
Comment 12 Michal Domonkos 2014-06-03 05:17:16 EDT
Not sure if this will be of any help but:

I wasn't successful in setting up Xinerama explicitly in a config file but with no such file in place it worked fine today, again.  I had 2 monitors connected to 2 NVIDIA GPUs (Quadro 2000 and NVS 300) and except for a rather poor performance on of the cards for some reason, I didn't notice any glitches when moving windows across the monitors.