# Firefox und die Hardware Beschleunigung

## Fijoldar

Hallo,

ich habe den Eindruck, dass mein Firefox unter Gentoo langsamer ist als unter anderen Linux Distributionen. Herausgefunden habe ich das mit folgendem Test:

https://developer.mozilla.org/media/uploads/demos/p/a/paulrouget/8bfba7f0b6c62d877a2b82dd5e10931e/hacksmozillaorg-achi_1334270447_demo_package/HWACCEL/

Unter Arch Linux und Openuse habe ich da ohne Probleme 60+ FPS. Unter Gentoo komme ich gerade mal auf 30 FPS. Generell scheint die Hardware Beschleunigung aber zu funktionieren, denn mit Google Chrome komme ich unter Gentoo auch auf 60+ FPS. Nur eben nicht mit Firefox. Woran kann das liegen? Es betrifft sowohl die binäre Variante firefox-bin als auch die selbstkompilierte. Ich habe auch schon mal versucht die USE Flags "system-cairo" etc. zu aktivieren. Das ändert leider nichts daran, dass bei dem Test so ein schlechtes Ergebnis erzielt wird. Natürlich habe die Hardware Beschleunigung in den Einstellungen auch aktiviert.

Woran könnte das liegen? Vielleicht hat ja jemand kurz ein paar Sekunden Zeit, den Test auch einmal durchlaufen zu lassen und das Ergebnis hier zu posten. Würde mich mal interessieren, ob ich mein System einfach schlecht konfiguriert habe oder ob es unter Gentoo generell schlechter läuft.

----------

## Louisdor

N'Abend!

mit Chrome komme ich auf 32, mit Firefox auf 60+

Hab ein Intel Xeon 64bit Gentoo installiert.

Achso, woran das liegt, ich habe keine Ahnung.  :Wink: 

Nehme aber auch fast nur Firefox zum Surfen.

Ciao,

aleX!

----------

## Christian99

Ich vermute mal, dass es an deinen Profil einstellungen und nicht am build liegt, da es bei dir sowohl beim selbstkompilierten auftritt als auch beim bin.

Probier doch mal, was rauskommt, wenn du firefox mit einem neuen profil startest.

Und was genau hast du aktiviert?

----------

## Fijoldar

Ich habe jetzt mal ein komplett neues Profil ausprobiert und sogar einen neuen Testuser. Bleibt immer noch so, dass ich nur halb so viele FPS erziele.

Aktiviert habe ich in Firefox die Hardware Beschleunigung unter Einstellungen -> Erweitert -> Häkchen bei "Hardware Beschleunigung verwenden, wenn verfügbar"

Gebaut habe ich Firefox mit

```
[I] www-client/firefox

     Available versions:  *10.0.11 17.0.9 24.3.0 24.5.0 24.6.0 (~)29.0.1 (~)30.0{tbz2} {+alsa bindist custom-cflags custom-optimization +dbus debug gstreamer hardened +ipc +jit libnotify +minimal pgo pulseaudio selinux startup-notification system-cairo system-icu system-jpeg system-sqlite test +webm wifi LINGUAS="af ak ar as ast be bg bn_BD bn_IN br bs ca cs csb cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk km kn ko ku lg lt lv mai mk ml mr nb_NO nl nn_NO nso or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta ta_LK te th tr uk vi xh zh_CN zh_TW zu"}

     Installed versions:  30.0{tbz2}(15:38:44 22.07.2014)(alsa dbus gstreamer jit libnotify minimal pulseaudio startup-notification -bindist -custom-cflags -custom-optimization -debug -hardened -pgo -selinux -system-cairo -system-icu -system-jpeg -system-sqlite -test -wifi LINGUAS="de -af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -csb -cy -da -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -ku -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -th -tr -uk -vi -xh -zh_CN -zh_TW -zu")

     Homepage:            http://www.mozilla.com/firefox

     Description:         Firefox Web Browser
```

Ich habe das Problem sogar auf sämtlichen Systemen. Habe hier eins mit Nvidia Grafikkarte, AMD und Intel. Aber auf allen ist Google Chrome einfach schneller. Ich habe allerdings in Chrome die Einstellung "Software-Rendering-Liste überschreiben" manuell unter chrome://flags aktiviert. Sowas finde ich in Firefox leider nicht.

----------

## Christian99

