DXGI_FORMAT Enumeration

Resource data formats, including fully-typed and typeless formats. A list of modifiers at the bottom of the page more fully describes each format type.

Syntax

typedef enum DXGI_FORMAT
{
    DXGI_FORMAT_UNKNOWN = 0,
    DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
    DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
    DXGI_FORMAT_R32G32B32A32_UINT = 3,
    DXGI_FORMAT_R32G32B32A32_SINT = 4,
    DXGI_FORMAT_R32G32B32_TYPELESS = 5,
    DXGI_FORMAT_R32G32B32_FLOAT = 6,
    DXGI_FORMAT_R32G32B32_UINT = 7,
    DXGI_FORMAT_R32G32B32_SINT = 8,
    DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
    DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
    DXGI_FORMAT_R16G16B16A16_UNORM = 11,
    DXGI_FORMAT_R16G16B16A16_UINT = 12,
    DXGI_FORMAT_R16G16B16A16_SNORM = 13,
    DXGI_FORMAT_R16G16B16A16_SINT = 14,
    DXGI_FORMAT_R32G32_TYPELESS = 15,
    DXGI_FORMAT_R32G32_FLOAT = 16,
    DXGI_FORMAT_R32G32_UINT = 17,
    DXGI_FORMAT_R32G32_SINT = 18,
    DXGI_FORMAT_R32G8X24_TYPELESS = 19,
    DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
    DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
    DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
    DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
    DXGI_FORMAT_R10G10B10A2_UNORM = 24,
    DXGI_FORMAT_R10G10B10A2_UINT = 25,
    DXGI_FORMAT_R11G11B10_FLOAT = 26,
    DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
    DXGI_FORMAT_R8G8B8A8_UNORM = 28,
    DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
    DXGI_FORMAT_R8G8B8A8_UINT = 30,
    DXGI_FORMAT_R8G8B8A8_SNORM = 31,
    DXGI_FORMAT_R8G8B8A8_SINT = 32,
    DXGI_FORMAT_R16G16_TYPELESS = 33,
    DXGI_FORMAT_R16G16_FLOAT = 34,
    DXGI_FORMAT_R16G16_UNORM = 35,
    DXGI_FORMAT_R16G16_UINT = 36,
    DXGI_FORMAT_R16G16_SNORM = 37,
    DXGI_FORMAT_R16G16_SINT = 38,
    DXGI_FORMAT_R32_TYPELESS = 39,
    DXGI_FORMAT_D32_FLOAT = 40,
    DXGI_FORMAT_R32_FLOAT = 41,
    DXGI_FORMAT_R32_UINT = 42,
    DXGI_FORMAT_R32_SINT = 43,
    DXGI_FORMAT_R24G8_TYPELESS = 44,
    DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
    DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
    DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
    DXGI_FORMAT_R8G8_TYPELESS = 48,
    DXGI_FORMAT_R8G8_UNORM = 49,
    DXGI_FORMAT_R8G8_UINT = 50,
    DXGI_FORMAT_R8G8_SNORM = 51,
    DXGI_FORMAT_R8G8_SINT = 52,
    DXGI_FORMAT_R16_TYPELESS = 53,
    DXGI_FORMAT_R16_FLOAT = 54,
    DXGI_FORMAT_D16_UNORM = 55,
    DXGI_FORMAT_R16_UNORM = 56,
    DXGI_FORMAT_R16_UINT = 57,
    DXGI_FORMAT_R16_SNORM = 58,
    DXGI_FORMAT_R16_SINT = 59,
    DXGI_FORMAT_R8_TYPELESS = 60,
    DXGI_FORMAT_R8_UNORM = 61,
    DXGI_FORMAT_R8_UINT = 62,
    DXGI_FORMAT_R8_SNORM = 63,
    DXGI_FORMAT_R8_SINT = 64,
    DXGI_FORMAT_A8_UNORM = 65,
    DXGI_FORMAT_R1_UNORM = 66,
    DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
    DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
    DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
    DXGI_FORMAT_BC1_TYPELESS = 70,
    DXGI_FORMAT_BC1_UNORM = 71,
    DXGI_FORMAT_BC1_UNORM_SRGB = 72,
    DXGI_FORMAT_BC2_TYPELESS = 73,
    DXGI_FORMAT_BC2_UNORM = 74,
    DXGI_FORMAT_BC2_UNORM_SRGB = 75,
    DXGI_FORMAT_BC3_TYPELESS = 76,
    DXGI_FORMAT_BC3_UNORM = 77,
    DXGI_FORMAT_BC3_UNORM_SRGB = 78,
    DXGI_FORMAT_BC4_TYPELESS = 79,
    DXGI_FORMAT_BC4_UNORM = 80,
    DXGI_FORMAT_BC4_SNORM = 81,
    DXGI_FORMAT_BC5_TYPELESS = 82,
    DXGI_FORMAT_BC5_UNORM = 83,
    DXGI_FORMAT_BC5_SNORM = 84,
    DXGI_FORMAT_B5G6R5_UNORM = 85,
    DXGI_FORMAT_B5G5R5A1_UNORM = 86,
    DXGI_FORMAT_B8G8R8A8_UNORM = 87,
    DXGI_FORMAT_B8G8R8X8_UNORM = 88,
    DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
    DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
    DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
    DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
    DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
    DXGI_FORMAT_BC6H_TYPELESS = 94,
    DXGI_FORMAT_BC6H_UF16 = 95,
    DXGI_FORMAT_BC6H_SF16 = 96,
    DXGI_FORMAT_BC7_TYPELESS = 97,
    DXGI_FORMAT_BC7_UNORM = 98,
    DXGI_FORMAT_BC7_UNORM_SRGB = 99,
    DXGI_FORMAT_AYUV = 100,
    DXGI_FORMAT_Y410 = 101,
    DXGI_FORMAT_Y416 = 102,
    DXGI_FORMAT_NV12 = 103,
    DXGI_FORMAT_P010 = 104,
    DXGI_FORMAT_P016 = 105,
    DXGI_FORMAT_420_OPAQUE = 106,
    DXGI_FORMAT_YUY2 = 107,
    DXGI_FORMAT_Y210 = 108,
    DXGI_FORMAT_Y216 = 109,
    DXGI_FORMAT_NV11 = 110,
    DXGI_FORMAT_AI44 = 111,
    DXGI_FORMAT_IA44 = 112,
    DXGI_FORMAT_P8 = 113,
    DXGI_FORMAT_A8P8 = 114,
    DXGI_FORMAT_B4G4R4A4_UNORM = 115,
    DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT = 116,
    DXGI_FORMAT_R10G10B10_6E4_A2_FLOAT = 117,
    DXGI_FORMAT_D16_UNORM_S8_UINT = 118,
    DXGI_FORMAT_R16_UNORM_X8_TYPELESS = 119,
    DXGI_FORMAT_X16_TYPELESS_G8_UINT = 120,
    DXGI_FORMAT_P208 = 130,
    DXGI_FORMAT_V208 = 131,
    DXGI_FORMAT_V408 = 132,
    DXGI_FORMAT_R10G10B10_SNORM_A2_UNORM = 189,
    DXGI_FORMAT_R4G4_UNORM = 190,
    DXGI_FORMAT_R24G8_UNORM = 191,
    DXGI_FORMAT_FORCE_UINT = 0xffffffff
} DXGI_FORMAT;  

