Firefox und Safari erhalten WebGPU-UnterstĂŒtzung

Mozilla hat beschlossen, die UnterstĂŒtzung fĂŒr die WebGPU-API und WGSL (WebGPU Shading Language) in Firefox zu aktivieren. FĂŒr die Plattform Windows Die WebGPU-UnterstĂŒtzung wird in Firefox 141, dessen Veröffentlichung fĂŒr den 22. Juli geplant ist, standardmĂ€ĂŸig aktiviert sein. Die WebGPU-UnterstĂŒtzung soll dann in den Builds der folgenden Monate aktiviert werden: Linux Đž macOSund nach einiger Zeit in der Version fĂŒr die Plattform AndroidUm WebGPU manuell zu aktivieren, können Sie die Parameter "dom.webgpu.enabled" und "gfx.webrender.all" auf der Seite about:config verwenden.

In Chrome wurde WebGPU-UnterstĂŒtzung standardmĂ€ĂŸig in Version 113 angeboten, die im Mai 2023 veröffentlicht wurde. In Safari soll die WebGPU-UnterstĂŒtzung diesen Herbst standardmĂ€ĂŸig aktiviert werden (experimentelle UnterstĂŒtzung ist seit November 2021 verfĂŒgbar). In Firefox gibt es experimentelle WebGPU-UnterstĂŒtzung bereits seit 2020, sie war jedoch nur in den Nightly Builds von Firefox standardmĂ€ĂŸig aktiviert. Die WebGPU-Implementierung von Firefox basiert auf dem WGPU-Projektcode, ist in Rust geschrieben und kann auf den Grafik-APIs Direct3D 12, Vulkan, OpenGL und Metal ausgefĂŒhrt werden.

WebGPU bietet eine Ă€hnliche API wie Vulkan, Metal und Direct3D 12 fĂŒr die AusfĂŒhrung von Operationen auf der GPU-Seite. Neben 3D-Grafiken umfasst WebGPU auch Funktionen zur Auslagerung von Berechnungen auf die GPU und zur AusfĂŒhrung von Shadern. Konzeptionell unterscheidet sich WebGPU von der alten WebGL-Spezifikation, Ă€hnlich wie sich die Vulkan-Grafik-API von OpenGL unterscheidet. Gleichzeitig basiert WebGPU nicht auf einer spezifischen Grafik-API, sondern ist eine universelle Schicht, die dieselben Low-Level-Primitive verwendet, die in Vulkan, Metal und Direct3D verfĂŒgbar sind.

WebGPU ermöglicht JavaScript-Anwendungen die Steuerung der Organisation, Verarbeitung und Übertragung von Befehlen an die GPU sowie die Verwaltung zugehöriger Ressourcen, Speicher, Puffer, Texturobjekte und kompilierter Grafik-Shader. Dieser Ansatz ermöglicht eine höhere Leistung von Grafikanwendungen durch Reduzierung des Overheads und Steigerung der GPU-Effizienz.

Mit WebGPU können Sie plattformunabhĂ€ngige, komplexe 3D-Projekte erstellen, die genauso leistungsstark sind wie eigenstĂ€ndige Programme, die Vulkan, Metal oder Direct3D direkt nutzen. Dank der Kompilierung in WebAssembly bietet WebGPU außerdem zusĂ€tzliche Funktionen zum Portieren nativer Grafikprogramme in eine browserfĂ€hige Form.

Hauptfunktionen von WebGPU und Unterschiede zu WebGL:

  • Getrennte Verwaltung von Ressourcen, Vorarbeiten und Übertragung von Befehlen an die GPU (in WebGL war ein Objekt fĂŒr alles gleichzeitig verantwortlich). Es werden drei separate Kontexte bereitgestellt: GPUDevice zum Erstellen von Ressourcen wie Texturen und Puffern; GPUCommandEncoder zum Kodieren einzelner Befehle, einschließlich Rendering- und Berechnungsphasen; GPUCommandBuffer, der zur AusfĂŒhrung auf der GPU in die Warteschlange gestellt werden soll. Das Ergebnis kann in einem Bereich gerendert werden, der einem oder mehreren Canvas-Elementen zugeordnet ist, oder ohne Ausgabe verarbeitet werden (z. B. beim AusfĂŒhren von Rechenaufgaben). Durch die Trennung der Phasen ist es einfacher, Ressourcenerstellungs- und -vorbereitungsvorgĂ€nge in verschiedene Handler aufzuteilen, die in verschiedenen Threads ausgefĂŒhrt werden können.
  • Ein anderer Ansatz zur Verarbeitung von ZustĂ€nden. WebGPU bietet zwei Objekte – GPURenderPipeline und GPUComputePipeline, mit denen Sie verschiedene vom Entwickler vordefinierte ZustĂ€nde kombinieren können, sodass der Browser keine Ressourcen fĂŒr zusĂ€tzliche Arbeit verschwendet, beispielsweise fĂŒr die Neukompilierung von Shader. Zu den unterstĂŒtzten ZustĂ€nden gehören: Shader, Vertex-Puffer- und Attributlayouts, Sticky-Group-Layouts, Überblendung, Tiefe und Muster sowie Ausgabeformate nach dem Rendern.
  • Ein Bindungsmodell, das den Ressourcengruppierungsfunktionen von Vulkan Ă€hnelt. Um Ressourcen zu gruppieren, stellt WebGPU ein GPUBindGroup-Objekt bereit, das anderen Ă€hnlichen Objekten zur Verwendung in Shadern beim Schreiben von Befehlen zugeordnet werden kann. Durch das Erstellen solcher Gruppen kann der Treiber die erforderlichen vorbereitenden Aktionen im Voraus durchfĂŒhren und der Browser kann die Ressourcenbindungen zwischen Zeichnungsaufrufen viel schneller Ă€ndern. Das Layout von Ressourcenbindungen kann mithilfe des GPUBindGroupLayout-Objekts vordefiniert werden.

Source: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster