In Chrome zal ondersteuning voor WebGPU worden ingeschakeld

Google heeft aangekondigd standaard ondersteuning te bieden voor de grafische API WebGPU en de shader taal WGSL (WebGPU Shading Language) in de Chrome 113 tak, waarvan de release gepland staat op 2 mei. WebGPU biedt een programmeerinterface vergelijkbaar met Vulkan, Metal en Direct3D 12 voor het uitvoeren van bewerkingen aan de GPU-kant, zoals rendering en berekeningen, en maakt het mogelijk om shaders te gebruiken voor het schrijven van programma's die op de GPU draaien. De implementatie van WebGPU zal in eerste instantie alleen beschikbaar zijn in builds voor ChromeOS, macOS en Windows. Ondersteuning voor WebGPU op Linux en Android zal later worden geactiveerd.

Naast Chrome wordt experimentele ondersteuning voor WebGPU sinds april 2020 getest in Firefox en sinds november 2021 in Safari. Om WebGPU in Firefox in te schakelen, moeten de vlaggen dom.webgpu.enabled en gfx.webgpu.force-enabled in about:config worden ingesteld. Er zijn momenteel geen berichten over plannen om WebGPU standaard in Firefox en Safari in te schakelen. De versies van WebGPU die voor Firefox en Chrome worden ontwikkeld, zijn beschikbaar als afzonderlijke bibliotheken — Dawn (C++) en wgpu (Rust), die kunnen worden gebruikt om WebGPU-ondersteuning in uw applicaties te integreren. Er wordt ook gewerkt aan het toevoegen van WebGPU-ondersteuning in populaire JavaScript-bibliotheken die oorspronkelijk WebGL gebruikten. Volledige ondersteuning voor WebGPU is al aangekondigd in Babylon.js, en gedeeltelijke ondersteuning in Three.js, PlayCanvas en TensorFlow.js.

Conceptueel verschilt WebGPU van WebGL op een vergelijkbare manier als de grafische API Vulkan verschilt van OpenGL, maar WebGPU is niet gebaseerd op een specifieke grafische API; het is een universele laag die dezelfde lage-niveau primitieve gebruikt die aanwezig zijn in Vulkan, Metal en Direct3D. WebGPU biedt JavaScript-applicaties middelen voor lage-niveau controle over de organisatie, verwerking en overdracht van commando's naar de GPU, evenals het beheer van gerelateerde middelen, geheugen, buffers, textuurobjecten en gecompileerde grafische shaders. Deze benadering stelt ontwikkelaars in staat om een hogere prestaties van grafische applicaties te bereiken door overhead te verminderen en de efficiƫntie van GPU-gebruik te verbeteren.

WebGPU maakt het mogelijk om complexe 3D-projecten voor het web te creƫren die niet onderdoen voor afzonderlijke programma's die rechtstreeks gebruikmaken van Vulkan, Metal of Direct3D, maar niet aan specifieke platforms zijn gebonden. WebGPU biedt ook extra mogelijkheden voor het porteren van native grafische programma's naar een vorm die kan werken op basis van webtechnologieƫn, dankzij de compilatie naar WebAssembly. Naast 3D-graphics omvat WebGPU ook mogelijkheden die verband houden met het uitvoeren van berekeningen op de GPU en het uitvoeren van shaders.

Belangrijkste kenmerken van WebGPU:

  • Gescheiden controle over middelen, voorbereidingswerkzaamheden en opdrachten naar de GPU (in WebGL was ƩƩn object verantwoordelijk voor alles). Er zijn drie afzonderlijke contexten beschikbaar: GPUDevice voor het maken van middelen zoals texturen en buffers; GPUCommandEncoder voor het coderen van afzonderlijke opdrachten, inclusief rendering- en compute-fases; GPUCommandBuffer voor het plaatsen in de uitvoeringswachtrij op de GPU. Het resultaat kan worden weergegeven in een gebied dat is gekoppeld aan een of meerdere canvas-elementen, of worden verwerkt zonder uitvoer (bijvoorbeeld bij het uitvoeren van compute-taken). De scheiding van fasen vergemakkelijkt het uitbesteden van het maken van middelen en voorbereidende werkzaamheden naar verschillende handlers die in verschillende threads kunnen worden uitgevoerd.
  • Een andere aanpak bij het verwerken van staten. In WebGPU worden twee objecten aangeboden — GPURenderPipeline en GPUComputePipeline — waarmee verschillende staten kunnen worden gecombineerd die vooraf door de ontwikkelaar zijn gedefinieerd, wat het de browser mogelijk maakt om geen middelen te verspillen aan aanvullende werkzaamheden, zoals het opnieuw compileren van shaders. Onder de ondersteunde staten vallen: shaders, lay-outs voor vertexbuffers en attributen, lay-outs voor gekoppelde groepen, mengen, diepte en sjablonen, uitvoerformaten na rendering.
  • Het bindmodel doet denken aan de bestaande middelen voor het groeperen van bronnen in Vulkan. Om bronnen in groepen te combineren, biedt WebGPU het object GPUBindGroup, dat tijdens het opnemen van commando's gekoppeld kan worden aan andere soortgelijke objecten voor gebruik in shaders. Het creĆ«ren van dergelijke groepen stelt de stuurprogramma's in staat om van tevoren de nodige voorbereidende acties uit te voeren, en stelt de browser in staat om veel sneller de bronbindingen tussen renderaanroepen te wijzigen. De lay-out van de bronbindingen kan van tevoren worden gedefinieerd met behulp van het object GPUBindGroupLayout.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster