W3C enthüllt Entworf WebGPU Standard

De W3C huet déi éischt Entworf vun de WebGPU a WebGPU Shading Language (WGSL) Spezifikatioune verëffentlecht, déi APIs definéieren fir GPU Operatiounen auszeféieren wéi Rendering a Computeren, souwéi eng Shader Sprooch fir Programmer ze schreiwen déi op der GPU lafen. konzeptuell ähnlech wéi de Vulkan, Metal an Direct3D 12 APIen D'Spezifikatioune goufen vun enger Aarbechtsgrupp virbereet, déi Ingenieuren vu Mozilla, Google, Apple a Microsoft abegraff.

Konzeptuell ënnerscheet WebGPU sech vum WebGL op déiselwecht Manéier wéi d'Vulkan Grafik API vun OpenGL ënnerscheet, awer et baséiert net op enger spezifescher Grafik API, awer ass eng universell Schicht déi déiselwecht niddereg-Niveau Primitiv benotzt, déi a Vulkan, Metal an Direkt 3D. WebGPU bitt JavaScript Uwendungen mat nidderegen Niveau Kontroll iwwer d'Organisatioun, d'Veraarbechtung an d'Transmissioun vun Kommandoen op d'GPU, d'Verwaltung 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 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 fir natiirlech Grafikprogrammer an eng Web-aktivéiert Form duerch Kompiléierung an WebAssembly ze portéieren. Zousätzlech zu 3D Grafiken enthält WebGPU och Fäegkeeten am Zesummenhang mat Oflaaschtberechnungen op d'GPU an d'Ausféierung vun Shaders.

Schlëssel Feature vu WebGPU:

  • Separat Gestioun vu Ressourcen, Virbereedungsaarbecht 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.
  • Eng aner Approche zu Veraarbechtung Staaten. 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.
  • E bindende Modell ähnlech wéi de Vulkan Ressource Gruppéierungsfeatures. Fir d'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. Schafe vun esou Gruppen erlaabt de Chauffeur déi néideg Virbereedungssëtzung Aktiounen am Viraus ze Leeschtunge, an erlaabt de Browser Ressourcen Bindungen tëscht Zeechnen rifft vill méi séier ze änneren. De Layout vun de Ressourceverbindunge ka virdefinéiert ginn mat dem GPUBindGroupLayout Objet.

Source: opennet.ru

Setzt e Commentaire