ubuntuusers.de

Ubuntu 12.04 mit Radeon HD 6250M, fglrx-Treiber - Grafikkarte wird nicht optimial genutzt.

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

Rainer_Guring

Anmeldungsdatum:
27. Mai 2012

Beiträge: Zähle...

Meine Grafikkarte lief unter 10.04 nicht wirklich dolle, aber sie lief zumindest ohne allzu großen Anspruch an die CPU. Seit ich jedoch auf 12.04 umgestiegen bin (beides x64-Version), wird in meiner CPU immer mindestens ein Kern (Dual-Core-CPU) auf 100% Auslastung gebracht. Bei einer kurzen Analyse mit top kamen als "Verbrecher" hierfür Xorg und compiz in Frage, die im Leerlauf bereits 40% auslastung verursachten mit einem load average von 1.00. Unity habe ich dann durch gdm ersetzt, aber das Problem blieb. Der Wechsel von compiz auf metacity bringt eine leichte Verbesserung, sodass die Auslastung auf 20% und L.A auf 0.40 geht, aber auch das ist für Leerlaufbetrieb zuviel.

Ich habe daraufhin den proprietären fglrx-Treiber von ATI ausprobiert, Version 2:8.961 (von der Herstellerseite, nicht über Paketverwaltung installiert, da hier wohl nur Version 2:8.960 vorhanden ist), einmal über eigene Installation, einmal die nötigen Subpakete runtergeladen und ein eigenes Deb-Paket erstellen lassen. Leider hat zunächst keine Installation viel gebracht - das Logo beim Startbildschirm hatte allerdings eine niedrigere Auslösung nach jeder Installation auf den p. Treiber (bin zwischendurch auch wieder auf die freie Alternative gewechselt), wohl ein Zeichen dafür, dass der VESA-Treiber nicht geladen wurde bzw. dies erst beim Laden von Xorg passiert - was merkwürdig ist, da ich vergessen hatte, aticonfig --initial --force auszuführen und Xorg den neuen Treiber gar nicht hätte erkennen können. Aber auch nach dem Ausführen des Befehls gab es keine Verbesserung, beim Klicken durch Menüs wurde die CPU stark beansprucht, und es gab auch minimale Verzögerungen beim Laden von Icons.

In der /var/log/Xorg.0.log konnte ich keine Fehlermeldungen entdecken, die auf eine Fehlfunktion des Treibers gedeutet. Auf der Suche nach irgendetwas, dass ich bei der Konfiguration der Grafikkarte übersehen hatte, stieß ich zufällig auf weitere Optionen, mit denen Xorg einen Treiber laden konnte. Durch manuelle Optionssetzungen in der xorg.conf versuchte ich, sämtliche für das Modell vorhandene Hardware-Beschleunigungen zu aktivieren und Performance-Fresser zu deaktivieren (sowohl bei der freien als auch bei der proprietären Version) - ohne Erfolg, die Treiber wurden geladen, aber es gab keine Verbesserung. Dass die xorg.conf überhaupt geladen wurde, merkte ich daran, dass bei einem Fehler bezüglich der Bus-Einstellungen die grafische Überfläche fehlerhaft war und ich den Fehler reproduzieren konnt.

Ich hatte danach versucht, den proprietären Treiber einmal über synaptic zu installieren in der Hoffnung, der Fehler lag in einer fehlerhaften Konfiguration meinerseits, und die Paketverwaltung würde diese besser hinbekommen - diese Hoffnung erwieß sich als trügerisch. Nach einiger Zeit stieß ich auf einige glx-Testprogramme, bspw. glxgears, mit denen ich die Leistung der Beschleunigung testen wollte. Beim freien Treiber hatte ich ~60 FPs, beim proprietären 1500 FPS - die Vermutung, die Hardware-Beschleunigung funktionierte also nicht schlecht, und ich vermutete schon, die Lösung in der Limitierung der Frames gefunden zu haben, sodass die Karte mit V-Sync bei 60 Frames stoppte. Aber auch dies hat nicht viel gebracht, und langsam bin zumindest ich mit dem Latein am Ende.