Constants

Constant Description
DXGI_FORMAT_UNKNOWNThe format is not known.
DXGI_FORMAT_R32G32B32A32_TYPELESSA four-component, 128-bit typeless format that supports 32 bits per channel including alpha. 1
DXGI_FORMAT_R32G32B32A32_FLOATA four-component, 128-bit floating-point format that supports 32 bits per channel including alpha. 1,5,8
DXGI_FORMAT_R32G32B32A32_UINTA four-component, 128-bit unsigned-integer format that supports 32 bits per channel including alpha. 1
DXGI_FORMAT_R32G32B32A32_SINTA four-component, 128-bit signed-integer format that supports 32 bits per channel including alpha. 1
DXGI_FORMAT_R32G32B32_TYPELESSA three-component, 96-bit typeless format that supports 32 bits per color channel.
DXGI_FORMAT_R32G32B32_FLOATA three-component, 96-bit floating-point format that supports 32 bits per color channel. 5,8
DXGI_FORMAT_R32G32B32_UINTA three-component, 96-bit unsigned-integer format that supports 32 bits per color channel.
DXGI_FORMAT_R32G32B32_SINTA three-component, 96-bit signed-integer format that supports 32 bits per color channel.
DXGI_FORMAT_R16G16B16A16_TYPELESSA four-component, 64-bit typeless format that supports 16 bits per channel including alpha.
DXGI_FORMAT_R16G16B16A16_FLOATA four-component, 64-bit floating-point format that supports 16 bits per channel including alpha. 5,7
DXGI_FORMAT_R16G16B16A16_UNORMA four-component, 64-bit unsigned-normalized-integer format that supports 16 bits per channel including alpha.
DXGI_FORMAT_R16G16B16A16_UINTA four-component, 64-bit unsigned-integer format that supports 16 bits per channel including alpha.
DXGI_FORMAT_R16G16B16A16_SNORMA four-component, 64-bit signed-normalized-integer format that supports 16 bits per channel including alpha.
DXGI_FORMAT_R16G16B16A16_SINTA four-component, 64-bit signed-integer format that supports 16 bits per channel including alpha.
DXGI_FORMAT_R32G32_TYPELESSA two-component, 64-bit typeless format that supports 32 bits for the red channel and 32 bits for the green channel.
DXGI_FORMAT_R32G32_FLOATA two-component, 64-bit floating-point format that supports 32 bits for the red channel and 32 bits for the green channel. 5,8
DXGI_FORMAT_R32G32_UINTA two-component, 64-bit unsigned-integer format that supports 32 bits for the red channel and 32 bits for the green channel.
DXGI_FORMAT_R32G32_SINTA two-component, 64-bit signed-integer format that supports 32 bits for the red channel and 32 bits for the green channel.
DXGI_FORMAT_R32G8X24_TYPELESSA two-component, 64-bit typeless format that supports 32 bits for the red channel, 8 bits for the green channel, and 24 bits are unused.
DXGI_FORMAT_D32_FLOAT_S8X24_UINTA 32-bit floating-point component, and two unsigned-integer components (with an additional 32 bits). This format supports 32-bit depth, 8-bit stencil, and 24 bits are unused. 5
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESSA 32-bit floating-point component, and two typeless components (with an additional 32 bits). This format supports 32-bit red channel, 8 bits are unused, and 24 bits are unused. 5
DXGI_FORMAT_X32_TYPELESS_G8X24_UINTA 32-bit typeless component, and two unsigned-integer components (with an additional 32 bits). This format has 32 bits unused, 8 bits for green channel, and 24 bits are unused.
DXGI_FORMAT_R10G10B10A2_TYPELESSA four-component, 32-bit typeless format that supports 10 bits for each color and 2 bits for alpha.
DXGI_FORMAT_R10G10B10A2_UNORMA four-component, 32-bit unsigned-normalized-integer format that supports 10 bits for each color and 2 bits for alpha.
DXGI_FORMAT_R10G10B10A2_UINTA four-component, 32-bit unsigned-integer format that supports 10 bits for each color and 2 bits for alpha.
DXGI_FORMAT_R11G11B10_FLOAT Three partial-precision floating-point numbers encoded into a single 32-bit value (a variant of s10e5, which is sign bit, 10-bit mantissa, and 5-bit biased (15) exponent) using 11-bits for R and G, and 10-bits for B. Neither the 11-bit or 10-bit formats have sign bits since they are most-often used to represent color component values, and both have 5-bit biased (15) exponents which allows them to represent a range of values similar to 16-bit floats; they only differ in that the 101-bit floating-point format has a 6-bit mantissa while the 10-bit format only has 5, as shown in the following illustration. 5,7 Figure 1.  Illustration of the bits in the three partial-precision floating-point numbers
DXGI_FORMAT_R8G8B8A8_TYPELESSA four-component, 32-bit typeless format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R8G8B8A8_UNORMA four-component, 32-bit unsigned-normalized-integer format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R8G8B8A8_UNORM_SRGBA four-component, 32-bit unsigned-normalized integer sRGB format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R8G8B8A8_UINTA four-component, 32-bit unsigned-integer format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R8G8B8A8_SNORMA four-component, 32-bit signed-normalized-integer format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R8G8B8A8_SINTA four-component, 32-bit signed-integer format that supports 8 bits per channel including alpha.
DXGI_FORMAT_R16G16_TYPELESSA two-component, 32-bit typeless format that supports 16 bits for the red channel and 16 bits for the green channel.
DXGI_FORMAT_R16G16_FLOATA two-component, 32-bit floating-point format that supports 16 bits for the red channel and 16 bits for the green channel. 5,7
DXGI_FORMAT_R16G16_UNORMA two-component, 32-bit unsigned-normalized-integer format that supports 16 bits each for the green and red channels.
DXGI_FORMAT_R16G16_UINTA two-component, 32-bit unsigned-integer format that supports 16 bits for the red channel and 16 bits for the green channel.
DXGI_FORMAT_R16G16_SNORMA two-component, 32-bit signed-normalized-integer format that supports 16 bits for the red channel and 16 bits for the green channel.
DXGI_FORMAT_R16G16_SINTA two-component, 32-bit signed-integer format that supports 16 bits for the red channel and 16 bits for the green channel.
DXGI_FORMAT_R32_TYPELESSA single-component, 32-bit typeless format that supports 32 bits for the red channel.
DXGI_FORMAT_D32_FLOATA single-component, 32-bit floating-point format that supports 32 bits for depth. 5,8
DXGI_FORMAT_R32_FLOATA single-component, 32-bit floating-point format that supports 32 bits for the red channel. 5,8
DXGI_FORMAT_R32_UINTA single-component, 32-bit unsigned-integer format that supports 32 bits for the red channel.
DXGI_FORMAT_R32_SINTA single-component, 32-bit signed-integer format that supports 32 bits for the red channel.
DXGI_FORMAT_R24G8_TYPELESSA two-component, 32-bit typeless format that supports 24 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_D24_UNORM_S8_UINTA 32-bit z-buffer format that supports 24 bits for depth and 8 bits for stencil.
DXGI_FORMAT_R24_UNORM_X8_TYPELESSA 32-bit format, that contains a 24 bit, single-component, unsigned-normalized integer, with an additional typeless 8 bits. This format has 24 bits red channel and 8 bits unused.
DXGI_FORMAT_X24_TYPELESS_G8_UINTA 32-bit format, that contains a 24 bit, single-component, typeless format, with an additional 8 bit unsigned integer component. This format has 24 bits unused and 8 bits green channel.
DXGI_FORMAT_R8G8_TYPELESSA two-component, 16-bit typeless format that supports 8 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_R8G8_UNORMA two-component, 16-bit unsigned-normalized-integer format that supports 8 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_R8G8_UINTA two-component, 16-bit unsigned-integer format that supports 8 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_R8G8_SNORMA two-component, 16-bit signed-normalized-integer format that supports 8 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_R8G8_SINTA two-component, 16-bit signed-integer format that supports 8 bits for the red channel and 8 bits for the green channel.
DXGI_FORMAT_R16_TYPELESSA single-component, 16-bit typeless format that supports 16 bits for the red channel.
DXGI_FORMAT_R16_FLOATA single-component, 16-bit floating-point format that supports 16 bits for the red channel. 5,7
DXGI_FORMAT_D16_UNORMA single-component, 16-bit unsigned-normalized-integer format that supports 16 bits for depth.
DXGI_FORMAT_R16_UNORMA single-component, 16-bit unsigned-normalized-integer format that supports 16 bits for the red channel.
DXGI_FORMAT_R16_UINTA single-component, 16-bit unsigned-integer format that supports 16 bits for the red channel.
DXGI_FORMAT_R16_SNORMA single-component, 16-bit signed-normalized-integer format that supports 16 bits for the red channel.
DXGI_FORMAT_R16_SINTA single-component, 16-bit signed-integer format that supports 16 bits for the red channel.
DXGI_FORMAT_R8_TYPELESSA single-component, 8-bit typeless format that supports 8 bits for the red channel.
DXGI_FORMAT_R8_UNORMA single-component, 8-bit unsigned-normalized-integer format that supports 8 bits for the red channel.
DXGI_FORMAT_R8_UINTA single-component, 8-bit unsigned-integer format that supports 8 bits for the red channel.
DXGI_FORMAT_R8_SNORMA single-component, 8-bit signed-normalized-integer format that supports 8 bits for the red channel.
DXGI_FORMAT_R8_SINTA single-component, 8-bit signed-integer format that supports 8 bits for the red channel.
DXGI_FORMAT_A8_UNORMA single-component, 8-bit unsigned-normalized-integer format for alpha only.
DXGI_FORMAT_R1_UNORMA single-component, 1-bit unsigned-normalized integer format that supports 1 bit for the red channel. 2.
DXGI_FORMAT_R9G9B9E5_SHAREDEXP Three partial-precision floating-point numbers encoded into a single 32-bit value all sharing the same 5-bit exponent (variant of s10e5, which is sign bit, 10-bit mantissa, and 5-bit biased (15) exponent). There is no sign bit, and there is a shared 5-bit biased (15) exponent and a 9-bit mantissa for each channel, as shown in the following illustration. 2,6,7. Figure 2.  Illustration of the bits in the three partial-precision floating-point numbers
DXGI_FORMAT_R8G8_B8G8_UNORMA four-component, 32-bit unsigned-normalized-integer format. This packed RGB format is analogous to the UYVY format. Each 32-bit block describes a pair of pixels: (R8, G8, B8) and (R8, G8, B8) where the R8/B8 values are repeated, and the G8 values are unique to each pixel. 3
DXGI_FORMAT_G8R8_G8B8_UNORMA four-component, 32-bit unsigned-normalized-integer format. This packed RGB format is analogous to the YUY2 format. Each 32-bit block describes a pair of pixels: (R8, G8, B8) and (R8, G8, B8) where the R8/B8 values are repeated, and the G8 values are unique to each pixel. 3
DXGI_FORMAT_BC1_TYPELESSFour-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC1_UNORMFour-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC1_UNORM_SRGBFour-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC2_TYPELESSFour-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC2_UNORMFour-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC2_UNORM_SRGBFour-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC3_TYPELESSFour-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC3_UNORMFour-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC3_UNORM_SRGBFour-component block-compression format for sRGB data. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC4_TYPELESSOne-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC4_UNORMOne-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC4_SNORMOne-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC5_TYPELESSTwo-component typeless block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC5_UNORMTwo-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC5_SNORMTwo-component block-compression format. For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_B5G6R5_UNORMA three-component, 16-bit unsigned-normalized-integer format that supports 5 bits for blue, 6 bits for green, and 5 bits for red.

