Bare halvannen måned etter at Apples WebKit-team introduserte WebGPU, et spesifikasjonsforslag til hvordan nettlesere bedre skal kunne utnytte mulighetene i moderne grafikkprosessorer (GPU), har Mozilla kommet med et separat forslag, foreløpig kalt Obsidian API.
Samtidig er det verdt å nevne at en ny versjon av dagens webstandard for 3D-grafikk, WebGL, er under utvikling. Men støtte for den ble nylig tilgjengelig i blant annet Chrome 56 og Firefox 51.
Problemet med WebGL er at det bygger på OpenGL, som riktignok støttes av de fleste enheter, men som er en aldrende teknologi med en del begrensninger, blant annet på grunn av et høyt abstraksjonsnivå.
Les også: Apple vil ha sprekere 3D-grafikk på weben
Begrenset plattformstøtte
Det finnes flere nyere alternativer til OpenGL, primært Direct3D 12 fra Microsoft, Metal fra Apple og Vulkan fra Khronos Group. De har en hel del felles, men ingen av dem er tilgjengelige på tvers av alle operativsystemer.
WebGPU skal ifølge Apples forslag kunne fungere på toppen av alle tre.
Mozilla opplyser at Apples Metal ble vurdert som et godt utgangspunkt for en WebGL-erstatter, på grunn av enklere og mer høynivå abstraksjon enn Vulkan, noe som er enklere å tilby på en sikker måte på weben.
Men fordi Metals avanserte shader-syntaks ble ansett som vanskelig å overføre til andre programmeringsgrensesnitt, ble Vulkan og shadingspråket SPIR-V valgt som utgangspunkt stedet. SPIR-V brukes allerede for Vulkan og OpenCL.
Men tanken er at Obsidian skal være et redusert utgave av Vulkan, som da kan tilby den sikkerheten som er nødvendig på web. Men ifølge Mozilla må programmeringsgrensesnittet kunne implementeres effektivt i alle fall i Vulkan og Metal, men trolig også Direct3D 12.
Dessuten må det kunne kjøres i effektivt i WebAssembly og i flertrådmiljøer. Dette skal blant annet bety at et ikke vil skje noen automatisk minnerydding (garbage collection) som kan forstyrre grafikkgjengivelsen.
Les også: Vulkan skal gi utviklere etterlengtet GPU-kontroll
Konkurrerende standardiseringsorganisasjoner
Mozillas forslag utgjør foreløpig ingen spesifikasjon, bare en beskrivelse av tankegangen bak det hele, et utkast til hvordan det kan defineres i WebIDL (Web Interface Definition Language), samt noe eksempelkode.
Den kanskje mest avgjørende forskjellen på WebGPU og Obsidian er at mens den førstnevnte er foreslått som noe som kan bli standardisert innenfor W3C, er Obsidian – med sitt utgangspunkt i Vulkan – noe som mer naturlig hører hjemme hos standardiseringsorganisasjonen Khronos Group.
Les også: Mozilla trekker tilbake webteknologi av personvernårsaker