Texture

Revision as of 09:59, 9 July 2022 by Burninrubber0 (talk | contribs) (Added Xbox 360 texture details.)

Textures are images used in-game, generally either displayed directly or applied to a model. In Burnout Paradise, their format differs heavily between platforms. Despite this, they generally use variations of the same codecs—DXT1, DXT5 and A8R8G8B8. Mipmaps are used systematically throughout the game as well.

Layout

PlayStation 3

The majority of this information is from the SCE PS3 SDK: CellGcmTexture datatype reference, though Burnout's debugging symbols were also referenced.

renderengine::Texture

Offset Length Type Name Description Comments
0x0 0x1 uint8_t m_format Texture format See format
0x1 0x1 uint8_t m_mipmap Number of mipmap levels (1-13) Sum of the maximum number of mipmap levels for the texture + 1
0x2 0x1 uint8_t m_dimension Texture dimension See dimension
0x3 0x1 uint8_t m_cubemap Enable or disable cube mapping See CubeMapEnable
0x4 0x4 uint32_t m_remap Method of selecting each element of the color value See remap
0x8 0x2 uint16_t m_width Width of texture (1-4096)
0xA 0x2 uint16_t m_height Height of texture (1-4096)
0xC 0x2 uint16_t m_depth Depth of texture (1-512) Always 1 in Burnout as 3D textures are not used
0xE 0x1 uint8_t m_location Location of texture data (main memory or local memory) See location
0xF 0x1 uint8_t m_padding
0x10 0x4 uint32_t m_pitch Pitch size of texture See pitch
0x14 0x4 uint32_t m_offset Offset value from the base address of the texture data location
0x18 0x4 void * m_buffer Texture
0x1C 0x4 Type m_storeType Store type See type
0x20 0x4 uint32_t m_storeFlags Store flags Seemingly unused

Format

Swizzling and normalization is not used in Burnout, so these flags are unused.

Below is the bitwise structure for the format field.

Bit Length Comments
0 5 Color format. See color format
5 1 Swizzle flag. See swizzle flag
6 1 Normalization flag. See normalization flag
7 1 Unused, always 1

For example, the following is the DXT5 format as found in Burnout:

Format 0x88
1 0 0 0 1 0 0 0
Unused CELL_GCM_TEXTURE_NR CELL_GCM_TEXTURE_SZ CELL_GCM_TEXTURE_COMPRESSED_DXT45

Remap

The remap order is only used when one of the following color formats is specified:

  • CELL_GCM_TEXTURE_COMPRESSED_HILO8
  • CELL_GCM_TEXTURE_COMPRESSED_HILO_S8
  • CELL_GCM_TEXTURE_X16
  • CELL_GCM_TEXTURE_Y16_X16
  • CELL_GCM_TEXTURE_Y16_X16_FLOAT

These are not used in Burnout, so the remap field is unused.

Below is the bitwise structure for the remap field.

Bit Length Comments
0 16 Remap order
16 2 Output blue element
18 2 Output green element
20 2 Output red element
22 2 Output alpha element
24 2 Input blue element
26 2 Input green element
28 2 Input red element
30 2 Input alpha element

Pitch

Pitch is the texture width multiplied by the bytes per texel. It must be specified when using linear texture formats or DXT compression. If the texture is swizzled or the DXT texture width is a power of 2, pitch is ignored. Otherwise, it must be 16 or more.

Burnout only uses textures with widths at powers of 2, so pitch is unused. However, if it becomes necessary to calculate pitch, the following formula may be used for DXT textures:

pitch = floor((width+3)/4)* block_size

Where block_size is 8 for DXT1 and 16 for DXT2 through DXT5.

Xbox 360

Most of this information is derived from the MS Xbox 360 SDK and Burnout Paradise (2008-01-30 build)'s XDB.

D3DBaseTexture

