Xgl Problemlösungen

aus openSUSE, der freien Wissensdatenbank

Inhaltsverzeichnis

Xgl besteht aus sehr experimentellem Code, welcher bisher nur auf wenigen Hardwareplattformen getestet wurde. Das Funktionieren ist sehr stark von der Qualität der eingesetzten Grafikkartentreiber abhängig. Dieser Code ist nichts für schwache Nerven. Trotzdem läuft er auf einigen Plattformen erstaunlich gut.

Falls Sie vom Werkzeug "Desktop Effects" auf diese Seite geschickt wurden während Sie versucht haben, Xgl zu aktivieren, lesen Sie das Inhaltsverzeichnis auf der rechten Seite oder überfliegen Sie den Text um Informationen zu ihrem Problem zu finden. Zum Einrichten von Xgl auf SUSE Linux 10.1 und SLED 10 existiert eine eigene Seite, welche auch detailliert aufführt, wie Sie die 3D-Beschleunigung auf verschiedenen Karten aktivieren.

Besuchen Sie auch #Xgl auf irc.freenode.org für weitere Unterstützung.

Bekannte Fehler in SLED 10

  • Falls sie vorher die Option "Aktuelle Sitzung speichern" beim Abmelden von GNOME gewählt haben, wird nach dem Wechsel zu Xgl Metacity nicht automatisch von Compiz abgelöst. Die einfachste Lösung für dieses Problem ist es, die Datei .gnome2/session in ihrem Heimatverzeichnis zu löschen, sich dann abzumelden um sich danach erneut anzumelden.
  • Fall Sie mehrere Grafikkarten einsetzen, oder sich auf ihrem Mainboard ein deaktivierter integrierter Grafikchip befindet, kann es sein, dass das Werkzeug Desktop Effects nicht in der Lage ist, diese richtig zu erkennen und/oder zu konfigurieren.
  • Falls Sie einen Grafikprozessor von Intel haben und während der Installation die Unterstützung für die 3D-Beschleunigung nicht aktiviert haben, wird das Desktop-Effects-Werkzeug nicht in der Lage sein, diese im Nachhinein automatisch zu aktivieren. Sie können dieses Problem beheben, indem Sie SaX2 manuell ausführen (wählen Sie dazu in YaST den Punkt Grafikkarten und Monitore im Abschnitt Hardware) und das Kontrollkästchen links unten mit einem Kreuzchen versehen um die 3D-Beschleunigung zu aktivieren. Starten Sie danach erneut Desktop Effects und es sollte in der Lage sein, den Prozess abzuschließen.

Bekannte Fehler in SLED 10 RC2

  • Es kann sein, dass der Code zur automatischen Installation der proprietären Treiber von ATi und nVidia nicht richtig funktioniert. Die Xgl auf SUSE Seite enthält Lösungen für dieses Problem.
  • Nach der Installation der nVidia-Treiber auf einer 64-bit-Plattform behauptet das Arbeitsflächeneffektwerkzeug immer noch, die 3D-Beschleuinigung sei nicht aktiviert. Dieser Fehler steckt im Erkennungscode und lässt sich umgehen, indem Sie die Umschalttaste gedrückt halten und das Wort "Disabled" direkt neben "3D Acceleration" doppelt anklicken. Danach können Sie Xgl aktivieren. Machen Sie das jedoch erst, nachdem sie den Treiber von nVidia installiert haben.
  • In manchen Fällen ist es beim Einsatz von ATi-Karten fälschlicherweise möglich, Xgl zu aktivieren, obwohl der Treiber noch nicht installiert ist. Falls Sie Xgl aktiviert haben sollten und sich nun nicht mehr auf der grafischen Oberfläche anmelden können, führen Sie auf einer Konsole den Befehl gnome-xgl-switch --disable-xgl aus, um zum traditionellen X-Server zurückzukehren.
  • Falls ihr Rechner über mehrere Grafikkarten verfügt, oder auf seiner Hauptplatine ein integrierter aber deaktivierter Grafikchip sitzt, kann es sein, dass "Desktop Effects" diese nicht richtig erkennt oder konfiguriert.

Probleme beim Einsatz bestimmter Software

  • Ein Fehler in SDL veranlasst Anwendungen (bspw, viele Spiele oder Eagle CAD) transparent zu sein.
    Führen Sie auf der Kommandozeile export XLIB_SKIP_ARGB_VISUALS=1 aus, bevor Sie eine SDL-Anwendung starten, um die Transparenz zu entfernen. Diese Lösung funktioniert allerdings nur temporär.

Probleme bei der Verwendung von Compiz mit KDE

  • Falls Sie jedes Mal zur Konsole zurückfallen bevor der Anmeldeverwalter erscheint und ihnen dmesg mitteilt "X server startup timeout, terminating", sollten Sie gdm und nicht kdm als Anmeldeverwalter benutzen. Bearbeiten Sie dazu die Datei /etc/sysconfig/displaymanager und setzen Sie dort DISPLAYMANAGER="gdm".
  • "Fensterspezifische Einstellungen" und verschiedene andere kwin-spezifische Funktionen arbeiten nicht.
  • Es gibt noch keinen KDE-spezifischen Weg Compiz zu konfigurieren. Sie müssen dazu das gconf-Plugin von Compiz zusammen mit dem auf GNOME basierenden Werkzeug "Desktop Effects" und/oder dem gconf-editor benutzen.
  • Compiz passt die Fensterrahmen an das GNOME-Thema an, jedoch nicht an das KDE-Thema.

Mehrere KDE-spezifische Fehler sind während der Entwicklung von SLED 10 RC2 nach RC3 behoben worden. (Die Fensterleiste und der Arbeitsflächenumschalte zeigten nicht alle Fenster an und der Knopf "Arbeitsfläche anzeigen" funktionierte nicht.)

Einige dieser Probleme könnten mit für KDE angepassten Plugins behoben werden.

Konfigurationsprobleme

Diese Probleme treten zumeist bei Nutzern auf, die versuchen Xgl von Hand einzurichten, ältere Versionen von SUSE Linux benutzen oder schlecht unterstützte Grafikkarten verwenden.

Allgemeine Konfigurationsfehler

  • Xgl benötigt keine aktivierte Composite Erweiterung in der xorg.conf - diese ist im Grunde sogar kontraproduktiv, da der NVIDIA Treiber beispielsweise OpenGL deaktiviert, wenn Composite aktiviert ist. Die Composite Erweiterung wird von Xgl selber bereitgestellt, ohne das es extra eingestellt werden müsste.
    Sollten Sie beim Starten von compiz die Meldung bekommen, Composite würde fehlen, haben Sie wahrscheinlich versucht es auf dem Basis-Xorg-Server zu starten (welcher bei Verwendung von Xgl von keinem anderen Programm benutzt werden sollte als von Xgl) und nicht auf dem Xgl-Server. Schauen Sie sich dazu auch ihre DISPLAY Variable an.
  • Falls Sie beim Starten von Xgl die Fehlermedlung "BadLength (poly request too large or internal Xlib length error)" erhalten, stimmt die mit Compiz verknüpfte Mesa-Bibliothek nicht mit derjenigen überein, welche von ihrem Xserver verwendet wird. In der Praxis bedeutet das, dass die 3D-Beschleunigung nicht aktiviert ist. Starten Sie sax2 um die 3D-Beschleunigung zu aktivieren. Diese ist aktiv, wenn der Aufruf von glxinfo|grep direct bei einem laufenden Xorg-Server (nicht bei Xgl!) "Yes" anzeigt. Sehen Sie sich dazu auch die häufig gestellten Fragen .

Allgemeine hardwareabhängige Probleme

  • XVideo ist ziemlich langsam wenn keine Hardwarebeschleunigung (Pixelshader) vorhanden ist. Wenn Sie einen composite manager benutzen, wird es nur schnell sein, wenn FBOs oder pBuffers verfügbar sind, oder bei volltransparenten Vollbildfenstern (schalten Sie die Option apps/compiz/general/screen0/options/unredirect_fullscreen_windows ein).

