Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Mozilla schakelt WebRender in bij Firefox Nightly

Mozilla is begonnen met het gebruik van WebRender bij de Nightly-versie van zijn Firefox-browser. De grafische renderer voor de Servo-browserengine werkt voorlopig alleen in combinatie met Windows 10 en een Nvidia-gpu.

Bovendien werkt WebRender bij Firefox Nightly alleen met Nvidia-desktopkaarten en niet op laptops. Volgens ontwikkelaar Jeff Muizelaar van Mozilla gaat het dan nog steeds om ongeveer 17 procent van de gebruikers van Nightly. Sinds juli test Mozilla WebRender bij de Nightly-builds al, maar met een beperkte groep gebruikers. Op andere platformen, behalve Android, is WebRender ook al in te schakelen, via de gfx.webrender.all-instelling.

WebRender is een compleet nieuwe grafische renderer voor de Servo-engine, die webinhoud moet renderen als ware het een game-engine. Zo moet rasterisatie zoveel mogelijk door de gpu gebeuren. Volgens Mozilla is het voordeel dat een toename van het gebruik van de gpu de cpu kan ontlasten, zodat die meer tijd aan bijvoorbeeld de verwerking van JavaScript kan besteden.

Daarnaast zijn gpu's beter toegerust voor verwerking op hoge resolutie, wat nodig is gezien de toename van bijvoorbeeld 4k-schermen. Bovendien zijn er voordelen op het gebied van multithreading.

Door Olaf van Miltenburg

Nieuwscoördinator

14-09-2018 • 14:15

36 Linkedin Google+

Submitter: NiLSPACE

Reacties (36)

Wijzig sortering
Bovendien werkt WebRender bij Firefox Nightly alleen met Nvidia-desktopkaarten en niet op laptops.
Lees dit als "staat standaard alleen aan" bij Nvidia-desktopkaarten. Ik gebruik WebRender via Nightly al een hele tijd op mijn laptop met GTX 1060, gewoon gfx.webrender.all op true zetten in about:config. Maar Nvidia-desktopkaarten zijn de eerste populatie waar ze zich op richten.

[Reactie gewijzigd door Mitsuko op 14 september 2018 16:56]

Zet deze 2 boolean entries in about:config
gfx.webrender.all met waarde true
gfx.webrender.all.qualified met waarde true => dit zorg ervoor dat er alleen op gekwalificeerde Nvdia-kaarten geactiveerd wordt.
gfx.webrender.enabled met waarde true => gaat niet werken als je hiermee op systemen/laptops het wilt forceren.
In about:support kan je verifiëren of webrender ingeschakeld is of niet:
Als je bij Graphics => Features de volgende dingen terugziet:
Compositing => WebRender
WEBRENDER => available by user: Qualified enabled by pref
dan is webrender ingeschakeld.
Heb het op zowel een laptop als ook op een desktop met een Nvidia-kaart getest op Firefox en op Firefox dev. Op de laptop wordt die niet geactiveerd, op de desktop wel.

[Reactie gewijzigd door Erendiz op 15 september 2018 18:40]

Met alleen gfx.webrender.all dwing je het af, maar deze optie werkt alleen op Nightly. Met gfx.webrender.all.qualified sta je toe dat het wordt geactiveerd als jouw hardware op hun lijst staat (Nvidia-desktopkaart), die optie werkt ook buiten Nightly maar buiten Nightly is de lijst van gekwalificeerde hardware nog leeg :)
Bedankt voor de uitleg, het het met deze geactiveerd op mijn laptop.
Precies. Ik heb zelf een AMD GPU (RX 580) maar WebRender draait hier zonder problemen op.
Werkt dit enkel nog in de nightly of ook al in stable?
Als het al mogelijk zal zijn zal dat niet slim zijn omdat je dan op een achterlijk verouderde versie van WebRender zit met nog tig meer bugs dan de nightly heeft. Dan zal het stabieler zijn om gewoon de mozilla-central nightlies the draaien. Ze hebben het voor een reden nu pas standaard aangezet. Ik verwacht dat WebRender als alles goed uitpakt over max 4 versies in de beta zit.

[Reactie gewijzigd door NotCYF op 14 september 2018 16:00]

gfx.webrender.all wordt momenteel alleen gehonoreerd op Nightly. gfx.webrender.all.qualified werkt wel overal maar dan moet je op een whitelist staan denk ik (waarschijnlijk is die voor de stabiele versie nog leeg).

Je kan het wel uitproberen door de environment variable MOZ_WEBRENDER=1 te gebruiken, maar WebRender is in Nightly een stuk verder ontwikkeld dus ik zou het nog niet voor normaal gebruik aanzetten!

