In Chrome wird UnterstĂŒtzung fĂŒr WebGPU hinzugefĂŒgt.

Das Unternehmen Google hat angekĂŒndigt, dass die UnterstĂŒtzung fĂŒr die Grafik-API WebGPU und die Shadersprache WGSL (WebGPU Shading Language) standardmĂ€ĂŸig in der Chrome-Version 113, die am 2. Mai veröffentlicht werden soll, integriert wird. WebGPU bietet eine Programmierschnittstelle, die der von Vulkan, Metal und Direct3D 12 Ă€hnelt, um Operationen auf der GPU wie Rendering und Berechnungen durchzufĂŒhren, und ermöglicht es, Shader-Programme zu schreiben, die auf der GPU ausgefĂŒhrt werden. Die Implementierung von WebGPU wird zunĂ€chst nur in den Builds fĂŒr ChromeOS, macOS und Windows verfĂŒgbar sein. FĂŒr Linux und Android wird die UnterstĂŒtzung von WebGPU spĂ€ter aktiviert.

Neben Chrome wird die experimentelle UnterstĂŒtzung von WebGPU seit April 2020 in Firefox und seit November 2021 in Safari getestet. Um WebGPU in Firefox zu aktivieren, mĂŒssen die Flags dom.webgpu.enabled und gfx.webgpu.force-enabled in about:config gesetzt werden. Über PlĂ€ne zur standardmĂ€ĂŸigen Aktivierung von WebGPU in Firefox und Safari wurde bisher nicht berichtet. Die fĂŒr Firefox und Chrome entwickelten Implementierungen von WebGPU sind in Form von separaten Bibliotheken verfĂŒgbar – Dawn (C++) und wgpu (Rust), die zur Integration der WebGPU-UnterstĂŒtzung in eigene Anwendungen verwendet werden können. Zudem wird daran gearbeitet, die UnterstĂŒtzung von WebGPU in populĂ€re JavaScript-Bibliotheken, die ursprĂŒnglich WebGL verwendeten, hinzuzufĂŒgen. Beispielsweise wird bereits eine vollstĂ€ndige UnterstĂŒtzung von WebGPU in Babylon.js und eine partielle UnterstĂŒtzung in Three.js, PlayCanvas und TensorFlow.js bekannt gegeben.

Konzeptionell unterscheidet sich WebGPU von WebGL in etwa so, wie sich die Grafik-API Vulkan von OpenGL unterscheidet. Allerdings basiert WebGPU nicht auf einer bestimmten Grafik-API, sondern stellt eine universelle Schicht dar, die dieselben Low-Level-Primitiven verwendet, die in Vulkan, Metal und Direct3D vorhanden sind. WebGPU bietet Anwendungen in JavaScript Mittel fĂŒr eine Low-Level-Kontrolle ĂŒber die Organisation, Verarbeitung und Übertragung von Befehlen an die GPU, das Management von zugehörigen Ressourcen, Speicher, Buffern, Texturobjekten und kompilierten Grafik-Shadern. Ein solcher Ansatz ermöglicht eine höhere Leistung grafischer Anwendungen durch reduzierte Overheadkosten und eine effizientere Nutzung von GPU-Ressourcen.

WebGPU ermöglicht die Erstellung komplexer 3D-Projekte fĂŒr das Web, die nicht schlechter funktionieren als separate Programme, die direkt Vulkan, Metal oder Direct3D verwenden, aber nicht an spezifische Plattformen gebunden sind. WebGPU bietet auch zusĂ€tzliche Möglichkeiten beim Portieren nativ grafischer Programme in eine Form, die auf Web-Technologien arbeiten kann, dank der Kompilierung in WebAssembly. Neben 3D-Grafik deckt WebGPU auch die Möglichkeiten ab, die mit der Auslagerung von Berechnungen auf die GPU und der AusfĂŒhrung von Shadern verbunden sind.

Wichtige Merkmale von WebGPU:

  • Getrennte Verwaltung von Ressourcen, Vorbereitungsarbeiten und der Übertragung von Befehlen an die GPU (in WebGL war ein Objekt fĂŒr alles verantwortlich). Es werden drei separate Kontexte bereitgestellt: GPUDevice zur Erstellung von Ressourcen wie Texturen und Puffern; GPUCommandEncoder zur Kodierung einzelner Befehle, einschließlich Rendering- und Berechnungsphasen; GPUCommandBuffer zur Übertragung in die Warteschlange zur AusfĂŒhrung auf der GPU. Das Ergebnis kann in einem Bereich gerendert werden, der mit einem oder mehreren Elementen canvas verknĂŒpft ist, oder ohne Ausgabe verarbeitet werden (z. B. beim AusfĂŒhren von Berechnungsaufgaben). Die Trennung der Phasen erleichtert die Aufteilung der Erstellung von Ressourcen und die Vorbereitungsoperationen in verschiedene Handler, die in unterschiedlichen Threads ausgefĂŒhrt werden können.
  • Ein anderer Ansatz bei der Verarbeitung von ZustĂ€nden. In WebGPU werden zwei Objekte vorgeschlagen - GPURenderPipeline und GPUComputePipeline, die es ermöglichen, verschiedene, vom Entwickler vordefinierte ZustĂ€nde zu kombinieren, was dem Browser die Ressourcenersparnis bei zusĂ€tzlichen Arbeiten wie der Neukompilierung von Shadern ermöglicht. Zu den unterstĂŒtzten ZustĂ€nden gehören: Shader, Layout der Vertex-Puffer und Attribute, Layout der angehĂ€ngten Gruppen, Mischungen, Tiefe und Vorlagen, Ausgabeformate nach dem Rendering.
  • Ein Bindungsmodell, das stark an die in Vulkan vorhandenen Mittel zur Gruppierung von Ressourcen erinnert. Um Ressourcen in Gruppen zusammenzufassen, stellt WebGPU das Objekt GPUBindGroup bereit, das wĂ€hrend der Befehlsaufzeichnung mit anderen gleichartigen Objekten verbunden werden kann, um in Shaders verwendet zu werden. Die Erstellung solcher Gruppen ermöglicht es dem Treiber, die notwendigen Vorbereitungen im Voraus durchzufĂŒhren, wĂ€hrend der Browser deutlich schneller die Ressourcenzuordnungen zwischen den Renderaufrufen Ă€ndern kann. Das Layout der Ressourcenzuordnungen kann im Voraus mit dem Objekt GPUBindGroupLayout definiert werden.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster