GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was macht Libgl_always_indirect=1 eigentlich?

KDE SC 4.5.0 hat einige Probleme mit einigen Grafikkarten einschließlich meiner. Bei der Veröffentlichung empfahl Arch mehrere Problemumgehungen. Einer davon war

exportiere „LIBGL_ALWAYS_INDIRECT=1“, bevor du KDE startest

Ich entschied, dass es die einfachste und beste Methode war. Aber ich weiß nicht, was es tut oder wie es sich auf mein System auswirkt. Ist es langsamer als die Standardeinstellung? Sollte ich daran denken, das Problem im Auge zu behalten und es später zu deaktivieren, sobald es behoben ist?

Akzeptierte Antwort:

Indirektes Rendern bedeutet, dass das GLX-Protokoll verwendet wird, um OpenGL-Befehle zu übertragen, und X.org das eigentliche Zeichnen übernimmt.

Direktes Rendern bedeutet, dass die Anwendung direkt auf die Hardware zugreifen kann, ohne zuerst über Mesa mit X.org zu kommunizieren.

Das direkte Rendern ist schneller, da es keine Änderung des Kontexts in den X.org-Prozess erfordert.

Klarstellung: In beiden Fällen wird das Rendering von der GPU durchgeführt (oder technisch gesehen – kann von der GPU durchgeführt werden). Beim indirekten Rendern sieht der Prozess jedoch so aus:

  1. Programm ruft einen oder mehrere Befehle auf
  2. Befehl(e) wird/werden per GLX-Protokoll an X.org gesendet
  3. X.org ruft Hardware (z. B. GPU) zum Zeichnen auf

Beim direkten Rendern

  1. Programm ruft einen oder mehrere Befehle auf
  2. Befehl(e) wird/werden an GPU gesendet

Bitte beachten Sie, dass, da OpenGL so konzipiert wurde, dass es über das Netzwerk betrieben werden kann, das indirekte Rendering schneller ist als eine naive Implementierung der Architektur, dh es ermöglicht, eine Reihe von Befehlen auf einmal zu senden. Es gibt jedoch einen gewissen Overhead in Bezug auf die CPU-Zeit, die für Kontextwechsel und die Handhabung des Protokolls aufgewendet wird.


Linux
  1. Was bedeutet „–“ (Doppelstrich)?

  2. Was macht „lc_all=c“?

  3. Was macht ?

  4. Was bedeutet Echo $? Tun??

  5. Was macht Bamfdaemon?

Was bedeutet chmod 777

Was genau macht init?

Was gibt pwd aus?

Was macht kill -- -0?

Was macht CAP_NET_RAW?

Was bedeutet echo $? tun?