Offset Length Type Name Description Comments
0x0 0x4 DWORD Common See Common
0x4 0x4 DWORD ReferenceCount
0x8 0x4 DWORD Fence
0xC 0x4 DWORD ReadFence
0x10 0x4 DWORD Identifier
0x14 0x4 DWORD BaseFlush
0x18 0x4 DWORD MipFlush
0x1C 0x18 DWORD[6] GPUTEXTURE_FETCH_CONSTANT See GPUTEXTURE_FETCH_CONSTANT

Common

Based on information from indirivacua.

Bit Length Name Description Comments
0 4 Type D3D resource type See D3DRESOURCETYPE
4 28 Flags D3D resource flags

GPUTEXTURE_FETCH_CONSTANT

To prevent confusion, the structure of GPUTEXTURE_FETCH_CONSTANT is split into its 6 fields and shown in LSB 0 notation.

GPUTEXTURE_FETCH_CONSTANT[0]
Bit Length Name Description Comments
0 2 Type See GPUCONSTANTTYPE
2 2 SignX See GPUSIGN
4 2 SignY See GPUSIGN
6 2 SignZ See GPUSIGN
8 2 SignW See GPUSIGN
10 3 ClampX See GPUCLAMP
13 3 ClampY See GPUCLAMP
16 3 ClampZ See GPUCLAMP
19 2 MultiSample D3D construct: not used by hardware
See GPUMULTISAMPLE_TYPE
21 1 padding
22 9 Pitch
31 1 Tiled
GPUTEXTURE_FETCH_CONSTANT[1]
Bit Length Name Description Comments
0 6 DataFormat See GPUTEXTUREFORMAT
6 2 Endian See GPUENDIAN
8 2 RequestSize See GPUREQUESTSIZE
10 1 Stacked
11 1 ClampPolicy See GPUCLAMPPOLICY
12 20 BaseAddress
GPUTEXTURE_FETCH_CONSTANT[2]
Bit Length Name Description Comments
0 32 Size See GPUTEXTURESIZE
GPUTEXTURE_FETCH_CONSTANT[3]
Bit Length Name Description Comments
0 1 NumFormat See GPUNUMFORMAT
1 3 SwizzleX See GPUSWIZZLE
4 3 SwizzleY See GPUSWIZZLE
7 3 SwizzleZ See GPUSWIZZLE
10 3 SwizzleW See GPUSWIZZLE
13 6 ExpAdjust
19 2 MagFilter See GPUMINMAGFILTER
21 2 MinFilter See GPUMINMAGFILTER
23 2 MipFilter See GPUMIPFILTER
25 3 AnisoFilter See GPUANISOFILTER
28 3 padding
31 1 BorderSize
GPUTEXTURE_FETCH_CONSTANT[4]
Bit Length Name Description Comments
0 1 VolMagFilter See GPUMINMAGFILTER
1 1 VolMinFilter See GPUMINMAGFILTER
2 4 MinMipLevel
6 4 MaxMipLevel
10 1 MagAnisoWalk
11 1 MinAnisoWalk
12 10 LODBias
22 5 GradExpAdjustH
27 5 GradExpAdjustV
GPUTEXTURE_FETCH_CONSTANT[5]
Bit Length Name Description Comments
0 2 BorderColor See GPUBORDERCOLOR
2 1 ForceBCWToMax
3 2 TriClamp See GPUTRICLAMP
5 4 AnisoBias
9 2 Dimension See GPUDIMENSION
11 1 PackedMips
12 20 MipAddress

GPUTEXTURESIZE

Four structures used in the union Size:

Size
Type Name Description Comments
GPUTEXTURESIZE_1D OneD See GPUTEXTURESIZE_1D
GPUTEXTURESIZE_2D TwoD See GPUTEXTURESIZE_2D
GPUTEXTURESIZE_3D ThreeD See GPUTEXTURESIZE_3D
GPUTEXTURESIZE_STACK Stack See GPUTEXTURESIZE_STACK

GPUTEXTURESIZE_1D

Bit Length Name Description Comments
0 24 Width
24 8 padding

GPUTEXTURESIZE_2D

Bit Length Name Description Comments
0 13 Width
13 13 Height
26 6 padding

