Gepubliceerd: 23 april 2025
GPUAdapterInfo is het FallbackAdapter-kenmerk
Het GPUAdapterInfo isFallbackAdapter
booleaanse kenmerk geeft aan of een GPUAdapter aanzienlijke prestatiebeperkingen heeft in ruil voor bredere compatibiliteit, voorspelbaarder gedrag of verbeterde privacy. Deze toevoeging was nodig omdat bibliotheken die door de gebruiker verstrekte GPUDevice-objecten gebruiken, geen toegang hadden tot deze informatie via het adapterInfo
-kenmerk op GPUDevice. Zie het volgende voorbeeld en geef nummer 403172841 uit .
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
Omdat Chrome nog geen ondersteuning biedt voor fallback-adapters, is isFallbackAdapter
momenteel altijd false op de apparaten van gebruikers. We onderzoeken of het kenmerk GPUAdapter isFallbackAdapter
kan worden verouderd en verwijderd. Zie voornemen tot verzending .
Verbeteringen in de compilatietijd van Shader op D3D12
Het Chrome-team blijft Tint, de WebGPU-shader-taalcompiler, verbeteren door een tussenliggende representatie (IR) toe te voegen voor apparaten die WebGPU ondersteunen met de D3D12-backend. Deze IR, gepositioneerd tussen de abstracte syntaxisboom (AST) van Tint en de HLSL-backend-schrijver, zal de compiler efficiënter en onderhoudbaarder maken, wat uiteindelijk zowel ontwikkelaars als gebruikers ten goede zal komen. Uit eerste tests blijkt dat de nieuwe versie van Tint tot 10 keer sneller is bij het vertalen van Unity's WGSL-shaders naar HLSL.

Deze verbeteringen, die al toegankelijk zijn op Android, ChromeOS en macOS, worden geleidelijk uitgebreid naar Windows-apparaten die WebGPU ondersteunen met de D3D12-backend. Zie uitgave 42251045 .
Bewaar en kopieer canvasafbeeldingen
Chrome-gebruikers kunnen nu met de rechtermuisknop op een WebGPU-canvas klikken en toegang krijgen tot de contextmenu-opties Afbeelding opslaan als… of Afbeelding kopiëren . Zie uitgave 40902474 .

