To ensure that transcoding from the transmission texture formats (i.e. ETC1S or UASTC) to GPU compressed formats works as expected, developers should test their WebGL applications on a wide range of platforms due to differences in compressed format support. Still, there are two setups that provide exceptionally high level of compatibility: modern Intel GPUs (Windows and Linux) and Apple M1 and newer SoC (macOS).
Warning: It is highly recommended to use Chromium Dev builds instead of altering the main Chrome or Edge installation because using non-default ANGLE backend may decrease stability or security.
Modern Intel GPUs, namely Intel HD Graphics 5xx ("Skylake") or newer, have the best compressed format coverage on Windows and Linux. OpenGL or Vulkan are required to get access to ASTC and ETC formats.
-
Consider using the latest GPU driver. On Windows, it could be downloaded from the Intel website; on Linux, it is usually provided and maintained by OS distribution vendors.
-
Install Google Chrome Dev or Microsoft Edge Dev.
-
On Windows, open
about://flags/#use-angle
page, select OpenGL as ANGLE graphics backend, and restart the browser. -
Confirm enabled WebGL extensions here: https://webglreport.com/, the list should include:
Apple M1 and newer SoC support all possible compressed transcode targets: BC*, ETC*, ASTC, and PVRTC1. Most of them are available only via Metal API. Intel-based Macs support only BC* formats.
-
Install Google Chrome Dev or Microsoft Edge Dev.
-
Open
about://flags/#use-angle
page, select Metal as ANGLE graphics backend, and restart the browser. -
Confirm enabled WebGL extensions here: https://webglreport.com/, the list should include:
-
Ensure that macOS 12 Monterey or newer is used.
-
Ensure that Safari 16 or newer is used.
-
Confirm enabled WebGL extensions here: https://webglreport.com/, the list should be the same as with Chromium-based browsers running on Metal.
AMD | Apple Ax | Apple M1 | ARM | Intel | NVIDIA Desktop | NVIDIA Tegra | Qualcomm | |
---|---|---|---|---|---|---|---|---|
ASTC | ❌ | A8 and newer | ✅2 | Mali-T620 and newer | Gen9 and newer3 | ❌ | ✅ | Adreno 3xx and newer |
BC1 BC3 BC4 BC5 |
✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
BC7 | Radeon HD 5000 and newer1 | ❌ | ✅1 | ❌ | Gen7 and newer1 | GeForce 400 and newer1 | ✅ | ❌ |
ETC1 | ❌ | A7 and newer | ✅2 | Mali-300 and newer | Gen8 and newer3 | ❌ | ✅ | Adreno 2xx and newer |
ETC2 / EAC | ❌ | A7 and newer | ✅2 | Mali-T6xx and newer | Gen8 and newer3 | ❌ | ✅ | Adreno 3xx and newer |
PVRTC1 | ❌ | ✅ | ✅2 | ❌ | ❌ | ❌ | ❌ | ❌ |
1 On macOS, only Metal API supports BC7.
2 Use of Metal API is required.
3 Available only on Windows and Linux, requires use of OpenGL or Vulkan.