Die Anzahl der WebGPU-Funktionen mag diesmal ein wenig uninteressant erscheinen, aber die großen Fortschritte stehen schon vor der Tür. Die nächsten Versionen umfassen Funktionen wie DP4a, schreibgeschützte und nicht schreibgeschützte Speichertexturen, eine separate Schablone und Tiefenbildsteuerung, das Rendern in 3D-Texturslices sowie Verbesserungen bei der Shader-Kompilierung.
In der Zwischenzeit können Sie sich informieren, wie Sie Ihre Web AI-Modelltests mit WebGPU und WebGL-Unterstützung in Headless Chrome optimieren und warum WebGPU in Chrome möglicherweise deaktiviert ist oder nicht funktioniert.
Reichweite mit Kompatibilitätsmodus erhöhen (Funktion in Entwicklung)
WebGPU passt gut zu modernen Grafik-APIs (Vulkan, Metal und D3D12), aber einige Geräte unterstützen diese nicht. Dies schränkt die Zugänglichkeit der WebGPU ein, insbesondere auf Plattformen wie Windows (31% der Chrome-Nutzer fehlt D3D11.1 oder höher), Android (23% haben kein Vulkan 1.1 oder höher) und ChromeOS (Vulkan-Akzeptanz nimmt zu.)
Das Chrome-Team arbeitet an einem Kompatibilitätsmodus in WebGPU, um dieses Problem zu beheben. Dazu bietet es eine etwas eingeschränkte Version von WebGPU an, die auf älteren APIs wie D3D11 und OpenGL ES funktioniert. Dadurch wird die potenzielle Nutzerbasis von WebGPU erweitert.
Wichtig: Anwendungen, die den Kompatibilitätsmodus verwenden, bleiben voll funktionsfähige WebGPU-Anwendungen. Auf Geräten ohne Unterstützung des Kompatibilitätsmodus wird standardmäßig der Core-WebGPU-Adapter verwendet, was für eine umfassende Nutzerfreundlichkeit sorgt.
<ph type="x-smartling-placeholder">Sehen Sie sich das Angebot an und kommentieren Sie, wenn Sie Fragen haben.
maxVertexAttributes-Limit erhöhen
Die maximale Anzahl von Attributen in den Puffern insgesamt beim Erstellen einer GPURenderPipeline beträgt standardmäßig 16. Es ist jetzt möglich, über das Limit maxVertexAttributes, sofern unterstützt, bis zu 30 Anfragen anzufordern. Sehen Sie sich das folgende Beispiel und issue dawn:2223 an.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
Updates zur Morgendämmerung
Eine neue Instanz-Ein/Aus-Schaltfläche namens „expose_wgsl_experimental_features“. wurde hinzugefügt, damit die Instanz nur die experimentellen WGSL-Funktionen, aber nicht die unsicheren Funktionen verfügbar macht. So können sichere experimentelle WGSL-Funktionen verwendet werden, ohne dass „allow_unsafe_apis“ aktiviert werden muss. umschalten. Siehe issue dawn:2260.
Zu den jüngsten Verbesserungen der Dawn-Bindungen für Node.js gehören:
GPUSupportedFeatures::getSize()
wurde hinzugefügt.- Die Veralterung von
GPUAdapter
wurde implementiert. GPUInternalError
wird jetzt korrekt für Geräte gemeldet.- Attribute sind jetzt aufzählbar.
Hier werden nur einige der wichtigsten Vorteile behandelt. Vollständige Liste der Commits
Das ist neu bei WebGPU
Eine Liste aller behandelten Themen der Reihe What's New in WebGPU.
Chrome 128
- Mit Untergruppen experimentieren
- Einstellung der Tiefenverzerrung für Linien und Punkte verwerfen
- Entwicklertools-Warnung für nicht erfassten Fehler ausblenden, wenn „preventDefault“ festgelegt ist
- WGSL-interpolierte Stichproben
- Updates zur Morgendämmerung
Chrome 127
- Experimentelle Unterstützung von OpenGL ES unter Android
- GPUAdapter-Infoattribut
- Verbesserungen der WebAssembly-Interoperabilität
- Verbesserte Fehler des Befehls-Encoders
- Updates zur Morgendämmerung
Chrome 126
- Limit für maxTextureArrayLayers erhöhen
- Optimierung des Zwischenspeicheruploads für das Vulkan-Backend
- Schnellere Kompilierungszeiten
- Gesendete Befehlspuffer müssen eindeutig sein
- Updates zur Morgendämmerung
Chrome 125
Chrome 124
- Schreibgeschützte Speichertexturen
- Unterstützung für Service Worker und Shared Worker
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Updates zur Morgendämmerung
Chrome 123
- Unterstützung der integrierten DP4a-Funktionen in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- „Zucker“-Syntax für die Dereferenzierung von zusammengesetzten Daten in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Updates zur Morgendämmerung
Chrome 122
- Reichweite mit dem Kompatibilitätsmodus erhöhen (Funktion in Entwicklung)
- maxVertexAttributes-Limit erhöhen
- Updates zur Morgendämmerung
Chrome 121
- Unterstützung von WebGPU unter Android
- DXC anstelle von FXC für die Shader-Kompilierung unter Windows verwenden
- Zeitstempelabfragen in Rechen- und Renderingdurchläufen
- Standardeinstiegspunkte für Shader-Module
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Arbeitsspeicher-Heaps
- Updates zur Morgendämmerung
Chrome 120
- Unterstützung von 16-Bit-Gleitkommawerten in WGSL
- Gehe an die Grenzen
- Änderungen am Status der Tiefenschablonen
- Aktualisierung der Adapterinformationen
- Zeitstempelquantisierung von Abfragen
- Frühjahrsputz
Chrome 119
- Filterbare 32-Bit-Float-Texturen
- unorm10-10-10-2 Vertexformat
- rgb10a2uint-Texturformat
- Updates zur Morgendämmerung
Chrome 118
- Unterstützung von HTMLImageElement und ImageData in
copyExternalImageToTexture()
- Experimentelle Unterstützung für nicht schreibgeschützte und schreibgeschützte Speichertexturen
- Updates zur Morgendämmerung
Chrome 117
- Vertex-Zwischenspeicher aufheben
- Bindungsgruppe aufheben
- Fehler bei der asynchronen Pipelineerstellung stummschalten, wenn Gerät verloren geht
- Aktualisierungen beim Erstellen von SPIR-V-Shadermodulen
- Entwicklererfahrung verbessern
- Caching-Pipelines mit automatisch generiertem Layout
- Updates zur Morgendämmerung
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät, das von GPUAdapter
requestDevice()
zurückgegeben wurde - Videowiedergabe ruckelfrei, wenn
importExternalTexture()
aufgerufen wird - Konformität mit Spezifikationen
- Entwicklererfahrung verbessern
- Updates zur Morgendämmerung
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Separate GPU standardmäßig im Netzbetrieb nutzen
- Entwicklererfahrung verbessern
- Updates zur Morgendämmerung
Chrome 114
- JavaScript-Code optimieren
- getCurrentTexture() bei nicht konfiguriertem Canvas löst InvalidStateError aus
- Wichtige Informationen von WGSL
- Updates zur Morgendämmerung