WebGPU-ondersteuning is beschikbaar voor nachtelijke versies van Firefox

Informatie over het integreren van de WebGPU-helpspecificatie vrijgegeven in Firefox nachtelijke builds, die nu biedt een programmeerinterface voor 3D grafische verwerking en computing aan de GPU-kant, conceptueel vergelijkbaar met de Vulkan API, metal en Direct3D 12. De specificatie wordt ontwikkeld door Mozilla, Google, Apple, Microsoft en vertegenwoordigers van de gemeenschap in een werkgroep die is opgericht door de organisatie W3C.

Het belangrijkste doel van WebGPU is om een ​​veilige, gemakkelijke, draagbare en krachtige software-interface te creëren voor gebruik op het webplatform met 3D-grafische technologie en mogelijkheden die worden geboden door moderne grafische systeem-API's zoals Direct3D 12 op Windows, Metal op macOS en Vulkan op Linux.

Conceptueel, WebGPU verschilt van WebGL op dezelfde manier dat Vulkan verschilt van OpenGL en het is niet gebaseerd op een specifieke grafische API, het is eerder een universele laag, die in het algemeen dezelfde low-level primitieven gebruikt die beschikbaar zijn in Vulkan, Metal en Direct3D.

In Firefox is de instelling "dom.webgpu.enabled" beschikbaar om WebGPU in te schakelen in about: config. Naast het renderen van CanvasContext, vereist het ook de opname van het WebRender-samenstellingssysteem ("gfx.webrender.all" in about: config).

De WebGPU-implementatie is gebaseerd op de wgpu-projectcode geschreven in Rust en kan werken bovenop de DX12-, Vulkan- en Metal-API's op Linux, Android, Windows en macOS (DX11- en OpenGL ES 3.0-ondersteuning is ook in ontwikkeling).

Over WebGPU

WebGPU biedt JavaScript-applicaties tools voor controle op een lager niveau over de organisatie, de verwerking en verzending van opdrachten naar de GPU, het beheren van gerelateerde bronnen, geheugen, buffers, textuurobjecten en gecompileerde grafische shaders. Deze aanpak zal maakt grafische toepassingen met hogere prestaties mogelijk door overhead te verminderen en de efficiëntie van het werken met de GPU te vergroten.

WebGPU maakt het mogelijk om complete complexe 3D-projecten voor het web te maken Ze presteren niet slechter dan zelfstandige programma's die rechtstreeks communiceren met Vulkan, Metal of Direct3D, maar zijn niet gebonden aan specifieke platforms.

ook biedt extra mogelijkheden door native grafische programma's over te dragen naar een formulier dat kan functioneren op basis van webgebaseerde technologieën door gebruik te maken van WebAssembly-technologie.

Naast de 3D-afbeeldingen, WebGPU omvat ook de mogelijkheden die gepaard gaan met het elimineren van computergebruik naast de GPU en ondersteuning voor de ontwikkeling van arcering. Shaders kunnen worden gemaakt in de WebGPU-shader-taal of worden gespecificeerd in het SPIR-V-tussenformaat, en vervolgens worden vertaald in arceringstalen die worden ondersteund door de huidige stuurprogramma's.

WebGPU maakt gebruik van afzonderlijk resourcebeheer, voorbereidend werk en opdrachtoverdracht naar de GPU (in WebGL was één object verantwoordelijk voor alles tegelijk). Er zijn drie afzonderlijke contexten beschikbaar: GPUDevice voor het maken van bronnen zoals texturen en buffers; GPUCommandEncoder om individuele commando's te coderen, inclusief de rendering- en berekeningsfasen; GPUCommandBuffer in de wachtrij voor uitvoering op de GPU.

Het tweede verschil tussen WebGPU en WebGL is een andere benadering van het omgaan met statussen. Twee objecten worden voorgesteld in WebGPU: GPURenderPipeline en GPUComputePipeline, die het mogelijk maken verschillende toestanden te combineren die vooraf zijn gedefinieerd door de ontwikkelaar, waardoor de browser geen middelen verspilt aan extra werk, zoals het opnieuw compileren van shaders. Ondersteunde statussen zijn onder meer: ​​shaders, hoekpuntbuffers en attribuutlay-outs, gekoppelde groepslay-outs, overvloeien, diepte en patronen, uitvoerformaten na weergave.

Het derde kenmerk van WebGPU is het bindende model, wat in veel opzichten lijkt op de middelen om middelen te bundelen die aanwezig zijn in Vulkan. Om bronnen in groepen te groeperen, biedt WebGPU een GPUBindGroup-object dat, door opdrachten te typen, kan worden geassocieerd met andere vergelijkbare objecten voor gebruik in shaders.

Door dergelijke groepen aan te maken, kan de bestuurder de nodige voorbereidende acties van tevoren uitvoeren, en de browser stelt hem in staat om resource-links tussen pull-oproepen veel sneller te schakelen.

bron: https://hacks.mozilla.org/


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.