Gepubliceerd: 30 juli 2025
3D-textuurondersteuning voor gecomprimeerde BC- en ASTC-formaten
De WebGPU-functies "texture-compression-bc-sliced-3d"
en "texture-compression-astc-sliced-3d"
bieden ondersteuning voor 3D-texturen met behulp van de formaten Block Compression (BC) en Adaptive Scalable Texture Compression (ASTC). Hierdoor kunt u profiteren van de efficiënte compressiemogelijkheden van BC- en ASTC-formaten voor volumetrische textuurgegevens, wat zorgt voor een aanzienlijke vermindering van de geheugenvoetafdruk en bandbreedtevereisten zonder substantieel verlies aan beeldkwaliteit. Dit is met name waardevol in sectoren zoals wetenschappelijke visualisatie, medische beeldvorming en geavanceerde renderingtechnieken.
Met behulp van het volgende codefragment wordt gecontroleerd of de adapter 3D-texturen met gecomprimeerde BC- en ASTC-indelingen ondersteunt en wordt een apparaat met deze functies aangevraagd, indien 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
}
Ontdek 3D-hersenscans door het voorbeeld Volume Rendering - Texture 3D WebGPU te bekijken en bekijk de vermelding chromestatus .

Nieuwe functie '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 -beperkingen van de WebGPU-specificatie ondersteunt. "Kern" 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 wordt geleverd, beschikt een adapter of apparaat mogelijk niet over deze functie om aan te geven dat het een adapter of apparaat in de compatibiliteitsmodus is en geen kernadapter of -apparaat. Wanneer dit op een apparaat is ingeschakeld, worden alle beperkingen (functies en limieten) van de compatibiliteitsmodus opgeheven.
Raadpleeg de uitleg en de volgende sectie voor een gedetailleerde uitleg en gebruik in de WebGPU-compatibiliteitsmodus. Zie probleem 418025721 .
Origin-proefversie voor WebGPU-compatibiliteitsmodus
WebGPU is een krachtige API, ontworpen voor moderne graphics en afgestemd op 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 31% van de Chrome-gebruikers op Windows geen Direct3D 11.1 of hoger. Op Android heeft 15% van de Android-gebruikers geen Vulkan 1.1, waaronder 10% die Vulkan helemaal niet 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), een beperkter publiek te accepteren met de kern van WebGPU, of vast te houden aan WebGL, waardoor ze de geavanceerde functies van WebGPU, zoals GPU-berekening, missen.

