DDS file format (.dds)
DirectDraw surface texture. Read-only.
Last updated
What is a DDS file?
In short: A DDS file (.dds) is an image file in the DDS format. A DDS file holds a texture already in the block-compressed layout a graphics card expects, along with its mipmaps: progressively smaller copies used for surfaces further from the camera. It can be converted to JPG, PNG or WEBP for free in a web browser with iHateFiles, without uploading it.
Introduced by Microsoft with DirectX 7 in 1999 for storing textures in a form graphics hardware reads directly.
A DDS file holds a texture already in the block-compressed layout a graphics card expects, along with its mipmaps: progressively smaller copies used for surfaces further from the camera. Nothing has to be decoded at load time, which is why games use it.
What DDS is good at
- Uploaded to the GPU with no decoding step
- Holds the whole mipmap chain in one file
- Stays compressed in video memory
Where DDS falls short
- The block compression is lossy and shows on gradients
- Only useful in a graphics pipeline
- Nothing outside game tooling opens it
When to use DDS
Use DDS when a game engine or modding tool asks for it.
How to open a DDS file
Game engines, texture tools, and image editors with a plugin.
| Windows | The free NVIDIA Texture Tools, IrfanView with its DDS plugin, or GIMP. Windows shows no thumbnail. |
|---|---|
| macOS | GIMP, or a game-development tool such as Unity. |
| Linux | GIMP and ImageMagick both read DDS. |
| Phone | Not practical on a phone. |
| In a browser | No browser displays DDS, though WebGL can upload one as a compressed texture. |
The thing that usually goes wrong
DDS is lossy despite feeling like a raw format, so repeatedly editing and re-saving one degrades the texture each time.
Inside a DDS file
DirectDraw Surface is not really an image format in the ordinary sense. It is a container for texture data already compressed in a scheme the graphics card understands natively — BC1 through BC7, historically called DXT. The point is that the GPU never has to decompress it: the file is uploaded to video memory in the form it was stored, and stays compressed there.
That is why every game ships them. A 2048×2048 texture as PNG occupies about 16 MB of video memory once decoded; the same texture as BC1 occupies 2.7 MB and stays that way. Across a few thousand textures that difference decides whether a game fits in memory.
A DDS also usually carries a mipmap chain — the same image at halving resolutions, all the way down to a single pixel — so the card can pick the right level of detail by distance. Converting a DDS to PNG gives you the top level and quietly discards the rest.
| Full name | DirectDraw Surface |
|---|---|
| Magic bytes | 'DDS ' (44 44 53 20) |
| Compression | BC1–BC7, formerly DXT1–DXT5 |
| Mipmaps | Usually present, down to 1×1 |
| Typical use | Game and engine texture pipelines |
| Cube maps | Supported, six faces in one file |
Questions
What is a DDS file?
DirectDraw surface texture. Read-only. Files use the .dds extension.
How do I open a DDS file?
DDS is not widely supported any more. The reliable route is to convert it to a current format, which this page can do in your browser without uploading it.
Can I convert DDS for free?
Yes. Every conversion here is free and unlimited, because your own device does the work rather than a server we have to pay for.
Is DDS lossless?
No. DDS is a lossy format, so saving discards some detail to save space.