WebGPU Hardware Feature Detection

WebGPU Compressed Texture Support & Feature Detection

Inspect whether this browser and GPU expose BC, ETC2, and ASTC compressed texture formats via GPUAdapter.features. Learn how adapter capability checks connect to adapter.requestDevice({ requiredFeatures: [...] }) and choose compatible KTX2 delivery assets.

Tool entry

Browser support and web texture outputs

Use the detector first, then encode a texture with KTX2 or a Web preset that can transcode cleanly for the device.

WebGPU compression feature check

Query this browser's WebGPU adapter for compressed texture feature flags.

Run the check to see browser support.

BC compression

Common desktop GPU family for BC1, BC3, BC5, BC6H, and BC7 assets.

Unknown

ETC2 compression

Common mobile and WebGL-oriented family for ETC2 texture targets.

Unknown

ASTC compression

Modern mobile GPU family with flexible block sizes and high quality.

Unknown

What this page covers

Adapter Feature Detection, Not Direct Image Conversion

Queries navigator.gpu.requestAdapter() and inspects adapter.features to test browser-exposed adapter capabilities. This page is a diagnostic detector, not a file upload converter; use our KTX2 tools to encode the actual assets.

Adapter Detection vs. Device Initialization

An optional feature reported in GPUAdapter.features is not active until requested. Your application must explicitly pass the feature string (such as texture-compression-bc, texture-compression-etc2, or texture-compression-astc) into adapter.requestDevice({ requiredFeatures: [...] }) before creating compressed GPUTexture objects.

W3C WebGPU Specification Alignment

Conforms strictly to the W3C WebGPU specification for GPUAdapter.features, optional texture-compression feature sets, and block compressed texture formats.

How to use it

Inspect browser adapter features, enable required texture optional features during device initialization, and deliver matching KTX2 containers.

  1. 01

    Query GPUAdapter.features

    Run the in-browser checker to query navigator.gpu and verify if your GPU adapter exposes texture-compression-bc, texture-compression-etc2, or texture-compression-astc.

  2. 02

    Request requiredFeatures in requestDevice

    In your WebGPU rendering engine, pass the detected feature string to adapter.requestDevice({ requiredFeatures: [...] }) to allow creating compressed GPUTexture instances.

  3. 03

    Encode and deliver KTX2 textures

    Encode assets using our KTX2 or platform preset converter, and transcode or upload the compressed blocks into your configured WebGPU texture formats.

FAQ

No. This tool is a browser adapter capability inspector that queries navigator.gpu.requestAdapter() and checks adapter.features. It detects which optional compressed texture features your browser exposes for the current graphics adapter. To encode image files into web-friendly containers, use our KTX2 encoder or platform preset converter.

GPUAdapter.features lists the optional features exposed by the browser for this adapter, which may differ from the underlying physical GPU complete native capabilities due to driver or browser boundaries. WebGPU sandboxes device creation by default: you cannot allocate compressed texture formats (BCn, ETC2, ASTC) unless explicitly requested via adapter.requestDevice({ requiredFeatures: [...] }). Omitting a required feature causes subsequent compressed GPUTexture creation to fail with a WebGPU validation error (not a guaranteed synchronous JavaScript exception). Refer to the W3C WebGPU specification: https://www.w3.org/TR/webgpu/#gpuadapter-features

The W3C WebGPU specification standardizes three optional compressed texture feature groups: texture-compression-bc (DirectX/desktop BC1-BC7), texture-compression-etc2 (mobile ETC2/EAC), and texture-compression-astc (mobile ASTC 2D LDR). When uploading to compressed textures, WebGPU requires pre-compressed block buffers matching the target format—uncompressed pixels cannot be written directly into compressed textures. KTX2 with Basis Universal (ETC1S/UASTC) solves cross-platform distribution by allowing a single compact asset to be transcoded at runtime directly into the client supported GPU block format.

Official Specifications & References

For complete details on WebGPU adapter feature inspection (GPUAdapter.features), device creation feature flags, and block-compressed texture formats, consult the official W3C specification:

Related texture tools

WebGPU Compressed Texture Support Checker & Format Guide