# Enemy Territory: Quake Wars + xinerama [SOLVED]

## kriz

Hallo,

ist es moeglich das Spiel zwar unter einer Twinview-Umgebung zu starten aber es auf den primaeren Monitor zu begrenzen?

Ich hab schon einiges ausprobiert aber richtig gluecklich bin ich mit den Loesungen nicht.

1. Moeglichkeit: Das Spiel in einem separaten Xserver ohne twinview zu spielen

2. Moeglichkeit: ETQW in Fenster spielen.

3. Sich damit abfinden.

xorg.conf

```

Section "ServerLayout"

    Identifier     "Layout0"

    Screen      0  "Screen0" 0 0

    InputDevice    "Keyboard0" "CoreKeyboard"

    InputDevice    "Keyboard1" "SendCoreEvents"

    InputDevice    "Keyboard2" "SendCoreEvents"

    InputDevice    "Mouse0" "CorePointer"

    Option         "AutoAddDevices" "False"

EndSection

Section "Files"

    RgbPath         "/usr/lib64/X11/rgb"

    FontPath        "/usr/share/fonts/artwiz-aleczapka-en/"

    FontPath        "/usr/share/fonts/artwiz-aleczapka-de/"

    FontPath        "/usr/share/fonts/75dpi/"

    FontPath        "/usr/share/fonts/100dpi/"

    FontPath        "/usr/share/fonts/misc/"

    FontPath        "/usr/share/fonts/ttf-bitstream-vera/"

EndSection

Section "Module"

    Load           "dbe"

    Load           "extmod"

    Load           "type1"

    Load           "freetype"

    Load           "glx"

EndSection

Section "ServerFlags"

    Option         "Xinerama" "0"

EndSection

Section "InputDevice"

    Identifier     "Mouse0"

    Driver         "evdev"

    Option         "Name" "Logitech USB Gaming Mouse"

    Option         "Device" "/dev/input/event2"

    Option         "ZAxisMapping" "4 5"

EndSection

Section "InputDevice"

    Identifier     "Keyboard0"

    Driver         "evdev"

    Option         "XkbLayout" "de"

    Option         "XkbVariant" "nodeadkeys"

    Option         "Device" "/dev/input/event3"

    Option         "Name" "G15 Gaming Keyboard"

EndSection

Section "InputDevice"

    Identifier     "Keyboard1"

    Driver         "evdev"

    Option         "Device" "/dev/input/event4"

    Option         "Name" "G15 Gaming Keyboard"

EndSection

Section "InputDevice"

    Identifier     "Keyboard2"

    Driver         "evdev"

    Option         "Device" "/dev/input/event5"

    Option         "Name" "G15 Extra Keys"

EndSection

Section "Monitor"

    Identifier     "Monitor0"

    VendorName     "Acer"

    ModelName      "AL1715"

    HorizSync       30.0 - 83.0

    VertRefresh     50.0 - 75.0

    Option         "DPMS"

EndSection

Section "Device"

    Identifier     "Videocard0"

    Driver         "nvidia"

    VendorName     "NVIDIA Corporation"

    BoardName      "GeForce 8800 GT"

EndSection

Section "Screen"

    Identifier     "Screen0"

    Device         "Videocard0"

    Monitor        "Monitor0"

    DefaultDepth    24

    Option         "TwinView" "1"

    Option         "TwinViewXineramaInfoOrder" "DFP-1"

    Option         "metamodes" "CRT: nvidia-auto-select +1680+26, DFP: nvidia-auto-select +0+0"

    SubSection     "Display"

        Depth       24

    EndSubSection

EndSection

```

Last edited by kriz on Tue Aug 26, 2008 2:50 pm; edited 1 time in total

----------

## Vortex375

Hallo,

bei mir maximieren sich Fenster auch über sämtliche Monitore im TwinView betrieb. Ich denke das liegt einfach daran, dass nVidia TwinView eine proprietäre Funktion des nVidia-Treibers ist und nicht die Standard X-Server-Funktionen für Mehrschirm-Betrieb (RandR, Xinerama) verwendet werden. Der nVidia-Treiber erzeugt einfach einen großen virtuellen Screen, der sich über beide Monitore erstreckt, teilt aber die Informationen über die angeschlossenen Monitore dem X-Server bzw. den Anwendungen nicht mit. Die Anwendungen bzw. der Window-Manager sieht also nur einen großen Monitor und weiß nichts vom Mehrschirm-Betrieb.

 *Quote:*   

> 3. Sich damit abfinden. 

 

Und hoffen, dass nVidia die Unterstützung für RandR 1.2 in ihre Treiber einbaut. 