Bronnen:
https://dxr.mozilla.org/m...ebes/gfxPlatform.cpp#2581
https://dxr.mozilla.org/m...ebes/gfxPlatform.cpp#2540
Als iemand die games maakt in HTML5 vraag ik mij vooral af of mijn games hierdoor sneller zullen werken in Firefox als dat ze nu doen. Als wat ThaStealth hierboven zegt klopt, dan zal dat vast het geval zijn. Maar het zal mij benieuwen.
Enkel als je game voor de graphics de DOM gebruikt. Maar hoogstwaarschijnlijk render je nu al gewoon naar canvas (mss zelf met webgl?) en dat is al accelerated.
Daarnaast zijn gpu's beter toegerust voor verwerking op hoge resolutie, wat nodig is gezien de toename van bijvoorbeeld 4k-schermen. Bovendien zijn er voordelen op het gebied van multithreading.
Jammer dat dan net de extra mile wordt gemist in het artikel; wat zou dit opleveren in de praktijk? Worden pagina's scherper weergegeven of worden pagina's sneller geladen? Of een combinatie misschien? Wat doet dit met geheugengebruik van zowel de PC en de videokaart?

[Reactie gewijzigd door CH4OS op 14 september 2018 14:22]

Gezien dat Flash, wat toch door velen in principe al een tijdje afgeschreven is, nog steeds beter presteert met games dan HTML/Javascript, neem ik aan dat dit een poging is een stap te zetten om of dat verschil te verkleinen, of Flash in te halen.
Ik snap waarom je een link naar gaming en daarmee Flash legt, maar ik denk niet dat dat de bedoeling is van deze WebRender-feature. Deze WebRender feature zorgt ervoor dat webpagina's (gedeeltelijk) geladen worden dankzij hulp van de GPU. Niet zozeer voor het spelen van games in de browser.
Ik hoop dat het dan een bijkomend positief effect is dat HTML/Javascript-games ook beter gaan presteren :P
Toch willen de grote vier (Apple, Google, Microsoft, Mozilla) die kant op.

De huidige HTML5 games zijn immens ook afhankelijk de prestaties van de browser waarin ze draaien.
Microsoft is er al. Sinds IE9 gebruikt trident de GPU om een website te renderen. Mozilla is nu de 2de speler die van het oude veredelde document viewer concept af stapt en websites behandeld alsof het lokaal draaiende applicaties zijn.
Microsoft is er al. Sinds IE9 gebruikt trident de GPU om een website te renderen. Mozilla is nu de 2de speler die van het oude veredelde document viewer concept af stapt en websites behandeld alsof het lokaal draaiende applicaties zijn.
IE9 en Firefox 4.0 kwamen in maart van 2011 uit met GPU rendering. Omdat Mozilla met nightlies werkt kan je stellen dat je al in 2010 Firefox kon gebruiken met GPU rendering. Webrender is van de grond af opnieuw gebouwd in Rust met het doel om de vele cores van de cpu en speciale eigenschappen van moderne gpu's optimaal te gebruiken.
Deze ontwikkeling heeft niets te maken met of een website wordt behandeld als een lokale applicatie.
Het oude hardware acceleratie van Firefox is heel wat anders dan het GPU renderen van IE9 en wat Webrender nu doet. Dat ging meer om het weergeven van de site zelf, de laatste stap in het "GPU render" process, de drawframe, de site zelf draaide niet op de GPU zoals een game of website dat -nu- wel doen.

Het heeft alles te maken met het draaien als een native applicatie, anders kan je de hardware niet zo deftig gebruiken. Niet voor niets dat zowel Edge als Firefox de HTML/CSS/JS compileren en dan pas uitvoeren.

Dit is Mozilla's laatste stap om weer bij te komen met de 'concurrentie' (niet dat IE/Edge nu nog sterke concurrentie vormen). Google moet nog, maar die hebben een heel ander idee bij een browser.

Meh ik kan van Mozilla niet van die gedetailleerde blogs/info vinden zoals de MSDN blogs bv, beetje jammer, op de sites van Mozilla zijn alleen veel te lange TL;DR marketing praatjes blogs te vinden. Ik vermoed dat Mozilla het +/- hetzelfde doet.

[Reactie gewijzigd door batjes op 16 september 2018 11:33]

Staat gewoon erin:
Volgens Mozilla is het voordeel dat een toename van het gebruik van de gpu de cpu kan ontlasten, zodat die meer tijd aan bijvoorbeeld de verwerking van JavaScript kan besteden.
CPU ontlasten, waardoor CPU meer tijd heeft voor andere zaken zoals bijv JavaScript. Resultaat: pagina's zouden sneller zijn.

[Reactie gewijzigd door ThaStealth op 14 september 2018 14:25]

Ik vraag mij af in hoeverre het dus sneller is, wat het dus mogelijk oplevert in de praktijk. An sich zijn pagina's (zoals hier op Tweakers) vrij groot en die zijn ook razendsnel. Ik vraag mij dus ten zeerste af of het merkbaar sneller is.

Zoals ik uit andere reacties hier begrijp, heeft het als (netto) resultaat een hogere frames per second. In die zin is het dan sneller, maar hoeft dus niet per se sneller geladen te betekenen!

[Reactie gewijzigd door CH4OS op 14 september 2018 14:58]

