Vertex-Puffer entfernen
Wenn Sie null anstelle eines GPUBuffer an setVertexBuffer() für GPURenderPassEncoder oder GPURenderBundleEncoder übergeben, können Sie einen zuvor in einem bestimmten Slot festgelegten Vertex-Puffer entfernen. Siehe 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);
Bind-Gruppe entfernen
Wenn Sie null anstelle eines GPUBindGroup an setBindGroup() für GPURenderPassEncoder oder GPURenderBundleEncoder übergeben, können Sie eine zuvor in einem bestimmten Slot festgelegte Bind-Gruppe entfernen. Siehe 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 bei der asynchronen Pipelineerstellung unterdrücken, wenn das 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 sofort werden Fehler bei der asynchronen Pipelineerstellung unterdrückt, wenn das GPUDevice lost ist, damit verlorene Geräte so weit wie möglich funktionieren. Siehe Problem dawn:1874.
Updates zur Erstellung von SPIR-V-Shadermodulen
Wenn Sie ein SPIR-V-Shadermodul mit createShaderModule() erstellen, wird jetzt ein TypeError ausgelöst, es sei denn, Sie führen Chrome mit dem "Unsafe WebGPU Support"-Flag aus, da SPIR-V nicht Teil der WebGPU-Spezifikation ist. Vor dieser Änderung wurde stattdessen ein GPUInternalError generiert.
Siehe Änderung chromium:4711911.
Entwicklererfahrung verbessern
Die Validierungsfehlermeldung für Bind-Gruppen-Layout-Bindungen im Vertex-Shader wurde für Lese-/Schreib-Speicherpuffer und schreibgeschützte Speichertexturbindungen verbessert. Siehe Problem dawn:1883.
Pipelines mit automatisch generiertem Layout im Cache speichern
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 benötigen. Siehe Problem dawn:1933.
Dawn-Updates
Der wgpu::RequestAdapterOptionsBackendType ist jetzt Teil von wgpu::RequestAdapterOptions, damit Anwendungen beim Abrufen eines Adapters einfacher ein bestimmtes Backend anfordern können. Siehe das folgende Beispiel und Problem dawn:1875.
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. Siehe Änderung dawn:142465.
In der C-API webgpu.h wurde der Typ für boolesche Werte von stdbool zu WGPUBool geändert, was ein uint32_t ist. Diese Änderung wurde vorgenommen, um sicherzustellen, dass die API in C und C++ eine entsprechende ABI hat.
Dies sind nur einige der wichtigsten Highlights. Eine vollständige Liste der Commits finden Sie hier.
Neues in WebGPU
Eine Liste aller Themen, die in der Reihe „Neues in WebGPU“ behandelt wurden.
Chrome 151–152
Chrome 149–150
Chrome 147–148
Chrome 146
- Unterstützung des WebGPU-Kompatibilitätsmodus unter OpenGL ES 3.1
- Temporäre Anhänge
- WGSL-Erweiterung „texture_and_sampler_let“
- Dawn-Updates
Chrome 145
- WGSL-Erweiterung „subgroup_uniformity“
- Experimentelle synchrone Pufferzuordnung in Workern
- Dawn-Updates
Chrome 144
- WGSL-Erweiterung „subgroup_id“
- WGSL-Erweiterung „uniform_buffer_standard_layout“
- WebGPU unter Linux
- Schnellere „writeBuffer“ und „writeTexture“
- Dawn-Updates
Chrome 143
- Texturkomponentenswizzle
- Entfernung der Verwendung von schreibgeschützten Speichertexturen vom Typ „bgra8unorm“
- Dawn-Updates
Chrome 142
Chrome 141
- Tint IR abgeschlossen
- Analyse von Ganzzahlbereichen im WGSL-Compiler
- SPIR-V 1.4-Update für das Vulkan-Backend
- Dawn-Updates
Chrome 140
- Geräteanfragen nutzen Adapter
- Kurzform für die Verwendung von Texturen, wenn Texturansichten verwendet werden
- WGSL-Funktion „textureSampleLevel“ unterstützt 1D-Texturen
- Verwendung von schreibgeschützten Speichertexturen vom Typ „bgra8unorm“ wird eingestellt
- Entfernung des GPUAdapter-Attributs „isFallbackAdapter“
- Dawn-Updates
Chrome 139
- Unterstützung von 3D-Texturen für komprimierte BC- und ASTC-Formate
- Neue Funktion „core-features-and-limits“
- Ursprungstest für den WebGPU-Kompatibilitätsmodus
- Dawn-Updates
Chrome 138
- Kurzform für die Verwendung von Puffern als Bindungsressource
- Änderungen an den Größenanforderungen für Puffer, die bei der Erstellung zugeordnet werden
- Architekturbericht für aktuelle GPUs
- Entfernung des GPUAdapter-Attributs „isFallbackAdapter“
- Dawn-Updates
Chrome 137
- Texturansicht für die „externalTexture“-Bindung verwenden
- Puffer ohne Angabe von Offsets und Größe kopieren
- WGSL-Funktion „workgroupUniformLoad“ mit Zeiger auf „atomic“
- GPUAdapterInfo-Attribut „powerPreference“
- Entfernung des GPURequestAdapterOptions-Attributs „compatibilityMode“
- Dawn-Updates
Chrome 136
- GPUAdapterInfo-Attribut „isFallbackAdapter“
- Verbesserungen der Shader-Kompilierungszeit unter D3D12
- Canvas-Bilder speichern und kopieren
- Einschränkungen des Kompatibilitätsmodus aufheben
- Dawn-Updates
Chrome 135
- Erstellung von Pipeline-Layouts mit Bind-Gruppen-Layouts vom Typ „null“ zulassen
- Viewports dürfen über die Grenzen der Renderziele hinausgehen
- Einfacherer Zugriff auf den experimentellen Kompatibilitätsmodus unter Android
- Entfernung des Limits „maxInterStageShaderComponents“
- Dawn-Updates
Chrome 134
- Verbesserung von Arbeitslasten für maschinelles Lernen mit Untergruppen
- Entfernung der Unterstützung von filterbaren Texturtypen vom Typ „float“ als mischbar
- Dawn-Updates
Chrome 133
- Zusätzliche Vertex-Formate vom Typ „unorm8x4-bgra“ und mit einer Komponente
- Anforderung unbekannter Limits mit undefiniertem Wert zulassen
- Änderungen an den WGSL-Ausrichtungsregeln
- WGSL-Leistungssteigerungen mit „discard“
- „VideoFrame.displaySize“ für externe Texturen verwenden
- Bilder mit nicht standardmäßigen Ausrichtungen mit „copyExternalImageToTexture“ verarbeiten
- Entwicklererfahrung verbessern
- Kompatibilitätsmodus mit „featureLevel“ aktivieren
- Bereinigung experimenteller Untergruppenfunktionen
- Limit „maxInterStageShaderComponents“ wird eingestellt
- Dawn-Updates
Chrome 132
- Verwendung von Texturansichten
- Mischen von 32-Bit-Gleitkommatexturen
- GPUDevice-Attribut „adapterInfo“
- Konfiguration des Canvas-Kontexts mit ungültigem Format löst JavaScript-Fehler aus
- Filterung von Sampler-Einschränkungen für Texturen
- Erweiterte Untergruppenexperimente
- Entwicklererfahrung verbessern
- Experimentelle Unterstützung für normalisierte 16-Bit-Texturformate
- Dawn-Updates
Chrome 131
- Clip-Abstände in WGSL
- GPUCanvasContext.getConfiguration()
- Punkt- und Linienprimitive dürfen keine Tiefenverzerrung haben
- Inklusive Scan-Funktionen für Untergruppen
- Experimentelle Unterstützung für „multi-draw indirect“
- Option „strict math“ für die Kompilierung von Shadermodulen
- Entfernung von GPUAdapter.requestAdapterInfo()
- Dawn-Updates
Chrome 130
- Mischen mit zwei Quellen
- Verbesserungen der Shader-Kompilierungszeit unter Metal
- Einstellung von GPUAdapter.requestAdapterInfo()
- Dawn-Updates
Chrome 129
- HDR-Unterstützung mit Canvas-Tone Mapping-Modus
- Erweiterte Unterstützung für Untergruppen
- Dawn-Updates
Chrome 128
- Experimente mit Untergruppen
- Einstellung der Tiefenverzerrung für Linien und Punkte
- Warnung in den Entwicklertools für nicht erfasste Fehler ausblenden, wenn „preventDefault“
- WGSL-Funktion „interpolate“: zuerst Sampling und dann „either“
- Dawn-Updates
Chrome 127
- Experimentelle Unterstützung für OpenGL ES unter Android
- GPUAdapter-Attribut „info“
- Verbesserungen der WebAssembly-Interoperabilität
- Verbesserte Fehlermeldungen für Befehlscodierer
- Dawn-Updates
Chrome 126
- Erhöhung des Limits „maxTextureArrayLayers“
- Optimierung des Pufferuploads für das Vulkan-Backend
- Verbesserungen der Shader-Kompilierungszeit
- Übermittelte Befehlspuffer müssen eindeutig sein
- Dawn-Updates
Chrome 125
Chrome 124
- Schreibgeschützte und Lese-/Schreib-Speichertexturen
- Unterstützung für Service Worker und Shared Worker
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Dawn-Updates
Chrome 123
- Unterstützung für integrierte DP4a-Funktionen in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- Syntaxzucker für die Dereferenzierung von Composites in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Dawn-Updates
Chrome 122
- Erweiterung der Reichweite mit dem Kompatibilitätsmodus (Funktion in Entwicklung)
- Erhöhung des Limits „maxVertexAttributes“
- Dawn-Updates
Chrome 121
- Unterstützung von WebGPU unter Android
- Verwendung von DXC anstelle von FXC für die Shader-Kompilierung unter Windows
- Zeitstempelabfragen in Compute- und Rendering-Passes
- Standardmäßige Einstiegspunkte für Shadermodule
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Arbeitsspeicher-Heaps
- Dawn-Updates
Chrome 120
- Unterstützung für 16-Bit-Gleitkommawerte in WGSL
- Limits überschreiten
- Änderungen am Tiefen-/Schablonenstatus
- Updates für Adapterinformationen
- Quantisierung von Zeitstempelabfragen
- Bereinigung von Funktionen
Chrome 119
- Filterbare 32-Bit-Gleitkommatexturen
- Vertex-Format „unorm10-10-10-2“
- Texturformat „rgb10a2uint“
- Dawn-Updates
Chrome 118
- Unterstützung von HTMLImageElement und ImageData in
copyExternalImageToTexture() - Experimentelle Unterstützung für Lese-/Schreib- und schreibgeschützte Speichertexturen
- Dawn-Updates
Chrome 117
- Vertex-Puffer entfernen
- Bind-Gruppe entfernen
- Fehler bei der asynchronen Pipelineerstellung unterdrücken, wenn das Gerät verloren geht
- Updates zur Erstellung von SPIR-V-Shadermodulen
- Entwicklererfahrung verbessern
- Pipelines mit automatisch generiertem Layout im Cache speichern
- Dawn-Updates
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät, das von GPUAdapter zurückgegeben wird
requestDevice() - Reibungslose Videowiedergabe, wenn
importExternalTexture()aufgerufen wird - Spezifikationskonformität
- Entwicklererfahrung verbessern
- Dawn-Updates
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Standardmäßig diskrete GPU bei Netzstrom
- Entwicklererfahrung verbessern
- Dawn-Updates
Chrome 114
- JavaScript optimieren
- „getCurrentTexture()“ für nicht konfigurierte Canvas löst InvalidStateError aus
- WGSL-Updates
- Dawn-Updates