Firefox Nightly Builds enthalen elo WebGPU Support

В nuets Firefox baut erschéngt Spezifizéierung Ënnerstëtzung WebGPU, déi eng Programméierungs-Interface fir 3D Grafikveraarbechtung a GPU-Säit Computing ubitt, konzeptuell ähnlech wéi d'API Vulkan, Metal и Direkt3D 12. D'Spezifikatioun gëtt vu Mozilla, Google, Apple, Microsoft a Gemeinschaftsmemberen entwéckelt Aarbechtsgrupp, erstallt vun der W3C Organisatioun.

D'Schlësselzil vu WebGPU ass eng sécher, userfrëndlech, portabel an héich performant Programméierungs-Interface fir d'Webplattform ze bidden fir d'3D Grafiktechnologien a Fäegkeeten ze profitéieren, déi vun modernen Systemgrafik APIs geliwwert ginn, wéi Direct3D 12 op Windows, Metal op macOS, a Vulkan op Linux. Konzeptuell ënnerscheet WebGPU sech vum WebGL sou vill wéi de Vulkan vun OpenGL ënnerscheet, a gläichzäiteg ass et net op enger spezifescher Grafik API baséiert, awer ass eng universell Schicht déi allgemeng déiselwecht Low-Level Primitiv benotzt, déi am Vulkan fonnt ginn, Metal an Direct3D.

WebGPU liwwert JavaScript Uwendungen mat méi nidderegen Niveau Kontroll iwwer d'Organisatioun, d'Veraarbechtung an d'Transmissioun vun de Kommandoen op d'GPU, d'Gestioun vun assoziéierten Ressourcen, Erënnerung, Puffer, Texturobjekter a kompiléiert Grafik Shaders. Dës Approche erlaabt Iech méi héich Leeschtung fir Grafikapplikatiounen z'erreechen andeems Dir Overhead Käschten reduzéiert an d'Effizienz vun der Aarbecht mat der GPU erhéicht.

WebGPU mécht et méiglech vollwäerteg komplex 3D Projete fir de Web ze kreéieren déi net méi schlëmm funktionnéieren wéi Standalone Programmer déi direkt Zougrëff op Vulkan, Metal oder Direct3D, awer net mat spezifesche Plattformen gebonnen sinn. WebGPU bitt och zousätzlech Fäegkeeten wann Dir gebierteg Grafikprogrammer an eng Web-aktivéiert Form portéiert duerch d'Benotzung vun der WebAssembly Technologie. Zousätzlech zu 3D Grafiken, deckt WebGPU och Fäegkeeten am Zesummenhang mat Oflaaschtberechnungen op d'GPU an d'Ënnerstëtzung vu Shader Entwécklung. Shaders kann an der WebGPU Shading Language erstallt ginn oder am Mëttelstuf SPIR-V Format spezifizéiert ginn, an dann an Shader Sproochen iwwersat, déi vun aktuellen Treiber ënnerstëtzt ginn.

WebGPU benotzt getrennte Gestioun vu Ressourcen, Virbereedungsaarbechten an Iwwerdroung vun Kommandoen op d'GPU (am WebGL war een Objet op eemol verantwortlech fir alles). Dräi getrennte Kontexter ginn ugebueden:
GPUDevice fir Ressourcen wéi Texturen a Puffer ze kreéieren; GPUCommandEncoder fir d'Kodéierung vun eenzelne Kommandoen, dorënner Render- a Berechnungsstadien; GPUCommandBuffer fir an der GPU auszeféieren. D'Resultat kann an engem Gebitt, deen mat engem oder méi Canvas Elementer assoziéiert ginn, oder ouni Ausgang veraarbecht ginn (zum Beispill wann Dir Rechenaufgaben leeft). D'Trennung vun de Bühnen mécht et méi einfach d'Ressourcekreatioun an d'Virbereedungsoperatioune a verschidde Handler ze trennen, déi op verschiddene Threads lafen kënnen.

Den zweeten Ënnerscheed tëscht WebGPU a WebGL ass eng aner Approche fir Staaten ze handhaben. WebGPU bitt zwee Objekter - GPURenderPipeline an GPUComputePipeline, déi Iech erlaben verschidde Staaten viraus definéiert vum Entwéckler ze kombinéieren, wat de Browser erlaabt net Ressourcen op zousätzlech Aarbecht ze verschwenden, sou wéi d'Recompilatioun vun Shaders. Ënnerstëtzt Staaten enthalen: Shaders, Vertex-Puffer an Attribut Layouten, Sticky Group Layouten, Vermëschung, Déift a Mustere, a Post-Render Output Formater.

Déi drëtt Feature vu WebGPU gëtt de Bindungsmodell genannt, haaptsächlech
erënnert un d'Ressourcegruppéierungsinstrumenter, déi am Vulkan präsent sinn.
Fir Ressourcen zesummen ze gruppéieren, bitt WebGPU e GPUBindGroup Objet, dee mat aneren ähnlechen Objete verbonne ka ginn fir an Shaders ze benotzen beim Schreiwen vun Kommandoen. Esou Gruppen erstellen erlaabt de Chauffer déi néideg Virbereedungsaktiounen am Viraus auszeféieren, an erlaabt de Browser d'Ressourceverbindungen tëscht Zeechnungen vill méi séier z'änneren. De Layout vun de Ressourceverbindunge ka virdefinéiert ginn mat dem GPUBindGroupLayout Objet.

Firefox Nightly Builds enthalen elo WebGPU Support

Am Firefox gëtt de "dom.webgpu.enabled" Astellung an about:config zur Verfügung gestallt fir WebGPU z'aktivéieren. CanvasContext Rendering erfuerdert och d'Kompositioun fir aktivéiert ze ginn WebRender ("gfx.webrender.all" an iwwer: config), geschriwwen an Rust an Outsourcing Säit Inhalt Render- Operatiounen op d'GPU. WebGPU Implementatioun baséiert op Projet Code
wgpu, geschriwwen a Rust a fäeg fir uewen op den DX12, Vulkan a Metal APIen op Linux, Android, Windows a MacOS ze lafen (DX11 an OpenGL ES 3.0 Support ass och an der Entwécklung). Parallel entwéckelt Google eng aner Implementatioun, déi verfügbar ass an Kanaresch Branche Chromium an ass aktivéiert mat dem "chrome://flags/#enable-unsafe-webgpu" Fändel, awer bis elo funktionnéiert nëmmen op macOS a Windows.

Source: opennet.ru

Setzt e Commentaire