Hef de beperkingen in de compatibiliteitsmodus op
De experimentele functie "core-features-and-limits"
indien beschikbaar op een GPUDevice, heft alle beperkingen van de compatibiliteitsmodus (functies en limieten) op wanneer de vlag chrome://flags/#enable-unsafe-webgpu
is ingeschakeld. Zie uitgave 395855517 .
Als u een GPUAdapter aanvraagt met de optie featureLevel: "compatibility"
geeft de browser een hint om de experimentele WebGPU-compatibiliteitsmodus te selecteren. Als dit lukt, is de resulterende adapter "compatibiliteitsstandaard". Anders is het "core-defaulting", wat hetzelfde is als het gebruik van de optie featureLevel: "core"
. Bovendien vraagt het aanroepen van requestDevice()
zonder requiredFeatures
en requiredLimits
om een GPUDevice met de standaardmogelijkheden van de GPUAdapter.
Adapters met standaardstandaard ondersteunen altijd de functie "core-features-and-limits"
en deze wordt automatisch ingeschakeld op GPUDevices die daarvan zijn gemaakt. Voor adapters met standaardcompatibiliteit wordt mogelijk de functie "core-features-and-limits"
ondersteund en kan deze worden aangevraagd op GPUDevices die daarvan zijn gemaakt. Beide typen adapters ondersteunen mogelijk ook functies zoals "float32-blendable"
, wat optioneel is in zowel de kern- als de compatibiliteitsmodus.
Het volgende voorbeeld is voor een applicatie die "float32-blendable"
vereist en het gebruik van kernfuncties ondersteunt indien beschikbaar, maar alleen compatibiliteitsfuncties gebruikt als kernfuncties niet beschikbaar zijn.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
De experimentele kenmerken GPUAdapter featureLevel
en isCompatibilityMode
zijn verwijderd ten gunste van de functie "core-features-and-limits"
. Zie uitgave 395855516 .
Dawn-updates
De callback-status enum InstanceDropped
is hernoemd naar CallbackCancelled
om duidelijk te maken dat de callback is geannuleerd, maar dat de achtergrondverwerking die aan de gebeurtenis is gekoppeld, zoals pijplijncompilatie, mogelijk nog steeds wordt uitgevoerd. De nieuwe naam is algemener van toepassing, voor het geval er later een ander annuleringsmechanisme wordt toegevoegd. Zie nummer 520 .
De wgpu::PopErrorScopeStatus::EmptyStack
enum die aangeeft dat de foutscope-stack niet kon worden geopend, is hernoemd naar wgpu::PopErrorScopeStatus::Error
(wat ook algemener van toepassing is). De callback bevat nu ook een bijbehorend foutverklaringsbericht om te helpen bij het opsporen van fouten. Zie nummer 369 .
Dit behandelt slechts enkele van de belangrijkste hoogtepunten. Bekijk de uitgebreide lijst met commits .
Wat is er nieuw in WebGPU
Een lijst met alles wat aan bod komt in de What's New in WebGPU -serie.
Chroom 136
- GPUAdapterInfo is het FallbackAdapter-kenmerk
- Verbeteringen in de compilatietijd van Shader op D3D12
- Bewaar en kopieer canvasafbeeldingen
- Hef de beperkingen in de compatibiliteitsmodus op
- Dawn-updates
Chroom 135
- Sta het maken van een pijplijnindeling met null-bindgroepindeling toe
- Sta toe dat zichtvensters voorbij de grenzen van de weergavedoelen reiken
- Gemakkelijkere toegang tot de experimentele compatibiliteitsmodus op Android
- Verwijder de maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 134
- Verbeter machine learning-workloads met subgroepen
- Verwijder de float-filterbare textuurtypes als mengbaar
- Dawn-updates
Chroom 133
- Extra unorm8x4-bgra en 1-component hoekpuntformaten
- Sta toe dat onbekende limieten worden aangevraagd met een ongedefinieerde waarde
- WGSL-uitlijningsregels veranderen
- WGSL-prestaties verbeteren met weggooien
- Gebruik VideoFrame displaySize voor externe texturen
- Verwerk afbeeldingen met een niet-standaardoriëntatie met behulp van copyExternalImageToTexture
- Verbetering van de ontwikkelaarservaring
- Schakel de compatibiliteitsmodus in met featureLevel
- Experimentele subgroep biedt opschoning
- Beëindig de maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 132
- Gebruik van textuurweergave
- 32-bits zwevende texturen mengen
- GPUDevice adapterInfo-kenmerk
- Het configureren van canvascontext met een ongeldig formaat levert een JavaScript-fout op
- Filteren van samplerbeperkingen op texturen
- Uitgebreide experimenten met subgroepen
- Verbetering van de ontwikkelaarservaring
- Experimentele ondersteuning voor 16-bits genormaliseerde textuurformaten
- Dawn-updates
Chroom 131
- Clipafstanden in WGSL
- GPUCanvasContext getConfiguration()
- Punt- en lijnprimitieven mogen geen diepteafwijking hebben
- Inclusief ingebouwde scanfuncties voor subgroepen
- Experimentele ondersteuning voor indirecte meertrekking
- Compilatieoptie Shader-module strikte wiskunde
- GPUAdapter requestAdapterInfo() verwijderen
- Dawn-updates
Chroom 130
- Mengen met dubbele bron
- Verbeteringen in de compilatietijd van Shader op Metal
- Beëindiging van GPUAdapter requestAdapterInfo()
- Dawn-updates
Chroom 129
- HDR-ondersteuning met canvas-tone mapping-modus
- Uitgebreide ondersteuning voor subgroepen
- Dawn-updates
Chroom 128
- Experimenteren met subgroepen
- Beëindig het instellen van diepteafwijking voor lijnen en punten
- Niet-opgevangen fout verbergen DevTools-waarschuwing als preventieDefault
- WGSL interpoleert eerst de bemonstering en een van beide
- Dawn-updates
Chroom 127
- Experimentele ondersteuning voor OpenGL ES op Android
- GPUAdapter info-kenmerk
- Verbeteringen in de interoperabiliteit van WebAssembly
- Verbeterde opdracht-encoderfouten
- Dawn-updates
Chroom 126
- Verhoog de maxTextureArrayLayers-limiet
- Bufferuploadoptimalisatie voor Vulkan-backend
- Verbeteringen in de compilatietijd van Shader
- Ingezonden opdrachtbuffers moeten uniek zijn
- Dawn-updates
Chroom 125
Chroom 124
- Alleen-lezen en lezen-schrijven opslagtexturen
- Ondersteuning van servicemedewerkers en gedeelde medewerkers
- Nieuwe attributen voor adapterinformatie
- Bugfixes
- Dawn-updates
Chroom 123
- DP4a ingebouwde functies ondersteunen in WGSL
- Onbeperkte pointerparameters in WGSL
- Syntaxissuiker voor het derefereren van composieten in WGSL
- Afzonderlijke alleen-lezen-status voor stencil- en diepteaspecten
- Dawn-updates
Chroom 122
- Vergroot het bereik met de compatibiliteitsmodus (functie in ontwikkeling)
- Verhoog de maxVertexAttributes-limiet
- Dawn-updates
Chroom 121
- Ondersteuning WebGPU op Android
- Gebruik DXC in plaats van FXC voor shader-compilatie op Windows
- Tijdstempelquery's in reken- en renderpassen
- Standaardingangspunten voor shadermodules
- Ondersteuning display-p3 als GPUExternalTexture-kleurruimte
- Informatie over geheugenheaps
- Dawn-updates
Chroom 120
- Ondersteuning voor 16-bit drijvende-kommawaarden in WGSL
- Verleg de grenzen
- Veranderingen in de staat van de diepte-stencil
- Updates van adapterinformatie
- Kwantisering van tijdstempelquery's
- Lenteschoonmaakfuncties
Chroom 119
- Filterbare 32-bit float-texturen
- unorm10-10-10-2 hoekpuntformaat
- rgb10a2uint textuurformaat
- Dawn-updates
Chroom 118
- HTMLImageElement- en ImageData-ondersteuning in
copyExternalImageToTexture()
- Experimentele ondersteuning voor lees-schrijf- en alleen-lezen opslagtextuur
- Dawn-updates
Chroom 117
- Schakel hoekpuntbuffer uit
- Schakel de bindingsgroep uit
- Stil fouten bij het maken van asynchrone pijplijnen wanneer het apparaat verloren gaat
- Updates voor het maken van SPIR-V-shadermodules
- Verbetering van de ontwikkelaarservaring
- Caching van pijplijnen met automatisch gegenereerde lay-out
- Dawn-updates
Chroom 116
- WebCodecs-integratie
- Verloren apparaat geretourneerd door GPUAdapter
requestDevice()
- Houd het afspelen van video soepel als
importExternalTexture()
wordt aangeroepen - Spec-conformiteit
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 115
- Ondersteunde WGSL-taalextensies
- Experimentele ondersteuning voor Direct3D 11
- Krijg standaard een discrete GPU op wisselstroom
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 114
- Optimaliseer JavaScript
- getCurrentTexture() op een niet-geconfigureerd canvas genereert InvalidStateError
- WGSL-updates
- Dawn-updates