Gepubliceerd: 30 juli 2025
Ondersteuning voor 3D-texturen in de gecomprimeerde formaten BC en ASTC.
De WebGPU-functies "texture-compression-bc-sliced-3d" en "texture-compression-astc-sliced-3d" bieden ondersteuning voor 3D-texturen met behulp van Block Compression (BC) en Adaptive Scalable Texture Compression (ASTC) formaten. Hierdoor kunt u profiteren van de efficiënte compressiemogelijkheden van BC en ASTC voor volumetrische textuurgegevens, wat aanzienlijke reducties in geheugengebruik en bandbreedte oplevert zonder noemenswaardig verlies aan beeldkwaliteit. Dit is met name waardevol in vakgebieden zoals wetenschappelijke visualisatie, medische beeldvorming en geavanceerde renderingtechnieken.
Het volgende codefragment controleert of de adapter 3D-texturen met BC- en ASTC-compressieformaten ondersteunt en vraagt een apparaat met deze functies aan als deze beschikbaar zijn.
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-bc",
"texture-compression-bc-sliced-3d",
);
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-astc",
"texture-compression-astc-sliced-3d",
);
}
const device = await adapter?.requestDevice({ requiredFeatures });
// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
// Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
// Create a 3D texture using BC compression
} else {
// Fallback: Create an uncompressed 3D texture
}
Verken 3D-hersenscans door het voorbeeld Volume Rendering - Texture 3D WebGPU te bekijken en de vermelding in chromestatus te raadplegen.

Nieuwe functie voor "kernfuncties en -beperkingen".
Er wordt een nieuwe functie "core-features-and-limits" geïntroduceerd voor de aankomende WebGPU-compatibiliteitsmodus. Deze functie geeft aan dat de adapter of het apparaat de kernfuncties en -limieten van de WebGPU-specificatie ondersteunt. "Core" WebGPU is momenteel de enige beschikbare versie, dus alle WebGPU-implementaties moeten "core-features-and-limits" in hun ondersteunde functies opnemen.
In de toekomst, wanneer de WebGPU-compatibiliteitsmodus beschikbaar komt, beschikt een adapter of apparaat mogelijk niet over deze functie om aan te geven dat het een adapter of apparaat in compatibiliteitsmodus is en niet in de core-modus. Wanneer deze functie op een apparaat is ingeschakeld, worden alle beperkingen (functies en limieten) van de compatibiliteitsmodus opgeheven.
Voor een gedetailleerde uitleg en gebruik in de WebGPU-compatibiliteitsmodus, raadpleeg de uitleg en het volgende gedeelte. Zie probleem 418025721 .
Origin-proefversie voor WebGPU-compatibiliteitsmodus
WebGPU is een krachtige API die is ontworpen voor moderne grafische toepassingen en aansluit bij technologieën zoals Vulkan, Metal en Direct3D 12. Een aanzienlijk aantal apparaten biedt echter nog steeds geen ondersteuning voor deze nieuwere API's. Zo heeft bijvoorbeeld 31% van de Chrome-gebruikers op Windows geen Direct3D 11.1 of hoger. Op Android heeft 15% van de gebruikers geen Vulkan 1.1, waaronder 10% die helemaal geen Vulkan heeft.
Dit vormt een uitdaging voor ontwikkelaars die het bereik van hun applicatie willen maximaliseren. Ze worden vaak gedwongen om meerdere implementaties te ontwikkelen (bijvoorbeeld WebGPU en WebGL), genoegen te nemen met een beperkter publiek met pure WebGPU, of zich te beperken tot WebGL, waardoor ze de geavanceerde functies van WebGPU, zoals GPU-computing, mislopen.

