SDL_GPUTextureFormat

Specifies the pixel format of a texture.

Texture format support varies depending on driver, hardware, and usage flags. In general, you should use SDL_GPUTextureSupportsFormat to query if a format is supported before using it. However, there are a few guaranteed formats.

FIXME: Check universal support for 32-bit component formats FIXME: Check universal support for SIMULTANEOUS_READ_WRITE

For SAMPLER usage, the following formats are universally supported:

- R8G8B8A8_UNORM - B8G8R8A8_UNORM - R8_UNORM - R8_SNORM - R8G8_UNORM - R8G8_SNORM - R8G8B8A8_SNORM - R16_FLOAT - R16G16_FLOAT - R16G16B16A16_FLOAT - R32_FLOAT - R32G32_FLOAT - R32G32B32A32_FLOAT - R11G11B10_UFLOAT - R8G8B8A8_UNORM_SRGB - B8G8R8A8_UNORM_SRGB - D16_UNORM

For COLOR_TARGET usage, the following formats are universally supported:

- R8G8B8A8_UNORM - B8G8R8A8_UNORM - R8_UNORM - R16_FLOAT - R16G16_FLOAT - R16G16B16A16_FLOAT - R32_FLOAT - R32G32_FLOAT - R32G32B32A32_FLOAT - R8_UINT - R8G8_UINT - R8G8B8A8_UINT - R16_UINT - R16G16_UINT - R16G16B16A16_UINT - R8_INT - R8G8_INT - R8G8B8A8_INT - R16_INT - R16G16_INT - R16G16B16A16_INT - R8G8B8A8_UNORM_SRGB - B8G8R8A8_UNORM_SRGB

For STORAGE usages, the following formats are universally supported:

- R8G8B8A8_UNORM - R8G8B8A8_SNORM - R16G16B16A16_FLOAT - R32_FLOAT - R32G32_FLOAT - R32G32B32A32_FLOAT - R8G8B8A8_UINT - R16G16B16A16_UINT - R8G8B8A8_INT - R16G16B16A16_INT

For DEPTH_STENCIL_TARGET usage, the following formats are universally supported:

- D16_UNORM - Either (but not necessarily both!) D24_UNORM or D32_FLOAT - Either (but not necessarily both!) D24_UNORM_S8_UINT or D32_FLOAT_S8_UINT

Unless D16_UNORM is sufficient for your purposes, always check which of D24/D32 is supported before creating a depth-stencil texture!

More...

Values

ValueMeaning
SDL_GPU_TEXTUREFORMAT_INVALID
SDL_GPU_TEXTUREFORMAT_A8_UNORM
SDL_GPU_TEXTUREFORMAT_R8_UNORM
SDL_GPU_TEXTUREFORMAT_R8G8_UNORM
SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM
SDL_GPU_TEXTUREFORMAT_R16_UNORM
SDL_GPU_TEXTUREFORMAT_R16G16_UNORM
SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM
SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM
SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM
SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM
SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM
SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM
SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM
SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM
SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM
SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM
SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM
SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM
SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT
SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT
SDL_GPU_TEXTUREFORMAT_R8_SNORM
SDL_GPU_TEXTUREFORMAT_R8G8_SNORM
SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM
SDL_GPU_TEXTUREFORMAT_R16_SNORM
SDL_GPU_TEXTUREFORMAT_R16G16_SNORM
SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM
SDL_GPU_TEXTUREFORMAT_R16_FLOAT
SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT
SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT
SDL_GPU_TEXTUREFORMAT_R32_FLOAT
SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT
SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT
SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT
SDL_GPU_TEXTUREFORMAT_R8_UINT
SDL_GPU_TEXTUREFORMAT_R8G8_UINT
SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT
SDL_GPU_TEXTUREFORMAT_R16_UINT
SDL_GPU_TEXTUREFORMAT_R16G16_UINT
SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT
SDL_GPU_TEXTUREFORMAT_R32_UINT
SDL_GPU_TEXTUREFORMAT_R32G32_UINT
SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT
SDL_GPU_TEXTUREFORMAT_R8_INT
SDL_GPU_TEXTUREFORMAT_R8G8_INT
SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT
SDL_GPU_TEXTUREFORMAT_R16_INT
SDL_GPU_TEXTUREFORMAT_R16G16_INT
SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT
SDL_GPU_TEXTUREFORMAT_R32_INT
SDL_GPU_TEXTUREFORMAT_R32G32_INT
SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT
SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_D16_UNORM
SDL_GPU_TEXTUREFORMAT_D24_UNORM
SDL_GPU_TEXTUREFORMAT_D32_FLOAT
SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT
SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT
SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT

Detailed Description

Meta