Vertex-Zwischenspeicher aufheben
Wenn Sie null
anstelle eines GPUBuffer
an setVertexBuffer()
in GPURenderPassEncoder
oder GPURenderBundleEncoder
übergeben, können Sie einen zuvor festgelegten Scheitelpunktzwischenspeicher in einem bestimmten Slot aufheben. Siehe issue dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Bindungsgruppe aufheben
Wenn Sie null
anstelle eines GPUBindGroup
an setBindGroup()
auf GPURenderPassEncoder
oder GPURenderBundleEncoder
übergeben, können Sie eine zuvor festgelegte Bindungsgruppe in einem bestimmten Slot aufheben. Siehe issue dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Fehler bei der asynchronen Pipelineerstellung bei Geräteverlust stummschalten
Die Methoden createComputePipelineAsync()
und createRenderPipelineAsync()
von GPUDevice
geben ein Promise zurück, das aufgelöst wird, wenn die Erstellung der Pipeline abgeschlossen ist. Ab sofort werden Fehler bei der asynchronen Pipelineerstellung stummgeschaltet, wenn GPUDevice
auf lost
gesetzt ist, damit verlorene Geräte so gut wie möglich funktionieren. Siehe Morgenproblem:1874.
Aktualisierungen beim Erstellen von SPIR-V-Shadermodulen
Beim Erstellen eines SPIR-V-Shadermoduls mit createShaderModule()
wird jetzt ein TypeError ausgelöst, es sei denn, Sie führen Chrome mit der „Unsafe WebGPU Unterstützung“ aus Das Flag als SPIR-V ist nicht Teil der WebGPU-Spezifikation. Vor dieser Änderung würde die Verwendung von SPIR-V dazu führen, dass stattdessen ein GPUInternalError ausgelöst wurde.
Siehe chromium:4711911 ändern.
Entwicklererfahrung verbessern
Die Validierungsfehlermeldung für Bindungen des Gruppenlayouts im Vertex-Shader wurde für Lese-/Schreibspeicherpuffer und schreibgeschützte Speichertexturbindungen verbessert. Siehe issue dawn:1883.
Caching-Pipelines mit automatisch generiertem Layout
Pipelines, die mit createRenderPipeline({ layout: "auto" })
erstellt wurden, nutzen jetzt die Caching-Mechanismen in Chrome. Das bedeutet, dass diese Pipelines effizienter erstellt werden und weniger Arbeitsspeicher verbrauchen. Siehe issue dawn:1933.
Updates zur Morgendämmerung
wgpu::RequestAdapterOptionsBackendType
ist jetzt Teil von wgpu::RequestAdapterOptions
, damit Anwendungen beim Abrufen eines Adapters ein bestimmtes Back-End einfacher anfordern können. Sehen Sie sich das folgende Beispiel und issue dawn:1875 an.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Für Node.js wurden mehrere zusätzliche Methoden implementiert. Weitere Informationen finden Sie unter change dawn:142465.
In der webgpu.h-C API wurde der Typ für boolesche Werte von stdbool
zu WGPUBool
geändert, dem uint32_t
-Wert. Diese Änderung wurde vorgenommen, um sicherzustellen, dass die API eine äquivalente ABI in C und C++ hat.
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
- Tests mit Untergruppen
- 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 deine 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 asynchroner 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