GPUTEXTURESIZE_3D

Bit Length Name Description Comments
0 11 Width
11 11 Height
22 10 Depth

GPUTEXTURESIZE_STACK

Bit Length Name Description Comments
0 13 Width
13 13 Height
26 6 Depth

Enumerations

PlayStation 3

Much of this information is from the SCE PS3 SDK: GCM Method Macros Overview, section 6.4: TextureFormat. Some information is also from the CellGcmTexture datatype documentation. Various other sources are used.

Color format

Name Value Comments
CELL_GCM_TEXTURE_B8 0x81 One 8-bit unsigned integer
CELL_GCM_TEXTURE_A1R5G5B5 0x82 One 1-bit value and three unsigned 5-bit integers
CELL_GCM_TEXTURE_A4R4G4B4 0x83 Four unsigned 4-bit values
CELL_GCM_TEXTURE_R5G6B5 0x84 5-bit, 6-bit, and 5-bit unsigned integers
CELL_GCM_TEXTURE_A8R8G8B8 0x85 Four 8-bit unsigned integers
CELL_GCM_TEXTURE_COMPRESSED_DXT1 0x86 4x4 pixels compressed to 8 bytes
CELL_GCM_TEXTURE_COMPRESSED_DXT23 0x87 4x4 pixels compressed to 16 bytes
CELL_GCM_TEXTURE_COMPRESSED_DXT45 0x88 4x4 pixels compressed to 16 bytes
CELL_GCM_TEXTURE_G8B8 0x8B Two 8-bit unsigned integers
CELL_GCM_TEXTURE_R6G5B5 0x8F 6-bit, 5-bit, and 5-bit unsigned integers
CELL_GCM_TEXTURE_DEPTH24_D8 0x90 One 24-bit fixed, and 8-bit dummy data
CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT 0x91 One 24-bit float, and 8-bit dummy data
CELL_GCM_TEXTURE_DEPTH16 0x92 One 16-bit fixed
CELL_GCM_TEXTURE_DEPTH16_FLOAT 0x93 One 16-bit float value
CELL_GCM_TEXTURE_X16 0x94 One 16-bit integer
CELL_GCM_TEXTURE_Y16_X16 0x95 Two 16-bit integer
CELL_GCM_TEXTURE_R5G5B5A1 0x97 Three 5-bit unsigned integers, and one 1-bit value
CELL_GCM_TEXTURE_COMPRESSED_HILO8 0x98 Two unsigned 16-bit values compressed to two 8-bit values
CELL_GCM_TEXTURE_COMPRESSED_HILO_S8 0x99 Two signed 16-bit values compressed to two 8-bit values
CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT 0x9A Four 16-bit float values
CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT 0x9B Four 32-bit float values
CELL_GCM_TEXTURE_X32_FLOAT 0x9C One 32-bit float value
CELL_GCM_TEXTURE_D1R5G5B5 0x9D 1-bit dummy data, and three 5-bit unsigned integers
CELL_GCM_TEXTURE_D8R8G8B8 0x9E 8-bit dummy data, and three 8-bit unsigned integers
CELL_GCM_TEXTURE_Y16_X16_FLOAT 0x9F Two 16-bit float values
CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 0xAD Two pixels compressed in the YUV format to 32 bits
CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 0xAE Two pixels compressed in the YUV format to 32 bits

Swizzle flag

Swizzle can only be used when the width is not a power of two. Pitch must be specified.

Name Value Comments
CELL_GCM_TEXTURE_SZ 0x0 Use the swizzle format
CELL_GCM_TEXTURE_LN 0x20 Use the linear format

Normalization flag

Name Value Comments
CELL_GCM_TEXTURE_NR 0x0 Normalize texture coordinates
CELL_GCM_TEXTURE_UN 0x40 Do not normalize texture coordinates

Dimension

Depth textures cannot be 3D.

Name Value Comments
CELL_GCM_TEXTURE_DIMENSION_1 1 1D texture
CELL_GCM_TEXTURE_DIMENSION_2 2 2D texture
CELL_GCM_TEXTURE_DIMENSION_3 3 3D texture

