1# Copyright 2024 Collabora Ltd. 2# SPDX-License-Identifier: MIT 3 4# Columns: 5# name: PIPE_FORMAT enum 6# czt: Color/Z target format if renderable or NONE 7# tcs: TIC component sizes 8# type: Data type: 9# S: SNORM 10# N: UNORM 11# I: SINT 12# U: UINT 13# F: FLOAT 14# src: Swizzle of the form RGBAX01 15# caps: Format capabilities: 16# C: Color target 17# T: Texture 18# Z: Depth/stencil target 19# B: Bufer 20# A: Alpha blend 21# S: Storage 22# D: Scanout 23# hw: First hardware generation on which the format 24 25# name czt tcs type src support hw 26 27R1_UNORM , NONE , R1 , N , R001 , T 28 29A4B4G4R4_UNORM , NONE , A4B4G4R4 , NNNN , ABGR , T 30A4R4G4B4_UNORM , NONE , A4B4G4R4 , NNNN , GBAR , T 31B4G4R4A4_UNORM , NONE , A4B4G4R4 , NNNN , BGRA , T 32B4G4R4X4_UNORM , NONE , A4B4G4R4 , NNNN , BGR1 , T 33R4G4B4A4_UNORM , NONE , A4B4G4R4 , NNNN , RGBA , T 34R4G4B4X4_UNORM , NONE , A4B4G4R4 , NNNN , RGB1 , T 35 36B5G6R5_UNORM , R5G6B5 , B5G6R5 , NNN , BGR1 , CTAD 37R5G6B5_UNORM , NONE , B5G6R5 , NNN , RGB1 , T 38R5G5B5A1_UNORM , NONE , A1B5G5R5 , NNNN , RGBA , T 39B5G5R5A1_UNORM , A1R5G5B5 , A1B5G5R5 , NNNN , BGRA , CTAD 40B5G5R5X1_UNORM , X1R5G5B5 , A1B5G5R5 , NNNN , BGR1 , CTAD 41 42R8_UNORM , R8 , R8 , N , R001 , CTBSA 43R8_SNORM , RN8 , R8 , S , R001 , CTBSA 44R8_SINT , RS8 , R8 , I , R001 , CTBS 45R8_UINT , RU8 , R8 , U , R001 , CTBS 46R8_SRGB , NONE , R8 , N , R001 , T 47 48R8G8_UNORM , G8R8 , G8R8 , NN , RG01 , CTBSA 49R8G8_SNORM , GN8RN8 , G8R8 , SS , RG01 , CTBSA 50R8G8_SINT , GS8RS8 , G8R8 , II , RG01 , CTBS 51R8G8_UINT , GU8RU8 , G8R8 , UU , RG01 , CTBS 52# On Fermi+, the green component doesn't get decoding? 53# R8G8_SRGB , NONE , G8R8 , NN , RG01 , T 54 55# BGRA display formats 56B8G8R8A8_UNORM , A8R8G8B8 , A8B8G8R8 , NNNN , BGRA , CTBASD 57B8G8R8X8_UNORM , X8R8G8B8 , A8B8G8R8 , NNNN , BGR1 , CTAD 58B8G8R8A8_SRGB , A8RL8GL8BL8 , A8B8G8R8 , NNNN , BGRA , CTAD 59B8G8R8X8_SRGB , X8RL8GL8BL8 , A8B8G8R8 , NNNN , BGR1 , CTAD 60R8G8B8A8_UNORM , A8B8G8R8 , A8B8G8R8 , NNNN , RGBA , CTBSA 61R8G8B8X8_UNORM , X8B8G8R8 , A8B8G8R8 , NNNN , RGB1 , CTA 62R8G8B8A8_SRGB , A8BL8GL8RL8 , A8B8G8R8 , NNNN , RGBA , CTA 63R8G8B8X8_SRGB , X8BL8GL8RL8 , A8B8G8R8 , NNNN , RGB1 , CTA 64 65R8G8B8A8_SNORM , AN8BN8GN8RN8 , A8B8G8R8 , SSSS , RGBA , CTBSA 66R8G8B8A8_SINT , AS8BS8GS8RS8 , A8B8G8R8 , IIII , RGBA , CTBS 67R8G8B8A8_UINT , AU8BU8GU8RU8 , A8B8G8R8 , UUUU , RGBA , CTBS 68R8G8B8X8_SNORM , AN8BN8GN8RN8 , A8B8G8R8 , SSSS , RGB1 , T 69R8G8B8X8_SINT , AS8BS8GS8RS8 , A8B8G8R8 , IIII , RGB1 , CT 70R8G8B8X8_UINT , AU8BU8GU8RU8 , A8B8G8R8 , UUUU , RGB1 , CT 71 72R9G9B9E5_FLOAT , NONE , E5B9G9R9_SHAREDEXP, FFFF , RGB1 , T 73 74R10G10B10A2_UNORM , A2B10G10R10 , A2B10G10R10 , NNNN , RGBA , TCBASD 75R10G10B10X2_UNORM , A2B10G10R10 , A2B10G10R10 , NNN , RGB1 , T 76B10G10R10A2_UNORM , A2R10G10B10 , A2B10G10R10 , NNNN , BGRA , CTA 77B10G10R10X2_UNORM , A2R10G10B10 , A2B10G10R10 , NNN , BGR1 , T 78R10G10B10A2_UINT , AU2BU10GU10RU10 , A2B10G10R10 , UUUU , RGBA , CTBS 79B10G10R10A2_UINT , NONE , A2B10G10R10 , UUUU , BGRA , TB 80 81# These formats are disabled because the image/texture hardware doesn't clamp 82# the 2-bit SNORM alpha to [-1, 1] so you can end up with a = -2 which is out 83# of spec for both GL and Vulkan. 84# R10G10B10A2_SNORM , NONE , A2B10G10R10 , SSSS , RGBA , T 85# B10G10R10A2_SNORM , NONE , A2B10G10R10 , SSSS , BGRA , T 86 87R11G11B10_FLOAT , BF10GF11RF11 , BF10GF11RF11 , FFF , RGB1 , CTBSA 88 89R16_FLOAT , RF16 , R16 , F , R001 , CTBSA 90R16_UNORM , R16 , R16 , N , R001 , CTBSA 91R16_SNORM , RN16 , R16 , S , R001 , CTBSA 92R16_SINT , RS16 , R16 , I , R001 , CTBS 93R16_UINT , RU16 , R16 , U , R001 , CTBS 94 95R16G16_FLOAT , RF16_GF16 , R16_G16 , FF , RG01 , CTBSA 96R16G16_UNORM , R16_G16 , R16_G16 , NN , RG01 , CTBSA 97R16G16_SNORM , RN16_GN16 , R16_G16 , SS , RG01 , CTBSA 98R16G16_SINT , RS16_GS16 , R16_G16 , II , RG01 , CTBS 99R16G16_UINT , RU16_GU16 , R16_G16 , UU , RG01 , CTBS 100 101R16G16B16A16_FLOAT , RF16_GF16_BF16_AF16 , R16_G16_B16_A16 , FFFF , RGBA , CTBSA 102R16G16B16A16_UNORM , R16_G16_B16_A16 , R16_G16_B16_A16 , NNNN , RGBA , CTBSA 103R16G16B16A16_SNORM , RN16_GN16_BN16_AN16 , R16_G16_B16_A16 , SSSS , RGBA , CTBSA 104R16G16B16A16_SINT , RS16_GS16_BS16_AS16 , R16_G16_B16_A16 , IIII , RGBA , CTBS 105R16G16B16A16_UINT , RU16_GU16_BU16_AU16 , R16_G16_B16_A16 , UUUU , RGBA , CTBS 106R16G16B16X16_FLOAT , RF16_GF16_BF16_X16 , R16_G16_B16_A16 , FFFF , RGB1 , CTA 107R16G16B16X16_UNORM , R16_G16_B16_A16 , R16_G16_B16_A16 , NNNN , RGB1 , T 108R16G16B16X16_SNORM , RN16_GN16_BN16_AN16 , R16_G16_B16_A16 , SSSS , RGB1 , T 109R16G16B16X16_SINT , RS16_GS16_BS16_AS16 , R16_G16_B16_A16 , IIII , RGB1 , CT 110R16G16B16X16_UINT , RU16_GU16_BU16_AU16 , R16_G16_B16_A16 , UUUU , RGB1 , CT 111 112R32_FLOAT , RF32 , R32 , F , R001 , CTBSA 113R32_UNORM , NONE , R32 , N , R001 , T 114R32_SNORM , NONE , R32 , S , R001 , T 115R32_SINT , RS32 , R32 , I , R001 , CTBS 116R32_UINT , RU32 , R32 , U , R001 , CTBS 117 118R32G32_FLOAT , RF32_GF32 , R32_G32 , FF , RG01 , CTBSA 119R32G32_UNORM , NONE , R32_G32 , NN , RG01 , T 120R32G32_SNORM , NONE , R32_G32 , SS , RG01 , T 121R32G32_SINT , RS32_GS32 , R32_G32 , II , RG01 , CTBS 122R32G32_UINT , RU32_GU32 , R32_G32 , UU , RG01 , CTBS 123 124R32G32B32_FLOAT , NONE , R32_G32_B32 , FFF , RGB1 , TB 125R32G32B32_SINT , NONE , R32_G32_B32 , III , RGB1 , TB 126R32G32B32_UINT , NONE , R32_G32_B32 , UUU , RGB1 , TB 127 128R32G32B32A32_FLOAT , RF32_GF32_BF32_AF32 , R32_G32_B32_A32 , FFFF , RGBA , CTBSA 129R32G32B32A32_UNORM , NONE , R32_G32_B32_A32 , NNNN , RGBA , T 130R32G32B32A32_SNORM , NONE , R32_G32_B32_A32 , SSSS , RGBA , T 131R32G32B32A32_SINT , RS32_GS32_BS32_AS32 , R32_G32_B32_A32 , IIII , RGBA , CTBS 132R32G32B32A32_UINT , RU32_GU32_BU32_AU32 , R32_G32_B32_A32 , UUUU , RGBA , CTBS 133R32G32B32X32_FLOAT , RF32_GF32_BF32_X32 , R32_G32_B32_A32 , FFFF , RGB1 , CTA 134R32G32B32X32_SINT , RS32_GS32_BS32_X32 , R32_G32_B32_A32 , IIII , RGB1 , CT 135R32G32B32X32_UINT , RU32_GU32_BU32_X32 , R32_G32_B32_A32 , UUUU , RGB1 , CT 136 137R64_SINT , NONE , R32_G32 , II , RG01 , S 138R64_UINT , NONE , R32_G32 , UU , RG01 , S 139 140# Depth/stencil formats 141Z16_UNORM , Z16 , Z16 , N , R001 , TZ , MaxwellA 142Z32_FLOAT , ZF32 , ZF32 , F , R001 , TZ 143Z24X8_UNORM , X8Z24 , X8Z24 , NU , R001 , TZ 144X8Z24_UNORM , Z24S8 , Z24S8 , UN , G001 , TZ 145Z24_UNORM_S8_UINT , S8Z24 , S8Z24 , NU , R001 , TZ 146S8_UINT_Z24_UNORM , Z24S8 , Z24S8 , UN , G001 , TZ 147Z32_FLOAT_S8X24_UINT , ZF32_X24S8 , ZF32_X24S8 , FU , R001 , TZ 148 149# Stencil-only formats 150S8_UINT , S8 , R8 , U , R001 , TZ , MaxwellB 151X24S8_UINT , NONE , G8R24 , UU , G001 , T 152S8X24_UINT , NONE , G24R8 , UU , R001 , T 153X32_S8X24_UINT , NONE , R32_B24G8 , UU , G001 , T 154 155# Luminance formats 156L8_UNORM , R8 , R8 , N , RRR1 , CTA 157L8_SRGB , NONE , R8 , N , RRR1 , T 158L8_SNORM , RN8 , R8 , S , RRR1 , CTA 159L8_SINT , RS8 , R8 , I , RRR1 , CT 160L8_UINT , RU8 , R8 , U , RRR1 , CT 161L16_UNORM , R16 , R16 , N , RRR1 , CTA 162L16_SNORM , RN16 , R16 , S , RRR1 , CTA 163L16_FLOAT , RF16 , R16 , F , RRR1 , CTA 164L16_SINT , RS16 , R16 , I , RRR1 , CT 165L16_UINT , RU16 , R16 , U , RRR1 , CT 166L32_FLOAT , RF32 , R32 , F , RRR1 , CTA 167L32_SINT , RS32 , R32 , I , RRR1 , CT 168L32_UINT , RU32 , R32 , U , RRR1 , CT 169 170# Intensity formats 171I8_UNORM , R8 , R8 , N , RRRR , CT 172I8_SNORM , RN8 , R8 , S , RRRR , CT 173I8_SINT , RS8 , R8 , I , RRRR , CT 174I8_UINT , RU8 , R8 , U , RRRR , CT 175I16_UNORM , R16 , R16 , N , RRRR , CT 176I16_SNORM , RN16 , R16 , S , RRRR , CT 177I16_FLOAT , RF16 , R16 , F , RRRR , CT 178I16_SINT , RS16 , R16 , I , RRRR , CT 179I16_UINT , RU16 , R16 , U , RRRR , CT 180I32_FLOAT , RF32 , R32 , F , RRRR , CT 181I32_SINT , RS32 , R32 , I , RRRR , CT 182I32_UINT , RU32 , R32 , U , RRRR , CT 183 184# Alpha formats 185A8_UNORM , A8 , R8 , N , 000R , CTBSA 186A8_SNORM , NONE , R8 , S , 000R , T 187A8_SINT , NONE , R8 , I , 000R , T 188A8_UINT , NONE , R8 , U , 000R , T 189A16_UNORM , NONE , R16 , N , 000R , T 190A16_SNORM , NONE , R16 , S , 000R , T 191A16_FLOAT , AF16 , R16 , F , 000R , T 192A16_SINT , NONE , R16 , I , 000R , T 193A16_UINT , NONE , R16 , U , 000R , T 194A32_FLOAT , AF32 , R32 , F , 000R , T 195A32_SINT , NONE , R32 , I , 000R , T 196A32_UINT , NONE , R32 , U , 000R , T 197 198# Luminance/alpha formats 199L4A4_UNORM , NONE , G4R4 , NN , RRRG , T 200L8A8_UNORM , NONE , G8R8 , NN , RRRG , T 201L8A8_SNORM , NONE , G8R8 , SS , RRRG , T 202L8A8_SRGB , NONE , G8R8 , NN , RRRG , T 203L8A8_SINT , NONE , G8R8 , II , RRRG , T 204L8A8_UINT , NONE , G8R8 , UU , RRRG , T 205L16A16_UNORM , NONE , R16_G16 , NN , RRRG , T 206L16A16_SNORM , NONE , R16_G16 , SS , RRRG , T 207L16A16_FLOAT , NONE , R16_G16 , FF , RRRG , T 208L16A16_SINT , NONE , R16_G16 , II , RRRG , T 209L16A16_UINT , NONE , R16_G16 , UU , RRRG , T 210L32A32_FLOAT , NONE , R32_G32 , FF , RRRG , T 211L32A32_SINT , NONE , R32_G32 , II , RRRG , T 212L32A32_UINT , NONE , R32_G32 , UU , RRRG , T 213 214# Red/alpha formats 215R4A4_UNORM , NONE , G4R4 , NN , R00G , T 216R8A8_UNORM , NONE , G8R8 , NN , R00G , T 217A4R4_UNORM , NONE , G4R4 , NN , G00R , T 218A8R8_UNORM , NONE , G8R8 , NN , G00R , T 219 220# YCbCr formats 221R8G8_B8G8_UNORM , NONE , G8B8G8R8 , NNNN , RGB1 , T 222G8R8_B8R8_UNORM , NONE , G8B8G8R8 , NNNN , GRB1 , T 223G8R8_G8B8_UNORM , NONE , B8G8R8G8 , NNNN , RGB1 , T 224R8G8_R8B8_UNORM , NONE , B8G8R8G8 , NNNN , GRB1 , T 225G8B8_G8R8_UNORM , NONE , B8G8R8G8 , NNNN , BGR1 , T 226B8G8_R8G8_UNORM , NONE , G8B8G8R8 , NNNN , BGR1 , T 227 228# Weird D3D9 formats 229R8SG8SB8UX8U_NORM , NONE , A8B8G8R8 , SSNN , RGB1 , T 230R5SG5SB6U_NORM , NONE , B6G5R5 , SSNN , RGB1 , T 231 232# DXT compressed formats 233DXT1_RGB , NONE , DXT1 , NNNN , RGB1 , T 234DXT1_SRGB , NONE , DXT1 , NNNN , RGB1 , T 235DXT1_RGBA , NONE , DXT1 , NNNN , RGBA , T 236DXT1_SRGBA , NONE , DXT1 , NNNN , RGBA , T 237DXT3_RGBA , NONE , DXT23 , NNNN , RGBA , T 238DXT3_SRGBA , NONE , DXT23 , NNNN , RGBA , T 239DXT5_RGBA , NONE , DXT45 , NNNN , RGBA , T 240DXT5_SRGBA , NONE , DXT45 , NNNN , RGBA , T 241 242RGTC1_UNORM , NONE , DXN1 , NNNN , R001 , T 243RGTC1_SNORM , NONE , DXN1 , SSSS , R001 , T 244RGTC2_UNORM , NONE , DXN2 , NNNN , RG01 , T 245RGTC2_SNORM , NONE , DXN2 , SSSS , RG01 , T 246LATC1_UNORM , NONE , DXN1 , NNNN , RRR1 , T 247LATC1_SNORM , NONE , DXN1 , SSSS , RRR1 , T 248LATC2_UNORM , NONE , DXN2 , NNNN , RRRG , T 249LATC2_SNORM , NONE , DXN2 , SSSS , RRRG , T 250 251BPTC_RGBA_UNORM , NONE , BC7U , NNNN , RGBA , T 252BPTC_SRGBA , NONE , BC7U , NNNN , RGBA , T 253BPTC_RGB_FLOAT , NONE , BC6H_SF16 , FFFF , RGB1 , T 254BPTC_RGB_UFLOAT , NONE , BC6H_UF16 , FFFF , RGB1 , T 255 256ETC1_RGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , MaxwellA 257ETC2_RGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , MaxwellA 258ETC2_SRGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , MaxwellA 259ETC2_RGB8A1 , NONE , ETC2_RGB_PTA , NNNN , RGBA , T , MaxwellA 260ETC2_SRGB8A1 , NONE , ETC2_RGB_PTA , NNNN , RGBA , T , MaxwellA 261ETC2_RGBA8 , NONE , ETC2_RGBA , NNNN , RGBA , T , MaxwellA 262ETC2_SRGBA8 , NONE , ETC2_RGBA , NNNN , RGBA , T , MaxwellA 263ETC2_R11_UNORM , NONE , EAC , NNNN , R001 , T , MaxwellA 264ETC2_R11_SNORM , NONE , EAC , SSSS , R001 , T , MaxwellA 265ETC2_RG11_UNORM , NONE , EACX2 , NNNN , RG01 , T , MaxwellA 266ETC2_RG11_SNORM , NONE , EACX2 , SSSS , RG01 , T , MaxwellA 267 268# ASTC compressed formats 269ASTC_4x4 , NONE , ASTC_2D_4X4 , NNNN , RGBA , T , TK1 270ASTC_5x4 , NONE , ASTC_2D_5X4 , NNNN , RGBA , T , TK1 271ASTC_5x5 , NONE , ASTC_2D_5X5 , NNNN , RGBA , T , TK1 272ASTC_6x5 , NONE , ASTC_2D_6X5 , NNNN , RGBA , T , TK1 273ASTC_6x6 , NONE , ASTC_2D_6X6 , NNNN , RGBA , T , TK1 274ASTC_8x5 , NONE , ASTC_2D_8X5 , NNNN , RGBA , T , TK1 275ASTC_8x6 , NONE , ASTC_2D_8X6 , NNNN , RGBA , T , TK1 276ASTC_8x8 , NONE , ASTC_2D_8X8 , NNNN , RGBA , T , TK1 277ASTC_10x5 , NONE , ASTC_2D_10X5 , NNNN , RGBA , T , TK1 278ASTC_10x6 , NONE , ASTC_2D_10X6 , NNNN , RGBA , T , TK1 279ASTC_10x8 , NONE , ASTC_2D_10X8 , NNNN , RGBA , T , TK1 280ASTC_10x10 , NONE , ASTC_2D_10X10 , NNNN , RGBA , T , TK1 281ASTC_12x10 , NONE , ASTC_2D_12X10 , NNNN , RGBA , T , TK1 282ASTC_12x12 , NONE , ASTC_2D_12X12 , NNNN , RGBA , T , TK1 283 284ASTC_4x4_SRGB , NONE , ASTC_2D_4X4 , NNNN , RGBA , T , TK1 285ASTC_5x4_SRGB , NONE , ASTC_2D_5X4 , NNNN , RGBA , T , TK1 286ASTC_5x5_SRGB , NONE , ASTC_2D_5X5 , NNNN , RGBA , T , TK1 287ASTC_6x5_SRGB , NONE , ASTC_2D_6X5 , NNNN , RGBA , T , TK1 288ASTC_6x6_SRGB , NONE , ASTC_2D_6X6 , NNNN , RGBA , T , TK1 289ASTC_8x5_SRGB , NONE , ASTC_2D_8X5 , NNNN , RGBA , T , TK1 290ASTC_8x6_SRGB , NONE , ASTC_2D_8X6 , NNNN , RGBA , T , TK1 291ASTC_8x8_SRGB , NONE , ASTC_2D_8X8 , NNNN , RGBA , T , TK1 292ASTC_10x5_SRGB , NONE , ASTC_2D_10X5 , NNNN , RGBA , T , TK1 293ASTC_10x6_SRGB , NONE , ASTC_2D_10X6 , NNNN , RGBA , T , TK1 294ASTC_10x8_SRGB , NONE , ASTC_2D_10X8 , NNNN , RGBA , T , TK1 295ASTC_10x10_SRGB , NONE , ASTC_2D_10X10 , NNNN , RGBA , T , TK1 296ASTC_12x10_SRGB , NONE , ASTC_2D_12X10 , NNNN , RGBA , T , TK1 297ASTC_12x12_SRGB , NONE , ASTC_2D_12X12 , NNNN , RGBA , T , TK1 298