Oder dass der OpenSource-Treiber nouveau benutzbar wird. Der kann nämlich RandR 1.2 bereits. Dafür ist der 3D-Betrieb noch buggy und insgesamt läuft der Treiber für den normalen Gebrauch offenbar noch zu instabil.

----------

## kriz

Schade....

Nach Jahren Gentoo/Linux-Abstinenz ist es aber einer der wenigen Punkte die mich bei arbeiten/spielen irritieren.

Dank dir fuer die ausführliche Erklärung.

Lustig zu lesen daß sich an der Treibersituation in den Jahren nicht viel geändert hat.  :Wink: 

mfg

----------

## firefly

stimmt nicht ganz, der nvidia treiber liefert im Twinview betrieb auch Xinerama infos. Nur das Problem ist, soweit ich das selbst feststellen konnte, das diese Xinerama infos vom nvidia treiber nur dann sauber von Xinerama aware Programmen erkannt werden wenn Twinview schon beim starten des X-Servers konfiguriert ist.

Denn der nvidia treiber installiert beim start des X-Servers und aktiven TwinView (nicht Dynamic Twinview) eine Fake Xinerama-Extension.

Nur diese Fake-Extension scheint nicht mehr im X-Server ladbar, wenn der X-Server schon läuft und man Twinview über nvidia-settings nachträglich einstellt.

Sprich wenn die TwinView konfiguration fest in der Xorg.conf eingetragen ist, funktioniert es und die WMs wie z.b. Kwin und co. erkennen dann 2 Screens. Womit dann auch nicht mehr die Fenster über beide oder mehrere Monitore Maximiert werden.

----------

## Vortex375

Ah ok, das wusste ich noch nicht.

Aber eigentlich ist einer der großen Vorteile von TwinView ja gerade, dass es sich dynamisch an- und abschalten lässt.  :Rolling Eyes: 

Naja, mit RandR 1.2 sei das angeblich auch kein Problem mehr. Aber dazu muss der Treiber es halt unterstützen...

EDIT: Hmm... eigentlich hat kriz es ja fest drin. Vielleicht liegt das Problem doch woanders.

----------

## kriz

An der xorg.conf hab ich mittlerweile auch schon Stunden verbracht.

Immer mit dem gleichen Ergebnis.

Entweder Twinview auf diese Art (s.o) oder ich bekomm die beiden Monitore ueberhaupt nicht zum laufen.

----------

## kriz

oooook, es hat den anschein als ob ich etwas falsch verstanden hab.

Die Option "Xinerama" ist (ich nenn es mal so) eine Konstante und keine Variable.

Wenn man in der xorg.conf Xinerama mit "0" oder "1" angibt, hat es keine Auswirkung.

Es reicht schon diese Option ueberhaut anzugeben um X zu verwirren.

Twinview und Xinerama koennen, so wie es aussieht, nicht koexistieren.

Jetzt hab ich Xinerama aus der xorg.conf komplett entfernt und siehe da, es funktioniert.

Zumindest werden jetzt Anwendungen nicht mehr ueber beide Monitore maximiert.

Anwednungen wie OpenGL-Spiele verhalten sich trotzdem noch anders.

In dem Punkt hat Vortex wohl doch nicht ganz unrecht.

mfg

----------

## Vortex375

 *Quote:*   

> Anwendungen wie OpenGL-Spiele verhalten sich trotzdem noch anders. 

 

Das liegt in erster Linie daran, dass fast sämtliche Spiele unter Linux vollkommen hirnlos programmiert sind und im Vollbildmodus den Windowmanager umgehen.

Das bedeutet, sie bitten den Windowmanager nicht höflich, das Fenster doch bitte maximiert darzustellen, sondern verwenden irgendwelche "tieferliegenden" X-Funktionen um ein Vollbild-Fenster zu erstellen.

Das war früher vielleicht notwendig, da die Windowmanager buggy waren oder nicht den vollen Funktionsumfang zur Verfügung stellten. Mittlerweile verstehen aber alle verbreiteten modernen Windowmanager das Konzept von Vollbild-Fenstern.

Daher ist das Umgehen des Windowmanagers nicht mehr nötig. Es führt zu zahlreichen Problemen:

Einmal verhalten sie sich, wie du schon gesagt hast, "anders" als andere Fenster. Der Windowmanager wüsste, wie das Fenster korrekt maximiert werden muss, aber da er gar nicht erst gefragt wird, klappt es nicht mit dem Vollbild beim Multi-Monitor-Setup.

Es können außerdem keine Fenster über dem laufenden Vollbild-Spiel angezeigt werden und sämtliche Tastendruck- und Mausbewegungs-Events werden exklusiv an das Spiel übertragen. Es funktionieren keine  globalen Shortcuts für den Media-Player, kein Alt-Tab, einfach nichts.

