Basis Universal glTF GPU Formats on Mobile

Basis Universal solves the challenge of cross-platform texture deployment in 3D web and mobile graphics by packaging textures into an intermediate format that rapidly transcodes directly to native GPU-compressed formats at runtime. When utilized in glTF 2.0 via the KHR_texture_basisu extension, the engine or runtime detects the specific GPU architecture of a mobile device and unpacks the texture into the most efficient hardware-supported compression format available. This article details the native GPU compression formats Basis Universal targets across Android and iOS devices, highlighting how support shifts between legacy hardware and modern architectures.

How Basis Universal Works in glTF

The glTF extension KHR_texture_basisu embeds textures stored as either ETC1S (optimized for minimal file size) or UASTC (optimized for high visual fidelity and normal maps). Neither format is meant to be decoded directly by the GPU. Instead, a lightweight WebAssembly or native C++ transcoder translates these intermediate representations on-the-fly into native block-compressed formats without decompressing to raw RGBA in RAM first.

Target Formats on Android Devices

Android hardware spans diverse GPU architectures, including ARM Mali, Qualcomm Adreno, and Imagination PowerVR. Basis Universal transcodes to the following native formats based on device capability:

  • ASTC (Adaptive Scalable Texture Compression): ASTC 4x4 (RGBA) is the primary target for modern Android devices supporting OpenGL ES 3.2 or Vulkan. It offers superior visual quality and flexible compression ratios compared to older standards.
  • ETC2 (Ericsson Texture Compression 2): Mandatory since OpenGL ES 3.0, ETC2 (RGB8 / RGBA8) is ubiquitous across nearly all modern and mid-range Android devices. It provides native alpha channel support and full-color fidelity.
  • ETC1 (Ericsson Texture Compression 1): The baseline standard for legacy Android hardware (OpenGL ES 2.0). ETC1 supports only RGB data without alpha; when alpha is required, the transcoder either falls back to uncompressed formats or processes alpha through a separate alpha texture strip.

Target Formats on Apple iOS Devices

Apple devices feature a consistent hardware trajectory, allowing the transcoder to target two primary native compression formats:

  • ASTC: Supported on Apple A8 processors and newer (iPhone 6 and later), ASTC 4x4 is the standard target format for virtually all active iOS and iPadOS devices. The transcoder maps both ETC1S and UASTC textures directly into native ASTC blocks for low VRAM consumption and optimal performance.
  • PVRTC1 (PowerVR Texture Compression): Used on legacy iOS devices (pre-A8 chips such as the iPhone 5s and earlier). Basis Universal transcodes to PVRTC1 4bpp (RGB and RGBA). PVRTC requires power-of-two, square textures and exhibits lower visual quality than ASTC, but allows older Apple hardware to run without expanding textures into uncompressed system memory.

Fallback Formats for Unsupported Devices

If a mobile device lacks support for modern block compression or encounters an incompatible texture configuration, Basis Universal transcodes to uncompressed raw pixel formats:

  • RGBA32 / RGB565 / RGBA4444: The transcoder unpacks textures to 16-bit or 32-bit uncompressed buffers. While this ensures universal compatibility across any mobile browser or display pipeline, it eliminates VRAM savings and increases GPU memory bandwidth usage.