Hardwarebeschleunigung und GTK

11/04/2012 - 15:38 von Andreas M. Kirchwitz | Report spam
Hallo X11-Nutzer!

Auf einem nicht mehr ganz taufrischen PC mit einer ATI Radeon 9600
habe ich mir kürzlich Fedora 16 (X.Org X Server 1.11.4, radeon-Treiber,
KMS) installiert. Der grafische Desktop war plötzlich unbenutzbar
langsam. In einem schlichten xterm, rxvt oder gnome-terminal konnte
man zusehen, wie die einzelnen Buchstaben aufgebaut werden.
Allerdings andere Applikationen (z.B. Firefox) liefen ohne Einbußen
in der gleichen Geschwindigkeit wie vorher.

Nach etwas Recherche stellte sich heraus, dass es erheblich besser
wurde, wenn man dem X-Server ein "NoAccel=true" und "DRI=false" mit
auf den Weg gab.

Begründet wurde dies damit, dass GTK1-Anwendungen mit bösen
Bitmap-Fonts heutzutage jede Grafikkarte total in die Knie zwingen.
So ein altes xterm wàre ein Performance-Killer für jeden PC.
Als Ausgleich wàren nun dafür andere Applikationen, die moderner
programmiert sind (GTK > 1), schneller. Also ich spüre keinen
Unterschied ansonsten mit oder ohne Hardwarebeschleunigung.
Angeblich könne man einen Unterschied sehen, wenn man mit
Open/Libre-Office eine "Pràsentation" öffne und dabei ganz
bestimmte Elemente verwende. Ein Beispiel-Dokument war aber
leider nicht aufzutreiben.

Aha.

Kann mir das jemand erklàren? Oder kennt jemand Ressourcen im Netz,
die mir das erklàren können?

Ich verstehe nicht, warum - egal vor welchem PC ich sitze - ich im
Zweifelsfall durch das Ausschalten der "Hardwarebeschleunigung"
eher einen drastischen Performance-Schub bekomme, aber nie einen
erkennbaren Nachteil habe. (Egal ob ATI/AMD oder Nvidia.)

Es geht hierbei nicht um das Dekodieren von Videos oder komplizierte
3D-Effekte auf dem Desktop. Das ist sicherlich ein komplexes Gebiet,
wo man dem Grafikkartentreiber gelegentlich etwas nachhelfen muss.
Die uralte Radeon 9600 bietet dafür ohnehin keine Unterstützung.

Aber ein simples xterm, rxvt oder gnome-terminal. Warum muss ich
mir für die Eingabe von Text in einer Shell inzwischen Gedanken
über Hardwarebeschleunigung meiner Grafikkarte machen?

Was ist falsch mit mir? Wie machen andere das? Was muss ich verwenden,
damit es besser funktioniert? xterm finde ich super, weil es so toll
zu konfigurieren ist. Gibt es vielleicht Grafikkarten mit spezieller
Text- und Shell-Beschleunigung?

Es scheint wohl nicht nur ein Unix-Problem zu sein, sondern auch
in der Windows-Welt habe ich schon den Tipp gelesen, man solle
hardwarebeschleunigte Funktionen besser abschalten, insbesondere
wenn die Grafikkarte nicht die allerneuste Generation sei.
Sollte der Grafik-Treiber das nicht selbst optimal auswàhlen?

Etwas verwirrt ... Andreas
 

Lesen sie die antworten

#1 Dirk Thierbach
11/04/2012 - 18:33 | Warnen spam
Andreas M. Kirchwitz wrote:
Auf einem nicht mehr ganz taufrischen PC mit einer ATI Radeon 9600
habe ich mir kürzlich Fedora 16 (X.Org X Server 1.11.4, radeon-Treiber,
KMS) installiert. Der grafische Desktop war plötzlich unbenutzbar
langsam. In einem schlichten xterm, rxvt oder gnome-terminal konnte
man zusehen, wie die einzelnen Buchstaben aufgebaut werden.
Allerdings andere Applikationen (z.B. Firefox) liefen ohne Einbußen
in der gleichen Geschwindigkeit wie vorher.

Nach etwas Recherche stellte sich heraus, dass es erheblich besser
wurde, wenn man dem X-Server ein "NoAccel=true" und "DRI=false" mit
auf den Weg gab.

Begründet wurde dies damit, dass GTK1-Anwendungen mit bösen
Bitmap-Fonts heutzutage jede Grafikkarte total in die Knie zwingen.
So ein altes xterm wàre ein Performance-Killer für jeden PC.
Als Ausgleich wàren nun dafür andere Applikationen, die moderner
programmiert sind (GTK > 1), schneller. Also ich spüre keinen
Unterschied ansonsten mit oder ohne Hardwarebeschleunigung.
Angeblich könne man einen Unterschied sehen, wenn man mit
Open/Libre-Office eine "Pràsentation" öffne und dabei ganz
bestimmte Elemente verwende. Ein Beispiel-Dokument war aber
leider nicht aufzutreiben.

Aha.

Kann mir das jemand erklàren? Oder kennt jemand Ressourcen im Netz,
die mir das erklàren können?



Die Details nicht, aber ich kann in die grobe Richtung deuten:

Es gibt "serverseitige" (alt) und "clientseitige" (neu) Fonts.
Diese Verwenden wohl verschiedene Arten der Hardwareunterstuetzung,
insbesondere, wenn "composite" oder so etwas dazukommt.

In dem einen Fall wird der Grafiktreiber sagen: Ich biete keine
Hardwarebeschleunigung mehr fuer serverseitige Fonts an, weil sich
dass mit den anderen Beschleunigungen beisst, die ich gerne anbieten will.
Dann geht xterm usw. langsam, Applikationen mit "clientseitigen" Fonts
gewohnt schnell.

Im dem anderen Fall wird der Grafiktreiber sagen: Ok, serverseitige
Fonts sind noch Hardwarebeschleunigt, aber dann kann ich andere
Arten von Beschleunigung nicht mehr anbieten. Davon betroffen sind
dann nur Applikationen, die so etwas auch benutzen (ich rate mal:
vor allem "composite").

Mach mal "xdpyinfo" mit und ohne die NoAccel/DRI-Optionen und schau
nach, welche Extensions unterstuetzt werden. Wenn Du Pech hast, sieht
man da aber nichts, weil die Extensions zwar alle unterstuetzt, aber
nicht notwendigerweise beschleunigt sind. Dann muss man messen, um
genau zu sehen, was passiert (wenn es Dich wirklich
interessiert). Nachschauen in Xorg.0.log foerdert vielleicht auch
helfende Informationen zu Tage.

- Dirk

Ähnliche fragen