Ambiciózní projekt postupné výměny součástí vykreslovacího jádra ve Firefoxu postupuje vpřed od minulého roku. Firefox 57 představoval zlomové vydání, jež bylo ale jen začátkem budoucího vývoje. Od té doby v prohlížeči proběhly další změny, které mají zajistit lepší výkon. Např. došlo k reorganizaci rasterizace nebo k implementaci Styla (tj. jádro pro zpracování kaskádových stylů). Hmatatelné rysy v těchto dnech nabírá další dílek ze skládačky Quantum. Již loni Mozilla lákala na implementaci části experimentálního vykreslovacího jádra Servo, kterou do Firefoxu ještě nepřidala. WebRender zajišťuje fázi vykreslování stránek. I on je napsán v Rustu, otevřeném jazyce, o jehož zrod se ponejvíce zasadila právě Mozilla. Z hlediska návrhu fungování představuje úplně jiný směr než dosavadní řešení.
Vykreslování jinak (pomocí GPU)
Jak uvádí vývojářka Lin Clark, ačkoli je nový kompozitor velmi rychlý, jeho hlavní devizou nemá být zrychlení vykreslování, ale plynulost. To se tedy netýká statických webů, přínos naopak pocítíme na aplikacích využívajících různé animace nebo efekty. Což by primárně mohly být hry a vlastně cokoli postavené na WebVR. Vykreslování zvládá vždycky v 60 snímcích za sekundu, zatímco aspoň před rokem jiné prohlížeče na některých webech dosahovaly mrzkých 15 fps nebo jiných nízkých hodnot. Viz test na videu níže.
Jak WebRender dosahuje výraznější lepších výsledků? K práci využívá grafický čip, přičemž vykreslení a kompozice už nejsou dvě samotné úlohy, ale spojují se do jedné. (Mozilla to připodobňuje k tomu, jak fungují herní 3D enginy.) Informace o rozložení prvků je jinak strukturovaná, přičemž se jedná o obecné instrukce. Zpracuje je pro změnu komponenta RenderBackend, a to tak, aby grafický čip mohl informace snadno proměnit v obraz.
Kromě spojení dvou procesů Mozilla provedla další optimalizace. Pokyny pro vykreslení Firefox nevydá pro objekty, resp. jejich tvary, které se na monitoru nezobrazí. Dále se část zatížení sníží chytřejší prací s texturami, spojováním instrukcí, které procesor předává grafickému čipu, do co největších dávek, vykreslováním vrstev objektů od vrchního s tím, že se pak kontroluje, jestli je nutné překryté body znovu vykreslovat.
WebRender je aktivní na prvních zařízeních
Pokud vás zajímají detaily, doporučuji k přečtení komplexní článek od zmíněné Lin Clark z října 2017 na webu Mozilla Hacks. Jak si všiml TechSpot, technologie WebRender je konečně aktivní v nočních sestaveních Firefoxu. Týká se to pouze desktopů s grafickými kartami Nvidia a Windows 10. Tato kombinace dle Jeffa Muizelaara z Mozilly je v celé bázi instalací Firefoxu Nighty zastoupena ze 17 %.
Někteří zaměstnanci nebo zaměstnankyně Mozilly již WebRender používali několik měsíců bez výraznějších potíží. Přestože je zahájení veřejného testování důležitým milníkem, je stejně tak zřejmé, že ačkoli nejsme na začátku, od cílové pásky nás pořád dělí víc než posledních pár metrů. Technologie však představuje zlom v tom, jak prohlížeče vykreslují stránky.
S virtuální realitou, náročnými aplikacemi a rozlišením 4k (nebo dokonce 8k) je širší využití GPU žádoucí. Firefox Nightly si můžete stáhnout z webu www.mozilla.org.