What is DDS? DirectDraw Surface Texture Format Explained
A Microsoft container for GPU textures that stores block-compressed data with mipmaps and cube maps.
Last updated:
What is DDS?
DDS, or DirectDraw Surface, is a Microsoft container file format for storing textures used by DirectX and Direct3D applications. It was introduced with DirectX 7 in 1999 and is designed to hold data in formats that graphics hardware can use directly.
A DDS file begins with a magic number, a 124-byte header describing dimensions, pixel format, and mipmap count, and an optional extended DX10 header, followed by the surface data. It commonly stores S3 Texture Compression (S3TC / DXT1, DXT3, DXT5) and later BC4 through BC7 block-compressed data, which GPUs can decompress in hardware, and it can contain mipmap chains, cube maps, volume textures, and texture arrays.
How DDS Stores Textures
A DDS file opens with the magic value DDS followed by a 124-byte DDS_HEADER describing the surface's dimensions, pixel format, mipmap count, and flags; an optional DDS_HEADER_DXT10 extension follows when newer DXGI formats or texture arrays are used.[2] The remaining bytes hold the surface data laid out exactly as the GPU expects, so textures can be uploaded with little or no conversion.[1]
Block Compression
DDS most often stores S3 Texture Compression (DXT1, DXT3, DXT5) and the later BC4 through BC7 block-compression formats, in which fixed-size blocks of pixels are encoded so graphics hardware can decompress them on the fly during rendering.[3] The same container also holds mipmap chains, cube maps, volume textures, and texture arrays within one file.[1]
History and Use
Microsoft introduced DDS with the DirectX 7 SDK in 1999 as part of DirectDraw.[3] Its defining advantage over general image formats like PNG is that block-compressed data stays compressed in video memory, reducing bandwidth and storage at runtime; the trade-off is fixed, lossy compression unsuited to general photographic editing. Beyond games, geospatial tools such as GDAL can read and write the format.[4]
MKV Technical Specifications
DDS vs Other Image Formats
| Feature | DDS | PNG | TGA |
|---|---|---|---|
| Type | Raster (texture) | Raster | Raster |
| Compression | Block (DXT/BCn)[1] | Lossless | None or RLE |
| Transparency | Alpha channel[2] | Yes | Yes |
| Mipmaps | Yes[1] | No | No |
| Best for | GPU textures[3] | Web, graphics | Game art assets |
| Standardized by | Microsoft (Direct3D)[1] | W3C, ISO | Truevision |
DDS stores GPU-ready compressed textures with mipmaps for real-time rendering, whereas PNG and TGA target general image storage without hardware-decode optimization.
Advantages & Disadvantages
Advantages
Block-compressed textures stay compressed in video memory and are decoded by the GPU on the fly, so more textures fit in VRAM.
Because the data does not need CPU-side decompression before upload, textures load quickly into the rendering pipeline.
A single DDS file can hold a full mipmap chain plus cube maps, volume textures, and texture arrays needed by 3D engines.
Supports a range of formats from DXT1/3/5 to modern BC4-BC7, balancing size and quality for different texture types.
Disadvantages
DXTn/BCn compression is lossy and can introduce artifacts, making DDS unsuitable as a general photo-editing format.
DDS is aimed at real-time graphics; ordinary image viewers and web browsers do not display it natively.
For storage or distribution of regular images, formats like PNG or JPEG are typically smaller than uncompressed or DXT DDS data.
Common Use Cases
DDS is the workhorse texture format of real-time 3D graphics on DirectX platforms.
Game textures | FileFormer
Game engines load DDS files for surface, normal, and environment textures because the GPU can use them directly.
Cube and environment maps | FileFormer
DDS stores cube maps used for skyboxes and reflections in 3D scenes.
Mipmapped assets | FileFormer
Precomputed mipmap chains in DDS reduce aliasing and improve rendering performance at varying distances.
Convert DDS Files Free
Use our free online image converter to convert DDS and other formats - no signup, no watermarks.
Try Image Converter FreeFrequently Asked Questions
What is DDS used for?
DDS stores textures for DirectX and Direct3D applications, especially games and 3D engines, holding GPU-friendly block-compressed data along with mipmaps and cube maps.
What compression does DDS use?
It typically uses S3 Texture Compression (S3TC), known as DXT1, DXT3, and DXT5, with later DirectX versions adding BC4 through BC7. Uncompressed data is also supported.
When was DDS introduced?
Microsoft introduced the DDS file format with DirectX 7 in 1999.
Can I open a DDS file in a normal image viewer?
Usually not directly. You generally need a graphics tool, game-development software, or a plugin, since DDS is built for GPU textures rather than general viewing.
Does DDS support mipmaps and cube maps?
Yes. A DDS file can store a complete mipmap chain, cube maps, volume textures, and texture arrays.