CubeMapEnable

Name Value Comments
CELL_GCM_FALSE 0 Disable
CELL_GCM_TRUE 1 Enable

Location

Name Value Comments
CELL_GCM_LOCATION_LOCAL + 1 1 Local memory
CELL_GCM_LOCATION_MAIN + 1 2 Main memory

renderengine::Texture::Type

Name Value Comments
TYPE_NA -1
TYPE_1D 1
TYPE_2D 2
TYPE_3D 3
TYPE_CUBE 0x10002
TYPE_FORCEENUMSIZEINT 0x7FFFFFFF

Xbox 360

From the MS Xbox 360 SDK and Burnout Paradise (2008-01-30 build)'s XDB.

D3DRESOURCETYPE

Name Value Comments
D3DRTYPE_NONE 0 No resource is specified.
D3DRTYPE_VERTEXBUFFER 1 Vertex buffer resource.
D3DRTYPE_INDEXBUFFER 2 Index buffer resource.
D3DRTYPE_TEXTURE 3 Texture resource.
D3DRTYPE_SURFACE 4 Surface resource.
D3DRTYPE_VERTEXDECLARATION 5 Vertex declaration resource.
D3DRTYPE_VERTEXSHADER 6 Vertex shader resource.
D3DRTYPE_PIXELSHADER 7 Pixel shader resource.
D3DRTYPE_CONSTANTBUFFER 8 Constant buffer resource.
D3DRTYPE_COMMANDBUFFER 9 Command buffer resource.
D3DRTYPE_ASYNCCOMMANDBUFFERCALL 10 Aysnchronous command buffer call resource.
D3DRTYPE_PERFCOUNTERBATCH 11 Performance counter batch resource.
D3DRTYPE_OCCLUSIONQUERYBATCH 12 Occlusion query batch resource.
D3DRTYPE_VOLUME 16 Volume resource.
D3DRTYPE_VOLUMETEXTURE 17 Volume texture resource.
D3DRTYPE_CUBETEXTURE 18 Cube texture resource.
D3DRTYPE_ARRAYTEXTURE 19 Array texture resource.
D3DRTYPE_LINETEXTURE 20 Line texture resource.
D3DRTYPE_FORCE_DWORD 0x7FFFFFFF Forces this enumeration to compile to 32 bits in size. This value is not used.

GPUCONSTANTTYPE

Name Value Comments
GPUCONSTANTTYPE_INVALID_TEXTURE 0
GPUCONSTANTTYPE_INVALID_VERTEX 1
GPUCONSTANTTYPE_TEXTURE 2
GPUCONSTANTTYPE_VERTEX 3

GPUSIGN

Name Value Comments
GPUSIGN_UNSIGNED 0 Indicates that a value is unsigned.
GPUSIGN_SIGNED 1 Indicates that a value is signed.
GPUSIGN_BIAS 2 Indicates that a value is unsigned biased. GPUSIGN_BIAS maps an UNSIGNED value with a range of 0 to 1 into a range of -1 to 1. The equation used to perform the mapping is 2 * x - 1. For example, the UNSIGNED values 0, 0.5 and 1 would map to -1, 0 and 1.
GPUSIGN_GAMMA 3 Indicates that a value is unsigned gamma corrected.

GPUCLAMP

Name Value Comments
GPUCLAMP_WRAP 0
GPUCLAMP_MIRROR 1
GPUCLAMP_CLAMP_TO_LAST 2
GPUCLAMP_MIRROR_ONCE_TO_LAST 3
GPUCLAMP_CLAMP_HALFWAY 4
GPUCLAMP_MIRROR_ONCE_HALFWAY 5
GPUCLAMP_CLAMP_TO_BORDER 6
GPUCLAMP_MIRROR_TO_BORDER 7

GPUMULTISAMPLE_TYPE