Als je bij de link wat verder door scrolled kom je bij deze grafiek waar een frame-rate van ~145 fps wordt gehaald i.p.v. 90 fps zonder WebRender. Handig voor vloeiend scrollen op schermen met een hoge verversingssnelheid!
Als ik op vsync bij mij uit zet haal ik meer dan 1400fps, dus WebRender kan veel meer halen hoor :)
Omdat het op dit moment nog in de nightly-fase zit, zal dit ten eerste nog lastig te meten zijn en zal dit ook niet te meten zijn geweest door Tweakers zonder er enkele dagen voor uit te trekken om een testplan uit te werken, tijd voor vrij te maken e.d. Benchmarking in dat opzicht is geen klusje van een paar keer een pagina laden, dan heb je het echt over een paar duizend keer willen laden, en correct de render-tijd meten (en dus niet de load-time).
Dit levert vooral vloeiender beeld op bij intensieve / interactieve pagina's, zeker op hoge resoluties. Doordat de CPU meer tijd heeft voor andere taken kan deze zich dus meer richten op het uitvoeren van javascript en het opbouwen van de DOM waardoor de pagina sneller laad en responsiever is.
[...]Jammer dat dan net de extra mile wordt gemist in het artikel; wat zou dit opleveren in de praktijk
Hee, we zijn Tweakers hè, of niet dan? ;) Zelf opzoeken (longread hier), Nightly installeren (of voor de echte Tweakers, compileren), configureren en testen die handel dus!

Waarschuwing: De volgende test lijkt me een afrader voor mensen met epilepsie, mensen die optische illusies haten, of 'gewoon' nog niet gegeten hebben.

http://output.jsbin.com/surane/quiet

Helaas heb ik gruwelijk oude antieke hardware, maar hier komt toch mijn ontstellende verschil:
GeForce 610 / AMD 4850e (ik had gewaarschuwd toch? ;) ):
-"Normaal" / geen webrender: ca 2,5 frame per seconde, totaal onwerkbaar.
-Met webrender: ca. 8 frames per seconde (schatting).

Dus zelfs op gruwelijk oude meuk brengt het verbetering!

[Reactie gewijzigd door kidde op 15 september 2018 03:28]

WebRender heeft nog wat voordelen. Het zou bijvoorbeeld minder geheugen moeten gebruiken dan de traditionele 'layers' architectuur.
Ik draai het al geruime tijd stabiel, op een GTX 1070. In het begin was het inderdaad erg buggy maar het is nu in principe bruikbaar voor de grote massa.
Al zal dit in sommige gevallen vast en zeker verwelkomd worden, sta ik hier minder om te juichen. Mijn GPU produceert nogal wat lawaai met het koelen. Mede daardoor o.a. hardwareversnelling overal uitgeschakeld. Het geluid van o.a. films was nog moeilijk te volgen.

Persoonlijk zou ik graag de GPU klok op applicatieniveau willen beperken. Dat heb ik nog niet uitgezocht, maar wanneer iemand hier bekend mee is houd ik me dat uiteraard aanbevolen.

[Reactie gewijzigd door JKP op 14 september 2018 14:35]

Aangezien een GPU dit soort data efficiënter kan verwerken dan een CPU, mag je stellen dat een GPU daar minder energie voor nodig heeft. Dus de warmte die je niet genereert in je GPU door hardware versnelling uit te zetten, is minder dan de warmte die je daardoor wél genereert in je CPU.

Oftewel, als je systeem meer herrie maakt als je de GPU gebruikt, is de koeling van je GPU gewoon ruk.
Oftewel, als je systeem meer herrie maakt als je de GPU gebruikt, is de koeling van je GPU gewoon ruk.
Volledig off-topic inmiddels, maar dit is natuurlijk erg kort door de bocht. Ik ben in het bezit van de pricewatch: Club 3D Radeon R9 290 royalAce. Een prima GPU (zeker in 2014). Het heeft vermoedelijk eerder te maken dat mijn systeemkast aan de kleine kant is (te weinig airflow).

[Reactie gewijzigd door JKP op 14 september 2018 15:51]

Het heeft vermoedelijk eerder te maken dat mijn systeemkast aan de kleine kant is (te weinig airflow).
Dus niet. Misschien te weinig airflow rond de GPU, maar niet in de kast als geheel. Het systeem produceert méér warmte als je de GPU niet gebruikt (nl. in de CPU), en die warmte wordt blijkbaar zonder problemen afgevoerd.
WebRender zal de GPU gebruiken, maar het werk wat gedaan moet worden is veel kleiner dan bijvoorbeeld een game. Je GPU gebruik zal dus erg laag zijn. Het moet tenslotte ook vloeiend op iGPU's kunnen draaien.
Watvoor effect heeft dit op de 'nachtelijke' websites? Wordt het zo nog spannender?
Dat is nogal kort door de bocht. Het lijkt me eerder te maken te hebben met de latency van JS.

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True