Chip in

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.

Opening a .dds file on each platform
WindowsThe free NVIDIA Texture Tools, IrfanView with its DDS plugin, or GIMP. Windows shows no thumbnail.
macOSGIMP, or a game-development tool such as Unity.
LinuxGIMP and ImageMagick both read DDS.
PhoneNot practical on a phone.
In a browserNo 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.

DDS at a glance
Full nameDirectDraw Surface
Magic bytes'DDS ' (44 44 53 20)
CompressionBC1–BC7, formerly DXT1–DXT5
MipmapsUsually present, down to 1×1
Typical useGame and engine texture pipelines
Cube mapsSupported, 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.