Fx4 Beta7 Hardwarebeschleunigung

  • Da ich nicht andauernd dem Trunk Beitrag folgen konnte:

    Welche Arten der Beschleunigung gibt es denn nun? Drei? Betrifft das immer die GPU?
    Welche funktionieren mit Dx9, welche mit Dx10?
    Welche Einträge sind in about:config dafür zuständig?

  • Zitat von Palli

    Welche Arten der Beschleunigung gibt es denn nun? Drei?

    Ganz generell wurde zunächst die Grafikleistung gesteigert, indem man die Technik namens Retained Layers eingeführt hat. Einfach gesprochen wird jetzt die Website in verschiedene Schichten aufgeteilt, die dann beim Scrollen nur noch gegeneinander verschoben werden. Das spart Rechenleistung, weil beim Scrollen nicht ständig die gesamte Website, sondern nur die sich verändernden Schichten gerendert werden müssen. Das ist für sich zwar noch keine Grafikbeschleunigung als solche, bietet aber die Grundlage dafür und verbessert die Leistung beim Scrollen auf allen Plattformen.

    Diese Technik der Schichten wurde dann in einem nächsten Schritt ergänzt, indem man diese Vorgänge (Veränderungen bei den Schichten) nun über die Grafikkarte beschleunigt. Man spricht davon, dass das Compositing beschleunigt wird, was einen von zwei Teilen und somit einer teilweisen Grafikbeschleunigung entspricht. Auch hier ist in erster Linie das Scrollen betroffen, weil hier die Schichten am meisten betroffen sind. Was innerhalb der Schichten vor sich geht (Animationen, SVG, das Rendern mit Canvas und dergleichen) wird dabei nicht beschleunigt. Das Ganze nennt sich daher Accelerated Layers.

    Zitat

    Welche funktionieren mit Dx9, welche mit Dx10?

    Die oben genannte Technik wird je nach Plattform unterschiedlich beschleunigt. Unter den alten Windows-Versionen (XP in erster Linie) kommt DirectX 9 zum Einsatz und unter Vista und Windows 7 DirectX 10, sofern eine passende Grafikkarte vorhanden ist (dürfte bei solchen System meist der Fall sein). Unter Linux und Mac OS X kommt entsprechend OpenGL zum Zuge.

    Getrennt von den beiden obigen Dingen (Retained Layers und deren Beschleunigung über die Grafikkarte) ist Direct2D zu sehen. Diese Technik ist nur in Verbindung mit einer DirectX-10-Grafikkarte voll nutzbar (eingeschränkt auch mit einer DirectX-9-Karte) und nur unter Windows Vista (mit Plattformupdate) und Windows 7 verfügbar. Im Gegensatz zu den Schichten wird bei dieser Technik die gesamte Darstellung des Browsers voll über die Grafikkarte beschleunigt. Man spricht von einer Beschleunigung des Compositings und des Contents und somit von einer vollständigen Grafikbeschleunigung. Unter Windows Vista und 7 werden die beiden Techniken (Schichten und Direct2D) gemeinsam verwendet.

    Zitat

    Betrifft das immer die GPU?

    Wenn von einer Beschleunigung die Rede ist, dann ist damit gemeint, dass Teile oder auch die gesamte Darstellung über die GPU berechnet werden.

    Zitat

    Welche Einträge sind in about:config dafür zuständig?


    Accelerated Layers: layers.accelerate-all
    Soll dafür eine andere Schnittstelle als die für das System vorgesehene verwendet werden, stehen noch diverse Schlüssel zur Verfügung. Hier unter Windows 7 wird zurzeit DirectX 10 verwendet alternativ können die folgenden Schlüssen gesetzt werden:
    layers.prefer-d3d9
    layers.prefer-opengl

    Direct2D ist standardmäßig aktiviert, sobald es das System zulässt. Man kann es dann aber über gfx.direct2d.disabled abschalten oder auch über gfx.direct2d.force-enabled erzwingen, das es eingeschaltet ist, sofern nicht schon von sich aus geschehen.

  • Zitat von RedSign


    - Die oben genannte Technik wird je nach Plattform unterschiedlich beschleunigt. Unter den alten Windows-Versionen (XP in erster Linie) kommt DirectX 9 zum Einsatz und unter Vista und Windows 7 DirectX 10, sofern eine passende Grafikkarte vorhanden ist


    Vllt. dazu noch eine Bemerkung.

    Wenn also die Voraussetzungen - mind. DirectX 10 (dxdiag), ggf. das System und vor allem die Leistung der GraKa - erfüllt sind, kann man auch von Direct3D 10 auf Direct3D 9 zurückschalten. Das ist ggf. bei Problemen /beim Ausloten von Lösungen mit der HW-Beschleunigung ein probates Mittel. Dazu muss man den Schalter gfx.direct2d.disabled den Boolean-Wert *true* zuweisen. Ein Browser- Restart ist erforderlich.