Ich kenn ich da net so super aus, aber ich glaube, das sollte im firefox sowas wie webgl sein. das findest du unter about:config. Bei mir sind alle werte auf Standard gestellt. So spontan würde ich sagen, der wichtigste ist webgl.disabled. der sollte auf false stehen und dann gibt es noch webgl.force-enabled. den könntest du probehalber mal auf true stellen.

----------

## Fijoldar

Danke, ich habe mal versucht, ob sich mit webgl.force-enabled;true etwas ändert. Leider wird dann nur das Bild nicht mehr richtig dargestellt, die Framerate bleibt gleich schlecht. Ich denke, das Problem muss woanders liegen. Bei anderen Distributionen funktioniert es ja auch mit der Standardeinstellung.

Im Grunde könnte ich ja einfach auf Google Chrome umsteigen. Firefox wäre mir aber ehrlich gesagt lieber, weil dort die Addons besser sind.

----------

## ChrisJumper

Also ich hab sowohl mit dem Chromium als auch mit dem Firefox jeweils 60fs.

```
 eix firefox

[I] www-client/firefox

     Available versions:  *10.0.11 17.0.9 24.3.0 24.5.0 24.6.0 (~)29.0.1 (~)30.0 {+alsa bindist custom-cflags custom-optimization +dbus debug gstreamer hardened +ipc +jit libnotify +minimal pgo pulseaudio selinux startup-notification system-cairo system-icu system-jpeg system-sqlite test +webm wifi LINGUAS="af ak ar as ast be bg bn_BD bn_IN br bs ca cs csb cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk km kn ko ku lg lt lv mai mk ml mr nb_NO nl nn_NO nso or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta ta_LK te th tr uk vi xh zh_CN zh_TW zu"}

     Installed versions:  30.0(00:00:00 xx.06.2014)(alsa dbus jit libnotify minimal pulseaudio startup-notification -bindist -custom-cflags -custom-optimization -debug -gstreamer -hardened -pgo -selinux -system-cairo -system-icu -system-jpeg -system-sqlite -test -wifi LINGUAS="de -af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -csb -cy -da -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -ku -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -th -tr -uk -vi -xh -zh_CN -zh_TW -zu")

     Homepage:            http://www.mozilla.com/firefox

     Description:         Firefox Web Browser

[U] www-client/chromium

     Available versions:  36.0.1985.125 ~37.0.2062.0 ~37.0.2062.20 {bindist cups custom-cflags gnome gnome-keyring kerberos neon pic pulseaudio selinux +tcmalloc test LINGUAS="+am +ar +bg +bn +ca +cs +da +de +el +en_GB +es +es_LA +et +fa +fi +fil +fr +gu +he +hi +hr +hu +id +it +ja +kn +ko +lt +lv +ml +mr +ms +nb +nl +pl +pt_BR +pt_PT +ro +ru +sk +sl +sr +sv +sw +ta +te +th +tr +uk +vi +zh_CN +zh_TW"}

     Installed versions:  35.0.1916.153(00:00:00 xx.06.2014)(cups gnome pulseaudio tcmalloc -bindist -custom-cflags -gnome-keyring -kerberos -neon -selinux -test LINGUAS="de -am -ar -bg -bn -ca -cs -da -el -en_GB -es -es_LA -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt_BR -pt_PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh_CN -zh_TW")

     Homepage:            http://chromium.org/

     Description:         Open-source version of Google Chrome web browser
```

Ich tippe eher auf das fehlende "jit" Useflag bei dir.

Nebenbei, weiß jemand was die Useflags -system-cairo -system-icu -system-jpeg -system-sqlite machen? Ein bisschen verwirrt mich das schon weil ich dachte das diese Libs dynamisch eingebunden werden also automatisch System-Libs verwendet werden. Oder ist das um Probleme mit anderen Programmen zu umgehen, wenn die unterschiedliche Versionen von z.B. icu wollen?

----------

## cryptosteve

Ich komme hier ebenfalls auf 60+ FPS - danke für den Link, den Test (und die damit verbundene Problematik) kannte ich noch gar nicht.

----------

## Fijoldar

Danke für die rege Teilnahme  :Wink:  Das hilft mir schonmal etwas.

Also ich habe jetzt noch mal ein wenig rumprobiert. Auf meinem System mit Nvidia Karte komme ich jetzt mit dem neusten Grafikkarten Treiber (340.24) ebenfalls auf 60+ FPS.