Direct3D 10 through Direct3D 11

Note
This value is defined for DXGI. However, Direct3D 10, 10.1, or 11 devices do not support this format.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_B5G5R5A1_UNORMA four-component, 16-bit unsigned-normalized-integer format that supports 5 bits for each color channel and 1-bit alpha.

Direct3D 10 through Direct3D 11

Note
This value is defined for DXGI. However, Direct3D 10, 10.1, or 11 devices do not support this format.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_B8G8R8A8_UNORMA four-component, 32-bit unsigned-normalized-integer format that supports 8 bits for each color channel and 8-bit alpha.
DXGI_FORMAT_B8G8R8X8_UNORMA four-component, 32-bit unsigned-normalized-integer format that supports 8 bits for each color channel and 8 bits unused.
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORMA four-component, 32-bit 2.8-biased fixed-point format that supports 10 bits for each color channel and 2-bit alpha.
DXGI_FORMAT_B8G8R8A8_TYPELESSA four-component, 32-bit typeless format that supports 8 bits for each channel including alpha. 4
DXGI_FORMAT_B8G8R8A8_UNORM_SRGBA four-component, 32-bit unsigned-normalized standard RGB format that supports 8 bits for each channel including alpha. 4
DXGI_FORMAT_B8G8R8X8_TYPELESSA four-component, 32-bit typeless format that supports 8 bits for each color channel, and 8 bits are unused. 4
DXGI_FORMAT_B8G8R8X8_UNORM_SRGBA four-component, 32-bit unsigned-normalized standard RGB format that supports 8 bits for each color channel, and 8 bits are unused. 4
DXGI_FORMAT_BC6H_TYPELESSA typeless block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC6H_UF16A block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11. 5
DXGI_FORMAT_BC6H_SF16A block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11. 5
DXGI_FORMAT_BC7_TYPELESSA typeless block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC7_UNORMA block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_BC7_UNORM_SRGBA block-compression format. 4 For information about block-compression formats, see Texture Block Compression in Direct3D 11.
DXGI_FORMAT_AYUV Most common YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. Supported view types are SRV, RTV, and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is V->R8, U->G8, Y->B8, and A->A8. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_Y410 10-bit per channel packed YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R10G10B10A2_UNORM and DXGI_FORMAT_R10G10B10A2_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R10G10B10A2_UNORM and DXGI_FORMAT_R10G10B10A2_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is U->R10, Y->G10, V->B10, and A->A2. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_Y416 16-bit per channel packed YUV 4:4:4 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is U->R16, Y->G16, V->B16, and A->A16. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_NV12 Most common YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R8_UNORM and DXGI_FORMAT_R8_UINT. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R8G8_UNORM and DXGI_FORMAT_R8G8_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R8. For chrominance data view, the mapping to the view channel is U->R8 and V->G8. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_P010 10-bit per channel planar YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R16_UNORM and DXGI_FORMAT_R16_UINT. The runtime does not enforce whether the lowest 6 bits are 0 (given that this video resource format is a 10-bit format that uses 16 bits). If required, application shader code would have to enforce this manually. From the runtime's point of view, DXGI_FORMAT_P010 is no different than DXGI_FORMAT_P016. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. For UAVs, an additional valid chrominance data view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R16. For chrominance data view, the mapping to the view channel is U->R16 and V->G16. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_P016 16-bit per channel planar YUV 4:2:0 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R16_UNORM and DXGI_FORMAT_R16_UINT. Valid chrominance data view formats (width and height are each 1/2 of luminance view) for this video resource format are DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. For UAVs, an additional valid chrominance data view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R16G16_UNORM and DXGI_FORMAT_R16G16_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R16. For chrominance data view, the mapping to the view channel is U->R16 and V->G16. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_420_OPAQUE 8-bit per channel planar YUV 4:2:0 video resource format. This format is subsampled where each pixel has its own Y value, but each 2x2 pixel block shares a single U and V value. The runtime requires that the width and height of all resources that are created with this format are multiples of 2. The runtime also requires that the left, right, top, and bottom members of any RECT that are used for this format are multiples of 2. This format differs from DXGI_FORMAT_NV12 in that the layout of the data within the resource is completely opaque to applications. Applications cannot use the CPU to map the resource and then access the data within the resource. You cannot use shaders with this format. Because of this behavior, legacy hardware that supports a non-NV12 4:2:0 layout (for example, YV12, and so on) can be used. Also, new hardware that has a 4:2:0 implementation better than NV12 can be used when the application does not need the data to be in a standard layout. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_YUY2 Most common YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. For UAVs, an additional valid view format is DXGI_FORMAT_R32_UINT. By using DXGI_FORMAT_R32_UINT for UAVs, you can both read and write as opposed to just write for DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R8, U0->G8, Y1->B8, and V0->A8. A unique valid view format for this video resource format is DXGI_FORMAT_R8G8_B8G8_UNORM. With this view format, the width of the view appears to be twice what the DXGI_FORMAT_R8G8B8A8_UNORM or DXGI_FORMAT_R8G8B8A8_UINT view would be when hardware reconstructs RGBA automatically on read and before filtering. This Direct3D hardware behavior is legacy and is likely not useful any more. With this view format, the mapping to the view channel is Y0->R8, U0-> G8[0], Y1->B8, and V0-> G8[1]. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_Y210 10-bit per channel packed YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. The runtime does not enforce whether the lowest 6 bits are 0 (given that this video resource format is a 10-bit format that uses 16 bits). If required, application shader code would have to enforce this manually. From the runtime's point of view, DXGI_FORMAT_Y210 is no different than DXGI_FORMAT_Y216. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R16, U->G16, Y1->B16, and V->A16. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_Y216 16-bit per channel packed YUV 4:2:2 video resource format. Valid view formats for this video resource format are DXGI_FORMAT_R16G16B16A16_UNORM and DXGI_FORMAT_R16G16B16A16_UINT. Supported view types are SRV and UAV. One view provides a straightforward mapping of the entire surface. The mapping to the view channel is Y0->R16, U->G16, Y1->B16, and V->A16. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_NV11 Most common planar YUV 4:1:1 video resource format. Valid luminance data view formats for this video resource format are DXGI_FORMAT_R8_UNORM and DXGI_FORMAT_R8_UINT. Valid chrominance data view formats (width and height are each 1/4 of luminance view) for this video resource format are DXGI_FORMAT_R8G8_UNORM and DXGI_FORMAT_R8G8_UINT. Supported view types are SRV, RTV, and UAV. For luminance data view, the mapping to the view channel is Y->R8. For chrominance data view, the mapping to the view channel is U->R8 and V->G8. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_AI44 4-bit palletized YUV format that is commonly used for DVD subpicture. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_IA44 4-bit palletized YUV format that is commonly used for DVD subpicture. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_P8 8-bit palletized format that is used for palletized RGB data when the processor processes ISDB-T data and for palletized YUV data when the processor processes BluRay data. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_A8P8 8-bit palletized format with 8 bits of alpha that is used for palletized YUV data when the processor processes BluRay data. For more info about YUV formats for video rendering, see Recommended 8-Bit YUV Formats for Video Rendering.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_B4G4R4A4_UNORM A four-component, 16-bit unsigned-normalized integer format that supports 4 bits for each channel including alpha.

