DirectDraw Surface
image/vnd.ms-dds
Released 1999
· by Microsoft Corporation
The image/vnd.ms-dds MIME type represents the DirectDraw Surface (DDS) format, introduced by Microsoft in 1999 alongside DirectX 7. It is the industry-standard container for storing textures and environment maps used in 3D gaming and real-time rendering. Its core advantage is the ability to store data in GPU-native compressed formats (such as DXTC/S3TC or modern BC1-BC7 block compression), meaning the texture can be sent directly to the graphics card's memory for rendering without requiring the CPU to decompress it first.
Technical Specifications
.dds
DXT1-DXT5BC1-BC7ASTC / ETC2 (Extended)
image/dds
Magic Bytes & HTTP Headers
DDS
Browser Support Matrix
| Browser | Status | Min Version |
|---|---|---|
|
|
Not Supported | — |
|
|
Not Supported | — |
|
|
Not Supported | — |
|
|
Not Supported | — |
|
|
Not Supported | Legacy |
Advantages & Limitations
- Massively reduces VRAM footprint and memory bandwidth usage because the GPU decodes the block compression in hardware
- Encapsulates complex texture arrays, volume textures, cubemaps, and entire mipmap chains within a single, highly structured file
- Supports high-dynamic-range (HDR) floating-point data for modern physically based rendering (PBR)
- Block compression algorithms (like DXT) are lossy and can introduce ugly blocky artifacts, especially in smooth gradients or normal maps if not tuned properly
- Files are generally larger on the physical hard drive than highly compressed formats like PNG or WebP
- Zero support in web browsers or standard consumer image viewers
Developer Code Snippets
File Detection Steps
How to programmatically detect a image/vnd.ms-dds
file by reading its raw bytes:
- 1 Check the first 4 bytes for the magic string 'DDS ' (Hex: 44 44 53 20).
- 2 Read the subsequent DDS_HEADER struct (124 bytes) to ascertain height, width, mipmap count, and pixel format flags.
- 3 If the pixel format contains the 'DX10' FourCC code, a 20-byte DDS_HEADER_DXT10 struct immediately follows, providing modern BC compression format details.
Software Support
Conversion Tools
Share & Embed
[](https://freewebptojpg.com/mime/image/dds)
<iframe src="https://freewebptojpg.com/mime/image/dds/embed" width="100%" height="280" style="border:1px solid #cbd5e1;border-radius:8px;" title="DDS Specs"></iframe>
JSON API
All data on this page is available as a free, open JSON API. Use it in your project, documentation, or tooling.
GET https://freewebptojpg.com/mime/image/dds.json
Open JSON
Frequently Asked Questions
Why use DDS instead of PNG or JPEG for 3D games?
While PNG and JPEG offer smaller file sizes on disk, they must be fully decompressed by the CPU into massive, uncompressed pixel arrays in RAM before the GPU can use them. DDS files store textures in block-compressed formats (like BC7) that remain compressed in the GPU's VRAM, drastically saving video memory and reducing load times. Additionally, DDS files natively store pre-calculated mipmaps and cubemaps.
What are mipmaps in a DDS file?
Mipmaps are pre-calculated, progressively smaller versions of the main texture stored within the same DDS file. When an object in a 3D game moves further away from the camera, the GPU swaps to a smaller mipmap to reduce rendering artifacts (aliasing) and improve performance.
How do I open or edit a DDS file?
Standard image viewers often cannot open DDS files. To view or edit them, you need specialized software like GIMP (which has built-in support), or Adobe Photoshop equipped with the Intel Texture Works or NVIDIA Texture Tools plugins. Game developers frequently use command-line tools like Microsoft's Texconv to compile them.