Name Value Comments
D3DMULTISAMPLE_NONE 0
D3DMULTISAMPLE_2_SAMPLES 1
D3DMULTISAMPLE_4_SAMPLES 2
D3DMULTISAMPLE_FORCE_DWORD 0x7FFFFFFF

GPUTEXTUREFORMAT

Note that Burnout's textures do not appear to have identical format codes—DXT1 is 52 instead of 51 and DXT5 is 54 instead of 53.

Name Value Comments
GPUTEXTUREFORMAT_1_REVERSE 0
GPUTEXTUREFORMAT_1 1 Texture format with a single 1-bit channel.
GPUTEXTUREFORMAT_8 2 Texture format with a single 8 bit channel.
GPUTEXTUREFORMAT_1_5_5_5 3 Texture format with a single 1-bit channel and three 5-bit channels.
GPUTEXTUREFORMAT_5_6_5 4 Texture format with one 6-bit channel and two 5-bit channels.
GPUTEXTUREFORMAT_6_5_5 5 Texture format with one 6-bit channel and two 5-bit channels.
GPUTEXTUREFORMAT_8_8_8_8 6 Texture format with four 8-bit channels.
GPUTEXTUREFORMAT_2_10_10_10 7 Texture format with a single 2-bit channel and three 10-bit channels.
GPUTEXTUREFORMAT_8_A 8 Texture format with a single 8-bit channel.
GPUTEXTUREFORMAT_8_B 9 Texture format with a single 8-bit channel.
GPUTEXTUREFORMAT_8_8 10 Texture format with two 8-bit channels.
GPUTEXTUREFORMAT_Cr_Y1_Cb_Y0_REP 11 Texture format with two texels stored in each word. Each data value (Cr, Y1, Cb, Y0) is 8 bits. The Cr and Cb specify the chrominance and are shared by both texels. The Y0 and Y1 values specify the luminance of the respective texels.
GPUTEXTUREFORMAT_Y1_Cr_Y0_Cb_REP 12 Texture format with two texels stored in each word. Each data value (Y1, Cr, Y0, Cb) is 8 bits. The Cr and Cb specify the chrominance and are shared by both texels. The Y0 and Y1 values specify the luminance of the respective texels.
GPUTEXTUREFORMAT_16_16_EDRAM 13 Format with two 16-bit channels. Format is not applicable to textures and only applies to render targets in EDRAM.
GPUTEXTUREFORMAT_8_8_8_8_A 14 Texture format with four 8-bit channels.
GPUTEXTUREFORMAT_4_4_4_4 15 Texture format with four 4-bit channels.
GPUTEXTUREFORMAT_10_11_11 16 Texture format with a single 10-bit channel and two 11-bit channels.
GPUTEXTUREFORMAT_11_11_10 17 Texture format with a single 10-bit channel and two 11-bit channels.
GPUTEXTUREFORMAT_DXT1 18 DXT1 compression texture format with 4 bits per texel.
GPUTEXTUREFORMAT_DXT2_3 19 DXT2 compression texture format with 8 bits per texel.
GPUTEXTUREFORMAT_DXT4_5 20 DXT4 compression texture format with 8 bits per texel.
GPUTEXTUREFORMAT_16_16_16_16_EDRAM 21 Format with four 16-bit channels. Format is not applicable to textures and only applies to render targets in EDRAM.
GPUTEXTUREFORMAT_24_8 22 Texture format with a 24-bit channel and an 8-bit channel. When applied to textures the 8-bit channel is ignored. When applied to depth-stencil targets the 8-bit channel maps to stencil.
GPUTEXTUREFORMAT_24_8_FLOAT 23 Texture format with a 24-bit float channel and an 8-bit integer channel. When applied to textures the 8-bit channel is ignored. When applied to depth-stencil targets the 8-bit channel maps to stencil.
GPUTEXTUREFORMAT_16 24 Texture format with a single 16-bit channel.
GPUTEXTUREFORMAT_16_16 25 Texture format with two 16-bit channels.
GPUTEXTUREFORMAT_16_16_16_16 26 Texture format with four 16-bit channels.
GPUTEXTUREFORMAT_16_EXPAND 27 16-bit float texture format that is expanded to 32-bit (16.16) fixed point during sampling to allow filtering. This format samples at half the rate of GPUTEXTUREFORMAT_16.
GPUTEXTUREFORMAT_16_16_EXPAND 28 32-bit float texture format that is expanded to 64-bit (16.16, 16.16) fixed point during sampling to allow filtering. This format samples at half the rate of GPUTEXTUREFORMAT_16_16.
GPUTEXTUREFORMAT_16_16_16_16_EXPAND 29 64-bit float texture format that is expanded to 128-bit (16.16, 16.16, 16.16, 16.16) fixed point during sampling to allow filtering. This format samples at half the rate of GPUTEXTUREFORMAT_16_16_16_16.
GPUTEXTUREFORMAT_16_FLOAT 30 Texture format with a single 16-bit float channel.
GPUTEXTUREFORMAT_16_16_FLOAT 31 Texture format with two 16-bit float channels.
GPUTEXTUREFORMAT_16_16_16_16_FLOAT 32 Texture format with four 16-bit float channels.
GPUTEXTUREFORMAT_32 33 Texture format with a single 32-bit channel.
GPUTEXTUREFORMAT_32_32 34 Texture format with two 32-bit channels.
GPUTEXTUREFORMAT_32_32_32_32 35 Texture format with four 32-bit channels.
GPUTEXTUREFORMAT_32_FLOAT 36 Texture format with a single 32-bit float channel.
GPUTEXTUREFORMAT_32_32_FLOAT 37 Texture format with two 32-bit float channels.
GPUTEXTUREFORMAT_32_32_32_32_FLOAT 38 Texture format with four 32-bit float channels.
GPUTEXTUREFORMAT_32_AS_8 39 Texture format with a single 32-bit channel that is stored as an 8-bit channel in the texture cache.
GPUTEXTUREFORMAT_32_AS_8_8 40 Texture format with a single 32-bit channel that is stored as two 8-bit channels in the texture cache.
GPUTEXTUREFORMAT_16_MPEG 41 Texture format with a single 16-bit channel.
GPUTEXTUREFORMAT_16_16_MPEG 42 Texture format with two 16-bit channels.
GPUTEXTUREFORMAT_8_INTERLACED 43 Texture format with a single 8-bit channel.
GPUTEXTUREFORMAT_32_AS_8_INTERLACED 44 Texture format with a single 32-bit channel that is stored as an 8-bit channel in the texture cache.
GPUTEXTUREFORMAT_32_AS_8_8_INTERLACED 45 Texture format with a single 32-bit channel that is stored as two 8-bit channels in the texture cache.
GPUTEXTUREFORMAT_16_INTERLACED 46 Texture format with a single 16-bit channel.
GPUTEXTUREFORMAT_16_MPEG_INTERLACED 47 Texture format with a single 16-bit channel.
GPUTEXTUREFORMAT_16_16_MPEG_INTERLACED 48 Texture format with two 16-bit channels.
GPUTEXTUREFORMAT_DXN 49 Two-component 8-bit per texel format made up of two DXT4/5 alpha blocks.
GPUTEXTUREFORMAT_8_8_8_8_AS_16_16_16_16 50 GPUTEXTUREFORMAT_8_8_8_8 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_DXT1_AS_16_16_16_16 51 GPUTEXTUREFORMAT_DXT1 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_DXT2_3_AS_16_16_16_16 52 GPUTEXTUREFORMAT_DXT2_3 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_DXT4_5_AS_16_16_16_16 53 GPUTEXTUREFORMAT_DXT4_5 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_2_10_10_10_AS_16_16_16_16 54 GPUTEXTUREFORMAT_2_10_10_10 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_10_11_11_AS_16_16_16_16 55 GPUTEXTUREFORMAT_10_11_11 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_11_11_10_AS_16_16_16_16 56 GPUTEXTUREFORMAT_11_11_10 texture format that is stored as four 16-bit channels in the texture cache.
GPUTEXTUREFORMAT_32_32_32_FLOAT 57 Texture format with three 32-bit float channels.
GPUTEXTUREFORMAT_DXT3A 58 Single-component 4-bit per texel format made up of a DXT2/3 alpha block.
GPUTEXTUREFORMAT_DXT5A 59 Single-component 4-bit per texel format made up of a DXT4/5 alpha block.
GPUTEXTUREFORMAT_CTX1 60 Two-component 4-bit per texel format similar to DXT1 but with 8:8 colors instead of 5:6:5 colors.
GPUTEXTUREFORMAT_DXT3A_AS_1_1_1_1 61 Four-component format encoded in a DXT2/3 alpha block where each bit is expanded into a separate channel.
GPUTEXTUREFORMAT_8_8_8_8_GAMMA_EDRAM 62 Format with four 8-bit channels. Format is not applicable to textures and only applies to render targets in EDRAM.
GPUTEXTUREFORMAT_2_10_10_10_FLOAT_EDRAM 63 Format with a single 2-bit float channel and three 10-bit float channels. Format is not applicable to textures and only applies to render targets in EDRAM.