Direct3D 11.1

Note
This value is not supported until Windows 8.
DXGI_FORMAT_R10G10B10_7E3_A2_FLOATThe raster back-end supports output to a packed 32-bit floating point render target color format which includes 30 bits of color and 2 bits of alpha. The 10-bit color channels are formatted using an unsigned 7e3 floating point representation (with support for denormals) while the 2-bit alpha channel is formatted using an unsigned (normalized) integer representation. A packed 32-bit floating point texture format with equivalent composition is provided with support as a Resolve destination and in sampler fetch conversions and filtering. This format supports signed blending operations using relatively high precision source alpha and runs at full rate with 4x AA fragment processing. The following conversion code explains the details of this format. 5,7
int exp = (value & 0x0380) >> 7;
float mant = (value & 0x007f) * 2^–7;
float out = (exp == 0) ? mant*2^–2 : (1 + mant)*2^exp–3;
The smallest nonzero value is value == 0x0001 --> exp == 0, mant == 1/128 --> out == 1/512, and the largest value is value == 0x03ff --> exp == 7, mant == 127/128 --> out == 31.875.
DXGI_FORMAT_R10G10B10_6E4_A2_FLOATThe raster back-end supports output to a packed 32-bit floating point render target color format which includes 30 bits of color and 2 bits of alpha. The 10-bit color channels are formatted using an unsigned 6e4 (exponent bias of 7, support for denormals) floating point representation while the 2-bit alpha channel is formatted using an unsigned (normalized) integer representation. A packed 32-bit floating point texture format with equivalent composition is provided with support as a Resolve destination and in sampler fetch conversions and filtering. This format supports signed blending operations using relatively high precision source alpha and runs at full rate with 4x AA fragment processing. The following conversion code explains the details of this format. 5,7
int exp = (value & 0x03c0) >> 6;
float mant = (value & 0x003f) * 2^–6;
float out = (exp == 0) ? mant*2^–6 : (1 + mant)*2^exp–7;
The smallest nonzero value is value == 0x0001 --> exp == 0, mant == 1/64 --> out == 1/4096. The largest value is value == 0x03ff --> exp == 15, mant == 63/64 --> out == 508.
DXGI_FORMAT_D16_UNORM_S8_UINTUsed for creating a depth/stencil texture 2D, as well as creating a depth/stencil view on the texture 2D. This format is available in Direct3D for Xbox One only.
DXGI_FORMAT_R16_UNORM_X8_TYPELESSUsed for creating a shader resource view on the depth component of the texture 2D. This format is available in Direct3D for Xbox One only.
DXGI_FORMAT_X16_TYPELESS_G8_UINTUsed for creating a shader resource view on the stencil component of the texture 2D. This format is available in Direct3D for Xbox One only.
DXGI_FORMAT_P208A YUV format. Not supported on Xbox One.
DXGI_FORMAT_V208A YUV format. Not supported on Xbox One.
DXGI_FORMAT_V408A YUV format. Not supported on Xbox One.
DXGI_FORMAT_R10G10B10_SNORM_A2_UNORMA four-component, 32-bit unsigned-normalized-integer format (for the alpha channel) and signed-normalized for the R, G, and B channels, that supports 10 bits for each color and 2 bits for alpha.
DXGI_FORMAT_R4G4_UNORMA two-component, 8-bit unsigned-normalized-integer format that supports 4 bits per red channel and 4 bits per green channel.
DXGI_FORMAT_R24G8_UNORMA two-component, 32-bit unsigned-normalized-integer format that supports 24 bits per red channel and 8 bits per green channel. DXGI_FORMAT_R24G8_UNORM is an XBox-only format from the family of DXGI_FORMAT_R24G8_TYPELESS formats; its allowed for 32-bit textures and render targets.
DXGI_FORMAT_FORCE_UINTForces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used.