ATi / quelloffener Treiber "radeon"

  • Der Treiber besitzt weder pBuffer- noch FBO-Unterstützung. Bei Verwendung eines composite manager werden alle Fenster von der Software gezeichnet und einzig das Überlagern wird von der Hardware beschleunigt. Erstaunlicherweise läuft das in den meisten Anwendungsfällen aber noch schnell genug.
  • Die Unterstützung für R300- und R400-Chips ist noch experimentell, einige Karten arbeiten, andere nicht.
  • Beim Einsatz des radeon-Treibers können Fehler auftreten, da viele Erweiterungen ungetestet sind. Bitte reichen Sie Fehlermeldungen für R100 und R200 basierte Karten ein und teilen Sie auf der Seite von Xgl mit, ob und welche R300 und R400 basierten Karten damit arbeiten.

ATi / proprietärer Treiber "fglrx"

  • Benutzen Sie bitte mindestens die Treiberversion 8.25.18 oder neuer. Frühere Versionen enthalten einige Fehler im Zusammenhang mit Xgl.
  • X300-, X600- und X700-Grafikprozessoren funktionieren nur, wenn in /etc/X11/xorg.conf der undokumentierte Parameter Option "KernelModuleParm" "agplock=0" gesetzt ist (lesen Sie dazu auch den openSUSE Bugzilla-Eintrag #161247).
  • Beim Einsatz von Treibern >= 8.25.18 hat die oben genannte Option keinerlei Effekt, statt dessen sollte Option "KernelModuleParm" "locked-userpages=0" eingesetzt werden. --Lizzarddude 12:01, 13. Nov 2006 (UTC)
  • Wenn kein Überlagerungsverwalter (bspw. Compiz) läuft, kann der Treiber ziemlich langsam sein. Verwenden Sie Xgl also nicht ohne Überlagerungsverwalter.

Intel / quelloffener Treiber "i810"

  • Der Treiber besitzt weder pBuffer- noch FBO-Unterstützung. Bei Verwendung eines composite manager werden alle Fenster von der Software gezeichnet und einzig das Überlagern wird von der Hardware beschleunigt. Erstaunlicherweise läuft das in den meisten Anwendungsfällen aber schnell genug. FBO-Unterstützung soll wohl in naher Zukunft Einzug halten.
  • XVideo YV12 Flächen sind hardwarebeschleunigt (wenn kein composite manager benutzt wird), aber durch einen Fehler im Treiber verliert das Video einen Farbkanal, was zu falschen grünen/lila Farben führt. Diesem Problem wird nachgegangen.

nVidia / quelloffener Treiber "nv"

  • Dieser Treiber unterstützt keine 3D-Beschleunigung. Xgl wird mit der Softwareemulation nicht vernünftig laufen, Sie sollten diese Kombination deshalb nicht verwenden.

nVidia / proprietärer Treiber "nvidia"

  • Mit diesem Treiber können FBOs an Stelle von pbuffers zur Beschleunigung von XVideo benutzt werden. Aktivieren Sie dies, indem Sie in der Datei /etc/sysconfig/displaymanager
    DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:pbuffer" in
    DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:fbo" ändern.
  • Falls ihr Mauszeiger flackert und/oder Artefakte zeichnet, müssen sie in der X11-Konfigurationsdatei /etc/X11/xorg.conf im Abschnitt Device die Option HWCursor auf On setzen.

Glossar

Composite Erweiterung
Diese Erweiterung von X führt dazu, dass ein kompletter Unterbaum der Fensterhirarchie in einen Off-Screen-Zwischenspeicher gezeichnet wird. Anwendungen können dann den Inhalt dieses Pufferspeichers verwenden. Der Off-Screen-Zwischenspeicher kann automatisch mit dem umgebenden Fenster verschmolzen werden, was auch von externen Programmen kontrolliert werden kann, welche man dann compositing managers nennt.
FBO
Das Frame Buffer Object (FBO) ist eine OpenGL-Erweiterung die eine einfache Schnittstelle zum Schreiben in Zeichenziele definiert, anders als die Zwischenspeicher die den Grafikbibliotheken vom Fenstersystem zur Verfügung gestellt werden.
Pbuffer
Pixel buffers (kurz Pbuffers, auf Deutsch Pixelzwischenspeicher) sind zusätzliche, nicht sichtbare Zeichnerzwischenspeicher für OpenGL-Zeichner.