GPUENDIAN

Name Value Comments
GPUENDIAN_NONE 0
GPUENDIAN_8IN16 1
GPUENDIAN_8IN32 2
GPUENDIAN_16IN32 3

GPUREQUESTSIZE

Name Value Comments
GPUREQUESTSIZE_256BIT 0
GPUREQUESTSIZE_512BIT 1

GPUCLAMPPOLICY

Name Value Comments
GPUCLAMPPOLICY_D3D 0
GPUCLAMPPOLICY_OGL 1

GPUNUMFORMAT

Name Value Comments
GPUNUMFORMAT_FRACTION 0 Indicates that a value is a fraction.
GPUNUMFORMAT_INTEGER 1 Indicates that a value is an integer.

GPUSWIZZLE

Name Value Comments
GPUSWIZZLE_X 0 Describes the X component of a register.
GPUSWIZZLE_Y 1 Describes the Y component of a register.
GPUSWIZZLE_Z 2 Describes the Z component of a register.
GPUSWIZZLE_W 3 Describes the W component of a register.
GPUSWIZZLE_0 4 Describes the 0 component of a register.
GPUSWIZZLE_1 5 Describes the 1 component of a register.

GPUMINMAGFILTER

Name Value Comments
GPUMINMAGFILTER_POINT 0
GPUMINMAGFILTER_LINEAR 1
GPUMINMAGFILTER_KEEP 2