Remarks

Byte Order (LSB/MSB)

Most formats have byte-aligned components, and the components are in C-array order (the least address comes first). For those formats that don’t have power-of-2-aligned components, the first named component is in the least-significant bits.

Portable Coding for Endian-Independence

Rather than adjusting for whether a system uses big-endian or little-endian byte ordering, you should write portable code, as follows.

// DXGI_FORMAT_R32G32B32A32_FLOAT
FLOAT* pR32G32B32A32 = ...;
pR32G32B32A32[0] = 1.f;  // R
pR32G32B32A32[1] = 0.f;  // G
pR32G32B32A32[2] = 0.f;  // B
pR32G32B32A32[3] = 0.5f; // A

// DXGI_FORMAT_R10G10B10A2_UNORM
UINT32* pR10G10B10A2 = ...;
pR10G10B10A2 = (0x3ff) | (0x1 << 30);  // R=0x3ff, and A=0x1  

Restrictions and notes for formats

A few formats have additional restrictions and implied behavior:

  1. A resource declared with the DXGI_FORMAT_R32G32B32 family of formats cannot be used simultaneously for vertex and texture data. That is, you may not create a buffer resource with the DXGI_FORMAT_R32G32B32 family of formats that uses any of the following bind flags: D3D10_BIND_VERTEX_BUFFER, D3D10_BIND_INDEX_BUFFER, D3D10_BIND_CONSTANT_BUFFER, or D3D10_BIND_STREAM_OUTPUT (see D3D10_BIND_FLAG).
  2. DXGI_FORMAT_R1_UNORM is designed specifically for text filtering, and must be used with a format-specific, configurable 8x8 filter mode. When calling an HLSL sampling function using this format, the address offset parameter must be set to (0,0).
  3. A resource using a sub-sampled format (such as DXGI_FORMAT_R8G8_B8G8) must have a size that is a multiple of 2 in the x dimension.
  4. Format is not available in Direct3D 10 and Direct3D 10.1
  5. These float formats have an implied 1 added to their mantissa. If the exponent is not 0, 1.0 is added to the mantissa before applying the exponent. For example, refer to the third line of the code example for DXGI_FORMAT_R10G10B10_7E3_A2_FLOAT:
                  int exp = (value & 0x0380) >> 7;
                  float mant = (value & 0x007f) * 2^7;
                  float out = (exp == 0) ? mant*2^2 : (1 + mant)*2^exp3;  
    
  6. These float formats do not have an implied 1 added to their mantissa.
  7. Denorm support: the 9, 10, 11 and 16 bit float formats support denorms.
  8. No denorm support: the 32 and 64 bit float formats flush denorms to zero.

