Firefox blir raskere

Ny grafikkmotor skal fjerne flere bremseklosser.

Det siste året eller så har mye av kappløpet mellom nettleserne dreid seg om maskinvareakselert 2D-grafikk. Microsoft har lagt svært stor vekt på det i IE9, men slik funksjonalitet har i større eller mindre grad også kommet på plass i flere av de konkurrerende nettleserne.

For å demonstrere ytelsen har Microsoft utgitt en rekke demoer som stort sett fungerer bedre i IE9 enn i de øvrige nettleserne. Blant de nyeste er Paintball-testen, hvor går mye raskere i IE9 enn i de konkurrerende nettleserne.

Mozilla skal etter planen komme med Firefox 5 i slutten av juni – dersom stiftelsen får flere til å ta i bruk testversjonene i Aurora-kanalen. Det er allerede klart at Firefox 5 vil oppnå bedre ytelse i noen av Microsofts demoer. Dette skal skyldes at enkelte lite effektive løsninger allerede har blitt fikset.

I et blogginnlegg skriver Mozillas Joe Drew at stiftelsen har kommet fram til at noen av valgene som har blitt gjort i grafikkmotoren til Gecko er lite optimale med tanke på ytelse.

Det å få til maskinvareakselerert grafikk er en mer omfattende jobb for Microsofts konkurrenter enn det er for Microsoft selv. Dette skyldes primært at Microsoft har valgt at Internet Explorer 9 bare skal støtte de to nyeste versjonene av Windows. IE10 skal kun støtte Windows 7.

Firefox, Opera og Chrome kan derimot kjøres på Windows XP, Mac OS X og Linux, i tillegg til Windows Vista og Windows 7.

For å håndtere forskjellene på de ulike operativsystemene inkluderer Firefox 4 et programmeringsgrensesnitt (API) kalt Cairo. Dette ligger over systemets egne grafikkgrensesnitt.

Cairo har flere svakheter som påvirker ytelsen. Det ene er omfattende behov for konvertering mellom verdier med faste og flytende antall desimaler, i alle fall når det skal kommunisere med Direct2D i Windows Vista og Windows 7.

Et annet problem med Cairo er at hvert funksjonskall avhenger av resultatet av det forrige (statefull), noe som ifølge Drew er lite egnet i en grafikkmotor. Der er det bedre om hvert funksjonskall behandles uavhengig av det forrige kallet (stateless).

Mozilla ønsker nå å lage en grafikkmotor hvor disse bremseklossene fjernes og hvor det samtidig er mulig å få til maskinvareakselerert tegning av innhold på en enkel måte på tvers av plattformene.

Ifølge Drew er det behov for et stateless grafikk-API som ligger nær nok Direct2D til å være bare litt mer enn en tynn «wrapper», men samtidig generelt nok til å kunne implementeres på toppen av OpenGL og Direct3D 9.

Dette prosjektet har fått navnet Azure. Navnevalget forklares nederst i blogginnlegget.

I tillegg til støtte for Direct2D, skal Azure også kunne vise aksellerert innhold via OpenGL, Direct3D 9 og 10, der hvor det er behov for dette. På systemer hvor ingen av disse kan benyttes, for eksempel på grunn av driverproblemer, vil Cairo være tilgjengelig som en nødløsning.

Det første konseptbeviset på Azure skal gjøres tilgjengelig innen noen uker. Det er et mål å få ferdig Azures Direct2D-akselerert 2D-canvas innen utgangen av dette kvartalet. Det kan bety at den vil kunne inkluderes i allerede i Firefox 5.

På lengre sikt ønsker Mozilla å flytte maskinvareakselerert innhold ut i egne sandkassede prosesser, noe som Azure 2D API også skal åpne for.

Til toppen