Probleme bereiten mir noch meine Systeme mit AMD Karte und Intel. Bei beiden habe ich mit Google Chrome 60+ FPS. Firefox schafft es nicht einmal auf 10. Da ist die Leistung dramatisch schlechter. Bei beiden ist aber jeweils der neuste verfügbare Treiber installiert: ati-drivers-14.6_beta1 bzw. xf86-video-intel-2.99.912-r1. Da habe ich allerdings keinen Vergleich mit anderen Distributionen. Das muss ich mal mit einer Live CD testen.

----------

## Jean-Paul

Ich habe ein Intel-System und komme auch auf 60+.

Der Treiber xf86-video-intel-2.99.912-r1 ist übrigend etwas buggy, zumindest erzeugt er Fehler in meiner Xorg.0.log. Ich verwende deshalb seit längerer Zeit den xf86-video-intel-2.21.15. Am Treiber kann's eigentlich nicht liegen.

----------

## Fijoldar

@Jean-Paul: Funktioniert denn vdpau bei dir? Ich vermute, dass es evtl. daran liegen könnte.

```
vdpauinfo

display: :0.0   screen: 0

Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory

Error creating VDPAU device: 1
```

----------

## Jean-Paul

vdpau verwende ich nicht, sondern vaapi

http://wiki.gentoo.org/wiki/VAAPI

http://wiki.gentoo.org/wiki/Intel

----------

## Yamakuzure

Also ich komme sowohl mit Intel HD, wie auch nvidia (via primusrun) auf die 60+ FPS bei dem Test.

Meine Firefox USE-Flags: "alsa dbus gstreamer jit libnotify linguas_de linguas_en_GB minimal startup-notification wifi"

Ich habe sowohl libvdpau als auch libva mit drin, und benutze "Option "AccelMethod" "SNA"" mit dem Intel Treiber.

Ob des Ergebnisses neige ich dazu die Vermutung von ChrisJumper zu teilen, und USE="jit" als 'Schuldigen' auszumachen.

----------

## Fijoldar

Aber "jit" ist doch standardmäßig aktiviert. Auch bei mir! Oder verstehe ich das gerade falsch und ich soll das Use Flag explizit deaktivieren?

----------

## Yamakuzure

 *Fijoldar wrote:*   

> Aber "jit" ist doch standardmäßig aktiviert. Auch bei mir! Oder verstehe ich das gerade falsch und ich soll das Use Flag explizit deaktivieren?

 Oh stimmt. Da hatten wir uns wohl kollektiv verguckt. Einziger Unterschied ist PulseAudio, dass ich nicht nutze, aber das kann es wohl nicht sein.

----------

## Randy Andy

Interessant das mit dem FF-Test,

kannte auch ich noch nicht. 

Da ich derzeit wegen andere Probleme gerade mit zwei verschiedenen Konfigurationen teste, hab ich das auf ein und der selben Kiste mal mit dem nvidia-dirvers-340.24 und dem Nouveau Treiber unter kernel 3.15.6 getestet.

Bekomme glücklicher Weise auch in beiden Fällen 60+ FPS zusammen, seltsam finde ich auch, dass die Spirale mit dem Nouveau-Treiber viel größer dargestellt wird, als mit dem Nvidia-Teiber.

Jedenfalls meine ich mal kürzlich etwas darüber gelesen zu haben, dass Chrome seine eigenen integrierten Hardwarebeschleuniger-Routinen verwendet, was ja durchaus ein Grund für die Unterschiede zwischen den beiden Browsern erklären könnte, da FF die des Systems benutzt. Und die können schließlich sehr unterschiedlich konfiguriert sein, wie wir ja hier schon mehrfach gelesen haben.

Apropos, auf diesen Aspekt der Konfiguration waren wir auch noch nicht eingegangen:

Wat is mit:

```
eselect opengl list
```

 ist das korrekt eingestellt?

Welcher Treiber wird benutzt, in kernel oder seperat oder proprietär, Stichwort VIDEO_CARDS="" aus der make.conf ?

Wieviel FPS liefert denn glxgears so zum Vergleich?

Fragen über Fragen...

Gruß, Andy.

----------

## Fijoldar

Ich versuche das ganze nochmal etwas zusammenzufassen, da es mittlerweile etwas chaotisch geworden ist.

Durchgeführt habe ich den Test mit 3 Systemen (1 mit Intel Grafikkarte, 1 mit Nvidia, 1 mit AMD).

