Vertex-Zwischenspeicher aufheben
Wenn Sie null
anstelle eines GPUBuffer
an setVertexBuffer()
für GPURenderPassEncoder
oder GPURenderBundleEncoder
übergeben, können Sie einen zuvor festgelegten Zwischenspeicher für Scheitelpunkte in einem bestimmten Slot aufheben. Weitere Informationen finden Sie unter Problem 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()
in GPURenderPassEncoder
oder GPURenderBundleEncoder
übergeben, können Sie eine zuvor festgelegte Bindungsgruppe in einem bestimmten Slot aufheben. Weitere Informationen finden Sie unter Problem 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 beim Erstellen einer asynchronen Pipeline stummschalten, wenn Gerät verloren geht
Die Methoden createComputePipelineAsync()
und createRenderPipelineAsync()
von GPUDevice
geben ein Promise zurück, das aufgelöst wird, wenn die Erstellung der Pipeline abgeschlossen ist. Ab jetzt werden Fehler aus der asynchronen Pipelineerstellung stummgeschaltet, wenn GPUDevice
auf lost
gesetzt ist, damit verlorene Geräte so gut wie möglich funktionieren. Siehe „Dämmerung“-Problem:1874.
Updates zur Erstellung von SPIR-V-Shader-Modulen
Wenn Sie ein SPIR-V-Shader-Modul mit createShaderModule()
erstellen, wird jetzt ein TypeError ausgelöst, es sei denn, Sie führen Chrome mit dem Flag „Unsafe WebGPU Support“ aus, da SPIR-V nicht Teil der WebGPU-Spezifikation ist. Vor dieser Änderung mit SPIR-V wurde stattdessen ein GPUInternalError generiert.
Siehe chrome:4711911 ändern.
Bessere User Experience für Entwickler
Die Validierungsfehlermeldung für Bind Group-Layoutbindungen im Vertex-Shader wurde für Lese-/Schreibspeicherzwischenspeicher und schreibgeschützte Speichertexturbindungen verbessert. Siehe Problem dawn:1883.
Pipelines mit automatisch generiertem Layout zwischenspeichern
Pipelines, die mit createRenderPipeline({ layout: "auto" })
erstellt wurden, nutzen jetzt Caching-Mechanismen in Chrome. Das bedeutet, dass diese Pipelines effizienter erstellt werden und weniger Arbeitsspeicher verbrauchen. Siehe Problem dawn:1933.
Updates zum Morgengrauen
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.
Der Typ der C API webgpu.h hat den Typ für boolesche Werte von stdbool
in WGPUBool
geändert, was ein uint32_t
ist. Diese Änderung wurde vorgenommen, damit die API ein Äquivalent zu ABI in C und C++ hat.
Dies sind nur einige der wichtigsten Punkte. Hier finden Sie eine vollständige Liste der Commits.
Neu bei WebGPU
Hier finden Sie eine Liste aller Inhalte, die in der Reihe What's New in WebGPU behandelt wurden.
Chrome 125
Chrome 124
- Schreibgeschützte und nicht schreibgeschützte Speichertexturen
- Unterstützung für Service Worker und Shared Worker
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Updates zum Morgengrauen
Chrome 123
- Unterstützung von integrierten Funktionen in DP4a in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- Syntax für die Dereferenzierung von zusammengesetzten Elementen in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Updates zum Morgengrauen
Chrome 122
- Reichweite mit Kompatibilitätsmodus erhöhen (Funktion in Entwicklung)
- Limit für „maxVertexAttributes“ erhöhen
- Updates zum Morgengrauen
Chrome 121
- Unterstützung von WebGPU unter Android
- Für die Shader-Kompilierung unter Windows DXC statt FXC verwenden
- Zeitstempelabfragen in Rechen- und Renderingdurchläufen
- Standardeinstiegspunkte für Shader-Module
- display-p3 als GPUExternalTexture-Farbraum unterstützen
- Informationen zum Arbeitsspeicher-Heaps
- Updates zum Morgengrauen
Chrome 120
- Unterstützung von 16-Bit-Gleitkommawerten in WGSL
- Gehe an die Grenzen
- Änderungen am Status der Tiefenschablone
- Aktualisierungen der Adapterinformationen
- Quantisierung von Zeitstempelabfragen
- Frühjahrsputz-Funktionen
Chrome 119
- Filterbare 32-Bit-Float-Texturen
- Vertex-Format „unorm10-10-10-2“
- rgb10a2uint Texturformat
- Updates zum Morgengrauen
Chrome 118
- Unterstützung von HTMLImageElement und ImageData in
copyExternalImageToTexture()
- Experimentelle Unterstützung für nicht schreibgeschützte und schreibgeschützte Speichertexturen
- Updates zum Morgengrauen
Chrome 117
- Nicht festgelegter Vertex-Zwischenspeicher
- Bindungsgruppe aufheben
- Fehler aufgrund asynchroner Pipelineerstellung bei Verlust des Geräts stummschalten
- Updates zur Erstellung von SPIR-V-Shader-Modulen
- Entwicklererfahrung verbessern
- Pipelines mit automatisch generiertem Layout im Cache speichern
- Updates zum Morgengrauen
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät vom GPUAdapter
requestDevice()
zurückgegeben - Für eine flüssige Videowiedergabe bei
importExternalTexture()
-Aufrufen sorgen - Spezifikationskonformität
- Entwicklererfahrung verbessern
- Updates zum Morgengrauen
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Diskrete GPU standardmäßig mit Netzstrom betreiben
- Entwicklererfahrung verbessern
- Updates zum Morgengrauen
Chrome 114
- JavaScript optimieren
- getCurrentTexture() auf nicht konfiguriertem Canvas wirft InvalidStateError
- Updates zu WGSL
- Updates zum Morgengrauen