GPUMIPFILTER

Name Value Comments
GPUMIPFILTER_POINT 0
GPUMIPFILTER_LINEAR 1
GPUMIPFILTER_BASEMAP 2
GPUMIPFILTER_KEEP 3

GPUANISOFILTER

Name Value Comments
GPUANISOFILTER_DISABLED 0
GPUANISOFILTER_MAX1TO1 1
GPUANISOFILTER_MAX2TO1 2
GPUANISOFILTER_MAX4TO1 3
GPUANISOFILTER_MAX8TO1 4
GPUANISOFILTER_MAX16TO1 5
GPUANISOFILTER_KEEP 7

GPUBORDERCOLOR

Name Value Comments
GPUBORDERCOLOR_ABGR_BLACK 0
GPUBORDERCOLOR_ABGR_WHITE 1
GPUBORDERCOLOR_ACBYCR_BLACK 2
GPUBORDERCOLOR_ACBCRY_BLACK 3

GPUTRICLAMP

Name Value Comments
GPUTRICLAMP_NORMAL 0
GPUTRICLAMP_ONE_SIXTH 1
GPUTRICLAMP_ONE_FOURTH 2
GPUTRICLAMP_THREE_EIGHTHS 3

GPUDIMENSION

Name Value Comments
GPUDIMENSION_1D 0
GPUDIMENSION_2D 1
GPUDIMENSION_3D 2
GPUDIMENSION_CUBEMAP 3