Wat is er nieuw in WebGPU (Chrome 139)

François Beaufort
François Beaufort

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 .

3D-hersenscans gemaakt met WebGPU.
Een hersenscanafbeelding van een 3D-textuur met ASTC-gecomprimeerd formaat.

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.

Visuele weergave van de WebGPU-compatibiliteitsmodus.
WebGPU-compatibiliteitsmodus uitgebreid.

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

Chroom 139

Chroom 138

Chroom 137

Chroom 136

Chroom 135

Chroom 134

Chroom 133

Chroom 132

Chroom 131

Chroom 130

Chroom 129

Chroom 128

Chroom 127

Chroom 126

Chroom 125

Chroom 124

Chroom 123

Chroom 122

Chroom 121

Chroom 120

Chroom 119

Chroom 118

Chroom 117

Chroom 116

Chroom 115

Chroom 114

Chroom 113