The following texture formats are supported:
• 8, 8:8, 8:8:8:8
• 1:5:5:5, 5:6:5, 6:5:5, 4:4:4:4
• 10:11:11, 11:11:10, 2:10:10:10
• 16-bit per component fixed point (one-, two-, and four-component)
• 32-bit per component fixed point (one-, two-, and four-component)
• 16-bit per component floating point (limited filtering)
• 32-bit per component floating point (no filtering)
• DXT1, DXT2, DXT3, DXT4, DXT5
• 24:8 fixed point (matches z-buffer format)
• 24:8 floating point (matches z-buffer format)
• New compressed formats for normal maps, luminance, and so on, as described following
Fetching up to 32-bit deep textures runs at full speed (one bilinear cycle), fetching 64-bit deep textures runs at half-speed, and fetching 128-bit deep textures runs at quarter speed. A special fast mode exists that allows four-component, 32-bit-per-component floating-point textures to be fetched at half-speed rather than quarter-speed. The packed 32-bit formats (10:11:11, 11:11:10, 2:10:10:10) are expanded to 16 bits per component when filtered so they run at half speed. Separate nonfilterable versions of these formats exist that run at full speed.
When filtering 16-bit per component floating-point textures, each 16-bit value is expanded to a 16.16 fixed-point value and filtered, potentially clamping the range of the values. The total size of the expanded values determines at which rate the sampling operates (full speed for one-component sampling, half speed for two-component sampling, and quarter speed for four-component sampling). Separate nonfilterable 16-bit-per-component floating-point formats also exist.
DXT1 compressed textures are expanded to 32 bits per pixel, resulting in a significant improvement in quality over the expansion to 16 bits per pixel that existed on Xbox.
The following new compressed texture formats are available:
• DXN—a two-component 8-bit-per-pixel format made up of two DXT4/5 alpha blocks
• DXT3A—a single-component 4-bit-per-pixel format made up of a DXT2/3 alpha block
• DXT5A—a single-component 4-bit-per-pixel format made up of a DXT4/5 alpha block
• CTX1—a two-component 4-bit-per-pixel format similar to DXT1 but with 8:8 colors instead of 5:6:5 colors
• DXT3A_AS_1_1_1_1—a four-component format encoded in a DXT2/3 alpha block where each bit is expanded into a separate channel
The texture formats with eight or fewer bits per component, including the compressed texture formats, can be gamma corrected using an approximation to the sRGB gamma 2.2 curve to convert from gamma space to linear light space. This correction happens for free and is applied to sampled data prior to any texture filtering.
A special type of texture fetch can index into a texture “stack” that is up to 64 textures deep. A texture stack is a set of 2D textures (potentially with mipmaps) that are stored contiguously in memory.