1. Nvidia System: proprietärer Treiber nvidia-drivers-340.24. VIDEO_CARDS="nvidia". Google Chrome 60+ FPS, FIrefox 60+ FPS. Hier gibt es also kein Problem mehr (nach einem Treiber Update)

2. Intel System: freier Treiber xf86-video-intel-2.99.914. VIDEO_CARDS="intel i965". Google Chrome 35 FPS, Firefox <10 FPS.

3. AMD System: proprietärer Treiber ati-drivers-14.4_p1. VIDEO_CARDS="fglrx". Google Chrome 60+ FPS, Firefox <10 FPS.

OpenGL ist richtig gesetzt. Ansonsten dürfte Google Chrome nicht deutlich besser abschneiden als Firefox. Daraus schließe ich, dass die Hardware Beschleunigung generell zu funktionieren scheint. Full HD Videos sind mit mplayer z.B. auch kein Problem. VIelleicht werde ich mich wohl damit begnügen müssen, dass Google Chrome einfach schneller ist. 

Interessant dürfte aber sein, dass ich in Google Chrome manuell folgendes aktivieren muss:

chrome://flags

 *Quote:*   

> Software-Rendering-Liste überschreiben Mac, Windows, Linux, Chrome OS, Android
> 
> Überschreibt die integrierte Software-Rendering-Liste und aktiviert GPU Acceleration auf nicht unterstützten Systemkonfigurationen #ignore-gpu-blacklist

 

Sonst habe ich auch in Google Chrome schlechtere Ergebnisse. In Firefox haben sämtliche Änderung in about:config leider nicht geholfen. Auch ein 

```
MOZ_GLX_IGNORE_BLACKLIST=1 firefox
```

 kann daran leider nichts ändern. 

glxgears liefert immer konstante 60 FPS.

-------------------------------------------------

@Randy Andy: Das mit der unterschiedlich großen Spirale kommt bei mir auch regelmäßig vor. Das habe ich immer dann, wenn ich die Seite erneut aufrufe. Dann erscheint nur ein schwarzer Hintergrund und beim Test ist die Spirale dann kleiner. Wenn ich aber mit F5 die Seite aktualisiere, erscheint die Vorschau und die Spirale ist wieder so groß wie zuvor. Könnte ein Caching Problem mit dem Browser sein.

----------

## wuesti

 *ChrisJumper wrote:*   

> 
> 
> Nebenbei, weiß jemand was die Useflags -system-cairo -system-icu -system-jpeg -system-sqlite machen? Ein bisschen verwirrt mich das schon weil ich dachte das diese Libs dynamisch eingebunden werden also automatisch System-Libs verwendet werden. Oder ist das um Probleme mit anderen Programmen zu umgehen, wenn die unterschiedliche Versionen von z.B. icu wollen?

 

Firefox und Thunderbird bringen ihre eigenen libs mit. Mit den USE-Flags werden die nicht mitcompiliert. Der Vorteil ist, dass das Bauen schneller geht und auch der Programmstart von Firefox schneller ist, wenn Thunderbird schon gestartet wurde. Dann sind die libs schon im Cache.

----------

## Fijoldar

Hier wurde das Thema auch schon mal angesprochen. Geht wohl darum, dass die Programme nicht ordentlich laufen, wenn sie mit den System Libs verlinkt sind. Ich hatte bei meinen Tests auch mal Firefox mit aktivierten system-cairo etc. USE-Flags kompiliert und hatte danach ein ziemlich komisches Verhalten. Firefox wirkte danach etwas "kaputt". Die Animation für einen neuen Tab war nicht mehr flüssig und der ganze Browser wirkte nicht mehr so reaktionsfreudig wie vorher. Das Kompilieren an sich hat mit aktivierten system-* Use Flags aber auch nicht länger gedauert (+- 1 Minute). Da geht es wohl wirklich hauptsächlich um Stabilität.

----------

## Josef.95

@Fijoldar,

hm, kann ich so nicht bestätigen. Mit USE=system-cairo system-icu system-jpeg

läuft ff hier bisher einwandfrei flüssig, und ohne Darstellungsfehler.

Mein uralt-Rechner schaff mit einer Auflösung von 1920x1080 bei dem Test etwa 45 FPS

/edit,

ich hab mir zum testen mal kurz auf dem selben System firefox-bin hinzu installiert (welcher ohne diese experimentellen Flags kommt),

der schaffte dann etwa 20 FPS  :Smile: 

----------

