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.
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.
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.
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.
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:
W3C WebGPU Specification: GPUAdapter.features — Official W3C definition of adapter features including texture-compression-bc, texture-compression-etc2, and texture-compression-astc