Webstandarden WebGL har siden 2011 gjort det mulig å utnytte kreftene til grafikkprosessorer når nettleserne skal gjengi 3D-grafikk. WebGL bygger på OpenGL, en åpen grafikkstandard fra Khronos Group med historikk tilbake til 1992.
En av de store fordelene med OpenGL i dag, er at den støttes av en rekke plattformer, noe som er nødvendig når man skal lage kryssplattformløsninger, noe webbasert innhold stort sett er. På Windows er likevel DirectX og Direct3D mest utbredt, så WebGL støtter også dette gjennom ANGLE-løsningen (Almost Native Graphics Layer Engine).
Men tiden er i ferd med å løpe fra OpenGL. Allerede har Khronos Group kommet med en etterfølger til OpenGL, som har fått navnet Vulkan. Den gir applikasjonene mer direkte tilgang til GPU-ene enn det OpenGL gir, noe som kan bidra til mer ytelse og forutsigbarhet. Men Vulkan er ikke tilgjengelig for alle plattformer.
Les mer: Vulkan skal gi utviklere etterlengtet GPU-kontroll
WebGPU
Dette er bakgrunnen for en kunngjøring som Apples WebKit-team kom med i går. De har foreslått at det opprettes en egen W3C-gruppe for å diskutere framtiden til 3D-grafikk på weben, noe som allerede har skjedd. I tillegg skal selskapet komme med et forslag til en nytt programmeringsgrensesnitt som bedre skal gjøre et mulig i webapplikasjoner å utnytte GPU-mulighetene, enn det som er mulig med WebGL i dag.
Dette programmeringsgrensesnittet har fått navnet WebGPU. Det vil være tilgjengelig gjennom canvas-elementet.
Planen er å gjøre WebGPU til en ny webstandard som tilbyr et sentralt sett med nødvendig funksjonalitet og egenskaper, som kan brukes på tvers av ulike plattformer med ulike systemgrafikkteknologier. Teamet har da spesielt Vulkan, Microsofts Direct3D 12 og Apples Metal i tankene.
WebGPU må dessuten ha innebygd den sikkerheten som er nødvendig for at teknologien trygt skal kunne eksponeres mot weben. Ved å senke abstraksjonsnivået håper man å redusere de ytelsesmessige kostnadene som abstraksjonsnivået i WebGL innebærer.
Les også: – Gir deg kontroll over hver eneste piksel
Ikke bare grafikk
Apple ønsker også at man med WebGPU ikke bare har grafikk i tankene, men også de andre bruksområdene til moderne GPU-er, slik som generell parallellprosessering. Selskapet mener det også er nødvendig å sørge for at WebGPU fungerer godt sammen med andre viktige webstandarder som er på frammarsj, slik som WebAssembly og WebVR.
WebKit-teamet har allerede lagd en prototype-implementering av WebGPU, som snart skal kunne testes i WebKit. Det opplyses også at andre lignende prototyper også finnes til andre nettlesermotorer, uten at dette spesifiseres, så det er langt fra sikkert at prototypen fra WebKit-teamet vil være utgangspunktet for det videre arbeidet med den foreslåtte standarden.
Les mer: WebAssembly skal få virkelig fart på weben
Shadingspråk
Men WebGPU alene er ikke nok. Det må også velges et shadingspråk, altså et språk for shader-programmer som kjøres i GPU-en. Disse prosesserer geometriske data, slik at de kan bli gjengitt som fargede piksler på skjermen.
– Vi trenger et språk som er kraftig, som gjør det lett å lage programmer, som kan serialiseres til et format som kan overføres på en effektiv måte, og som kan valideres av nettleseren slik at den kan forsikre seg om at shaderen er trygg, skriver WebKit-teamet.
Det glemmes heller ikke at en viktig del av suksessfaktoren til weben har vært brukernes mulighet til å se på kildekoden. Da er det viktig at denne er i et format som faktisk kan leses av mennesker.
I blogginnlegget kommer WebKit-teamet med langt flere detaljer om den kommende WebGPU-prototypen, inkludert kodeeksempler, da med utgangspunkt i Metal Shading Language.
Les også: JavaScript er nok til å spille av 3D-lyd med nettleseren