Forum Linux.gui Nvidia TwinView et jeux

Posté par  .
Étiquettes :
0
24
fév.
2009
Bonjour,

Suite à l'acquisition d'un écran supplémentaire pour mon pc portable, j'ai eu la brillante idée d'activer le TwinView.
Chose merveilleuse, j'ai deux écrans magnifiques (celui du portable + le tout neuf) sur lesquels je peux poser plein de fenêtres partout partout... le pied.

Mais voilà, je suis également un peu joueur et j'ai un petit problème que je n'arrive pas à résoudre malgré le gros README de Nvidia, Google mon ami et les tests au hasard : les jeux se lancent à cheval sur les deux écrans... c'est très pénible.

Précisions sur le matériel et les logiciels :
- GeForce 8600M
- Utilisation de la sortie HDMI pour l'écran externe
- Sous Debian Lenny
- Modules NVidia trouvés dans les dépots (nvidia-glx et nvidia-kernel 173.14.09)
- OpenArena et Warzonne 2100 en cause.

Voilà mon xorg.conf

# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg
Section "Module"
Load "record"
# Load "dri"
# Load "GLcore"
Load "xtrap"
Load "glx"
Load "extmod"
Load "dbe"
Load "type1"
Load "freetype"
EndSection


Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "latin9"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "Device"
Identifier "Configured Video Device"
Driver "nvidia"
Option "AddARGBGLXVisuals" "True"
Option "AllowIndirectPixmaps" "True"
Option "AllowGLXWithComposite" "true"
Option "AllowSHMPixmaps" "0"
Option "BackingStore" "True"
Option "DamageEvents" "True"
Option "NoLogo" "True"
Option "OnDemandVBlankInterrupts" "True"
#Option "PixmapCacheSize" "1000000"
Option "PixmapCacheSize" "200000"
Option "RenderAccel" "True"
Option "TripleBuffer" "True"
Option "UseCompositeWrapper" "True"
Option "UseDisplayDevice" "DFP-1, DFP-0"
Option "UseEvents" "False"
Option "TwinView" "True"
Option "TwinViewOrientation" "DFP-1 LeftOf DFP-0"
#Option "Metamodes" "DFP-1: 1920x1080, DFP-0: 1680x1050 ; DFP-1: NULL, DFP-0: 1680x1050 ; DFP-1: 1920x1080, DFP-0: NULL"
# Option "NoTwinViewXineramaInfo" "True"
Option "TwinViewXineramaInfoOrder" "DFP-1"
# Option "EnableACPIHotkeys" "True"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Option "AddARGBGLXVisuals" "true"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection
  • # Eeeeuuuhhhh

    Posté par  (site web personnel) . Évalué à 2.

    Bon déjà 2 choses d'aspect général:
    1.Pour une carte aussi récente vaut mieux prendre un driver récent type 180.29
    2.Je te conseillerais bien de virer toute ta config, vu que rien ne sert là dedans, et laisser faire l'autodétection+nvidia-settings/

    Sauf que pour ton problème tu fais presque tout ce qu'il faut pour être sur que ca marche pas.
    Je connais pas les détails au niveau de l'implémentation nvidia qui est un peu tordue mais voilà: pour "déclarer" le multiécran aux applications, la seule norme c'est le xinerama, sauf que 1.Tu le désactive dans les server flags, donc déjà c'est mal barré, et 2.Pourquoi tu mets dans le TwinViewXineramaInfoOrder, que le DFP-1 et pas le DFP-0 ? Là encore je connais pas très bien les options nvidia, mais il me semble que ca veut dire que même s'il déclarait le xinerama (ce qui ne semble déjà pas être le cas...), il ne déclarerait qu'un écran, donc bon les applis vont être un peu à la ramasse après c'est normal.
    • [^] # Re: Eeeeuuuhhhh

      Posté par  . Évalué à 2.

      Salut, merci pour la réponse, voilà les miennes :

      1. Je suis Debian Lenny et j'ai pas vraiment envie de niquer mon gestionnaire de paquet en installant des modules ou autres appli qu'il me sera difficile de mettre à jour.
      2. J'aurais préféré me passer d'une gui (nvidia-settings) pour configurer l'interface graphique qui la supporte... ça ne me parait pas logique. Mais je vais essayer.
      3. Xinerama : il me semble qu'en l'utilisant et lorsqu'on maximise les fenêtres, celles-ci se mettent sur les deux écrans. Et ça j'en veux pas. Mais je peux me tromper ou m'être induit en erreur à cause d'une mauvaise conf.
      4. Option "TwinViewXineramaInfoOrder" "DFP-1" ==> Permet d'avoir l'écran "DFP-1" (l'écran externe dans mon cas) en primaire afin que par exemple l'invite de connexion s'affiche sur celui-ci, que les panneaux (xfce) se place dessus etc...
      5. Petite précision : Je viens de m'apercevoir que je peux paramétrer les jeux à la résolution des deux écrans 3600x1080 ((1920+1680)x1080) et que je ne peux plus sortir de ce mode. J'ai le jeux en plein écran sur deux écran et ça c'est mal (c'est mal au yeux surtout)
      • [^] # Re: Eeeeuuuhhhh

        Posté par  (site web personnel) . Évalué à 1.

        Si part jeux tu entends "wine" tu peux toujours via winecfg (onglets Graphics) configurer un bureau virtuel de la dimension que tu souhaites et normalement l'application ne passera pas outre.
        • [^] # Re: Eeeeuuuhhhh

          Posté par  . Évalué à 2.

          Non, pas de wine pour moi... Merci quand même (on ne sait jamais, l'info est toujours bonne à prendre).
      • [^] # Re: Eeeeuuuhhhh

        Posté par  (site web personnel) . Évalué à 2.

        2. J'aurais préféré me passer d'une gui (nvidia-settings) pour configurer l'interface graphique qui la supporte... ça ne me parait pas logique. Mais je vais essayer.

        Oui bon dit comme ca ca peut paraitre idiot, mais c'est juste un outil d'appoint à l'autodétection du driver qui se débrouille bien tout seul, et bon c'était juste un conseil, pas sur que ca change grand chose non plus de tout supprimer.

        3. Xinerama : il me semble qu'en l'utilisant et lorsqu'on maximise les fenêtres, celles-ci se mettent sur les deux écrans. Et ça j'en veux pas. Mais je peux me tromper ou m'être induit en erreur à cause d'une mauvaise conf.
        Oui et non. Xinerama c'est deux choses, c'est quelque chose au niveau de driver et autre chose au niveau des applis. Si seule la partie au niveau des drivers est appliqué et que les applis ont pas de communication pour le connaitre, alors effectivement ca se mettera sur deux écrans. Mais de toutes facons le TwinView nVidia fait déjà ce travail, donc (dés)activer le Xinerama sur un Xorg avec driver nvidia tout ce que ca change c'est la signalisation aux applis. Par contre si tu dis ca, ca doit être que t'as déjà essayé, donc doit y avoir un truc tres bizaarre dans ta configuration qui m'échappe ...

        4. Option "TwinViewXineramaInfoOrder" "DFP-1" ==> Permet d'avoir l'écran "DFP-1" (l'écran externe dans mon cas) en primaire afin que par exemple l'invite de connexion s'affiche sur celui-ci, que les panneaux (xfce) se place dessus etc..
        Bon j'ai pas la doc nvidia sous le coude, mais je penses que ca serait plus logique de mettre DFP-1, DFP-0.

        5. Petite précision : Je viens de m'apercevoir que je peux paramétrer les jeux à la résolution des deux écrans 3600x1080 ((1920+1680)x1080) et que je ne peux plus sortir de ce mode. J'ai le jeux en plein écran sur deux écran et ça c'est mal (c'est mal au yeux surtout)

        Je penses (mais j'affirme pas), qu'en dynamictwinview (config par défaut quand c'est pas hardcodé dans la config il me semble), que t'aura la liste des modes possibles (apres ca depend de ce qu'utilise ton jeu pour connaitre les résolutions)
        • [^] # Re: Eeeeuuuhhhh

          Posté par  . Évalué à 2.

          J'ai essayé sans succès (même problème)
          - "nvidia-settings" (avec ré-écriture d'un xorg.conf)
          - Option "TwinViewXineramaInfoOrder" "DFP-1, DFP-0"

          Je vais essayer :
          - de m'orienter vers Xinerama : au cas ou il y est une option particulière pour ma config.
          - de voir en conf dynamique si j'ai le même problème.

          Je te tiens au courant demain soir.
          • [^] # Re: Eeeeuuuhhhh

            Posté par  . Évalué à 2.

            simplifie ton xorg.conf à l'extreme
            (mono ecran, clavier/souris)

            ensuite utilises nvidia-settings sans etre root dans un premier temps
            ca te permet de tester tes options en faisant simplement "appliquer"

            cela te permet aussi de passer du mode bi-ecran que tu aurais sauvegarder (pour en faire le reglage par defaut)
            à un reglage mono-ecran le temps de lancer un jeu, ou une video
          • [^] # Re: Eeeeuuuhhhh

            Posté par  . Évalué à 2.

            Bon, j'ai fait un nouvel essai : j'ai viré compiz (au cas ou!)
            ... Et ce n'était pas ça.
            J'ai pas le temps de faire d'autres essais ce soir, suite au prochain épisode.

            Si jamais vous connaissez une bonne méthode pour tester le pilote graphique qui est fourni par NVidia sur son site, sans pourrir le système de tout un tas de fichiers impossible à retrouver quand on désinstalle, je suis preneur.
            • [^] # Re: Eeeeuuuhhhh

              Posté par  . Évalué à 2.

              nvidia-install pour l'installer
              puis
              nvidia-uninstall pour le desintaller

              sinon il y avait aussi le paquet "envy" qui permet d'automatiser un peu tout ca
            • [^] # Re: Eeeeuuuhhhh

              Posté par  (site web personnel) . Évalué à 3.

              > Si jamais vous connaissez une bonne méthode pour tester le pilote graphique qui est fourni par NVidia sur son site, sans pourrir le système de tout un tas de fichiers impossible à retrouver quand on désinstalle, je suis preneur.

              apt-get install -t experimental nvidia-kernel-source
              m-a prepare
              m-a build,install nvidia
              • [^] # Re: Eeeeuuuhhhh

                Posté par  . Évalué à 2.

                Alors, voilà : ça marche presque bien.

                1. J'ai installé les driver propriétaires issus d'experimental, mais cela n'a rien changé. J'en profite pour ajouter la ligne manquante à l'installation façon Debian citée par Ernest H :
                apt-get install -t experimental nvidia-kernel-source
                m-a prepare
                m-a build,install nvidia
                apt-get -t experimental install nvidia-glx


                2. J'ai arrêté d'être têtu et j'ai cherché des options dans nvidia-settings. Et en fait... Il fallait côché "Separate X Screen" et non "TwinView" puis activer "Xinerama". Puis rectifier le xorg.conf, mettre quelques options d'optimisation par ci par là. Et ça marche ! Sauf quelques bugs. Voici des exemples :
                - MPlayer : quelque soit la sortie sélectionnée (xv, gl, gl2...) il faut arrêter un film et le relancer pour être en plein écran sur l'écran qui possède la résolution la plus importante (sinon on reste bloqué à la résolution de l'écran qui a la plus basse résolution).
                - OpenArena : injouable, la souris est coincé à droite, pourtant j'ai repris la conf de la souris à l'identique de mon précédent xorg.conf (ou la souris fonctionnait dans ce jeux), mais rien n'y fait.

                Pour ceux que ça interesse le xorg.conf final :
                # nvidia-settings: X configuration file generated by nvidia-settings
                # nvidia-settings: version 1.0 (randy@juliet2) Tue Jun 24 10:44:02 PDT 2008

                Section "ServerLayout"
                Identifier "Layout0"
                Screen 0 "Screen0" 1680 0
                Screen 1 "Screen1" LeftOf "Screen0"
                InputDevice "Keyboard0" "CoreKeyboard"
                # InputDevice "Mouse0" "CorePointer"
                EndSection

                Section "Files"
                RgbPath "/usr/X11R6/lib/X11/rgb"
                EndSection

                Section "Module"
                Load "record"
                Load "xtrap"
                Load "dbe"
                Load "extmod"
                Load "type1"
                Load "freetype"
                Load "glx"
                EndSection

                Section "ServerFlags"
                Option "Xinerama" "1"
                EndSection

                Section "InputDevice"
                # generated from default
                Identifier "Mouse0"
                Driver "mouse"
                # Option "Protocol" "auto"
                # Option "Device" "/dev/psaux"
                # Option "Emulate3Buttons" "no"
                # Option "ZAxisMapping" "4 5"
                EndSection

                Section "InputDevice"
                # generated from default
                Identifier "Keyboard0"
                Driver "kbd"
                Option "XkbRules" "xorg"
                Option "XkbModel" "pc105"
                Option "XkbLayout" "fr"
                Option "XkbVariant" "latin9"

                EndSection

                Section "Monitor"
                # HorizSync source: edid, VertRefresh source: edid
                Identifier "Monitor0"
                VendorName "Unknown"
                ModelName "ACI VW246"
                HorizSync 31.0 - 83.0
                VertRefresh 56.0 - 76.0
                Option "DPMS"
                EndSection

                Section "Monitor"
                # HorizSync source: edid, VertRefresh source: edid
                Identifier "Monitor1"
                VendorName "Unknown"
                ModelName "Seiko"
                HorizSync 30.0 - 75.0
                VertRefresh 61.0
                Option "DPMS"
                EndSection

                Section "Device"
                Identifier "Videocard0"
                Driver "nvidia"
                VendorName "NVIDIA Corporation"
                BoardName "GeForce 8600M GT"
                BusID "PCI:1:0:0"
                Screen 0
                Option "AddARGBGLXVisuals" "True"
                Option "AllowIndirectPixmaps" "True"
                Option "AllowGLXWithComposite" "true"
                Option "AllowSHMPixmaps" "0"
                Option "BackingStore" "True"
                Option "DamageEvents" "True"
                Option "NoLogo" "True"
                Option "OnDemandVBlankInterrupts" "True"
                Option "PixmapCacheSize" "200000"
                Option "RenderAccel" "True"
                Option "TripleBuffer" "True"
                Option "UseCompositeWrapper" "True"

                EndSection

                Section "Device"
                Identifier "Videocard1"
                Driver "nvidia"
                VendorName "NVIDIA Corporation"
                BoardName "GeForce 8600M GT"
                BusID "PCI:1:0:0"
                Screen 1
                Option "AddARGBGLXVisuals" "True"
                Option "AllowIndirectPixmaps" "True"
                Option "AllowGLXWithComposite" "true"
                Option "AllowSHMPixmaps" "0"
                Option "BackingStore" "True"
                Option "DamageEvents" "True"
                Option "NoLogo" "True"
                Option "OnDemandVBlankInterrupts" "True"
                Option "PixmapCacheSize" "200000"
                Option "RenderAccel" "True"
                Option "TripleBuffer" "True"
                Option "UseCompositeWrapper" "True"

                EndSection

                Section "Screen"
                Identifier "Screen0"
                Device "Videocard0"
                Monitor "Monitor0"
                DefaultDepth 24
                Option "TwinView" "0"
                Option "TwinViewXineramaInfoOrder" "DFP-1"
                Option "metamodes" "DFP-1: nvidia-auto-select +0+0"
                SubSection "Display"
                Depth 24
                EndSubSection
                EndSection

                Section "Screen"
                Identifier "Screen1"
                Device "Videocard1"
                Monitor "Monitor1"
                DefaultDepth 24
                Option "TwinView" "0"
                Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
                SubSection "Display"
                Depth 24
                EndSubSection
                EndSection

                Section "Extensions"
                Option "Composite" "Enable"
                EndSection



                MERCI à tous pour votre aide.
                • [^] # Re: Eeeeuuuhhhh

                  Posté par  . Évalué à 2.

                  Petite précision : Le composite ne fonctionne plus, adieu Compiz et Echelle son seul et unique plugin utile :-(
                  • [^] # Re: Eeeeuuuhhhh

                    Posté par  . Évalué à 2.

                    En fait c'est toujours aussi foireux, dans de nombreux jeux la souris ne répond plus : OpenArena, Sauerbraten, Widelands Warsow... pfff... marre...
                  • [^] # Re: Eeeeuuuhhhh

                    Posté par  (site web personnel) . Évalué à 2.

                    Petite précision : Le composite ne fonctionne plus, adieu Compiz et Echelle son seul et unique plugin utile :-(
                    Oui c'est la conséquence logiquqe d'utiliser plusieurs "X screen", les drivers nvidia(cartes carrement?) n'aiment pas du tout ca, et doivent presque tout désactiver pour le supporter.
                    Bon sinon j'ai cherché, et je confirme ce que je dis il suffit d'être en twinview + xinerama pour faire ce que tu veux, MAIS, car il y a un gros mais, il faut que ton window manager gere le xinerama, en pratique je sais pas trop ou ca en est .
                    • [^] # Re: Eeeeuuuhhhh

                      Posté par  . Évalué à 2.

                      il suffit d'être en twinview + xinerama
                      J'ai plutôt l'impression qu'il faut choisir : ou TwinView, ou Xinerama, mais les deux ensembles cela ne fonctionne pas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.