Und das liegt einfach nur an hirnloser, schwachsinniger Programmierung. Dass es auch anders geht sieht man, wenn man z.B. ein Spiel in Wine emuliert. Wine macht das mit dem Vollbild nämlich richtig.

Vermutlich müsste man nur eine der unterliegenden Bibliotheken (SDL ?) fixen, aber offenbar hat das seit über 10 Jahren noch niemand für nötig befunden.  :Rolling Eyes: 

----------

## kriz

Hallo,

mit dieser xorg.conf hab ich zwar kein Xinerama/Twinview mehr aber dafuer muss man keinen neuen Xserver mehr starten.

```

Section "ServerLayout"

    Identifier     "Layout0"

    Screen      0  "Screen0" 1680 26

    Screen      1  "Screen1" 0 0

    InputDevice    "Keyboard0" "CoreKeyboard"

    InputDevice    "Keyboard1" "SendCoreEvents"

    InputDevice    "Keyboard2" "SendCoreEvents"

    InputDevice    "Mouse0" "CorePointer"

    Option         "AutoAddDevices" "False"

EndSection

Section "Files"

    RgbPath         "/usr/lib64/X11/rgb"

    FontPath        "/usr/share/fonts/artwiz-aleczapka-en/"

    FontPath        "/usr/share/fonts/artwiz-aleczapka-de/"

    FontPath        "/usr/share/fonts/75dpi/"

    FontPath        "/usr/share/fonts/100dpi/"

    FontPath        "/usr/share/fonts/misc/"

    FontPath        "/usr/share/fonts/ttf-bitstream-vera/"

EndSection

Section "Module"

    Load           "dbe"

    Load           "extmod"

    Load           "type1"

    Load           "freetype"

    Load           "glx"

EndSection

Section "ServerFlags"

    Option         "Xinerama" "0"

EndSection

Section "InputDevice"

    Identifier     "Mouse0"

    Driver         "evdev"

    Option         "Name" "Logitech USB Gaming Mouse"

    Option         "Device" "/dev/input/event2"

    Option         "ZAxisMapping" "4 5"

EndSection

Section "InputDevice"

    Identifier     "Keyboard0"

    Driver         "evdev"

    Option         "XkbLayout" "de"

    Option         "XkbVariant" "nodeadkeys"

    Option         "Device" "/dev/input/event3"

    Option         "Name" "G15 Gaming Keyboard"

EndSection

Section "InputDevice"

    Identifier     "Keyboard1"

    Driver         "evdev"

    Option         "Device" "/dev/input/event4"

    Option         "Name" "G15 Gaming Keyboard"

EndSection

Section "InputDevice"

    Identifier     "Keyboard2"

    Driver         "evdev"

    Option         "Device" "/dev/input/event5"

    Option         "Name" "G15 Extra Keys"

EndSection

Section "Monitor"

    Identifier     "Monitor0"

    VendorName     "Unknown"

    ModelName      "Acer AL1715"

    HorizSync       30.0 - 83.0

    VertRefresh     50.0 - 75.0

    Option         "DPMS"

EndSection

Section "Monitor"

    Identifier     "Monitor1"

    VendorName     "Unknown"

    ModelName      "Samsung SyncMaster"

    HorizSync       30.0 - 81.0

    VertRefresh     56.0 - 75.0

EndSection

Section "Device"

    Identifier     "Device0"

    Driver         "nvidia"

    VendorName     "NVIDIA Corporation"

    BoardName      "GeForce 8800 GT"

    BusID          "PCI:4:0:0"

    Screen          0

EndSection

Section "Device"

    Identifier     "Device1"

    Driver         "nvidia"

    VendorName     "NVIDIA Corporation"

    BoardName      "GeForce 8800 GT"

    BusID          "PCI:4:0:0"

    Screen          1

EndSection

Section "Screen"

    Identifier     "Screen0"

    Device         "Device1"

    Monitor        "Monitor0"

    DefaultDepth    24

    Option         "TwinViewXineramaInfoOrder" "DFP-1"

    Option         "RenderAccel" "true"

    Option         "AddARGBGLXVisuals" "true"

    Option         "TwinView" "0"

    Option         "metamodes" "CRT: nvidia-auto-select +0+0"

    SubSection     "Display"

        Depth       24

    EndSubSection

EndSection

Section "Screen"

    Identifier     "Screen1"

    Device         "Device0"

    Monitor        "Monitor1"

    DefaultDepth    24

    Option         "TwinView" "0"

    Option         "TwinViewXineramaInfoOrder" "DFP-1"

    Option         "metamodes" "DFP: nvidia-auto-select +0+0"

    Option         "RenderAccel" "true"

    Option         "AddARGBGLXVisuals" "true"

    SubSection     "Display"

        Depth       24

    EndSubSection

EndSection

```

mfg

----------

