Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Legacy Formats: Map Direct3D 9 Formats to Direct3D 10

This table lists the Direct3D 9 formats that can be mapped to a Direct3D 10 format. The Direct3D 10 formats have diverged from the Direct3D 9 formats so that vertex and texture formats can be merged to enable cross-endian applications.

Direct3D 9 Texture/Vertex/Index FormatEquivalent Direct3D 10 Format
D3DFMT_UNKNOWNDXGI_FORMAT_UNKNOWN
D3DFMT_R8G8B8Not available
D3DFMT_A8R8G8B8DXGI_FORMAT_B8G8R8A8_UNORM (DXGI 1.1)
D3DFMT_X8R8G8B8DXGI_FORMAT_B8G8R8X8_UNORM (DXGI 1.1)
D3DFMT_R5G6B5DXGI_FORMAT_B5G6R5_UNORM (DXGI 1.2)
D3DFMT_X1R5G5B5Not available
D3DFMT_A1R5G5B5DXGI_FORMAT_B5G5R5A1_UNORM (DXGI 1.2)
D3DFMT_A4R4G4B4DXGI_FORMAT_B4G4R4A4_UNORM (DXGI 1.2)
D3DFMT_R3G3B2Not available
D3DFMT_A8DXGI_FORMAT_A8_UNORM
D3DFMT_A8R3G3B2Not available
D3DFMT_X4R4G4B4Not available
D3DFMT_A2B10G10R10DXGI_FORMAT_R10G10B10A2
D3DFMT_A8B8G8R8DXGI_FORMAT_R8G8B8A8_UNORM or DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
D3DFMT_X8B8G8R8Not available
D3DFMT_G16R16DXGI_FORMAT_R16G16_UNORM
D3DFMT_A2R10G10B10Not available
D3DFMT_A16B16G16R16DXGI_FORMAT_R16G16B16A16_UNORM
D3DFMT_A8P8Not available
D3DFMT_P8Not available
D3DFMT_L8DXGI_FORMAT_R8_UNORM ¹
D3DFMT_A8L8Not available
D3DFMT_A4L4Not available
D3DFMT_V8U8DXGI_FORMAT_R8G8_SNORM
D3DFMT_L6V5U5Not available
D3DFMT_X8L8V8U8Not available
D3DFMT_Q8W8V8U8DXGI_FORMAT_R8G8B8A8_SNORM
D3DFMT_V16U16DXGI_FORMAT_R16G16_SNORM
D3DFMT_W11V11U10 Not available
D3DFMT_A2W10V10U10Not available
D3DFMT_UYVYNot available
D3DFMT_R8G8_B8G8DXGI_FORMAT_G8R8_G8B8_UNORM ²
D3DFMT_YUY2Not available
D3DFMT_G8R8_G8B8DXGI_FORMAT_R8G8_B8G8_UNORM ²
D3DFMT_DXT1DXGI_FORMAT_BC1_UNORM or DXGI_FORMAT_BC1_UNORM_SRGB
D3DFMT_DXT2DXGI_FORMAT_BC2_UNORM or DXGI_FORMAT_BC2_UNORM_SRGB ³
D3DFMT_DXT3DXGI_FORMAT_BC2_UNORM or DXGI_FORMAT_BC2_UNORM_SRGB
D3DFMT_DXT4DXGI_FORMAT_BC3_UNORM or DXGI_FORMAT_BC3_UNORM_SRGB ³
D3DFMT_DXT5DXGI_FORMAT_BC3_UNORM or DXGI_FORMAT_BC3_UNORM_SRGB
D3DFMT_D16 and D3DFMT_D16_LOCKABLEDXGI_FORMAT_D16_UNORM
D3DFMT_D32Not available
D3DFMT_D15S1Not available
D3DFMT_D24S8Not available
D3DFMT_D24X8Not available
D3DFMT_D24X4S4Not available
D3DFMT_D16DXGI_FORMAT_D16_UNORM
D3DFMT_D32F_LOCKABLEDXGI_FORMAT_D32_FLOAT
D3DFMT_D24FS8Not available
D3DFMT_S1D15Not available
D3DFMT_S8D24DXGI_FORMAT_D24_UNORM_S8_UINT
D3DFMT_X8D24Not available
D3DFMT_X4S4D24Not available
D3DFMT_L16DXGI_FORMAT_R16_UNORM ¹
D3DFMT_INDEX16DXGI_FORMAT_R16_UINT
D3DFMT_INDEX32DXGI_FORMAT_R32_UINT
D3DFMT_Q16W16V16U16DXGI_FORMAT_R16G16B16A16_SNORM
D3DFMT_MULTI2_ARGB8Not available
D3DFMT_R16FDXGI_FORMAT_R16_FLOAT
D3DFMT_G16R16FDXGI_FORMAT_R16G16_FLOAT
D3DFMT_A16B16G16R16FDXGI_FORMAT_R16G16B16A16_FLOAT
D3DFMT_R32FDXGI_FORMAT_R32_FLOAT
D3DFMT_G32R32FDXGI_FORMAT_R32G32_FLOAT
D3DFMT_A32B32G32R32FDXGI_FORMAT_R32G32B32A32_FLOAT
D3DFMT_CxV8U8Not available
D3DDECLTYPE_FLOAT1DXGI_FORMAT_R32_FLOAT
D3DDECLTYPE_FLOAT2DXGI_FORMAT_R32G32_FLOAT
D3DDECLTYPE_FLOAT3DXGI_FORMAT_R32G32B32_FLOAT
D3DDECLTYPE_FLOAT4DXGI_FORMAT_R32G32B32A32_FLOAT
D3DDECLTYPED3DCOLORNot available
D3DDECLTYPE_UBYTE4DXGI_FORMAT_R8G8B8A8_UINT ⁴
D3DDECLTYPE_SHORT2DXGI_FORMAT_R16G16_SINT
D3DDECLTYPE_SHORT4DXGI_FORMAT_R16G16B16A16_SINT
D3DDECLTYPE_UBYTE4NDXGI_FORMAT_R8G8B8A8_UNORM
D3DDECLTYPE_SHORT2NDXGI_FORMAT_R16G16_SNORM
D3DDECLTYPE_SHORT4NDXGI_FORMAT_R16G16B16A16_SNORM
D3DDECLTYPE_USHORT2NDXGI_FORMAT_R16G16_UNORM
D3DDECLTYPE_USHORT4NDXGI_FORMAT_R16G16B16A16_UNORM
D3DDECLTYPE_UDEC3Not available
D3DDECLTYPE_DEC3NNot available
D3DDECLTYPE_FLOAT16_2DXGI_FORMAT_R16G16_FLOAT
D3DDECLTYPE_FLOAT16_4DXGI_FORMAT_R16G16B16A16_FLOAT

 

  1. Use .r swizzle in a shader to duplicate red to other components to get Direct3D 9 behavior.
  2. In Direct3D 9, the data was scaled up by 255.0f which can be done in shader code instead.
  3. DXT2 and DXT3 are the same from an API perspective; DXT4 and DXT5 are the same from an API perspective. The only difference was premultiplied alpha, which can be tracked by an application and does not need a separate format.
  4. A shader gets UINT values, but if Direct3D 9 style integral floats (0.0f, 1.0f... 255.f) are needed, UINT can be converted to float32 in a shader.

Related topics

Resources (Direct3D 10)

 

 

Show:
© 2017 Microsoft