The following topics provide lists of the formats that particular hardware feature levels support:

For a list of the DirectXMath types that map to DXGI_FORMAT values, see DirectXMath Library Internals.

Format Modifiers

Each enumeration value contains a format modifier which describes the data type.

Format Modifiers Description
_FLOAT A floating-point value; 32-bit floating-point formats use IEEE 754 single-precision (s23e8 format): sign bit, 8-bit biased (127) exponent, and 23-bit mantissa. 16-bit floating-point formats use half-precision (s10e5 format): sign bit, 5-bit biased (15) exponent, and 10-bit mantissa. There are also 11-bit and 10-bit floating-point formats that are described in detail elsewhere in this document.
_SINT Two's complement signed integer. For example, a 3-bit SINT represents the values -4, -3, -2, -1, 0, 1, 2, 3.
_SNORM Signed normalized integer; which is interpreted in a resource as a signed integer, and is interpreted in a shader as a signed normalized floating-point value in the range [-1, 1]. For an 2's complement number, the maximum value is 1.0f (a 5-bit value 01111 maps to 1.0f), and the minimum value is -1.0f (a 5-bit value 10000 maps to -1.0f). In addition, the second-minimum number maps to -1.0f (a 5-bit value 10001 maps to -1.0f). The resulting integer representations are evenly spaced floating-point values in the range (-1.0f...0.0f), and also a complementary set of representations for numbers in the range (0.0f...1.0f).
_SRGB Standard RGB data, which roughly displays colors in a linear ramp of luminosity levels such that an average observer, under average viewing conditions, can view them on an average display. All 0's maps to 0.0f, and all 1's maps to 1.0f. The sequence of unsigned integer encodings between all 0's and all 1's represent a nonlinear progression in the floating-point interpretation of the numbers between 0.0f to 1.0f. For more detail, see the SRGB color standard, IEC 61996-2-1, at IEC (International Electrotechnical Commission). Conversion to or from sRGB space is automatically done by D3DX10 or D3DX9 texture-load functions. If the format has an alpha channel, the alpha data is also stored in sRGB color space.
_TYPELESS Typeless data, with a defined number of bits. Typeless formats are designed for creating typeless resources; that is, a resource whose size is known, but whose data type is not yet fully defined. When a typeless resource is bound to a shader, the application or shader must resolve the format type (which must match the number of bits per component in the typeless format). A typeless format contains one or more subformats; each subformat resolves the data type. For example, in the R32G32B32 group, which defines types for three-component 96-bit data, there is one typeless format and three fully typed subformats.
DXGI_FORMAT_R32G32B32_TYPELESS,
                DXGI_FORMAT_R32G32B32_FLOAT,
                DXGI_FORMAT_R32G32B32_UINT,
                DXGI_FORMAT_R32G32B32_SINT,
              
_UINT Unsigned integer. For instance, a 3-bit UINT represents the values 0, 1, 2, 3, 4, 5, 6, 7.
_UNORM Unsigned normalized integer; which is interpreted in a resource as an unsigned integer, and is interpreted in a shader as an unsigned normalized floating-point value in the range [0, 1]. All 0's maps to 0.0f, and all 1's maps to 1.0f. A sequence of evenly spaced floating-point values from 0.0f to 1.0f are represented. For instance, a 2-bit UNORM represents 0.0f, 1/3, 2/3, and 1.0f.
_SHAREDEXP A shared exponent. All the floating point representations in the format share the one exponent.

Requirements

Header: Declared in d3d11_x.h (dxgiformat.h on other Windows platforms).