De WebGPU-compatibiliteitsmodus biedt een oplossing door een opt-in, enigszins beperkte versie van de WebGPU API te bieden. Deze modus is ontworpen om oudere grafische API's zoals OpenGL ES 3.1 en Direct3D11 te draaien, waardoor het bereik van uw applicatie aanzienlijk wordt uitgebreid naar apparaten die geen moderne, expliciete grafische API's ondersteunen die vereist zijn voor de kern-WebGPU.
Omdat de compatibiliteitsmodus een subset is van WebGPU, zijn applicaties die ermee gebouwd zijn ook geldige WebGPU-"kern"applicaties. Dit betekent dat ze naadloos werken, zelfs in browsers die de compatibiliteitsmodus niet specifiek ondersteunen.
Voor veel basistoepassingen is het inschakelen van de compatibiliteitsmodus net zo eenvoudig als het doorgeven van featureLevel: "compatibility"
wanneer u requestAdapter() aanroept. Complexere toepassingen vereisen mogelijk kleine aanpassingen om binnen de beperkingen van de modus te passen. 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 u kunt er in Chrome 139 mee experimenteren door de functionaliteit expliciet in te schakelen. U kunt deze lokaal activeren door de vlag 'Experimental Web Platform Features' in te schakelen op chrome://flags/#enable-experimental-web-platform-features
.
Om het voor alle bezoekers van je app mogelijk te maken, is er een proefperiode gaande die eindigt in Chrome 145 (21 april 2026). Raadpleeg het bericht 'Aan de slag met proefperiodes' voor meer informatie over deelname aan de proefperiode .
Dawn-updates
Er wordt een message
toegevoegd aan de functie WGPUQueueWorkDoneCallback
om consistenter te zijn met andere callbackfuncties die ook een status accepteren. Zie webgpu-headers PR .
Wanneer emdawnwebgpu gekoppeld is met -sSHARED_MEMORY
, wordt het bestand webgpu.cpp ook met deze vlag gecompileerd. Zie Dawn CL 244075 .
Dit behandelt slechts enkele van de belangrijkste hoogtepunten. Bekijk de volledige lijst met commits .
Wat is er nieuw in WebGPU
Een lijst met alles wat in de serie Wat is er nieuw in WebGPU is behandeld.
Chroom 140
- Apparaatverzoeken verbruiken adapter
- Afkorting voor het gebruik van textuur waar textuurweergave wordt gebruikt
- WGSL textureSampleLevel ondersteunt 1D-texturen
- Verouder het gebruik van bgra8unorm-alleen-lezen-opslagtextuur
- GPUAdapter isFallbackAdapter-kenmerk verwijderen
- Dawn-updates
Chroom 139
- 3D-textuurondersteuning voor gecomprimeerde BC- en ASTC-formaten
- Nieuwe functie 'kernfuncties en beperkingen'
- Origin-proefversie voor WebGPU-compatibiliteitsmodus
- Dawn-updates
Chroom 138
- Afkorting voor het gebruik van buffer als bindingsbron
- Wijzigingen in de groottevereisten voor buffers die bij het aanmaken in kaart zijn gebracht
- Architectuurrapport voor recente GPU's
- Verouder GPUAdapter isFallbackAdapter-kenmerk
- Dawn-updates
Chroom 137
- Gebruik textuurweergave voor externe textuurbinding
- Buffers kopiëren zonder offsets en grootte op te geven
- WGSL-werkgroepUniformLoad met behulp van een pointer naar atomaire
- GPUAdapterInfo powerPreference-kenmerk
- Verwijder GPURequestAdapterOptions compatibilityMode-kenmerk
- Dawn-updates
Chroom 136
- GPUAdapterInfo isFallbackAdapter-kenmerk
- Verbeteringen in de shadercompilatietijd op D3D12
- Canvasafbeeldingen opslaan en kopiëren
- Beperkingen voor de liftcompatibiliteitsmodus
- Dawn-updates
Chroom 135
- Toestaan om pijplijnlay-out te maken met een lay-out voor null-bindgroepen
- Laat viewports zich uitstrekken voorbij de grenzen van de renderdoelen
- Gemakkelijkere toegang tot de experimentele compatibiliteitsmodus op Android
- Verwijder maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 134
- Verbeter machine learning-workloads met subgroepen
- Verwijder float-filterbare textuurtypen die ondersteuning bieden als mengbaar
- Dawn-updates
Chroom 133
- Extra unorm8x4-bgra en 1-component vertex-formaten
- Toestaan dat onbekende limieten worden aangevraagd met een ongedefinieerde waarde
- Wijzigingen in de WGSL-uitlijningsregels
- WGSL-prestatiewinst met weggooien
- Gebruik VideoFrame displaySize voor externe texturen
- Verwerk afbeeldingen met niet-standaardoriëntaties met copyExternalImageToTexture
- Verbetering van de ontwikkelaarservaring
- Compatibiliteitsmodus inschakelen met featureLevel
- Opschonen van experimentele subgroepkenmerken
- Verouder maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 132
- Gebruik van textuurweergave
- 32-bits float-texturen mengen
- GPUDevice adapterInfo-kenmerk
- Het configureren van de canvascontext met een ongeldige indeling levert een JavaScript-fout op
- Filteren van samplerbeperkingen op texturen
- Uitgebreide subgroepsexperimenten
- 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 dieptebias hebben
- Inclusief ingebouwde scanfuncties voor subgroepen
- Experimentele ondersteuning voor multi-draw indirect
- Shadermodule-compilatieoptie strikte wiskunde
- GPUAdapter requestAdapterInfo() verwijderen
- Dawn-updates
Chroom 130
- Menging van dubbele bronnen
- Verbeteringen in de shadercompilatietijd op Metal
- Veroudering van GPUAdapter requestAdapterInfo()
- Dawn-updates
Chroom 129
Chroom 128
- Experimenteren met subgroepen
- Diepteafwijking voor lijnen en punten afschaffen
- Verberg niet-vastgelegde fout DevTools-waarschuwing als preventDefault
- WGSL interpoleert eerst de bemonstering en ofwel
- Dawn-updates
Chroom 127
- Experimentele ondersteuning voor OpenGL ES op Android
- GPUAdapter info-kenmerk
- Verbeteringen in WebAssembly-interoperabiliteit
- Verbeterde opdrachtencoderfouten
- Dawn-updates
Chroom 126
- Verhoog maxTextureArrayLayers-limiet
- Bufferuploadoptimalisatie voor Vulkan-backend
- Verbeteringen in de compilatietijd van shaders
- Ingediende opdrachtbuffers moeten uniek zijn
- Dawn-updates
Chroom 125
Chroom 124
- Alleen-lezen en lees-schrijf opslagtexturen
- Ondersteuning van servicemedewerkers en gedeelde werknemers
- Nieuwe adapterinformatie-attributen
- Bugfixes
- Dawn-updates
Chroom 123
- Ondersteuning voor ingebouwde DP4a-functies in WGSL
- Onbeperkte pointerparameters in WGSL
- Syntaxissuiker voor het derefereren van composieten in WGSL
- Afzonderlijke alleen-lezenstatus 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 voor WebGPU op Android
- Gebruik DXC in plaats van FXC voor shadercompilatie op Windows
- Tijdstempelquery's in compute- en renderpassen
- Standaard toegangspunten tot shadermodules
- Ondersteuning display-p3 als GPUExternalTexture-kleurruimte
- Geheugenstapels info
- Dawn-updates
Chroom 120
- Ondersteuning voor 16-bits drijvende-kommawaarden in WGSL
- Verleg de grenzen
- Wijzigingen in de dieptestencilstatus
- Adapterinformatie-updates
- Kwantificering van tijdstempelquery's
- Voorjaarsschoonmaakfuncties
Chroom 119
- Filterbare 32-bits float-texturen
- unorm10-10-10-2 vertex-formaat
- 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
- Vertexbuffer ongedaan maken
- Bindgroep ongedaan maken
- Fouten bij het maken van een asynchrone pijplijn uitschakelen wanneer het apparaat verloren gaat
- Updates voor het maken van SPIR-V shadermodules
- Verbetering van de ontwikkelaarservaring
- Caching-pipelines met automatisch gegenereerde lay-out
- Dawn-updates
Chroom 116
- WebCodecs-integratie
- Verloren apparaat geretourneerd door GPUAdapter
requestDevice()
- Zorg ervoor dat de videoweergave vloeiend blijft als
importExternalTexture()
wordt aangeroepen - Specificatieconformiteit
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 115
- Ondersteunde WGSL-taalextensies
- Experimentele ondersteuning voor Direct3D 11
- Standaard discrete GPU op netstroom
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 114
- JavaScript optimaliseren
- getCurrentTexture() op een niet-geconfigureerd canvas genereert InvalidStateError
- WGSL-updates
- Dawn-updates