Ich habe dann in den FAQ des Forums nachgeschaut und den Artikel zur allgemeinen Übersicht der Xorg.conf gelesen. Beim Abschnitt 'Module' bin ich dann ins stocken geraten, denn bei mir gibt es die Verzeichnisse /usr/X11R6/lib/modules und /usr/X11R6/lib/modules - dort findet sich aber außer ein leerer Ordner 'dri' in beiden Verzeichnissen nichts (DRI wollte ich aktivieren ... ich gebe zu, außer VESA, DirectX und OpenGl kenne ich keine anderen Rendering-Schnittstellen). Als Verweiß gab es noch diesen Artikel (http://wiki.ubuntuusers.de/Grafikkarten/ATI/fglrx/Konfiguration), aber den hatte ich schon entdeckt und versucht, die Karte einzurichten - mit dem bekannten Erfolg.

Ein "fglrxinfo" brachte folgendes:

display: :0.0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon HD 6310 Graphics 
OpenGL version string: 4.2.11627 Compatibility Profile Context

, was indiziert, dass direkte Hardware-Beschleunigung möglich ist. glxinfo gibt 'direct rendering: Yes' an, was mich hierin noch bestätigt. Ich wollte nun einmal prüfen, ob die GPU überhaupt beansprucht wird, aber es scheint kein Programm zu geben, dass mir unter Ubuntu diese Informationen gibt. Ich kann also nicht prüfen, ob die GPU möglicherweise gar nicht angeprochen wird. Gibt es irgendetwas, dass ich in meinen Bestrebungen vergessen oder vernachlässigt habe? Die Karte hatte unter einer geringeren Ubuntu-Version eine höhere Leisung als heute, und auf Windows wird die CPU beim Abspielen eines Videos nicht einmal angerührt.

Meine Xorg.conf:

Section "ServerLayout"
        Identifier     "aticonfig Layout"
        Screen      0  "aticonfig-Screen[0]-0" 0 0
EndSection

Section "Module"
EndSection

Section "Monitor"
        Identifier   "aticonfig-Monitor[0]-0"
        Option      "VendorName" "ATI Proprietary Driver"
        Option      "ModelName" "Generic Autodetecting Monitor"
        Option      "DPMS" "true"
EndSection

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:0:1:0"
        Option      "UseInternalAGPGART"    "yes"
        Option      "EnablePageFlip"        "true"
        Option      "no_accel"              "no"
        Option      "no_dri"                "no"
        Option      "AllowGLXWithComposite" "yes"
        Option      "FSAAEnable"            "no"
        Option      "FSAAScale"             "0"
EndSection

Section "Screen"
        Identifier "aticonfig-Screen[0]-0"
        Device     "aticonfig-Device[0]-0"
        Monitor    "aticonfig-Monitor[0]-0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Die Log-Datei: paste:408617:Unbenannt. Es kann sein, dass hier noch Fehlermeldungen bezüglich der fehlerhaften Bus-Einstellungen und rumgespiele mit der Hardware-Beschleunigung vorhanden sind - diese kann man ignorieren, da ich diese bereits wieder rückgängig gemacht habe.

"lspci -k | grep -A2 -i vga" bringt:

00:01.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Wrestler [Radeon HD 6250]
	Subsystem: ASUSTeK Computer Inc. Device 104c
	Kernel driver in use: fglrx_pci

Vielen Dank für eure Bemühungen bei der Weisung zur Problemlösung.

wenne

Anmeldungsdatum:
15. November 2009

Beiträge: Zähle...

Wohnort: berlin

Letalis_Sonus Team-Icon

Anmeldungsdatum:
13. April 2008

Beiträge: 12990

Wohnort: Oldenburg/Erlangen

Rainer Guring schrieb:

wohl ein Zeichen dafür, dass der VESA-Treiber nicht geladen wurde bzw. dies erst beim Laden von Xorg passiert - was merkwürdig ist, da ich vergessen hatte, aticonfig --initial --force auszuführen und Xorg den neuen Treiber gar nicht hätte erkennen können.

Was meinst du wohl was das erste ist was X bei einer Radeon Karte macht? Versuchen den fglrx Treiber zu laden. Die xorg.conf wird dafür nicht mehr benötigt und somit ist der Befehl überflüssig. Der vesa Treiber ist übrigens ein reiner X Treiber, vor dem Starten von X sind Framebuffer Module zuständig, welche den Bildschirmmodus schlicht vom Bootloader übernehmen. Die freien Treiber sind die einzigen die schon vor dem Start von X greifen, da sie auf Kernel Mode-Setting setzen - der vesa Treiber ist übrigens mit KMS inkompatibel, X setzt dann stattdessen auf den fbdev Treiber wenn kein anderer Treiber geladen werden konnte.

Rainer Guring schrieb:

Beim freien Treiber hatte ich ~60 FPs, beim proprietären 1500 FPS - die Vermutung, die Hardware-Beschleunigung funktionierte also nicht schlecht, und ich vermutete schon, die Lösung in der Limitierung der Frames gefunden zu haben, sodass die Karte mit V-Sync bei 60 Frames stoppte.

glxgears erzwingt V-Sync bei den freien Treibern, das beugt den Missbrauch als Benchmark vor, da die Frameraten alles andere als Aussagekräftig sind - 1500 FPS schafft zB auch eine CPU mit dem alten ineffizienten Software Rasterizer. Inzwischen hat das Programm eigentlich auch nur 2 Einsatzzwecke: 1. Zum überprüfen, ob die OpenGL Bibliothek an sich überhaupt funktionsfähig ist (wobei hier sogar glxinfo für reicht) und 2. als Meilenstein in der Entwicklung neuer Grafiktreiber.

Antworten |