poka.sh

Docs

DDS

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

DirectDraw Surface Preview.

At a glance

Original creator Microsoft
First published 1999
Purpose DirectDraw Surface: textures for Direct3D, stored in the compressed or uncompressed formats the graphics card reads, with mipmaps, cube maps and volume textures.
Extensions .dds
Poka parser poka-dds
Viewer poka-image-with-meta-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B3 Core (see Breadth tiers)

How much Poka reads

B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.

Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-dds/src/lib.rs (own header parser plus image 0.25.10 DdsDecoder, whose source was read), tests/samples.rs run against the 3 corpus files (hopper.dds, a DXT5 file, a DX10 BC7 file). Covers legacy FourCC DDS and DX10-header DDS; only the top mip level of the first surface is ever decoded.

What Poka does not read

  • BC7 pixels (header facts only)
  • BC6H pixels
  • BC4 and BC5 pixels (single-channel and normal-map textures)
  • uncompressed RGB, RGBA, luminance, alpha and YUV pixels (header facts only; the corpus hopper.dds is such a file)
  • DXT2 and DXT4 (premultiplied alpha) pixels
  • DX10 formats other than BC1 to BC3 (float, 16-bit and sRGB-packed formats)
  • mip levels below the first
  • cube map faces beyond the first surface
  • volume texture slices
  • texture array elements

Background

Wikipedia says the format came with DirectX 7.0 in 1999; DirectX 8.0 added volume textures, and Direct3D 10 added texture arrays and formats such as BC6H and BC7 behind a DX10 extension header. Poka reads the header itself and decodes the pixels with the image crate where it can. The image crate does not decode BC4 to BC7, uncompressed RGB, or DX10-header files other than BC1 to BC3, so for those Poka shows the header facts only.

Versions

Version Identifier Poka Note
DDS with a FourCC or uncompressed pixel format (DXT1 to DXT5 and others) DDS Partly read Drawn where the image crate decodes the format; header facts otherwise.
DDS with a DX10 extension header DDS , FourCC DX10 Partly read The DXGI format is named. The image crate decodes DX10 files whose format is BC1 to BC3; BC4 and above get header facts only.

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • image (used; MIT OR Apache-2.0; Rust)
  • png (used; MIT OR Apache-2.0; Rust)
  • oxideav-dds (candidate; MIT; Rust; https://github.com/OxideAV/oxideav-dds) — decodes BC7, DX10 headers and 24-bit RGB; 3 corpus samples decoded; net size against poka-dds unverified

Sources