De WebGPU-compatibiliteitsmodus biedt een oplossing door een optionele, enigszins beperkte versie van de WebGPU API aan te bieden. Deze modus is ontworpen om oudere grafische API's zoals OpenGL ES 3.1 en Direct3D11 te gebruiken, waardoor het bereik van uw applicatie aanzienlijk wordt uitgebreid naar apparaten die de moderne, expliciete grafische API's die vereist zijn door de kern van WebGPU niet ondersteunen.
Omdat de compatibiliteitsmodus een onderdeel is van WebGPU, zijn applicaties die ermee zijn ontwikkeld ook geldige WebGPU-"kern"-applicaties. Dit betekent dat ze probleemloos werken, zelfs in browsers die de compatibiliteitsmodus niet specifiek ondersteunen.
Voor veel eenvoudige toepassingen is het inschakelen van de compatibiliteitsmodus net zo simpel als het doorgeven featureLevel: "compatibility" bij het aanroepen van requestAdapter() . Complexere toepassingen vereisen mogelijk kleine aanpassingen om binnen de beperkingen van de modus te blijven. Het voorbeeld Generate Mipmap WebGPU is een goed voorbeeld.
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
featureLevel: "compatibility",
});
const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});
if (device?.features.has("core-features-and-limits")) {
// Compatibility mode restrictions will apply
}
Schakel de functie in
Standaard is de WebGPU-compatibiliteitsmodus niet ingeschakeld in Chrome, maar je kunt ermee experimenteren in Chrome 139 door de functionaliteit expliciet in te schakelen. Je kunt dit lokaal doen door de vlag "Experimental Web Platform Features" in te schakelen via chrome://flags/#enable-experimental-web-platform-features .
Om dit voor alle bezoekers van uw app mogelijk te maken, loopt er momenteel een Origin-proef die eindigt in Chrome 145 (21 april 2026). Raadpleeg het bericht 'Aan de slag met Origin-proeven ' voor meer informatie over deelname aan de proef.
Dawn-updates
Er is een message toegevoegd aan de WGPUQueueWorkDoneCallback -functie om meer consistentie te creëren met andere callback-functies die ook een status als argument accepteren. Zie de pull request webgpu-headers .
Wanneer emdawnwebgpu wordt gelinkt met -sSHARED_MEMORY , wordt het bijbehorende webgpu.cpp-bestand ook met deze vlag gecompileerd. Zie Dawn CL 244075 .
Dit is slechts een greep uit de belangrijkste hoogtepunten. Bekijk de volledige lijst met commits .
Wat is er nieuw in WebGPU?
Een lijst van alles wat in de serie ' Wat is nieuw in WebGPU' aan bod is gekomen.
Chrome 144
- WGSL subgroup_id-extensie
- WGSL uniform_buffer_standard_layout-extensie
- WebGPU op Linux
- Snellere writeBuffer en writeTexture
- Dawn-updates
Chrome 143
- Textuurcomponent swizzel
- Verwijder het gebruik van de alleen-lezen opslagtextuur bgra8unorm
- Dawn-updates
Chrome 142
Chrome 141
- Tint IR voltooid
- Analyse van gehele getallenbereiken in de WGSL-compiler
- SPIR-V 1.4-update voor Vulkan-backend
- Dawn-updates
Chrome 140
- Apparaatverzoeken verbruiken de adapter.
- Verkorte notatie voor het gebruik van texturen waar de textuurweergave wordt gebruikt.
- WGSL textureSampleLevel ondersteunt 1D-texturen.
- Het gebruik van de alleen-lezen opslagtextuur bgra8unorm wordt afgekeurd.
- Verwijder het isFallbackAdapter-attribuut van GPUAdapter.
- Dawn-updates
Chrome 139
- Ondersteuning voor 3D-texturen in de gecomprimeerde formaten BC en ASTC.
- Nieuwe functie voor "kernfuncties en -beperkingen".
- Origin-proefversie voor WebGPU-compatibiliteitsmodus
- Dawn-updates
Chrome 138
- Verkorte notatie voor het gebruik van buffer als bindingsbron.
- De vereiste grootte voor buffers die bij de aanmaak worden toegewezen, verandert.
- Architectuurrapport voor recente GPU's
- Het attribuut `isFallbackAdapter` van GPUAdapter wordt afgeschaft.
- Dawn-updates
Chrome 137
- Gebruik de textuurweergave voor het binden van externe texturen.
- Buffers kopiëren zonder specificatie van offsets en grootte.
- WGSL workgroupUniformLoad gebruikt een pointer naar een atomisch object.
- GPUAdapterInfo PowerPreference-attribuut
- Verwijder het compatibilityMode-attribuut van GPURequestAdapterOptions
- Dawn-updates
Chrome 136
- GPUAdapterInfo isFallbackAdapter-attribuut
- Verbeteringen in de compilatietijd van shaders in D3D12
- Canvasafbeeldingen opslaan en kopiëren
- Compatibiliteitsmodusbeperkingen opheffen
- Dawn-updates
Chrome 135
- Maakt het mogelijk om een pipeline-layout te creëren met een null-bindgroep-layout.
- Sta toe dat viewports buiten de grenzen van de render targets uitsteken.
- Gemakkelijkere toegang tot de experimentele compatibiliteitsmodus op Android.
- Verwijder de maxInterStageShaderComponents-limiet
- Dawn-updates
Chrome 134
- Optimaliseer machine learning-workloads met subgroepen.
- Verwijder de ondersteuning voor filterbare textuurtypen met zwevende deeltjes als mengbaar.
- Dawn-updates
Chrome 133
- Aanvullende unorm8x4-bgra- en 1-component-vertexformaten
- Sta toe dat onbekende limieten worden aangevraagd met een ongedefinieerde waarde.
- Wijzigingen in de WGSL-uitlijningsregels
- WGSL-prestatieverbeteringen met discard-effect
- 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.
- Opschoning van experimentele subgroepfuncties
- De limiet maxInterStageShaderComponents wordt afgeschaft.
- Dawn-updates
Chrome 132
- Gebruik van textuurweergave
- 32-bits float-texturen mengen
- GPUDevice adapterInfo-attribuut
- Het configureren van de canvascontext met een ongeldig formaat veroorzaakt een JavaScript-fout.
- Beperkingen van de sampler op texturen filteren
- Uitgebreide subgroepsexperimenten
- Verbetering van de ontwikkelaarservaring
- Experimentele ondersteuning voor 16-bits genormaliseerde textuurformaten
- Dawn-updates
Chrome 131
- Clipafstanden in WGSL
- GPUCanvasContext getConfiguration()
- Punt- en lijnprimitieven mogen geen dieptevoorkeur hebben.
- Inclusieve scan met ingebouwde functies voor subgroepen
- Experimentele ondersteuning voor indirecte meervoudige trekking
- Shadermodule-compilatieoptie strikte wiskunde
- Verwijder GPUAdapter requestAdapterInfo()
- Dawn-updates
Chrome 130
- Mengen met twee bronnen
- Verbeteringen in de compilatietijd van shaders op Metal
- De functie GPUAdapter requestAdapterInfo() wordt afgeschaft.
- Dawn-updates
Chrome 129
Chrome 128
- Experimenteren met subgroepen
- Het instellen van dieptevoorkeur voor lijnen en punten wordt afgeraden.
- Verberg niet-vastgelegde DevTools-foutwaarschuwing als preventDefault is ingeschakeld.
- WGSL interpoleert eerst de bemonstering en of
- Dawn-updates
Chrome 127
- Experimentele ondersteuning voor OpenGL ES op Android
- GPUAdapter-info-attribuut
- Verbeteringen in de interoperabiliteit met WebAssembly
- Verbeterde fouten in de commando-encoder
- Dawn-updates
Chrome 126
- Verhoog de maxTextureArrayLayers-limiet
- Buffer-uploadoptimalisatie voor Vulkan-backend
- Verbeteringen in de compilatietijd van shaders
- De ingediende commandobuffers moeten uniek zijn.
- Dawn-updates
Chrome 125
Chrome 124
- Alleen-lezen en lees-schrijf opslagtexturen
- Ondersteuning voor servicepersoneel en deeltijdwerkers
- Nieuwe adapterinformatie-attributen
- Bugfixes
- Dawn-updates
Chrome 123
- Ondersteuning voor ingebouwde DP4a-functies in WGSL.
- Onbeperkte pointerparameters in WGSL
- Syntactische suiker voor het dereferentiëren van samengestelde typen in WGSL
- Aparte alleen-lezen-status voor stencil- en diepteaspecten
- Dawn-updates
Chrome 122
- Vergroot uw bereik met de compatibiliteitsmodus (functie in ontwikkeling).
- Verhoog de maxVertexAttributes-limiet
- Dawn-updates
Chrome 121
- WebGPU-ondersteuning op Android
- Gebruik DXC in plaats van FXC voor shadercompilatie op Windows.
- Tijdstempelquery's in de reken- en weergavefasen
- Standaard toegangspunten tot shadermodules
- Ondersteuning voor display-p3 als GPUExternalTexture-kleurruimte
- Informatie over geheugenhops
- Dawn-updates
Chrome 120
- Ondersteuning voor 16-bits drijvende-kommawaarden in WGSL
- Verleg de grenzen
- Wijzigingen in de diepte-sjabloonstatus
- Updates van adapterinformatie
- Tijdstempelquery's kwantisering
- Kenmerken van de voorjaarsschoonmaak
Chrome 119
- Filterbare 32-bits float-texturen
- unorm10-10-10-2 vertex-formaat
- rgb10a2uint textuurformaat
- Dawn-updates
Chrome 118
- Ondersteuning voor HTMLImageElement en ImageData in
copyExternalImageToTexture() - Experimentele ondersteuning voor lees-schrijf- en alleen-lezen-opslagtexturen
- Dawn-updates
Chrome 117
- Vertexbuffer niet ingesteld
- Bindingsgroep niet instellen
- Onderdruk fouten bij het aanmaken van asynchrone pipelines wanneer het apparaat verloren gaat.
- Updates over het maken van SPIR-V shader-modules
- Verbetering van de ontwikkelaarservaring
- Caching-pipelines met automatisch gegenereerde lay-out
- Dawn-updates
Chrome 116
- WebCodecs-integratie
- Verloren apparaat geretourneerd door GPUAdapter
requestDevice() - Zorg ervoor dat de videoweergave soepel blijft als
importExternalTexture()wordt aangeroepen. - conformiteit met specificaties
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chrome 115
- Ondersteunde WGSL-taalextensies
- Experimentele ondersteuning voor Direct3D 11
- De aparte grafische kaart wordt standaard ingeschakeld bij gebruik van netstroom.
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chrome 114
- Optimaliseer JavaScript
- getCurrentTexture() op een niet-geconfigureerd canvas geeft een InvalidStateError.
- WGSL-updates
- Dawn-updates