1bf215546Sopenharmony_ci<?xml version="1.0" encoding="UTF-8"?> 2bf215546Sopenharmony_ci<database xmlns="http://nouveau.freedesktop.org/" 3bf215546Sopenharmony_cixmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4bf215546Sopenharmony_cixsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd"> 5bf215546Sopenharmony_ci<import file="freedreno_copyright.xml"/> 6bf215546Sopenharmony_ci<import file="adreno/adreno_common.xml"/> 7bf215546Sopenharmony_ci<import file="adreno/adreno_pm4.xml"/> 8bf215546Sopenharmony_ci 9bf215546Sopenharmony_ci<enum name="a3xx_tile_mode"> 10bf215546Sopenharmony_ci <value name="LINEAR" value="0"/> 11bf215546Sopenharmony_ci <value name="TILE_4X4" value="1"/> <!-- "normal" case for textures --> 12bf215546Sopenharmony_ci <value name="TILE_32X32" value="2"/> <!-- only used in GMEM --> 13bf215546Sopenharmony_ci <value name="TILE_4X2" value="3"/> <!-- only used for CrCb --> 14bf215546Sopenharmony_ci</enum> 15bf215546Sopenharmony_ci 16bf215546Sopenharmony_ci<enum name="a3xx_state_block_id"> 17bf215546Sopenharmony_ci <value name="HLSQ_BLOCK_ID_TP_TEX" value="2"/> 18bf215546Sopenharmony_ci <value name="HLSQ_BLOCK_ID_TP_MIPMAP" value="3"/> 19bf215546Sopenharmony_ci <value name="HLSQ_BLOCK_ID_SP_VS" value="4"/> 20bf215546Sopenharmony_ci <value name="HLSQ_BLOCK_ID_SP_FS" value="6"/> 21bf215546Sopenharmony_ci</enum> 22bf215546Sopenharmony_ci 23bf215546Sopenharmony_ci<enum name="a3xx_cache_opcode"> 24bf215546Sopenharmony_ci <value name="INVALIDATE" value="1"/> 25bf215546Sopenharmony_ci</enum> 26bf215546Sopenharmony_ci 27bf215546Sopenharmony_ci<enum name="a3xx_vtx_fmt"> 28bf215546Sopenharmony_ci <value name="VFMT_32_FLOAT" value="0x0"/> 29bf215546Sopenharmony_ci <value name="VFMT_32_32_FLOAT" value="0x1"/> 30bf215546Sopenharmony_ci <value name="VFMT_32_32_32_FLOAT" value="0x2"/> 31bf215546Sopenharmony_ci <value name="VFMT_32_32_32_32_FLOAT" value="0x3"/> 32bf215546Sopenharmony_ci 33bf215546Sopenharmony_ci <value name="VFMT_16_FLOAT" value="0x4"/> 34bf215546Sopenharmony_ci <value name="VFMT_16_16_FLOAT" value="0x5"/> 35bf215546Sopenharmony_ci <value name="VFMT_16_16_16_FLOAT" value="0x6"/> 36bf215546Sopenharmony_ci <value name="VFMT_16_16_16_16_FLOAT" value="0x7"/> 37bf215546Sopenharmony_ci 38bf215546Sopenharmony_ci <value name="VFMT_32_FIXED" value="0x8"/> 39bf215546Sopenharmony_ci <value name="VFMT_32_32_FIXED" value="0x9"/> 40bf215546Sopenharmony_ci <value name="VFMT_32_32_32_FIXED" value="0xa"/> 41bf215546Sopenharmony_ci <value name="VFMT_32_32_32_32_FIXED" value="0xb"/> 42bf215546Sopenharmony_ci 43bf215546Sopenharmony_ci <value name="VFMT_16_SINT" value="0x10"/> 44bf215546Sopenharmony_ci <value name="VFMT_16_16_SINT" value="0x11"/> 45bf215546Sopenharmony_ci <value name="VFMT_16_16_16_SINT" value="0x12"/> 46bf215546Sopenharmony_ci <value name="VFMT_16_16_16_16_SINT" value="0x13"/> 47bf215546Sopenharmony_ci <value name="VFMT_16_UINT" value="0x14"/> 48bf215546Sopenharmony_ci <value name="VFMT_16_16_UINT" value="0x15"/> 49bf215546Sopenharmony_ci <value name="VFMT_16_16_16_UINT" value="0x16"/> 50bf215546Sopenharmony_ci <value name="VFMT_16_16_16_16_UINT" value="0x17"/> 51bf215546Sopenharmony_ci <value name="VFMT_16_SNORM" value="0x18"/> 52bf215546Sopenharmony_ci <value name="VFMT_16_16_SNORM" value="0x19"/> 53bf215546Sopenharmony_ci <value name="VFMT_16_16_16_SNORM" value="0x1a"/> 54bf215546Sopenharmony_ci <value name="VFMT_16_16_16_16_SNORM" value="0x1b"/> 55bf215546Sopenharmony_ci <value name="VFMT_16_UNORM" value="0x1c"/> 56bf215546Sopenharmony_ci <value name="VFMT_16_16_UNORM" value="0x1d"/> 57bf215546Sopenharmony_ci <value name="VFMT_16_16_16_UNORM" value="0x1e"/> 58bf215546Sopenharmony_ci <value name="VFMT_16_16_16_16_UNORM" value="0x1f"/> 59bf215546Sopenharmony_ci 60bf215546Sopenharmony_ci <!-- seems to be no NORM variants for 32bit.. --> 61bf215546Sopenharmony_ci <value name="VFMT_32_UINT" value="0x20"/> 62bf215546Sopenharmony_ci <value name="VFMT_32_32_UINT" value="0x21"/> 63bf215546Sopenharmony_ci <value name="VFMT_32_32_32_UINT" value="0x22"/> 64bf215546Sopenharmony_ci <value name="VFMT_32_32_32_32_UINT" value="0x23"/> 65bf215546Sopenharmony_ci <value name="VFMT_32_SINT" value="0x24"/> 66bf215546Sopenharmony_ci <value name="VFMT_32_32_SINT" value="0x25"/> 67bf215546Sopenharmony_ci <value name="VFMT_32_32_32_SINT" value="0x26"/> 68bf215546Sopenharmony_ci <value name="VFMT_32_32_32_32_SINT" value="0x27"/> 69bf215546Sopenharmony_ci 70bf215546Sopenharmony_ci <value name="VFMT_8_UINT" value="0x28"/> 71bf215546Sopenharmony_ci <value name="VFMT_8_8_UINT" value="0x29"/> 72bf215546Sopenharmony_ci <value name="VFMT_8_8_8_UINT" value="0x2a"/> 73bf215546Sopenharmony_ci <value name="VFMT_8_8_8_8_UINT" value="0x2b"/> 74bf215546Sopenharmony_ci <value name="VFMT_8_UNORM" value="0x2c"/> 75bf215546Sopenharmony_ci <value name="VFMT_8_8_UNORM" value="0x2d"/> 76bf215546Sopenharmony_ci <value name="VFMT_8_8_8_UNORM" value="0x2e"/> 77bf215546Sopenharmony_ci <value name="VFMT_8_8_8_8_UNORM" value="0x2f"/> 78bf215546Sopenharmony_ci <value name="VFMT_8_SINT" value="0x30"/> 79bf215546Sopenharmony_ci <value name="VFMT_8_8_SINT" value="0x31"/> 80bf215546Sopenharmony_ci <value name="VFMT_8_8_8_SINT" value="0x32"/> 81bf215546Sopenharmony_ci <value name="VFMT_8_8_8_8_SINT" value="0x33"/> 82bf215546Sopenharmony_ci <value name="VFMT_8_SNORM" value="0x34"/> 83bf215546Sopenharmony_ci <value name="VFMT_8_8_SNORM" value="0x35"/> 84bf215546Sopenharmony_ci <value name="VFMT_8_8_8_SNORM" value="0x36"/> 85bf215546Sopenharmony_ci <value name="VFMT_8_8_8_8_SNORM" value="0x37"/> 86bf215546Sopenharmony_ci <value name="VFMT_10_10_10_2_UINT" value="0x38"/> 87bf215546Sopenharmony_ci <value name="VFMT_10_10_10_2_UNORM" value="0x39"/> 88bf215546Sopenharmony_ci <value name="VFMT_10_10_10_2_SINT" value="0x3a"/> 89bf215546Sopenharmony_ci <value name="VFMT_10_10_10_2_SNORM" value="0x3b"/> 90bf215546Sopenharmony_ci <value name="VFMT_2_10_10_10_UINT" value="0x3c"/> 91bf215546Sopenharmony_ci <value name="VFMT_2_10_10_10_UNORM" value="0x3d"/> 92bf215546Sopenharmony_ci <value name="VFMT_2_10_10_10_SINT" value="0x3e"/> 93bf215546Sopenharmony_ci <value name="VFMT_2_10_10_10_SNORM" value="0x3f"/> 94bf215546Sopenharmony_ci 95bf215546Sopenharmony_ci <value name="VFMT_NONE" value="0xff"/> 96bf215546Sopenharmony_ci</enum> 97bf215546Sopenharmony_ci 98bf215546Sopenharmony_ci<enum name="a3xx_tex_fmt"> 99bf215546Sopenharmony_ci <value name="TFMT_5_6_5_UNORM" value="0x4"/> 100bf215546Sopenharmony_ci <value name="TFMT_5_5_5_1_UNORM" value="0x5"/> 101bf215546Sopenharmony_ci <value name="TFMT_4_4_4_4_UNORM" value="0x7"/> 102bf215546Sopenharmony_ci <value name="TFMT_Z16_UNORM" value="0x9"/> 103bf215546Sopenharmony_ci <value name="TFMT_X8Z24_UNORM" value="0xa"/> 104bf215546Sopenharmony_ci <value name="TFMT_Z32_FLOAT" value="0xb"/> 105bf215546Sopenharmony_ci 106bf215546Sopenharmony_ci <!-- 107bf215546Sopenharmony_ci The NV12 tiled/linear formats seem to require gang'd sampler 108bf215546Sopenharmony_ci slots (ie. sampler state N plus N+1) for Y and UV planes. 109bf215546Sopenharmony_ci They fetch yuv in single sam instruction, but still require 110bf215546Sopenharmony_ci colorspace conversion in the shader. 111bf215546Sopenharmony_ci --> 112bf215546Sopenharmony_ci <value name="TFMT_UV_64X32" value="0x10"/> 113bf215546Sopenharmony_ci <value name="TFMT_VU_64X32" value="0x11"/> 114bf215546Sopenharmony_ci <value name="TFMT_Y_64X32" value="0x12"/> 115bf215546Sopenharmony_ci <value name="TFMT_NV12_64X32" value="0x13"/> 116bf215546Sopenharmony_ci <value name="TFMT_UV_LINEAR" value="0x14"/> 117bf215546Sopenharmony_ci <value name="TFMT_VU_LINEAR" value="0x15"/> 118bf215546Sopenharmony_ci <value name="TFMT_Y_LINEAR" value="0x16"/> 119bf215546Sopenharmony_ci <value name="TFMT_NV12_LINEAR" value="0x17"/> 120bf215546Sopenharmony_ci <value name="TFMT_I420_Y" value="0x18"/> 121bf215546Sopenharmony_ci <value name="TFMT_I420_U" value="0x1a"/> 122bf215546Sopenharmony_ci <value name="TFMT_I420_V" value="0x1b"/> 123bf215546Sopenharmony_ci 124bf215546Sopenharmony_ci <value name="TFMT_ATC_RGB" value="0x20"/> 125bf215546Sopenharmony_ci <value name="TFMT_ATC_RGBA_EXPLICIT" value="0x21"/> 126bf215546Sopenharmony_ci <value name="TFMT_ETC1" value="0x22"/> 127bf215546Sopenharmony_ci <value name="TFMT_ATC_RGBA_INTERPOLATED" value="0x23"/> 128bf215546Sopenharmony_ci 129bf215546Sopenharmony_ci <value name="TFMT_DXT1" value="0x24"/> 130bf215546Sopenharmony_ci <value name="TFMT_DXT3" value="0x25"/> 131bf215546Sopenharmony_ci <value name="TFMT_DXT5" value="0x26"/> 132bf215546Sopenharmony_ci 133bf215546Sopenharmony_ci <value name="TFMT_2_10_10_10_UNORM" value="0x28"/> 134bf215546Sopenharmony_ci <value name="TFMT_10_10_10_2_UNORM" value="0x29"/> 135bf215546Sopenharmony_ci <value name="TFMT_9_9_9_E5_FLOAT" value="0x2a"/> 136bf215546Sopenharmony_ci <value name="TFMT_11_11_10_FLOAT" value="0x2b"/> 137bf215546Sopenharmony_ci <value name="TFMT_A8_UNORM" value="0x2c"/> <!-- GL_ALPHA --> 138bf215546Sopenharmony_ci <value name="TFMT_L8_UNORM" value="0x2d"/> 139bf215546Sopenharmony_ci <value name="TFMT_L8_A8_UNORM" value="0x2f"/> <!-- GL_LUMINANCE_ALPHA --> 140bf215546Sopenharmony_ci 141bf215546Sopenharmony_ci <!-- 142bf215546Sopenharmony_ci NOTE: GL_ALPHA and GL_LUMINANCE_ALPHA aren't handled in a similar way 143bf215546Sopenharmony_ci to float16, float32.. but they seem to use non-standard swizzle too.. 144bf215546Sopenharmony_ci perhaps we can ditch that if the pattern follows of 0xn0, 0xn1, 0xn2, 145bf215546Sopenharmony_ci 0xn3 for 1, 2, 3, 4 components respectively.. 146bf215546Sopenharmony_ci 147bf215546Sopenharmony_ci Only formats filled in below are the ones that have been observed by 148bf215546Sopenharmony_ci the blob or tested.. you can guess what the missing ones are.. 149bf215546Sopenharmony_ci --> 150bf215546Sopenharmony_ci 151bf215546Sopenharmony_ci <value name="TFMT_8_UNORM" value="0x30"/> <!-- GL_LUMINANCE --> 152bf215546Sopenharmony_ci <value name="TFMT_8_8_UNORM" value="0x31"/> 153bf215546Sopenharmony_ci <value name="TFMT_8_8_8_UNORM" value="0x32"/> 154bf215546Sopenharmony_ci <value name="TFMT_8_8_8_8_UNORM" value="0x33"/> 155bf215546Sopenharmony_ci 156bf215546Sopenharmony_ci <value name="TFMT_8_SNORM" value="0x34"/> 157bf215546Sopenharmony_ci <value name="TFMT_8_8_SNORM" value="0x35"/> 158bf215546Sopenharmony_ci <value name="TFMT_8_8_8_SNORM" value="0x36"/> 159bf215546Sopenharmony_ci <value name="TFMT_8_8_8_8_SNORM" value="0x37"/> 160bf215546Sopenharmony_ci 161bf215546Sopenharmony_ci <value name="TFMT_8_UINT" value="0x38"/> 162bf215546Sopenharmony_ci <value name="TFMT_8_8_UINT" value="0x39"/> 163bf215546Sopenharmony_ci <value name="TFMT_8_8_8_UINT" value="0x3a"/> 164bf215546Sopenharmony_ci <value name="TFMT_8_8_8_8_UINT" value="0x3b"/> 165bf215546Sopenharmony_ci 166bf215546Sopenharmony_ci <value name="TFMT_8_SINT" value="0x3c"/> 167bf215546Sopenharmony_ci <value name="TFMT_8_8_SINT" value="0x3d"/> 168bf215546Sopenharmony_ci <value name="TFMT_8_8_8_SINT" value="0x3e"/> 169bf215546Sopenharmony_ci <value name="TFMT_8_8_8_8_SINT" value="0x3f"/> 170bf215546Sopenharmony_ci 171bf215546Sopenharmony_ci <value name="TFMT_16_FLOAT" value="0x40"/> 172bf215546Sopenharmony_ci <value name="TFMT_16_16_FLOAT" value="0x41"/> 173bf215546Sopenharmony_ci <!-- TFMT_FLOAT_16_16_16 --> 174bf215546Sopenharmony_ci <value name="TFMT_16_16_16_16_FLOAT" value="0x43"/> 175bf215546Sopenharmony_ci 176bf215546Sopenharmony_ci <value name="TFMT_16_UINT" value="0x44"/> 177bf215546Sopenharmony_ci <value name="TFMT_16_16_UINT" value="0x45"/> 178bf215546Sopenharmony_ci <value name="TFMT_16_16_16_16_UINT" value="0x47"/> 179bf215546Sopenharmony_ci 180bf215546Sopenharmony_ci <value name="TFMT_16_SINT" value="0x48"/> 181bf215546Sopenharmony_ci <value name="TFMT_16_16_SINT" value="0x49"/> 182bf215546Sopenharmony_ci <value name="TFMT_16_16_16_16_SINT" value="0x4b"/> 183bf215546Sopenharmony_ci 184bf215546Sopenharmony_ci <value name="TFMT_16_UNORM" value="0x4c"/> 185bf215546Sopenharmony_ci <value name="TFMT_16_16_UNORM" value="0x4d"/> 186bf215546Sopenharmony_ci <value name="TFMT_16_16_16_16_UNORM" value="0x4f"/> 187bf215546Sopenharmony_ci 188bf215546Sopenharmony_ci <value name="TFMT_16_SNORM" value="0x50"/> 189bf215546Sopenharmony_ci <value name="TFMT_16_16_SNORM" value="0x51"/> 190bf215546Sopenharmony_ci <value name="TFMT_16_16_16_16_SNORM" value="0x53"/> 191bf215546Sopenharmony_ci 192bf215546Sopenharmony_ci <value name="TFMT_32_FLOAT" value="0x54"/> 193bf215546Sopenharmony_ci <value name="TFMT_32_32_FLOAT" value="0x55"/> 194bf215546Sopenharmony_ci <!-- TFMT_32_32_32_FLOAT --> 195bf215546Sopenharmony_ci <value name="TFMT_32_32_32_32_FLOAT" value="0x57"/> 196bf215546Sopenharmony_ci 197bf215546Sopenharmony_ci <value name="TFMT_32_UINT" value="0x58"/> 198bf215546Sopenharmony_ci <value name="TFMT_32_32_UINT" value="0x59"/> 199bf215546Sopenharmony_ci <value name="TFMT_32_32_32_32_UINT" value="0x5b"/> 200bf215546Sopenharmony_ci 201bf215546Sopenharmony_ci <value name="TFMT_32_SINT" value="0x5c"/> 202bf215546Sopenharmony_ci <value name="TFMT_32_32_SINT" value="0x5d"/> 203bf215546Sopenharmony_ci <value name="TFMT_32_32_32_32_SINT" value="0x5f"/> 204bf215546Sopenharmony_ci 205bf215546Sopenharmony_ci <value name="TFMT_2_10_10_10_UINT" value="0x60"/> 206bf215546Sopenharmony_ci <value name="TFMT_10_10_10_2_UINT" value="0x61"/> 207bf215546Sopenharmony_ci 208bf215546Sopenharmony_ci <value name="TFMT_ETC2_RG11_SNORM" value="0x70"/> 209bf215546Sopenharmony_ci <value name="TFMT_ETC2_RG11_UNORM" value="0x71"/> 210bf215546Sopenharmony_ci <value name="TFMT_ETC2_R11_SNORM" value="0x72"/> 211bf215546Sopenharmony_ci <value name="TFMT_ETC2_R11_UNORM" value="0x73"/> 212bf215546Sopenharmony_ci <value name="TFMT_ETC2_RGBA8" value="0x74"/> 213bf215546Sopenharmony_ci <value name="TFMT_ETC2_RGB8A1" value="0x75"/> 214bf215546Sopenharmony_ci <value name="TFMT_ETC2_RGB8" value="0x76"/> 215bf215546Sopenharmony_ci 216bf215546Sopenharmony_ci <value name="TFMT_NONE" value="0xff"/> 217bf215546Sopenharmony_ci</enum> 218bf215546Sopenharmony_ci 219bf215546Sopenharmony_ci<enum name="a3xx_color_fmt"> 220bf215546Sopenharmony_ci <value name="RB_R5G6B5_UNORM" value="0x00"/> 221bf215546Sopenharmony_ci <value name="RB_R5G5B5A1_UNORM" value="0x01"/> 222bf215546Sopenharmony_ci <value name="RB_R4G4B4A4_UNORM" value="0x03"/> 223bf215546Sopenharmony_ci <value name="RB_R8G8B8_UNORM" value="0x04"/> 224bf215546Sopenharmony_ci <value name="RB_R8G8B8A8_UNORM" value="0x08"/> 225bf215546Sopenharmony_ci <value name="RB_R8G8B8A8_SNORM" value="0x09"/> 226bf215546Sopenharmony_ci <value name="RB_R8G8B8A8_UINT" value="0x0a"/> 227bf215546Sopenharmony_ci <value name="RB_R8G8B8A8_SINT" value="0x0b"/> 228bf215546Sopenharmony_ci <value name="RB_R8G8_UNORM" value="0x0c"/> 229bf215546Sopenharmony_ci <value name="RB_R8G8_SNORM" value="0x0d"/> 230bf215546Sopenharmony_ci <value name="RB_R8G8_UINT" value="0x0e"/> 231bf215546Sopenharmony_ci <value name="RB_R8G8_SINT" value="0x0f"/> 232bf215546Sopenharmony_ci <value name="RB_R10G10B10A2_UNORM" value="0x10"/> 233bf215546Sopenharmony_ci <value name="RB_A2R10G10B10_UNORM" value="0x11"/> 234bf215546Sopenharmony_ci <value name="RB_R10G10B10A2_UINT" value="0x12"/> 235bf215546Sopenharmony_ci <value name="RB_A2R10G10B10_UINT" value="0x13"/> 236bf215546Sopenharmony_ci 237bf215546Sopenharmony_ci <value name="RB_A8_UNORM" value="0x14"/> 238bf215546Sopenharmony_ci <value name="RB_R8_UNORM" value="0x15"/> 239bf215546Sopenharmony_ci 240bf215546Sopenharmony_ci <value name="RB_R16_FLOAT" value="0x18"/> 241bf215546Sopenharmony_ci <value name="RB_R16G16_FLOAT" value="0x19"/> 242bf215546Sopenharmony_ci <value name="RB_R16G16B16A16_FLOAT" value="0x1b"/> <!-- GL_HALF_FLOAT_OES --> 243bf215546Sopenharmony_ci <value name="RB_R11G11B10_FLOAT" value="0x1c"/> 244bf215546Sopenharmony_ci 245bf215546Sopenharmony_ci <value name="RB_R16_SNORM" value="0x20"/> 246bf215546Sopenharmony_ci <value name="RB_R16G16_SNORM" value="0x21"/> 247bf215546Sopenharmony_ci <value name="RB_R16G16B16A16_SNORM" value="0x23"/> 248bf215546Sopenharmony_ci 249bf215546Sopenharmony_ci <value name="RB_R16_UNORM" value="0x24"/> 250bf215546Sopenharmony_ci <value name="RB_R16G16_UNORM" value="0x25"/> 251bf215546Sopenharmony_ci <value name="RB_R16G16B16A16_UNORM" value="0x27"/> 252bf215546Sopenharmony_ci 253bf215546Sopenharmony_ci <value name="RB_R16_SINT" value="0x28"/> 254bf215546Sopenharmony_ci <value name="RB_R16G16_SINT" value="0x29"/> 255bf215546Sopenharmony_ci <value name="RB_R16G16B16A16_SINT" value="0x2b"/> 256bf215546Sopenharmony_ci 257bf215546Sopenharmony_ci <value name="RB_R16_UINT" value="0x2c"/> 258bf215546Sopenharmony_ci <value name="RB_R16G16_UINT" value="0x2d"/> 259bf215546Sopenharmony_ci <value name="RB_R16G16B16A16_UINT" value="0x2f"/> 260bf215546Sopenharmony_ci 261bf215546Sopenharmony_ci <value name="RB_R32_FLOAT" value="0x30"/> 262bf215546Sopenharmony_ci <value name="RB_R32G32_FLOAT" value="0x31"/> 263bf215546Sopenharmony_ci <value name="RB_R32G32B32A32_FLOAT" value="0x33"/> <!-- GL_FLOAT --> 264bf215546Sopenharmony_ci 265bf215546Sopenharmony_ci <value name="RB_R32_SINT" value="0x34"/> 266bf215546Sopenharmony_ci <value name="RB_R32G32_SINT" value="0x35"/> 267bf215546Sopenharmony_ci <value name="RB_R32G32B32A32_SINT" value="0x37"/> 268bf215546Sopenharmony_ci 269bf215546Sopenharmony_ci <value name="RB_R32_UINT" value="0x38"/> 270bf215546Sopenharmony_ci <value name="RB_R32G32_UINT" value="0x39"/> 271bf215546Sopenharmony_ci <value name="RB_R32G32B32A32_UINT" value="0x3b"/> 272bf215546Sopenharmony_ci 273bf215546Sopenharmony_ci <value name="RB_NONE" value="0xff"/> 274bf215546Sopenharmony_ci</enum> 275bf215546Sopenharmony_ci 276bf215546Sopenharmony_ci<enum name="a3xx_cp_perfcounter_select"> 277bf215546Sopenharmony_ci <value value="0x00" name="CP_ALWAYS_COUNT"/> 278bf215546Sopenharmony_ci <value value="0x03" name="CP_AHB_PFPTRANS_WAIT"/> 279bf215546Sopenharmony_ci <value value="0x06" name="CP_AHB_NRTTRANS_WAIT"/> 280bf215546Sopenharmony_ci <value value="0x08" name="CP_CSF_NRT_READ_WAIT"/> 281bf215546Sopenharmony_ci <value value="0x09" name="CP_CSF_I1_FIFO_FULL"/> 282bf215546Sopenharmony_ci <value value="0x0a" name="CP_CSF_I2_FIFO_FULL"/> 283bf215546Sopenharmony_ci <value value="0x0b" name="CP_CSF_ST_FIFO_FULL"/> 284bf215546Sopenharmony_ci <value value="0x0c" name="CP_RESERVED_12"/> 285bf215546Sopenharmony_ci <value value="0x0d" name="CP_CSF_RING_ROQ_FULL"/> 286bf215546Sopenharmony_ci <value value="0x0e" name="CP_CSF_I1_ROQ_FULL"/> 287bf215546Sopenharmony_ci <value value="0x0f" name="CP_CSF_I2_ROQ_FULL"/> 288bf215546Sopenharmony_ci <value value="0x10" name="CP_CSF_ST_ROQ_FULL"/> 289bf215546Sopenharmony_ci <value value="0x11" name="CP_RESERVED_17"/> 290bf215546Sopenharmony_ci <value value="0x12" name="CP_MIU_TAG_MEM_FULL"/> 291bf215546Sopenharmony_ci <value value="0x16" name="CP_MIU_NRT_WRITE_STALLED"/> 292bf215546Sopenharmony_ci <value value="0x17" name="CP_MIU_NRT_READ_STALLED"/> 293bf215546Sopenharmony_ci <value value="0x1a" name="CP_ME_REGS_RB_DONE_FIFO_FULL"/> 294bf215546Sopenharmony_ci <value value="0x1b" name="CP_ME_REGS_VS_EVENT_FIFO_FULL"/> 295bf215546Sopenharmony_ci <value value="0x1c" name="CP_ME_REGS_PS_EVENT_FIFO_FULL"/> 296bf215546Sopenharmony_ci <value value="0x1d" name="CP_ME_REGS_CF_EVENT_FIFO_FULL"/> 297bf215546Sopenharmony_ci <value value="0x1e" name="CP_ME_MICRO_RB_STARVED"/> 298bf215546Sopenharmony_ci <value value="0x28" name="CP_AHB_RBBM_DWORD_SENT"/> 299bf215546Sopenharmony_ci <value value="0x29" name="CP_ME_BUSY_CLOCKS"/> 300bf215546Sopenharmony_ci <value value="0x2a" name="CP_ME_WAIT_CONTEXT_AVAIL"/> 301bf215546Sopenharmony_ci <value value="0x2b" name="CP_PFP_TYPE0_PACKET"/> 302bf215546Sopenharmony_ci <value value="0x2c" name="CP_PFP_TYPE3_PACKET"/> 303bf215546Sopenharmony_ci <value value="0x2d" name="CP_CSF_RB_WPTR_NEQ_RPTR"/> 304bf215546Sopenharmony_ci <value value="0x2e" name="CP_CSF_I1_SIZE_NEQ_ZERO"/> 305bf215546Sopenharmony_ci <value value="0x2f" name="CP_CSF_I2_SIZE_NEQ_ZERO"/> 306bf215546Sopenharmony_ci <value value="0x30" name="CP_CSF_RBI1I2_FETCHING"/> 307bf215546Sopenharmony_ci</enum> 308bf215546Sopenharmony_ci 309bf215546Sopenharmony_ci<enum name="a3xx_gras_tse_perfcounter_select"> 310bf215546Sopenharmony_ci <value value="0x00" name="GRAS_TSEPERF_INPUT_PRIM"/> 311bf215546Sopenharmony_ci <value value="0x01" name="GRAS_TSEPERF_INPUT_NULL_PRIM"/> 312bf215546Sopenharmony_ci <value value="0x02" name="GRAS_TSEPERF_TRIVAL_REJ_PRIM"/> 313bf215546Sopenharmony_ci <value value="0x03" name="GRAS_TSEPERF_CLIPPED_PRIM"/> 314bf215546Sopenharmony_ci <value value="0x04" name="GRAS_TSEPERF_NEW_PRIM"/> 315bf215546Sopenharmony_ci <value value="0x05" name="GRAS_TSEPERF_ZERO_AREA_PRIM"/> 316bf215546Sopenharmony_ci <value value="0x06" name="GRAS_TSEPERF_FACENESS_CULLED_PRIM"/> 317bf215546Sopenharmony_ci <value value="0x07" name="GRAS_TSEPERF_ZERO_PIXEL_PRIM"/> 318bf215546Sopenharmony_ci <value value="0x08" name="GRAS_TSEPERF_OUTPUT_NULL_PRIM"/> 319bf215546Sopenharmony_ci <value value="0x09" name="GRAS_TSEPERF_OUTPUT_VISIBLE_PRIM"/> 320bf215546Sopenharmony_ci <value value="0x0a" name="GRAS_TSEPERF_PRE_CLIP_PRIM"/> 321bf215546Sopenharmony_ci <value value="0x0b" name="GRAS_TSEPERF_POST_CLIP_PRIM"/> 322bf215546Sopenharmony_ci <value value="0x0c" name="GRAS_TSEPERF_WORKING_CYCLES"/> 323bf215546Sopenharmony_ci <value value="0x0d" name="GRAS_TSEPERF_PC_STARVE"/> 324bf215546Sopenharmony_ci <value value="0x0e" name="GRAS_TSERASPERF_STALL"/> 325bf215546Sopenharmony_ci</enum> 326bf215546Sopenharmony_ci 327bf215546Sopenharmony_ci<enum name="a3xx_gras_ras_perfcounter_select"> 328bf215546Sopenharmony_ci <value value="0x00" name="GRAS_RASPERF_16X16_TILES"/> 329bf215546Sopenharmony_ci <value value="0x01" name="GRAS_RASPERF_8X8_TILES"/> 330bf215546Sopenharmony_ci <value value="0x02" name="GRAS_RASPERF_4X4_TILES"/> 331bf215546Sopenharmony_ci <value value="0x03" name="GRAS_RASPERF_WORKING_CYCLES"/> 332bf215546Sopenharmony_ci <value value="0x04" name="GRAS_RASPERF_STALL_CYCLES_BY_RB"/> 333bf215546Sopenharmony_ci <value value="0x05" name="GRAS_RASPERF_STALL_CYCLES_BY_VSC"/> 334bf215546Sopenharmony_ci <value value="0x06" name="GRAS_RASPERF_STARVE_CYCLES_BY_TSE"/> 335bf215546Sopenharmony_ci</enum> 336bf215546Sopenharmony_ci 337bf215546Sopenharmony_ci<enum name="a3xx_hlsq_perfcounter_select"> 338bf215546Sopenharmony_ci <value value="0x00" name="HLSQ_PERF_SP_VS_CONSTANT"/> 339bf215546Sopenharmony_ci <value value="0x01" name="HLSQ_PERF_SP_VS_INSTRUCTIONS"/> 340bf215546Sopenharmony_ci <value value="0x02" name="HLSQ_PERF_SP_FS_CONSTANT"/> 341bf215546Sopenharmony_ci <value value="0x03" name="HLSQ_PERF_SP_FS_INSTRUCTIONS"/> 342bf215546Sopenharmony_ci <value value="0x04" name="HLSQ_PERF_TP_STATE"/> 343bf215546Sopenharmony_ci <value value="0x05" name="HLSQ_PERF_QUADS"/> 344bf215546Sopenharmony_ci <value value="0x06" name="HLSQ_PERF_PIXELS"/> 345bf215546Sopenharmony_ci <value value="0x07" name="HLSQ_PERF_VERTICES"/> 346bf215546Sopenharmony_ci <value value="0x08" name="HLSQ_PERF_FS8_THREADS"/> 347bf215546Sopenharmony_ci <value value="0x09" name="HLSQ_PERF_FS16_THREADS"/> 348bf215546Sopenharmony_ci <value value="0x0a" name="HLSQ_PERF_FS32_THREADS"/> 349bf215546Sopenharmony_ci <value value="0x0b" name="HLSQ_PERF_VS8_THREADS"/> 350bf215546Sopenharmony_ci <value value="0x0c" name="HLSQ_PERF_VS16_THREADS"/> 351bf215546Sopenharmony_ci <value value="0x0d" name="HLSQ_PERF_SP_VS_DATA_BYTES"/> 352bf215546Sopenharmony_ci <value value="0x0e" name="HLSQ_PERF_SP_FS_DATA_BYTES"/> 353bf215546Sopenharmony_ci <value value="0x0f" name="HLSQ_PERF_ACTIVE_CYCLES"/> 354bf215546Sopenharmony_ci <value value="0x10" name="HLSQ_PERF_STALL_CYCLES_SP_STATE"/> 355bf215546Sopenharmony_ci <value value="0x11" name="HLSQ_PERF_STALL_CYCLES_SP_VS"/> 356bf215546Sopenharmony_ci <value value="0x12" name="HLSQ_PERF_STALL_CYCLES_SP_FS"/> 357bf215546Sopenharmony_ci <value value="0x13" name="HLSQ_PERF_STALL_CYCLES_UCHE"/> 358bf215546Sopenharmony_ci <value value="0x14" name="HLSQ_PERF_RBBM_LOAD_CYCLES"/> 359bf215546Sopenharmony_ci <value value="0x15" name="HLSQ_PERF_DI_TO_VS_START_SP0"/> 360bf215546Sopenharmony_ci <value value="0x16" name="HLSQ_PERF_DI_TO_FS_START_SP0"/> 361bf215546Sopenharmony_ci <value value="0x17" name="HLSQ_PERF_VS_START_TO_DONE_SP0"/> 362bf215546Sopenharmony_ci <value value="0x18" name="HLSQ_PERF_FS_START_TO_DONE_SP0"/> 363bf215546Sopenharmony_ci <value value="0x19" name="HLSQ_PERF_SP_STATE_COPY_CYCLES_VS"/> 364bf215546Sopenharmony_ci <value value="0x1a" name="HLSQ_PERF_SP_STATE_COPY_CYCLES_FS"/> 365bf215546Sopenharmony_ci <value value="0x1b" name="HLSQ_PERF_UCHE_LATENCY_CYCLES"/> 366bf215546Sopenharmony_ci <value value="0x1c" name="HLSQ_PERF_UCHE_LATENCY_COUNT"/> 367bf215546Sopenharmony_ci</enum> 368bf215546Sopenharmony_ci 369bf215546Sopenharmony_ci<enum name="a3xx_pc_perfcounter_select"> 370bf215546Sopenharmony_ci <value value="0x00" name="PC_PCPERF_VISIBILITY_STREAMS"/> 371bf215546Sopenharmony_ci <value value="0x01" name="PC_PCPERF_TOTAL_INSTANCES"/> 372bf215546Sopenharmony_ci <value value="0x02" name="PC_PCPERF_PRIMITIVES_PC_VPC"/> 373bf215546Sopenharmony_ci <value value="0x03" name="PC_PCPERF_PRIMITIVES_KILLED_BY_VS"/> 374bf215546Sopenharmony_ci <value value="0x04" name="PC_PCPERF_PRIMITIVES_VISIBLE_BY_VS"/> 375bf215546Sopenharmony_ci <value value="0x05" name="PC_PCPERF_DRAWCALLS_KILLED_BY_VS"/> 376bf215546Sopenharmony_ci <value value="0x06" name="PC_PCPERF_DRAWCALLS_VISIBLE_BY_VS"/> 377bf215546Sopenharmony_ci <value value="0x07" name="PC_PCPERF_VERTICES_TO_VFD"/> 378bf215546Sopenharmony_ci <value value="0x08" name="PC_PCPERF_REUSED_VERTICES"/> 379bf215546Sopenharmony_ci <value value="0x09" name="PC_PCPERF_CYCLES_STALLED_BY_VFD"/> 380bf215546Sopenharmony_ci <value value="0x0a" name="PC_PCPERF_CYCLES_STALLED_BY_TSE"/> 381bf215546Sopenharmony_ci <value value="0x0b" name="PC_PCPERF_CYCLES_STALLED_BY_VBIF"/> 382bf215546Sopenharmony_ci <value value="0x0c" name="PC_PCPERF_CYCLES_IS_WORKING"/> 383bf215546Sopenharmony_ci</enum> 384bf215546Sopenharmony_ci 385bf215546Sopenharmony_ci<enum name="a3xx_rb_perfcounter_select"> 386bf215546Sopenharmony_ci <value value="0x00" name="RB_RBPERF_ACTIVE_CYCLES_ANY"/> 387bf215546Sopenharmony_ci <value value="0x01" name="RB_RBPERF_ACTIVE_CYCLES_ALL"/> 388bf215546Sopenharmony_ci <value value="0x02" name="RB_RBPERF_STARVE_CYCLES_BY_SP"/> 389bf215546Sopenharmony_ci <value value="0x03" name="RB_RBPERF_STARVE_CYCLES_BY_RAS"/> 390bf215546Sopenharmony_ci <value value="0x04" name="RB_RBPERF_STARVE_CYCLES_BY_MARB"/> 391bf215546Sopenharmony_ci <value value="0x05" name="RB_RBPERF_STALL_CYCLES_BY_MARB"/> 392bf215546Sopenharmony_ci <value value="0x06" name="RB_RBPERF_STALL_CYCLES_BY_HLSQ"/> 393bf215546Sopenharmony_ci <value value="0x07" name="RB_RBPERF_RB_MARB_DATA"/> 394bf215546Sopenharmony_ci <value value="0x08" name="RB_RBPERF_SP_RB_QUAD"/> 395bf215546Sopenharmony_ci <value value="0x09" name="RB_RBPERF_RAS_EARLY_Z_QUADS"/> 396bf215546Sopenharmony_ci <value value="0x0a" name="RB_RBPERF_GMEM_CH0_READ"/> 397bf215546Sopenharmony_ci <value value="0x0b" name="RB_RBPERF_GMEM_CH1_READ"/> 398bf215546Sopenharmony_ci <value value="0x0c" name="RB_RBPERF_GMEM_CH0_WRITE"/> 399bf215546Sopenharmony_ci <value value="0x0d" name="RB_RBPERF_GMEM_CH1_WRITE"/> 400bf215546Sopenharmony_ci <value value="0x0e" name="RB_RBPERF_CP_CONTEXT_DONE"/> 401bf215546Sopenharmony_ci <value value="0x0f" name="RB_RBPERF_CP_CACHE_FLUSH"/> 402bf215546Sopenharmony_ci <value value="0x10" name="RB_RBPERF_CP_ZPASS_DONE"/> 403bf215546Sopenharmony_ci</enum> 404bf215546Sopenharmony_ci 405bf215546Sopenharmony_ci<enum name="a3xx_rbbm_perfcounter_select"> 406bf215546Sopenharmony_ci <value value="0" name="RBBM_ALAWYS_ON"/> 407bf215546Sopenharmony_ci <value value="1" name="RBBM_VBIF_BUSY"/> 408bf215546Sopenharmony_ci <value value="2" name="RBBM_TSE_BUSY"/> 409bf215546Sopenharmony_ci <value value="3" name="RBBM_RAS_BUSY"/> 410bf215546Sopenharmony_ci <value value="4" name="RBBM_PC_DCALL_BUSY"/> 411bf215546Sopenharmony_ci <value value="5" name="RBBM_PC_VSD_BUSY"/> 412bf215546Sopenharmony_ci <value value="6" name="RBBM_VFD_BUSY"/> 413bf215546Sopenharmony_ci <value value="7" name="RBBM_VPC_BUSY"/> 414bf215546Sopenharmony_ci <value value="8" name="RBBM_UCHE_BUSY"/> 415bf215546Sopenharmony_ci <value value="9" name="RBBM_VSC_BUSY"/> 416bf215546Sopenharmony_ci <value value="10" name="RBBM_HLSQ_BUSY"/> 417bf215546Sopenharmony_ci <value value="11" name="RBBM_ANY_RB_BUSY"/> 418bf215546Sopenharmony_ci <value value="12" name="RBBM_ANY_TEX_BUSY"/> 419bf215546Sopenharmony_ci <value value="13" name="RBBM_ANY_USP_BUSY"/> 420bf215546Sopenharmony_ci <value value="14" name="RBBM_ANY_MARB_BUSY"/> 421bf215546Sopenharmony_ci <value value="15" name="RBBM_ANY_ARB_BUSY"/> 422bf215546Sopenharmony_ci <value value="16" name="RBBM_AHB_STATUS_BUSY"/> 423bf215546Sopenharmony_ci <value value="17" name="RBBM_AHB_STATUS_STALLED"/> 424bf215546Sopenharmony_ci <value value="18" name="RBBM_AHB_STATUS_TXFR"/> 425bf215546Sopenharmony_ci <value value="19" name="RBBM_AHB_STATUS_TXFR_SPLIT"/> 426bf215546Sopenharmony_ci <value value="20" name="RBBM_AHB_STATUS_TXFR_ERROR"/> 427bf215546Sopenharmony_ci <value value="21" name="RBBM_AHB_STATUS_LONG_STALL"/> 428bf215546Sopenharmony_ci <value value="22" name="RBBM_RBBM_STATUS_MASKED"/> 429bf215546Sopenharmony_ci</enum> 430bf215546Sopenharmony_ci 431bf215546Sopenharmony_ci<enum name="a3xx_sp_perfcounter_select"> 432bf215546Sopenharmony_ci <value value="0x00" name="SP_LM_LOAD_INSTRUCTIONS"/> 433bf215546Sopenharmony_ci <value value="0x01" name="SP_LM_STORE_INSTRUCTIONS"/> 434bf215546Sopenharmony_ci <value value="0x02" name="SP_LM_ATOMICS"/> 435bf215546Sopenharmony_ci <value value="0x03" name="SP_UCHE_LOAD_INSTRUCTIONS"/> 436bf215546Sopenharmony_ci <value value="0x04" name="SP_UCHE_STORE_INSTRUCTIONS"/> 437bf215546Sopenharmony_ci <value value="0x05" name="SP_UCHE_ATOMICS"/> 438bf215546Sopenharmony_ci <value value="0x06" name="SP_VS_TEX_INSTRUCTIONS"/> 439bf215546Sopenharmony_ci <value value="0x07" name="SP_VS_CFLOW_INSTRUCTIONS"/> 440bf215546Sopenharmony_ci <value value="0x08" name="SP_VS_EFU_INSTRUCTIONS"/> 441bf215546Sopenharmony_ci <value value="0x09" name="SP_VS_FULL_ALU_INSTRUCTIONS"/> 442bf215546Sopenharmony_ci <value value="0x0a" name="SP_VS_HALF_ALU_INSTRUCTIONS"/> 443bf215546Sopenharmony_ci <value value="0x0b" name="SP_FS_TEX_INSTRUCTIONS"/> 444bf215546Sopenharmony_ci <value value="0x0c" name="SP_FS_CFLOW_INSTRUCTIONS"/> 445bf215546Sopenharmony_ci <value value="0x0d" name="SP_FS_EFU_INSTRUCTIONS"/> 446bf215546Sopenharmony_ci <value value="0x0e" name="SP_FS_FULL_ALU_INSTRUCTIONS"/> 447bf215546Sopenharmony_ci <value value="0x0f" name="SP_FS_HALF_ALU_INSTRUCTIONS"/> 448bf215546Sopenharmony_ci <value value="0x10" name="SP_FS_BARY_INSTRUCTIONS"/> 449bf215546Sopenharmony_ci <value value="0x11" name="SP_VS_INSTRUCTIONS"/> 450bf215546Sopenharmony_ci <value value="0x12" name="SP_FS_INSTRUCTIONS"/> 451bf215546Sopenharmony_ci <value value="0x13" name="SP_ADDR_LOCK_COUNT"/> 452bf215546Sopenharmony_ci <value value="0x14" name="SP_UCHE_READ_TRANS"/> 453bf215546Sopenharmony_ci <value value="0x15" name="SP_UCHE_WRITE_TRANS"/> 454bf215546Sopenharmony_ci <value value="0x16" name="SP_EXPORT_VPC_TRANS"/> 455bf215546Sopenharmony_ci <value value="0x17" name="SP_EXPORT_RB_TRANS"/> 456bf215546Sopenharmony_ci <value value="0x18" name="SP_PIXELS_KILLED"/> 457bf215546Sopenharmony_ci <value value="0x19" name="SP_ICL1_REQUESTS"/> 458bf215546Sopenharmony_ci <value value="0x1a" name="SP_ICL1_MISSES"/> 459bf215546Sopenharmony_ci <value value="0x1b" name="SP_ICL0_REQUESTS"/> 460bf215546Sopenharmony_ci <value value="0x1c" name="SP_ICL0_MISSES"/> 461bf215546Sopenharmony_ci <value value="0x1d" name="SP_ALU_ACTIVE_CYCLES"/> 462bf215546Sopenharmony_ci <value value="0x1e" name="SP_EFU_ACTIVE_CYCLES"/> 463bf215546Sopenharmony_ci <value value="0x1f" name="SP_STALL_CYCLES_BY_VPC"/> 464bf215546Sopenharmony_ci <value value="0x20" name="SP_STALL_CYCLES_BY_TP"/> 465bf215546Sopenharmony_ci <value value="0x21" name="SP_STALL_CYCLES_BY_UCHE"/> 466bf215546Sopenharmony_ci <value value="0x22" name="SP_STALL_CYCLES_BY_RB"/> 467bf215546Sopenharmony_ci <value value="0x23" name="SP_ACTIVE_CYCLES_ANY"/> 468bf215546Sopenharmony_ci <value value="0x24" name="SP_ACTIVE_CYCLES_ALL"/> 469bf215546Sopenharmony_ci</enum> 470bf215546Sopenharmony_ci 471bf215546Sopenharmony_ci<enum name="a3xx_tp_perfcounter_select"> 472bf215546Sopenharmony_ci <value value="0x00" name="TPL1_TPPERF_L1_REQUESTS"/> 473bf215546Sopenharmony_ci <value value="0x01" name="TPL1_TPPERF_TP0_L1_REQUESTS"/> 474bf215546Sopenharmony_ci <value value="0x02" name="TPL1_TPPERF_TP0_L1_MISSES"/> 475bf215546Sopenharmony_ci <value value="0x03" name="TPL1_TPPERF_TP1_L1_REQUESTS"/> 476bf215546Sopenharmony_ci <value value="0x04" name="TPL1_TPPERF_TP1_L1_MISSES"/> 477bf215546Sopenharmony_ci <value value="0x05" name="TPL1_TPPERF_TP2_L1_REQUESTS"/> 478bf215546Sopenharmony_ci <value value="0x06" name="TPL1_TPPERF_TP2_L1_MISSES"/> 479bf215546Sopenharmony_ci <value value="0x07" name="TPL1_TPPERF_TP3_L1_REQUESTS"/> 480bf215546Sopenharmony_ci <value value="0x08" name="TPL1_TPPERF_TP3_L1_MISSES"/> 481bf215546Sopenharmony_ci <value value="0x09" name="TPL1_TPPERF_OUTPUT_TEXELS_POINT"/> 482bf215546Sopenharmony_ci <value value="0x0a" name="TPL1_TPPERF_OUTPUT_TEXELS_BILINEAR"/> 483bf215546Sopenharmony_ci <value value="0x0b" name="TPL1_TPPERF_OUTPUT_TEXELS_MIP"/> 484bf215546Sopenharmony_ci <value value="0x0c" name="TPL1_TPPERF_OUTPUT_TEXELS_ANISO"/> 485bf215546Sopenharmony_ci <value value="0x0d" name="TPL1_TPPERF_BILINEAR_OPS"/> 486bf215546Sopenharmony_ci <value value="0x0e" name="TPL1_TPPERF_QUADSQUADS_OFFSET"/> 487bf215546Sopenharmony_ci <value value="0x0f" name="TPL1_TPPERF_QUADQUADS_SHADOW"/> 488bf215546Sopenharmony_ci <value value="0x10" name="TPL1_TPPERF_QUADS_ARRAY"/> 489bf215546Sopenharmony_ci <value value="0x11" name="TPL1_TPPERF_QUADS_PROJECTION"/> 490bf215546Sopenharmony_ci <value value="0x12" name="TPL1_TPPERF_QUADS_GRADIENT"/> 491bf215546Sopenharmony_ci <value value="0x13" name="TPL1_TPPERF_QUADS_1D2D"/> 492bf215546Sopenharmony_ci <value value="0x14" name="TPL1_TPPERF_QUADS_3DCUBE"/> 493bf215546Sopenharmony_ci <value value="0x15" name="TPL1_TPPERF_ZERO_LOD"/> 494bf215546Sopenharmony_ci <value value="0x16" name="TPL1_TPPERF_OUTPUT_TEXELS"/> 495bf215546Sopenharmony_ci <value value="0x17" name="TPL1_TPPERF_ACTIVE_CYCLES_ANY"/> 496bf215546Sopenharmony_ci <value value="0x18" name="TPL1_TPPERF_ACTIVE_CYCLES_ALL"/> 497bf215546Sopenharmony_ci <value value="0x19" name="TPL1_TPPERF_STALL_CYCLES_BY_ARB"/> 498bf215546Sopenharmony_ci <value value="0x1a" name="TPL1_TPPERF_LATENCY"/> 499bf215546Sopenharmony_ci <value value="0x1b" name="TPL1_TPPERF_LATENCY_TRANS"/> 500bf215546Sopenharmony_ci</enum> 501bf215546Sopenharmony_ci 502bf215546Sopenharmony_ci<enum name="a3xx_vfd_perfcounter_select"> 503bf215546Sopenharmony_ci <value value="0" name="VFD_PERF_UCHE_BYTE_FETCHED"/> 504bf215546Sopenharmony_ci <value value="1" name="VFD_PERF_UCHE_TRANS"/> 505bf215546Sopenharmony_ci <value value="2" name="VFD_PERF_VPC_BYPASS_COMPONENTS"/> 506bf215546Sopenharmony_ci <value value="3" name="VFD_PERF_FETCH_INSTRUCTIONS"/> 507bf215546Sopenharmony_ci <value value="4" name="VFD_PERF_DECODE_INSTRUCTIONS"/> 508bf215546Sopenharmony_ci <value value="5" name="VFD_PERF_ACTIVE_CYCLES"/> 509bf215546Sopenharmony_ci <value value="6" name="VFD_PERF_STALL_CYCLES_UCHE"/> 510bf215546Sopenharmony_ci <value value="7" name="VFD_PERF_STALL_CYCLES_HLSQ"/> 511bf215546Sopenharmony_ci <value value="8" name="VFD_PERF_STALL_CYCLES_VPC_BYPASS"/> 512bf215546Sopenharmony_ci <value value="9" name="VFD_PERF_STALL_CYCLES_VPC_ALLOC"/> 513bf215546Sopenharmony_ci</enum> 514bf215546Sopenharmony_ci 515bf215546Sopenharmony_ci<enum name="a3xx_vpc_perfcounter_select"> 516bf215546Sopenharmony_ci <value value="0" name="VPC_PERF_SP_LM_PRIMITIVES"/> 517bf215546Sopenharmony_ci <value value="1" name="VPC_PERF_COMPONENTS_FROM_SP"/> 518bf215546Sopenharmony_ci <value value="2" name="VPC_PERF_SP_LM_COMPONENTS"/> 519bf215546Sopenharmony_ci <value value="3" name="VPC_PERF_ACTIVE_CYCLES"/> 520bf215546Sopenharmony_ci <value value="4" name="VPC_PERF_STALL_CYCLES_LM"/> 521bf215546Sopenharmony_ci <value value="5" name="VPC_PERF_STALL_CYCLES_RAS"/> 522bf215546Sopenharmony_ci</enum> 523bf215546Sopenharmony_ci 524bf215546Sopenharmony_ci<enum name="a3xx_uche_perfcounter_select"> 525bf215546Sopenharmony_ci <value value="0x00" name="UCHE_UCHEPERF_VBIF_READ_BEATS_TP"/> 526bf215546Sopenharmony_ci <value value="0x01" name="UCHE_UCHEPERF_VBIF_READ_BEATS_VFD"/> 527bf215546Sopenharmony_ci <value value="0x02" name="UCHE_UCHEPERF_VBIF_READ_BEATS_HLSQ"/> 528bf215546Sopenharmony_ci <value value="0x03" name="UCHE_UCHEPERF_VBIF_READ_BEATS_MARB"/> 529bf215546Sopenharmony_ci <value value="0x04" name="UCHE_UCHEPERF_VBIF_READ_BEATS_SP"/> 530bf215546Sopenharmony_ci <value value="0x08" name="UCHE_UCHEPERF_READ_REQUESTS_TP"/> 531bf215546Sopenharmony_ci <value value="0x09" name="UCHE_UCHEPERF_READ_REQUESTS_VFD"/> 532bf215546Sopenharmony_ci <value value="0x0a" name="UCHE_UCHEPERF_READ_REQUESTS_HLSQ"/> 533bf215546Sopenharmony_ci <value value="0x0b" name="UCHE_UCHEPERF_READ_REQUESTS_MARB"/> 534bf215546Sopenharmony_ci <value value="0x0c" name="UCHE_UCHEPERF_READ_REQUESTS_SP"/> 535bf215546Sopenharmony_ci <value value="0x0d" name="UCHE_UCHEPERF_WRITE_REQUESTS_MARB"/> 536bf215546Sopenharmony_ci <value value="0x0e" name="UCHE_UCHEPERF_WRITE_REQUESTS_SP"/> 537bf215546Sopenharmony_ci <value value="0x0f" name="UCHE_UCHEPERF_TAG_CHECK_FAILS"/> 538bf215546Sopenharmony_ci <value value="0x10" name="UCHE_UCHEPERF_EVICTS"/> 539bf215546Sopenharmony_ci <value value="0x11" name="UCHE_UCHEPERF_FLUSHES"/> 540bf215546Sopenharmony_ci <value value="0x12" name="UCHE_UCHEPERF_VBIF_LATENCY_CYCLES"/> 541bf215546Sopenharmony_ci <value value="0x13" name="UCHE_UCHEPERF_VBIF_LATENCY_SAMPLES"/> 542bf215546Sopenharmony_ci <value value="0x14" name="UCHE_UCHEPERF_ACTIVE_CYCLES"/> 543bf215546Sopenharmony_ci</enum> 544bf215546Sopenharmony_ci 545bf215546Sopenharmony_ci<enum name="a3xx_intp_mode"> 546bf215546Sopenharmony_ci <value name="SMOOTH" value="0"/> 547bf215546Sopenharmony_ci <value name="FLAT" value="1"/> 548bf215546Sopenharmony_ci <value name="ZERO" value="2"/> 549bf215546Sopenharmony_ci <value name="ONE" value="3"/> 550bf215546Sopenharmony_ci</enum> 551bf215546Sopenharmony_ci 552bf215546Sopenharmony_ci<enum name="a3xx_repl_mode"> 553bf215546Sopenharmony_ci <value name="S" value="1"/> 554bf215546Sopenharmony_ci <value name="T" value="2"/> 555bf215546Sopenharmony_ci <value name="ONE_T" value="3"/> 556bf215546Sopenharmony_ci</enum> 557bf215546Sopenharmony_ci 558bf215546Sopenharmony_ci<domain name="A3XX" width="32"> 559bf215546Sopenharmony_ci <!-- RBBM registers --> 560bf215546Sopenharmony_ci <reg32 offset="0x0000" name="RBBM_HW_VERSION"/> 561bf215546Sopenharmony_ci <reg32 offset="0x0001" name="RBBM_HW_RELEASE"/> 562bf215546Sopenharmony_ci <reg32 offset="0x0002" name="RBBM_HW_CONFIGURATION"/> 563bf215546Sopenharmony_ci <reg32 offset="0x0010" name="RBBM_CLOCK_CTL"/> 564bf215546Sopenharmony_ci <reg32 offset="0x0012" name="RBBM_SP_HYST_CNT"/> 565bf215546Sopenharmony_ci <reg32 offset="0x0018" name="RBBM_SW_RESET_CMD"/> 566bf215546Sopenharmony_ci <reg32 offset="0x0020" name="RBBM_AHB_CTL0"/> 567bf215546Sopenharmony_ci <reg32 offset="0x0021" name="RBBM_AHB_CTL1"/> 568bf215546Sopenharmony_ci <reg32 offset="0x0022" name="RBBM_AHB_CMD"/> 569bf215546Sopenharmony_ci <reg32 offset="0x0027" name="RBBM_AHB_ERROR_STATUS"/> 570bf215546Sopenharmony_ci <reg32 offset="0x002e" name="RBBM_GPR0_CTL"/> 571bf215546Sopenharmony_ci <reg32 offset="0x0030" name="RBBM_STATUS"> 572bf215546Sopenharmony_ci <bitfield name="HI_BUSY" pos="0" type="boolean"/> 573bf215546Sopenharmony_ci <bitfield name="CP_ME_BUSY" pos="1" type="boolean"/> 574bf215546Sopenharmony_ci <bitfield name="CP_PFP_BUSY" pos="2" type="boolean"/> 575bf215546Sopenharmony_ci <bitfield name="CP_NRT_BUSY" pos="14" type="boolean"/> 576bf215546Sopenharmony_ci <bitfield name="VBIF_BUSY" pos="15" type="boolean"/> 577bf215546Sopenharmony_ci <bitfield name="TSE_BUSY" pos="16" type="boolean"/> 578bf215546Sopenharmony_ci <bitfield name="RAS_BUSY" pos="17" type="boolean"/> 579bf215546Sopenharmony_ci <bitfield name="RB_BUSY" pos="18" type="boolean"/> 580bf215546Sopenharmony_ci <bitfield name="PC_DCALL_BUSY" pos="19" type="boolean"/> 581bf215546Sopenharmony_ci <bitfield name="PC_VSD_BUSY" pos="20" type="boolean"/> 582bf215546Sopenharmony_ci <bitfield name="VFD_BUSY" pos="21" type="boolean"/> 583bf215546Sopenharmony_ci <bitfield name="VPC_BUSY" pos="22" type="boolean"/> 584bf215546Sopenharmony_ci <bitfield name="UCHE_BUSY" pos="23" type="boolean"/> 585bf215546Sopenharmony_ci <bitfield name="SP_BUSY" pos="24" type="boolean"/> 586bf215546Sopenharmony_ci <bitfield name="TPL1_BUSY" pos="25" type="boolean"/> 587bf215546Sopenharmony_ci <bitfield name="MARB_BUSY" pos="26" type="boolean"/> 588bf215546Sopenharmony_ci <bitfield name="VSC_BUSY" pos="27" type="boolean"/> 589bf215546Sopenharmony_ci <bitfield name="ARB_BUSY" pos="28" type="boolean"/> 590bf215546Sopenharmony_ci <bitfield name="HLSQ_BUSY" pos="29" type="boolean"/> 591bf215546Sopenharmony_ci <bitfield name="GPU_BUSY_NOHC" pos="30" type="boolean"/> 592bf215546Sopenharmony_ci <bitfield name="GPU_BUSY" pos="31" type="boolean"/> 593bf215546Sopenharmony_ci </reg32> 594bf215546Sopenharmony_ci <!-- used in fw CP_WAIT_FOR_IDLE, similar to NQWAIT_UNTIL on a2xx: --> 595bf215546Sopenharmony_ci <reg32 offset="0x0040" name="RBBM_NQWAIT_UNTIL"/> 596bf215546Sopenharmony_ci <reg32 offset="0x0033" name="RBBM_WAIT_IDLE_CLOCKS_CTL"/> 597bf215546Sopenharmony_ci <reg32 offset="0x0050" name="RBBM_INTERFACE_HANG_INT_CTL"/> 598bf215546Sopenharmony_ci <reg32 offset="0x0051" name="RBBM_INTERFACE_HANG_MASK_CTL0"/> 599bf215546Sopenharmony_ci <reg32 offset="0x0054" name="RBBM_INTERFACE_HANG_MASK_CTL1"/> 600bf215546Sopenharmony_ci <reg32 offset="0x0057" name="RBBM_INTERFACE_HANG_MASK_CTL2"/> 601bf215546Sopenharmony_ci <reg32 offset="0x005a" name="RBBM_INTERFACE_HANG_MASK_CTL3"/> 602bf215546Sopenharmony_ci 603bf215546Sopenharmony_ci <bitset name="A3XX_INT0"> 604bf215546Sopenharmony_ci <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/> 605bf215546Sopenharmony_ci <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/> 606bf215546Sopenharmony_ci <bitfield name="RBBM_REG_TIMEOUT" pos="2" type="boolean"/> 607bf215546Sopenharmony_ci <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/> 608bf215546Sopenharmony_ci <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/> 609bf215546Sopenharmony_ci <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5" type="boolean"/> 610bf215546Sopenharmony_ci <bitfield name="VFD_ERROR" pos="6" type="boolean"/> 611bf215546Sopenharmony_ci <bitfield name="CP_SW_INT" pos="7" type="boolean"/> 612bf215546Sopenharmony_ci <bitfield name="CP_T0_PACKET_IN_IB" pos="8" type="boolean"/> 613bf215546Sopenharmony_ci <bitfield name="CP_OPCODE_ERROR" pos="9" type="boolean"/> 614bf215546Sopenharmony_ci <bitfield name="CP_RESERVED_BIT_ERROR" pos="10" type="boolean"/> 615bf215546Sopenharmony_ci <bitfield name="CP_HW_FAULT" pos="11" type="boolean"/> 616bf215546Sopenharmony_ci <bitfield name="CP_DMA" pos="12" type="boolean"/> 617bf215546Sopenharmony_ci <bitfield name="CP_IB2_INT" pos="13" type="boolean"/> 618bf215546Sopenharmony_ci <bitfield name="CP_IB1_INT" pos="14" type="boolean"/> 619bf215546Sopenharmony_ci <bitfield name="CP_RB_INT" pos="15" type="boolean"/> 620bf215546Sopenharmony_ci <bitfield name="CP_REG_PROTECT_FAULT" pos="16" type="boolean"/> 621bf215546Sopenharmony_ci <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/> 622bf215546Sopenharmony_ci <bitfield name="CP_VS_DONE_TS" pos="18" type="boolean"/> 623bf215546Sopenharmony_ci <bitfield name="CP_PS_DONE_TS" pos="19" type="boolean"/> 624bf215546Sopenharmony_ci <bitfield name="CACHE_FLUSH_TS" pos="20" type="boolean"/> 625bf215546Sopenharmony_ci <bitfield name="CP_AHB_ERROR_HALT" pos="21" type="boolean"/> 626bf215546Sopenharmony_ci <bitfield name="MISC_HANG_DETECT" pos="24" type="boolean"/> 627bf215546Sopenharmony_ci <bitfield name="UCHE_OOB_ACCESS" pos="25" type="boolean"/> 628bf215546Sopenharmony_ci </bitset> 629bf215546Sopenharmony_ci 630bf215546Sopenharmony_ci 631bf215546Sopenharmony_ci <!-- 632bf215546Sopenharmony_ci set in pm4 fw INVALID_JUMP_TABLE_ENTRY and CP_INTERRUPT (compare 633bf215546Sopenharmony_ci to CP_INT_STATUS in a2xx firmware), so this seems to be the a3xx 634bf215546Sopenharmony_ci way for fw to raise and irq: 635bf215546Sopenharmony_ci --> 636bf215546Sopenharmony_ci <reg32 offset="0x0060" name="RBBM_INT_SET_CMD" type="A3XX_INT0"/> 637bf215546Sopenharmony_ci <reg32 offset="0x0061" name="RBBM_INT_CLEAR_CMD" type="A3XX_INT0"/> 638bf215546Sopenharmony_ci <reg32 offset="0x0063" name="RBBM_INT_0_MASK" type="A3XX_INT0"/> 639bf215546Sopenharmony_ci <reg32 offset="0x0064" name="RBBM_INT_0_STATUS" type="A3XX_INT0"/> 640bf215546Sopenharmony_ci <reg32 offset="0x0080" name="RBBM_PERFCTR_CTL"> 641bf215546Sopenharmony_ci <bitfield name="ENABLE" pos="0" type="boolean"/> 642bf215546Sopenharmony_ci </reg32> 643bf215546Sopenharmony_ci <reg32 offset="0x0081" name="RBBM_PERFCTR_LOAD_CMD0"/> 644bf215546Sopenharmony_ci <reg32 offset="0x0082" name="RBBM_PERFCTR_LOAD_CMD1"/> 645bf215546Sopenharmony_ci <reg32 offset="0x0084" name="RBBM_PERFCTR_LOAD_VALUE_LO"/> 646bf215546Sopenharmony_ci <reg32 offset="0x0085" name="RBBM_PERFCTR_LOAD_VALUE_HI"/> 647bf215546Sopenharmony_ci <reg32 offset="0x0086" name="RBBM_PERFCOUNTER0_SELECT" type="a3xx_rbbm_perfcounter_select"/> 648bf215546Sopenharmony_ci <reg32 offset="0x0087" name="RBBM_PERFCOUNTER1_SELECT" type="a3xx_rbbm_perfcounter_select"/> 649bf215546Sopenharmony_ci <reg32 offset="0x0088" name="RBBM_GPU_BUSY_MASKED"/> 650bf215546Sopenharmony_ci <reg32 offset="0x0090" name="RBBM_PERFCTR_CP_0_LO"/> 651bf215546Sopenharmony_ci <reg32 offset="0x0091" name="RBBM_PERFCTR_CP_0_HI"/> 652bf215546Sopenharmony_ci <reg32 offset="0x0092" name="RBBM_PERFCTR_RBBM_0_LO"/> 653bf215546Sopenharmony_ci <reg32 offset="0x0093" name="RBBM_PERFCTR_RBBM_0_HI"/> 654bf215546Sopenharmony_ci <reg32 offset="0x0094" name="RBBM_PERFCTR_RBBM_1_LO"/> 655bf215546Sopenharmony_ci <reg32 offset="0x0095" name="RBBM_PERFCTR_RBBM_1_HI"/> 656bf215546Sopenharmony_ci <reg32 offset="0x0096" name="RBBM_PERFCTR_PC_0_LO"/> 657bf215546Sopenharmony_ci <reg32 offset="0x0097" name="RBBM_PERFCTR_PC_0_HI"/> 658bf215546Sopenharmony_ci <reg32 offset="0x0098" name="RBBM_PERFCTR_PC_1_LO"/> 659bf215546Sopenharmony_ci <reg32 offset="0x0099" name="RBBM_PERFCTR_PC_1_HI"/> 660bf215546Sopenharmony_ci <reg32 offset="0x009a" name="RBBM_PERFCTR_PC_2_LO"/> 661bf215546Sopenharmony_ci <reg32 offset="0x009b" name="RBBM_PERFCTR_PC_2_HI"/> 662bf215546Sopenharmony_ci <reg32 offset="0x009c" name="RBBM_PERFCTR_PC_3_LO"/> 663bf215546Sopenharmony_ci <reg32 offset="0x009d" name="RBBM_PERFCTR_PC_3_HI"/> 664bf215546Sopenharmony_ci <reg32 offset="0x009e" name="RBBM_PERFCTR_VFD_0_LO"/> 665bf215546Sopenharmony_ci <reg32 offset="0x009f" name="RBBM_PERFCTR_VFD_0_HI"/> 666bf215546Sopenharmony_ci <reg32 offset="0x00a0" name="RBBM_PERFCTR_VFD_1_LO"/> 667bf215546Sopenharmony_ci <reg32 offset="0x00a1" name="RBBM_PERFCTR_VFD_1_HI"/> 668bf215546Sopenharmony_ci <reg32 offset="0x00a2" name="RBBM_PERFCTR_HLSQ_0_LO"/> 669bf215546Sopenharmony_ci <reg32 offset="0x00a3" name="RBBM_PERFCTR_HLSQ_0_HI"/> 670bf215546Sopenharmony_ci <reg32 offset="0x00a4" name="RBBM_PERFCTR_HLSQ_1_LO"/> 671bf215546Sopenharmony_ci <reg32 offset="0x00a5" name="RBBM_PERFCTR_HLSQ_1_HI"/> 672bf215546Sopenharmony_ci <reg32 offset="0x00a6" name="RBBM_PERFCTR_HLSQ_2_LO"/> 673bf215546Sopenharmony_ci <reg32 offset="0x00a7" name="RBBM_PERFCTR_HLSQ_2_HI"/> 674bf215546Sopenharmony_ci <reg32 offset="0x00a8" name="RBBM_PERFCTR_HLSQ_3_LO"/> 675bf215546Sopenharmony_ci <reg32 offset="0x00a9" name="RBBM_PERFCTR_HLSQ_3_HI"/> 676bf215546Sopenharmony_ci <reg32 offset="0x00aa" name="RBBM_PERFCTR_HLSQ_4_LO"/> 677bf215546Sopenharmony_ci <reg32 offset="0x00ab" name="RBBM_PERFCTR_HLSQ_4_HI"/> 678bf215546Sopenharmony_ci <reg32 offset="0x00ac" name="RBBM_PERFCTR_HLSQ_5_LO"/> 679bf215546Sopenharmony_ci <reg32 offset="0x00ad" name="RBBM_PERFCTR_HLSQ_5_HI"/> 680bf215546Sopenharmony_ci <reg32 offset="0x00ae" name="RBBM_PERFCTR_VPC_0_LO"/> 681bf215546Sopenharmony_ci <reg32 offset="0x00af" name="RBBM_PERFCTR_VPC_0_HI"/> 682bf215546Sopenharmony_ci <reg32 offset="0x00b0" name="RBBM_PERFCTR_VPC_1_LO"/> 683bf215546Sopenharmony_ci <reg32 offset="0x00b1" name="RBBM_PERFCTR_VPC_1_HI"/> 684bf215546Sopenharmony_ci <reg32 offset="0x00b2" name="RBBM_PERFCTR_TSE_0_LO"/> 685bf215546Sopenharmony_ci <reg32 offset="0x00b3" name="RBBM_PERFCTR_TSE_0_HI"/> 686bf215546Sopenharmony_ci <reg32 offset="0x00b4" name="RBBM_PERFCTR_TSE_1_LO"/> 687bf215546Sopenharmony_ci <reg32 offset="0x00b5" name="RBBM_PERFCTR_TSE_1_HI"/> 688bf215546Sopenharmony_ci <reg32 offset="0x00b6" name="RBBM_PERFCTR_RAS_0_LO"/> 689bf215546Sopenharmony_ci <reg32 offset="0x00b7" name="RBBM_PERFCTR_RAS_0_HI"/> 690bf215546Sopenharmony_ci <reg32 offset="0x00b8" name="RBBM_PERFCTR_RAS_1_LO"/> 691bf215546Sopenharmony_ci <reg32 offset="0x00b9" name="RBBM_PERFCTR_RAS_1_HI"/> 692bf215546Sopenharmony_ci <reg32 offset="0x00ba" name="RBBM_PERFCTR_UCHE_0_LO"/> 693bf215546Sopenharmony_ci <reg32 offset="0x00bb" name="RBBM_PERFCTR_UCHE_0_HI"/> 694bf215546Sopenharmony_ci <reg32 offset="0x00bc" name="RBBM_PERFCTR_UCHE_1_LO"/> 695bf215546Sopenharmony_ci <reg32 offset="0x00bd" name="RBBM_PERFCTR_UCHE_1_HI"/> 696bf215546Sopenharmony_ci <reg32 offset="0x00be" name="RBBM_PERFCTR_UCHE_2_LO"/> 697bf215546Sopenharmony_ci <reg32 offset="0x00bf" name="RBBM_PERFCTR_UCHE_2_HI"/> 698bf215546Sopenharmony_ci <reg32 offset="0x00c0" name="RBBM_PERFCTR_UCHE_3_LO"/> 699bf215546Sopenharmony_ci <reg32 offset="0x00c1" name="RBBM_PERFCTR_UCHE_3_HI"/> 700bf215546Sopenharmony_ci <reg32 offset="0x00c2" name="RBBM_PERFCTR_UCHE_4_LO"/> 701bf215546Sopenharmony_ci <reg32 offset="0x00c3" name="RBBM_PERFCTR_UCHE_4_HI"/> 702bf215546Sopenharmony_ci <reg32 offset="0x00c4" name="RBBM_PERFCTR_UCHE_5_LO"/> 703bf215546Sopenharmony_ci <reg32 offset="0x00c5" name="RBBM_PERFCTR_UCHE_5_HI"/> 704bf215546Sopenharmony_ci <reg32 offset="0x00c6" name="RBBM_PERFCTR_TP_0_LO"/> 705bf215546Sopenharmony_ci <reg32 offset="0x00c7" name="RBBM_PERFCTR_TP_0_HI"/> 706bf215546Sopenharmony_ci <reg32 offset="0x00c8" name="RBBM_PERFCTR_TP_1_LO"/> 707bf215546Sopenharmony_ci <reg32 offset="0x00c9" name="RBBM_PERFCTR_TP_1_HI"/> 708bf215546Sopenharmony_ci <reg32 offset="0x00ca" name="RBBM_PERFCTR_TP_2_LO"/> 709bf215546Sopenharmony_ci <reg32 offset="0x00cb" name="RBBM_PERFCTR_TP_2_HI"/> 710bf215546Sopenharmony_ci <reg32 offset="0x00cc" name="RBBM_PERFCTR_TP_3_LO"/> 711bf215546Sopenharmony_ci <reg32 offset="0x00cd" name="RBBM_PERFCTR_TP_3_HI"/> 712bf215546Sopenharmony_ci <reg32 offset="0x00ce" name="RBBM_PERFCTR_TP_4_LO"/> 713bf215546Sopenharmony_ci <reg32 offset="0x00cf" name="RBBM_PERFCTR_TP_4_HI"/> 714bf215546Sopenharmony_ci <reg32 offset="0x00d0" name="RBBM_PERFCTR_TP_5_LO"/> 715bf215546Sopenharmony_ci <reg32 offset="0x00d1" name="RBBM_PERFCTR_TP_5_HI"/> 716bf215546Sopenharmony_ci <reg32 offset="0x00d2" name="RBBM_PERFCTR_SP_0_LO"/> 717bf215546Sopenharmony_ci <reg32 offset="0x00d3" name="RBBM_PERFCTR_SP_0_HI"/> 718bf215546Sopenharmony_ci <reg32 offset="0x00d4" name="RBBM_PERFCTR_SP_1_LO"/> 719bf215546Sopenharmony_ci <reg32 offset="0x00d5" name="RBBM_PERFCTR_SP_1_HI"/> 720bf215546Sopenharmony_ci <reg32 offset="0x00d6" name="RBBM_PERFCTR_SP_2_LO"/> 721bf215546Sopenharmony_ci <reg32 offset="0x00d7" name="RBBM_PERFCTR_SP_2_HI"/> 722bf215546Sopenharmony_ci <reg32 offset="0x00d8" name="RBBM_PERFCTR_SP_3_LO"/> 723bf215546Sopenharmony_ci <reg32 offset="0x00d9" name="RBBM_PERFCTR_SP_3_HI"/> 724bf215546Sopenharmony_ci <reg32 offset="0x00da" name="RBBM_PERFCTR_SP_4_LO"/> 725bf215546Sopenharmony_ci <reg32 offset="0x00db" name="RBBM_PERFCTR_SP_4_HI"/> 726bf215546Sopenharmony_ci <reg32 offset="0x00dc" name="RBBM_PERFCTR_SP_5_LO"/> 727bf215546Sopenharmony_ci <reg32 offset="0x00dd" name="RBBM_PERFCTR_SP_5_HI"/> 728bf215546Sopenharmony_ci <reg32 offset="0x00de" name="RBBM_PERFCTR_SP_6_LO"/> 729bf215546Sopenharmony_ci <reg32 offset="0x00df" name="RBBM_PERFCTR_SP_6_HI"/> 730bf215546Sopenharmony_ci <reg32 offset="0x00e0" name="RBBM_PERFCTR_SP_7_LO"/> 731bf215546Sopenharmony_ci <reg32 offset="0x00e1" name="RBBM_PERFCTR_SP_7_HI"/> 732bf215546Sopenharmony_ci <reg32 offset="0x00e2" name="RBBM_PERFCTR_RB_0_LO"/> 733bf215546Sopenharmony_ci <reg32 offset="0x00e3" name="RBBM_PERFCTR_RB_0_HI"/> 734bf215546Sopenharmony_ci <reg32 offset="0x00e4" name="RBBM_PERFCTR_RB_1_LO"/> 735bf215546Sopenharmony_ci <reg32 offset="0x00e5" name="RBBM_PERFCTR_RB_1_HI"/> 736bf215546Sopenharmony_ci <reg32 offset="0x00ea" name="RBBM_PERFCTR_PWR_0_LO"/> 737bf215546Sopenharmony_ci <reg32 offset="0x00eb" name="RBBM_PERFCTR_PWR_0_HI"/> 738bf215546Sopenharmony_ci <reg32 offset="0x00ec" name="RBBM_PERFCTR_PWR_1_LO"/> 739bf215546Sopenharmony_ci <reg32 offset="0x00ed" name="RBBM_PERFCTR_PWR_1_HI"/> 740bf215546Sopenharmony_ci <reg32 offset="0x0100" name="RBBM_RBBM_CTL"/> 741bf215546Sopenharmony_ci <reg32 offset="0x0111" name="RBBM_DEBUG_BUS_CTL"/> 742bf215546Sopenharmony_ci <reg32 offset="0x0112" name="RBBM_DEBUG_BUS_DATA_STATUS"/> 743bf215546Sopenharmony_ci 744bf215546Sopenharmony_ci <!-- CP registers --> 745bf215546Sopenharmony_ci <reg32 offset="0x01c9" name="CP_PFP_UCODE_ADDR"/> 746bf215546Sopenharmony_ci <reg32 offset="0x01ca" name="CP_PFP_UCODE_DATA"/> 747bf215546Sopenharmony_ci <reg32 offset="0x01cc" name="CP_ROQ_ADDR"/> 748bf215546Sopenharmony_ci <reg32 offset="0x01cd" name="CP_ROQ_DATA"/> 749bf215546Sopenharmony_ci <reg32 offset="0x01d1" name="CP_MERCIU_ADDR"/> 750bf215546Sopenharmony_ci <reg32 offset="0x01d2" name="CP_MERCIU_DATA"/> 751bf215546Sopenharmony_ci <reg32 offset="0x01d3" name="CP_MERCIU_DATA2"/> 752bf215546Sopenharmony_ci <!-- see a3xx_snapshot_cp_meq().. looks like the way to dump queue between pfp and pm4 --> 753bf215546Sopenharmony_ci <reg32 offset="0x01da" name="CP_MEQ_ADDR"/> 754bf215546Sopenharmony_ci <reg32 offset="0x01db" name="CP_MEQ_DATA"/> 755bf215546Sopenharmony_ci <reg32 offset="0x01f5" name="CP_WFI_PEND_CTR"/> 756bf215546Sopenharmony_ci <reg32 offset="0x039d" name="RBBM_PM_OVERRIDE2"/> 757bf215546Sopenharmony_ci 758bf215546Sopenharmony_ci <reg32 offset="0x0445" name="CP_PERFCOUNTER_SELECT" type="a3xx_cp_perfcounter_select"/> 759bf215546Sopenharmony_ci <reg32 offset="0x045c" name="CP_HW_FAULT"/> 760bf215546Sopenharmony_ci <reg32 offset="0x045e" name="CP_PROTECT_CTRL"/> 761bf215546Sopenharmony_ci <reg32 offset="0x045f" name="CP_PROTECT_STATUS"/> 762bf215546Sopenharmony_ci <array offset="0x0460" name="CP_PROTECT" stride="1" length="16"> 763bf215546Sopenharmony_ci <reg32 offset="0x0" name="REG"/> 764bf215546Sopenharmony_ci </array> 765bf215546Sopenharmony_ci <reg32 offset="0x054d" name="CP_AHB_FAULT"/> 766bf215546Sopenharmony_ci 767bf215546Sopenharmony_ci <reg32 offset="0x0d00" name="SQ_GPR_MANAGEMENT"/> 768bf215546Sopenharmony_ci <reg32 offset="0x0d02" name="SQ_INST_STORE_MANAGMENT"/> 769bf215546Sopenharmony_ci <reg32 offset="0x0e1e" name="TP0_CHICKEN"/> 770bf215546Sopenharmony_ci 771bf215546Sopenharmony_ci <!-- these I guess or either SP or HLSQ since related to shader core setup: --> 772bf215546Sopenharmony_ci <reg32 offset="0x0e22" name="SP_GLOBAL_MEM_SIZE" type="uint"> 773bf215546Sopenharmony_ci <doc> 774bf215546Sopenharmony_ci The pair of MEM_SIZE/ADDR registers get programmed 775bf215546Sopenharmony_ci in sequence with the size/addr of each buffer. 776bf215546Sopenharmony_ci </doc> 777bf215546Sopenharmony_ci </reg32> 778bf215546Sopenharmony_ci <reg32 offset="0x0e23" name="SP_GLOBAL_MEM_ADDR"/> 779bf215546Sopenharmony_ci 780bf215546Sopenharmony_ci <!-- GRAS registers --> 781bf215546Sopenharmony_ci <reg32 offset="0x2040" name="GRAS_CL_CLIP_CNTL"> 782bf215546Sopenharmony_ci <bitfield name="IJ_PERSP_CENTER" pos="12" type="boolean"/> 783bf215546Sopenharmony_ci <bitfield name="IJ_NON_PERSP_CENTER" pos="13" type="boolean"/> 784bf215546Sopenharmony_ci <bitfield name="IJ_PERSP_CENTROID" pos="14" type="boolean"/> 785bf215546Sopenharmony_ci <bitfield name="IJ_NON_PERSP_CENTROID" pos="15" type="boolean"/> 786bf215546Sopenharmony_ci <bitfield name="CLIP_DISABLE" pos="16" type="boolean"/> 787bf215546Sopenharmony_ci <bitfield name="ZFAR_CLIP_DISABLE" pos="17" type="boolean"/> 788bf215546Sopenharmony_ci <bitfield name="VP_CLIP_CODE_IGNORE" pos="19" type="boolean"/> 789bf215546Sopenharmony_ci <bitfield name="VP_XFORM_DISABLE" pos="20" type="boolean"/> 790bf215546Sopenharmony_ci <bitfield name="PERSP_DIVISION_DISABLE" pos="21" type="boolean"/> 791bf215546Sopenharmony_ci <bitfield name="ZERO_GB_SCALE_Z" pos="22" type="boolean"> 792bf215546Sopenharmony_ci <doc>aka clip_halfz</doc> 793bf215546Sopenharmony_ci </bitfield> 794bf215546Sopenharmony_ci <!-- set when gl_FragCoord.z is enabled in frag shader: --> 795bf215546Sopenharmony_ci <bitfield name="ZCOORD" pos="23" type="boolean"/> 796bf215546Sopenharmony_ci <bitfield name="WCOORD" pos="24" type="boolean"/> 797bf215546Sopenharmony_ci <!-- set when frag shader writes z (so early z test disabled: --> 798bf215546Sopenharmony_ci <bitfield name="ZCLIP_DISABLE" pos="25" type="boolean"/> 799bf215546Sopenharmony_ci <bitfield name="NUM_USER_CLIP_PLANES" low="26" high="28" type="uint"/> 800bf215546Sopenharmony_ci </reg32> 801bf215546Sopenharmony_ci <reg32 offset="0x2044" name="GRAS_CL_GB_CLIP_ADJ"> 802bf215546Sopenharmony_ci <bitfield name="HORZ" low="0" high="9" type="uint"/> 803bf215546Sopenharmony_ci <bitfield name="VERT" low="10" high="19" type="uint"/> 804bf215546Sopenharmony_ci </reg32> 805bf215546Sopenharmony_ci <reg32 offset="0x2048" name="GRAS_CL_VPORT_XOFFSET" type="float"/> 806bf215546Sopenharmony_ci <reg32 offset="0x2049" name="GRAS_CL_VPORT_XSCALE" type="float"/> 807bf215546Sopenharmony_ci <reg32 offset="0x204a" name="GRAS_CL_VPORT_YOFFSET" type="float"/> 808bf215546Sopenharmony_ci <reg32 offset="0x204b" name="GRAS_CL_VPORT_YSCALE" type="float"/> 809bf215546Sopenharmony_ci <reg32 offset="0x204c" name="GRAS_CL_VPORT_ZOFFSET" type="float"/> 810bf215546Sopenharmony_ci <reg32 offset="0x204d" name="GRAS_CL_VPORT_ZSCALE" type="float"/> 811bf215546Sopenharmony_ci <reg32 offset="0x2068" name="GRAS_SU_POINT_MINMAX"> 812bf215546Sopenharmony_ci <bitfield name="MIN" low="0" high="15" type="ufixed" radix="4"/> 813bf215546Sopenharmony_ci <bitfield name="MAX" low="16" high="31" type="ufixed" radix="4"/> 814bf215546Sopenharmony_ci </reg32> 815bf215546Sopenharmony_ci <reg32 offset="0x2069" name="GRAS_SU_POINT_SIZE" type="fixed" radix="4"/> 816bf215546Sopenharmony_ci <reg32 offset="0x206c" name="GRAS_SU_POLY_OFFSET_SCALE"> 817bf215546Sopenharmony_ci <bitfield name="VAL" low="0" high="23" type="fixed" radix="20"/> 818bf215546Sopenharmony_ci <doc>range of -8.0 to 8.0</doc> 819bf215546Sopenharmony_ci </reg32> 820bf215546Sopenharmony_ci <reg32 offset="0x206d" name="GRAS_SU_POLY_OFFSET_OFFSET" radix="6" type="fixed"> 821bf215546Sopenharmony_ci <doc>range of -512.0 to 512.0</doc> 822bf215546Sopenharmony_ci </reg32> 823bf215546Sopenharmony_ci <reg32 offset="0x2070" name="GRAS_SU_MODE_CONTROL"> 824bf215546Sopenharmony_ci <bitfield name="CULL_FRONT" pos="0" type="boolean"/> 825bf215546Sopenharmony_ci <bitfield name="CULL_BACK" pos="1" type="boolean"/> 826bf215546Sopenharmony_ci <bitfield name="FRONT_CW" pos="2" type="boolean"/> 827bf215546Sopenharmony_ci <bitfield name="LINEHALFWIDTH" low="3" high="10" radix="2" type="fixed"/> 828bf215546Sopenharmony_ci <bitfield name="POLY_OFFSET" pos="11" type="boolean"/> 829bf215546Sopenharmony_ci </reg32> 830bf215546Sopenharmony_ci <reg32 offset="0x2072" name="GRAS_SC_CONTROL"> 831bf215546Sopenharmony_ci <!-- complete wild-ass-guess for sizes of these bitfields.. --> 832bf215546Sopenharmony_ci <bitfield name="RENDER_MODE" low="4" high="7" type="a3xx_render_mode"/> 833bf215546Sopenharmony_ci <bitfield name="MSAA_SAMPLES" low="8" high="11" type="a3xx_msaa_samples"/> 834bf215546Sopenharmony_ci <bitfield name="RASTER_MODE" low="12" high="15"/> 835bf215546Sopenharmony_ci </reg32> 836bf215546Sopenharmony_ci 837bf215546Sopenharmony_ci <reg32 offset="0x2074" name="GRAS_SC_SCREEN_SCISSOR_TL" type="adreno_reg_xy"/> 838bf215546Sopenharmony_ci <reg32 offset="0x2075" name="GRAS_SC_SCREEN_SCISSOR_BR" type="adreno_reg_xy"/> 839bf215546Sopenharmony_ci <reg32 offset="0x2079" name="GRAS_SC_WINDOW_SCISSOR_TL" type="adreno_reg_xy"/> 840bf215546Sopenharmony_ci <reg32 offset="0x207a" name="GRAS_SC_WINDOW_SCISSOR_BR" type="adreno_reg_xy"/> 841bf215546Sopenharmony_ci 842bf215546Sopenharmony_ci <!-- RB registers --> 843bf215546Sopenharmony_ci <reg32 offset="0x20c0" name="RB_MODE_CONTROL"> 844bf215546Sopenharmony_ci <!-- guess on the # of bits here.. --> 845bf215546Sopenharmony_ci <bitfield name="GMEM_BYPASS" pos="7" type="boolean"/> 846bf215546Sopenharmony_ci <doc> 847bf215546Sopenharmony_ci RENDER_MODE is RB_RESOLVE_PASS for gmem->mem, otherwise RB_RENDER_PASS 848bf215546Sopenharmony_ci </doc> 849bf215546Sopenharmony_ci <bitfield name="RENDER_MODE" low="8" high="10" type="a3xx_render_mode"/> 850bf215546Sopenharmony_ci <bitfield name="MRT" low="12" high="13" type="uint"> 851bf215546Sopenharmony_ci <doc>render targets - 1</doc> 852bf215546Sopenharmony_ci </bitfield> 853bf215546Sopenharmony_ci <bitfield name="MARB_CACHE_SPLIT_MODE" pos="15" type="boolean"/> 854bf215546Sopenharmony_ci <bitfield name="PACKER_TIMER_ENABLE" pos="16" type="boolean"/> 855bf215546Sopenharmony_ci </reg32> 856bf215546Sopenharmony_ci <reg32 offset="0x20c1" name="RB_RENDER_CONTROL"> 857bf215546Sopenharmony_ci <bitfield name="DUAL_COLOR_IN_ENABLE" pos="0" type="boolean"/> 858bf215546Sopenharmony_ci <bitfield name="YUV_IN_ENABLE" pos="1" type="boolean"/> 859bf215546Sopenharmony_ci <bitfield name="COV_VALUE_INPUT_ENABLE" pos="2" type="boolean"/> 860bf215546Sopenharmony_ci <!-- set when gl_FrontFacing is accessed in frag shader: --> 861bf215546Sopenharmony_ci <bitfield name="FACENESS" pos="3" type="boolean"/> 862bf215546Sopenharmony_ci <bitfield name="BIN_WIDTH" low="4" high="11" shr="5" type="uint"/> 863bf215546Sopenharmony_ci <bitfield name="DISABLE_COLOR_PIPE" pos="12" type="boolean"/> 864bf215546Sopenharmony_ci <!-- 865bf215546Sopenharmony_ci ENABLE_GMEM not set on mem2gmem.. so possibly it is actually 866bf215546Sopenharmony_ci controlling blend or readback from GMEM?? 867bf215546Sopenharmony_ci --> 868bf215546Sopenharmony_ci <bitfield name="ENABLE_GMEM" pos="13" type="boolean"/> 869bf215546Sopenharmony_ci <bitfield name="COORD_MASK" low="14" high="17" type="hex"/> 870bf215546Sopenharmony_ci <bitfield name="I_CLAMP_ENABLE" pos="19" type="boolean"/> 871bf215546Sopenharmony_ci <bitfield name="COV_VALUE_OUTPUT_ENABLE" pos="20" type="boolean"/> 872bf215546Sopenharmony_ci <bitfield name="ALPHA_TEST" pos="22" type="boolean"/> 873bf215546Sopenharmony_ci <bitfield name="ALPHA_TEST_FUNC" low="24" high="26" type="adreno_compare_func"/> 874bf215546Sopenharmony_ci <bitfield name="ALPHA_TO_COVERAGE" pos="30" type="boolean"/> 875bf215546Sopenharmony_ci <bitfield name="ALPHA_TO_ONE" pos="31" type="boolean"/> 876bf215546Sopenharmony_ci </reg32> 877bf215546Sopenharmony_ci <reg32 offset="0x20c2" name="RB_MSAA_CONTROL"> 878bf215546Sopenharmony_ci <bitfield name="DISABLE" pos="10" type="boolean"/> 879bf215546Sopenharmony_ci <bitfield name="SAMPLES" low="12" high="15" type="a3xx_msaa_samples"/> 880bf215546Sopenharmony_ci <bitfield name="SAMPLE_MASK" low="16" high="31" type="hex"/> 881bf215546Sopenharmony_ci </reg32> 882bf215546Sopenharmony_ci <reg32 offset="0x20c3" name="RB_ALPHA_REF"> 883bf215546Sopenharmony_ci <bitfield name="UINT" low="8" high="15" type="hex"/> 884bf215546Sopenharmony_ci <bitfield name="FLOAT" low="16" high="31" type="float"/> 885bf215546Sopenharmony_ci </reg32> 886bf215546Sopenharmony_ci <array offset="0x20c4" name="RB_MRT" stride="4" length="4"> 887bf215546Sopenharmony_ci <reg32 offset="0x0" name="CONTROL"> 888bf215546Sopenharmony_ci <bitfield name="READ_DEST_ENABLE" pos="3" type="boolean"/> 889bf215546Sopenharmony_ci <!-- both these bits seem to get set when enabling GL_BLEND.. --> 890bf215546Sopenharmony_ci <bitfield name="BLEND" pos="4" type="boolean"/> 891bf215546Sopenharmony_ci <bitfield name="BLEND2" pos="5" type="boolean"/> 892bf215546Sopenharmony_ci <bitfield name="ROP_CODE" low="8" high="11" type="a3xx_rop_code"/> 893bf215546Sopenharmony_ci <bitfield name="DITHER_MODE" low="12" high="13" type="adreno_rb_dither_mode"/> 894bf215546Sopenharmony_ci <bitfield name="COMPONENT_ENABLE" low="24" high="27" type="hex"/> 895bf215546Sopenharmony_ci </reg32> 896bf215546Sopenharmony_ci <reg32 offset="0x1" name="BUF_INFO"> 897bf215546Sopenharmony_ci <bitfield name="COLOR_FORMAT" low="0" high="5" type="a3xx_color_fmt"/> 898bf215546Sopenharmony_ci <bitfield name="COLOR_TILE_MODE" low="6" high="7" type="a3xx_tile_mode"/> 899bf215546Sopenharmony_ci <bitfield name="COLOR_SWAP" low="10" high="11" type="a3xx_color_swap"/> 900bf215546Sopenharmony_ci <bitfield name="COLOR_SRGB" pos="14" type="boolean"/> 901bf215546Sopenharmony_ci <doc> 902bf215546Sopenharmony_ci Pitch (actually, appears to be pitch in bytes, so really is a stride) 903bf215546Sopenharmony_ci in GMEM, so pitch of the current tile. 904bf215546Sopenharmony_ci </doc> 905bf215546Sopenharmony_ci <bitfield name="COLOR_BUF_PITCH" low="17" high="31" shr="5" type="uint"/> 906bf215546Sopenharmony_ci </reg32> 907bf215546Sopenharmony_ci <reg32 offset="0x2" name="BUF_BASE"> 908bf215546Sopenharmony_ci <doc>offset into GMEM (or system memory address in bypass mode)</doc> 909bf215546Sopenharmony_ci <bitfield name="COLOR_BUF_BASE" low="4" high="31" shr="5" type="hex"/> 910bf215546Sopenharmony_ci </reg32> 911bf215546Sopenharmony_ci <reg32 offset="0x3" name="BLEND_CONTROL"> 912bf215546Sopenharmony_ci <bitfield name="RGB_SRC_FACTOR" low="0" high="4" type="adreno_rb_blend_factor"/> 913bf215546Sopenharmony_ci <bitfield name="RGB_BLEND_OPCODE" low="5" high="7" type="a3xx_rb_blend_opcode"/> 914bf215546Sopenharmony_ci <bitfield name="RGB_DEST_FACTOR" low="8" high="12" type="adreno_rb_blend_factor"/> 915bf215546Sopenharmony_ci <bitfield name="ALPHA_SRC_FACTOR" low="16" high="20" type="adreno_rb_blend_factor"/> 916bf215546Sopenharmony_ci <bitfield name="ALPHA_BLEND_OPCODE" low="21" high="23" type="a3xx_rb_blend_opcode"/> 917bf215546Sopenharmony_ci <bitfield name="ALPHA_DEST_FACTOR" low="24" high="28" type="adreno_rb_blend_factor"/> 918bf215546Sopenharmony_ci <bitfield name="CLAMP_ENABLE" pos="29" type="boolean"/> 919bf215546Sopenharmony_ci </reg32> 920bf215546Sopenharmony_ci </array> 921bf215546Sopenharmony_ci 922bf215546Sopenharmony_ci <reg32 offset="0x20e4" name="RB_BLEND_RED"> 923bf215546Sopenharmony_ci <bitfield name="UINT" low="0" high="7" type="hex"/> 924bf215546Sopenharmony_ci <bitfield name="FLOAT" low="16" high="31" type="float"/> 925bf215546Sopenharmony_ci </reg32> 926bf215546Sopenharmony_ci <reg32 offset="0x20e5" name="RB_BLEND_GREEN"> 927bf215546Sopenharmony_ci <bitfield name="UINT" low="0" high="7" type="hex"/> 928bf215546Sopenharmony_ci <bitfield name="FLOAT" low="16" high="31" type="float"/> 929bf215546Sopenharmony_ci </reg32> 930bf215546Sopenharmony_ci <reg32 offset="0x20e6" name="RB_BLEND_BLUE"> 931bf215546Sopenharmony_ci <bitfield name="UINT" low="0" high="7" type="hex"/> 932bf215546Sopenharmony_ci <bitfield name="FLOAT" low="16" high="31" type="float"/> 933bf215546Sopenharmony_ci </reg32> 934bf215546Sopenharmony_ci <reg32 offset="0x20e7" name="RB_BLEND_ALPHA"> 935bf215546Sopenharmony_ci <bitfield name="UINT" low="0" high="7" type="hex"/> 936bf215546Sopenharmony_ci <bitfield name="FLOAT" low="16" high="31" type="float"/> 937bf215546Sopenharmony_ci </reg32> 938bf215546Sopenharmony_ci 939bf215546Sopenharmony_ci <reg32 offset="0x20e8" name="RB_CLEAR_COLOR_DW0"/> 940bf215546Sopenharmony_ci <reg32 offset="0x20e9" name="RB_CLEAR_COLOR_DW1"/> 941bf215546Sopenharmony_ci <reg32 offset="0x20ea" name="RB_CLEAR_COLOR_DW2"/> 942bf215546Sopenharmony_ci <reg32 offset="0x20eb" name="RB_CLEAR_COLOR_DW3"/> 943bf215546Sopenharmony_ci <reg32 offset="0x20ec" name="RB_COPY_CONTROL"> 944bf215546Sopenharmony_ci <!-- not sure # of bits --> 945bf215546Sopenharmony_ci <bitfield name="MSAA_RESOLVE" low="0" high="1" type="a3xx_msaa_samples"/> 946bf215546Sopenharmony_ci <bitfield name="DEPTHCLEAR" pos="3" type="boolean"/> 947bf215546Sopenharmony_ci <bitfield name="MODE" low="4" high="6" type="adreno_rb_copy_control_mode"/> 948bf215546Sopenharmony_ci <bitfield name="MSAA_SRGB_DOWNSAMPLE" pos="7" type="boolean"/> 949bf215546Sopenharmony_ci <bitfield name="FASTCLEAR" low="8" high="11" type="hex"/> 950bf215546Sopenharmony_ci <bitfield name="DEPTH32_RESOLVE" pos="12" type="boolean"/> <!-- enabled on a Z32F copy --> 951bf215546Sopenharmony_ci <bitfield name="GMEM_BASE" low="14" high="31" shr="14" type="hex"/> 952bf215546Sopenharmony_ci </reg32> 953bf215546Sopenharmony_ci <reg32 offset="0x20ed" name="RB_COPY_DEST_BASE"> 954bf215546Sopenharmony_ci <bitfield name="BASE" low="4" high="31" shr="5" type="hex"/> 955bf215546Sopenharmony_ci </reg32> 956bf215546Sopenharmony_ci <reg32 offset="0x20ee" name="RB_COPY_DEST_PITCH"> 957bf215546Sopenharmony_ci <doc>actually, appears to be pitch in bytes, so really is a stride</doc> 958bf215546Sopenharmony_ci <!-- not actually sure about max pitch... --> 959bf215546Sopenharmony_ci <bitfield name="PITCH" low="0" high="31" shr="5" type="uint"/> 960bf215546Sopenharmony_ci </reg32> 961bf215546Sopenharmony_ci <reg32 offset="0x20ef" name="RB_COPY_DEST_INFO"> 962bf215546Sopenharmony_ci <bitfield name="TILE" low="0" high="1" type="a3xx_tile_mode"/> 963bf215546Sopenharmony_ci <bitfield name="FORMAT" low="2" high="7" type="a3xx_color_fmt"/> 964bf215546Sopenharmony_ci <bitfield name="SWAP" low="8" high="9" type="a3xx_color_swap"/> 965bf215546Sopenharmony_ci <bitfield name="DITHER_MODE" low="10" high="11" type="adreno_rb_dither_mode"/> 966bf215546Sopenharmony_ci <bitfield name="COMPONENT_ENABLE" low="14" high="17" type="hex"/> 967bf215546Sopenharmony_ci <bitfield name="ENDIAN" low="18" high="20" type="adreno_rb_surface_endian"/> 968bf215546Sopenharmony_ci </reg32> 969bf215546Sopenharmony_ci <reg32 offset="0x2100" name="RB_DEPTH_CONTROL"> 970bf215546Sopenharmony_ci <!-- 971bf215546Sopenharmony_ci guessing that this matches a2xx with the stencil fields 972bf215546Sopenharmony_ci moved out into RB_STENCIL_CONTROL? 973bf215546Sopenharmony_ci --> 974bf215546Sopenharmony_ci <bitfield name="FRAG_WRITES_Z" pos="0" type="boolean"/> 975bf215546Sopenharmony_ci <bitfield name="Z_TEST_ENABLE" pos="1" type="boolean"/> 976bf215546Sopenharmony_ci <bitfield name="Z_WRITE_ENABLE" pos="2" type="boolean"/> 977bf215546Sopenharmony_ci <bitfield name="EARLY_Z_DISABLE" pos="3" type="boolean"/> 978bf215546Sopenharmony_ci <bitfield name="ZFUNC" low="4" high="6" type="adreno_compare_func"/> 979bf215546Sopenharmony_ci <bitfield name="Z_CLAMP_ENABLE" pos="7" type="boolean"/> 980bf215546Sopenharmony_ci <doc>Z_READ_ENABLE bit is set for zfunc other than GL_ALWAYS or GL_NEVER</doc> 981bf215546Sopenharmony_ci <bitfield name="Z_READ_ENABLE" pos="31" type="boolean"/> 982bf215546Sopenharmony_ci </reg32> 983bf215546Sopenharmony_ci <reg32 offset="0x2101" name="RB_DEPTH_CLEAR"> 984bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000000</doc> 985bf215546Sopenharmony_ci </reg32> 986bf215546Sopenharmony_ci <reg32 offset="0x2102" name="RB_DEPTH_INFO"> 987bf215546Sopenharmony_ci <bitfield name="DEPTH_FORMAT" low="0" high="1" type="adreno_rb_depth_format"/> 988bf215546Sopenharmony_ci <doc> 989bf215546Sopenharmony_ci DEPTH_BASE is offset in GMEM to depth/stencil buffer, ie 990bf215546Sopenharmony_ci bin_w * bin_h / 1024 (possible rounded up to multiple of 991bf215546Sopenharmony_ci something?? ie. 39 becomes 40, 78 becomes 80.. 75 becomes 992bf215546Sopenharmony_ci 80.. so maybe it needs to be multiple of 8?? 993bf215546Sopenharmony_ci </doc> 994bf215546Sopenharmony_ci <bitfield name="DEPTH_BASE" low="11" high="31" shr="12" type="hex"/> 995bf215546Sopenharmony_ci </reg32> 996bf215546Sopenharmony_ci <reg32 offset="0x2103" name="RB_DEPTH_PITCH" shr="3" type="uint"> 997bf215546Sopenharmony_ci <doc> 998bf215546Sopenharmony_ci Pitch of depth buffer or combined depth+stencil buffer 999bf215546Sopenharmony_ci in z24s8 cases. 1000bf215546Sopenharmony_ci </doc> 1001bf215546Sopenharmony_ci </reg32> 1002bf215546Sopenharmony_ci <reg32 offset="0x2104" name="RB_STENCIL_CONTROL"> 1003bf215546Sopenharmony_ci <bitfield name="STENCIL_ENABLE" pos="0" type="boolean"/> 1004bf215546Sopenharmony_ci <bitfield name="STENCIL_ENABLE_BF" pos="1" type="boolean"/> 1005bf215546Sopenharmony_ci <!-- 1006bf215546Sopenharmony_ci set for stencil operations that require read from stencil 1007bf215546Sopenharmony_ci buffer, but not for example for stencil clear (which does 1008bf215546Sopenharmony_ci not require read).. so guessing this is analogous to 1009bf215546Sopenharmony_ci READ_DEST_ENABLE for color buffer.. 1010bf215546Sopenharmony_ci --> 1011bf215546Sopenharmony_ci <bitfield name="STENCIL_READ" pos="2" type="boolean"/> 1012bf215546Sopenharmony_ci <bitfield name="FUNC" low="8" high="10" type="adreno_compare_func"/> 1013bf215546Sopenharmony_ci <bitfield name="FAIL" low="11" high="13" type="adreno_stencil_op"/> 1014bf215546Sopenharmony_ci <bitfield name="ZPASS" low="14" high="16" type="adreno_stencil_op"/> 1015bf215546Sopenharmony_ci <bitfield name="ZFAIL" low="17" high="19" type="adreno_stencil_op"/> 1016bf215546Sopenharmony_ci <bitfield name="FUNC_BF" low="20" high="22" type="adreno_compare_func"/> 1017bf215546Sopenharmony_ci <bitfield name="FAIL_BF" low="23" high="25" type="adreno_stencil_op"/> 1018bf215546Sopenharmony_ci <bitfield name="ZPASS_BF" low="26" high="28" type="adreno_stencil_op"/> 1019bf215546Sopenharmony_ci <bitfield name="ZFAIL_BF" low="29" high="31" type="adreno_stencil_op"/> 1020bf215546Sopenharmony_ci </reg32> 1021bf215546Sopenharmony_ci <reg32 offset="0x2105" name="RB_STENCIL_CLEAR"> 1022bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000000</doc> 1023bf215546Sopenharmony_ci </reg32> 1024bf215546Sopenharmony_ci <reg32 offset="0x2106" name="RB_STENCIL_INFO"> 1025bf215546Sopenharmony_ci <doc>Base address for stencil when not using interleaved depth/stencil</doc> 1026bf215546Sopenharmony_ci <bitfield name="STENCIL_BASE" low="11" high="31" shr="12" type="hex"/> 1027bf215546Sopenharmony_ci </reg32> 1028bf215546Sopenharmony_ci <reg32 offset="0x2107" name="RB_STENCIL_PITCH" shr="3" type="uint"> 1029bf215546Sopenharmony_ci <doc>pitch of stencil buffer when not using interleaved depth/stencil</doc> 1030bf215546Sopenharmony_ci </reg32> 1031bf215546Sopenharmony_ci <reg32 offset="0x2108" name="RB_STENCILREFMASK" type="adreno_rb_stencilrefmask"/> 1032bf215546Sopenharmony_ci <reg32 offset="0x2109" name="RB_STENCILREFMASK_BF" type="adreno_rb_stencilrefmask"/> 1033bf215546Sopenharmony_ci <!-- VSC == visibility stream c?? --> 1034bf215546Sopenharmony_ci <reg32 offset="0x210c" name="RB_LRZ_VSC_CONTROL"> 1035bf215546Sopenharmony_ci <doc>seems to be set to 0x00000002 during binning pass</doc> 1036bf215546Sopenharmony_ci <bitfield name="BINNING_ENABLE" pos="1" type="boolean"/> 1037bf215546Sopenharmony_ci </reg32> 1038bf215546Sopenharmony_ci <reg32 offset="0x210e" name="RB_WINDOW_OFFSET"> 1039bf215546Sopenharmony_ci <doc>X/Y offset of current bin</doc> 1040bf215546Sopenharmony_ci <bitfield name="X" low="0" high="15" type="uint"/> 1041bf215546Sopenharmony_ci <bitfield name="Y" low="16" high="31" type="uint"/> 1042bf215546Sopenharmony_ci </reg32> 1043bf215546Sopenharmony_ci <reg32 offset="0x2110" name="RB_SAMPLE_COUNT_CONTROL"> 1044bf215546Sopenharmony_ci <bitfield name="RESET" pos="0" type="boolean"/> 1045bf215546Sopenharmony_ci <bitfield name="COPY" pos="1" type="boolean"/> 1046bf215546Sopenharmony_ci </reg32> 1047bf215546Sopenharmony_ci <reg32 offset="0x2111" name="RB_SAMPLE_COUNT_ADDR"/> 1048bf215546Sopenharmony_ci <reg32 offset="0x2114" name="RB_Z_CLAMP_MIN"/> 1049bf215546Sopenharmony_ci <reg32 offset="0x2115" name="RB_Z_CLAMP_MAX"/> 1050bf215546Sopenharmony_ci 1051bf215546Sopenharmony_ci <!-- PC registers --> 1052bf215546Sopenharmony_ci <reg32 offset="0x21e1" name="VGT_BIN_BASE"> 1053bf215546Sopenharmony_ci <doc> 1054bf215546Sopenharmony_ci seems to be where firmware writes BIN_DATA_ADDR from 1055bf215546Sopenharmony_ci CP_SET_BIN_DATA packet.. probably should be called 1056bf215546Sopenharmony_ci PC_BIN_BASE (just using name from yamato for now) 1057bf215546Sopenharmony_ci </doc> 1058bf215546Sopenharmony_ci </reg32> 1059bf215546Sopenharmony_ci <reg32 offset="0x21e2" name="VGT_BIN_SIZE"> 1060bf215546Sopenharmony_ci <doc>probably should be PC_BIN_SIZE</doc> 1061bf215546Sopenharmony_ci </reg32> 1062bf215546Sopenharmony_ci <reg32 offset="0x21e4" name="PC_VSTREAM_CONTROL"> 1063bf215546Sopenharmony_ci <doc>SIZE is current pipe width * height (in tiles)</doc> 1064bf215546Sopenharmony_ci <bitfield name="SIZE" low="16" high="21" type="uint"/> 1065bf215546Sopenharmony_ci <doc> 1066bf215546Sopenharmony_ci N is some sort of slot # between 0..(SIZE-1). In case 1067bf215546Sopenharmony_ci multiple tiles use same pipe, each tile gets unique slot # 1068bf215546Sopenharmony_ci </doc> 1069bf215546Sopenharmony_ci <bitfield name="N" low="22" high="26" type="uint"/> 1070bf215546Sopenharmony_ci </reg32> 1071bf215546Sopenharmony_ci <reg32 offset="0x21ea" name="PC_VERTEX_REUSE_BLOCK_CNTL"/> 1072bf215546Sopenharmony_ci <reg32 offset="0x21ec" name="PC_PRIM_VTX_CNTL"> 1073bf215546Sopenharmony_ci <doc> 1074bf215546Sopenharmony_ci STRIDE_IN_VPC: ALIGN(next_outloc - 8, 4) / 4 1075bf215546Sopenharmony_ci (but, in cases where you'd expect 1, the blob driver uses 1076bf215546Sopenharmony_ci 2, so possibly 0 (no varying) or minimum of 2) 1077bf215546Sopenharmony_ci </doc> 1078bf215546Sopenharmony_ci <bitfield name="STRIDE_IN_VPC" low="0" high="4" type="uint"/> 1079bf215546Sopenharmony_ci <bitfield name="POLYMODE_FRONT_PTYPE" low="5" high="7" type="adreno_pa_su_sc_draw"/> 1080bf215546Sopenharmony_ci <bitfield name="POLYMODE_BACK_PTYPE" low="8" high="10" type="adreno_pa_su_sc_draw"/> 1081bf215546Sopenharmony_ci <bitfield name="POLYMODE_ENABLE" pos="12" type="boolean"/> 1082bf215546Sopenharmony_ci <bitfield name="PRIMITIVE_RESTART" pos="20" type="boolean"/> 1083bf215546Sopenharmony_ci <bitfield name="PROVOKING_VTX_LAST" pos="25" type="boolean"/> 1084bf215546Sopenharmony_ci <!-- PSIZE bit set if gl_PointSize written: --> 1085bf215546Sopenharmony_ci <bitfield name="PSIZE" pos="26" type="boolean"/> 1086bf215546Sopenharmony_ci </reg32> 1087bf215546Sopenharmony_ci <reg32 offset="0x21ed" name="PC_RESTART_INDEX"/> 1088bf215546Sopenharmony_ci 1089bf215546Sopenharmony_ci <!-- HLSQ registers --> 1090bf215546Sopenharmony_ci <bitset name="a3xx_hlsq_vs_fs_control_reg" inline="yes"> 1091bf215546Sopenharmony_ci <bitfield name="CONSTLENGTH" low="0" high="9" type="uint"/> 1092bf215546Sopenharmony_ci <bitfield name="CONSTSTARTOFFSET" low="12" high="20" type="uint"/> 1093bf215546Sopenharmony_ci <bitfield name="INSTRLENGTH" low="24" high="31" type="uint"/> 1094bf215546Sopenharmony_ci </bitset> 1095bf215546Sopenharmony_ci <bitset name="a3xx_hlsq_const_vs_fs_presv_range_reg" inline="yes"> 1096bf215546Sopenharmony_ci <!-- are these a3xx_regid?? --> 1097bf215546Sopenharmony_ci <bitfield name="STARTENTRY" low="0" high="8"/> 1098bf215546Sopenharmony_ci <bitfield name="ENDENTRY" low="16" high="24"/> 1099bf215546Sopenharmony_ci </bitset> 1100bf215546Sopenharmony_ci 1101bf215546Sopenharmony_ci <reg32 offset="0x2200" name="HLSQ_CONTROL_0_REG"> 1102bf215546Sopenharmony_ci <bitfield name="FSTHREADSIZE" low="4" high="5" type="a3xx_threadsize"/> 1103bf215546Sopenharmony_ci <bitfield name="FSSUPERTHREADENABLE" pos="6" type="boolean"/> 1104bf215546Sopenharmony_ci <bitfield name="COMPUTEMODE" pos="8" type="boolean"/> 1105bf215546Sopenharmony_ci <bitfield name="SPSHADERRESTART" pos="9" type="boolean"/> 1106bf215546Sopenharmony_ci <bitfield name="RESERVED2" pos="10" type="boolean"/> 1107bf215546Sopenharmony_ci <bitfield name="CYCLETIMEOUTLIMITVPC" low="12" high="23" type="uint"/> 1108bf215546Sopenharmony_ci <bitfield name="FSONLYTEX" pos="25" type="boolean"/> 1109bf215546Sopenharmony_ci <bitfield name="CHUNKDISABLE" pos="26" type="boolean"/> 1110bf215546Sopenharmony_ci <bitfield name="CONSTMODE" pos="27" type="uint"/> 1111bf215546Sopenharmony_ci <bitfield name="LAZYUPDATEDISABLE" pos="28" type="boolean"/> 1112bf215546Sopenharmony_ci <bitfield name="SPCONSTFULLUPDATE" pos="29" type="boolean"/> 1113bf215546Sopenharmony_ci <bitfield name="TPFULLUPDATE" pos="30" type="boolean"/> 1114bf215546Sopenharmony_ci <bitfield name="SINGLECONTEXT" pos="31" type="boolean"/> 1115bf215546Sopenharmony_ci </reg32> 1116bf215546Sopenharmony_ci <reg32 offset="0x2201" name="HLSQ_CONTROL_1_REG"> 1117bf215546Sopenharmony_ci <bitfield name="VSTHREADSIZE" low="6" high="7" type="a3xx_threadsize"/> 1118bf215546Sopenharmony_ci <bitfield name="VSSUPERTHREADENABLE" pos="8" type="boolean"/> 1119bf215546Sopenharmony_ci <bitfield name="FRAGCOORDXYREGID" low="16" high="23" type="a3xx_regid"/> 1120bf215546Sopenharmony_ci <bitfield name="FRAGCOORDZWREGID" low="24" high="31" type="a3xx_regid"/> 1121bf215546Sopenharmony_ci </reg32> 1122bf215546Sopenharmony_ci <reg32 offset="0x2202" name="HLSQ_CONTROL_2_REG"> 1123bf215546Sopenharmony_ci <bitfield name="FACENESSREGID" low="2" high="9" type="a3xx_regid"/> 1124bf215546Sopenharmony_ci <bitfield name="COVVALUEREGID" low="18" high="25" type="a3xx_regid"/> 1125bf215546Sopenharmony_ci <bitfield name="PRIMALLOCTHRESHOLD" low="26" high="31" type="uint"/> 1126bf215546Sopenharmony_ci </reg32> 1127bf215546Sopenharmony_ci <reg32 offset="0x2203" name="HLSQ_CONTROL_3_REG"> 1128bf215546Sopenharmony_ci <bitfield name="IJPERSPCENTERREGID" low="0" high="7" type="a3xx_regid"/> 1129bf215546Sopenharmony_ci <bitfield name="IJNONPERSPCENTERREGID" low="8" high="15" type="a3xx_regid"/> 1130bf215546Sopenharmony_ci <bitfield name="IJPERSPCENTROIDREGID" low="16" high="23" type="a3xx_regid"/> 1131bf215546Sopenharmony_ci <bitfield name="IJNONPERSPCENTROIDREGID" low="24" high="31" type="a3xx_regid"/> 1132bf215546Sopenharmony_ci </reg32> 1133bf215546Sopenharmony_ci <reg32 offset="0x2204" name="HLSQ_VS_CONTROL_REG" type="a3xx_hlsq_vs_fs_control_reg"/> 1134bf215546Sopenharmony_ci <reg32 offset="0x2205" name="HLSQ_FS_CONTROL_REG" type="a3xx_hlsq_vs_fs_control_reg"/> 1135bf215546Sopenharmony_ci <reg32 offset="0x2206" name="HLSQ_CONST_VSPRESV_RANGE_REG" type="a3xx_hlsq_const_vs_fs_presv_range_reg"/> 1136bf215546Sopenharmony_ci <reg32 offset="0x2207" name="HLSQ_CONST_FSPRESV_RANGE_REG" type="a3xx_hlsq_const_vs_fs_presv_range_reg"/> 1137bf215546Sopenharmony_ci <reg32 offset="0x220a" name="HLSQ_CL_NDRANGE_0_REG"> 1138bf215546Sopenharmony_ci <bitfield name="WORKDIM" low="0" high="1" type="uint"/> 1139bf215546Sopenharmony_ci <bitfield name="LOCALSIZE0" low="2" high="11" type="uint"/> 1140bf215546Sopenharmony_ci <bitfield name="LOCALSIZE1" low="12" high="21" type="uint"/> 1141bf215546Sopenharmony_ci <bitfield name="LOCALSIZE2" low="22" high="31" type="uint"/> 1142bf215546Sopenharmony_ci </reg32> 1143bf215546Sopenharmony_ci <array offset="0x220b" name="HLSQ_CL_GLOBAL_WORK" stride="2" length="3"> 1144bf215546Sopenharmony_ci <doc>indexed by dimension</doc> 1145bf215546Sopenharmony_ci <reg32 offset="0" name="SIZE" type="uint"/> 1146bf215546Sopenharmony_ci <reg32 offset="1" name="OFFSET" type="uint"/> 1147bf215546Sopenharmony_ci </array> 1148bf215546Sopenharmony_ci <reg32 offset="0x2211" name="HLSQ_CL_CONTROL_0_REG"/> 1149bf215546Sopenharmony_ci <reg32 offset="0x2212" name="HLSQ_CL_CONTROL_1_REG"/> 1150bf215546Sopenharmony_ci <reg32 offset="0x2214" name="HLSQ_CL_KERNEL_CONST_REG"/> 1151bf215546Sopenharmony_ci <array offset="0x2215" name="HLSQ_CL_KERNEL_GROUP" stride="1" length="3"> 1152bf215546Sopenharmony_ci <doc>indexed by dimension, global_size / local_size</doc> 1153bf215546Sopenharmony_ci <reg32 offset="0" name="RATIO" type="uint"/> 1154bf215546Sopenharmony_ci </array> 1155bf215546Sopenharmony_ci <reg32 offset="0x2216" name="HLSQ_CL_KERNEL_GROUP_Y_REG" type="uint"/> 1156bf215546Sopenharmony_ci <reg32 offset="0x2217" name="HLSQ_CL_KERNEL_GROUP_Z_REG" type="uint"/> 1157bf215546Sopenharmony_ci <reg32 offset="0x221a" name="HLSQ_CL_WG_OFFSET_REG"/> 1158bf215546Sopenharmony_ci 1159bf215546Sopenharmony_ci <!-- VFD registers --> 1160bf215546Sopenharmony_ci <reg32 offset="0x2240" name="VFD_CONTROL_0"> 1161bf215546Sopenharmony_ci <doc> 1162bf215546Sopenharmony_ci TOTALATTRTOVS is # of attributes to vertex shader, in register 1163bf215546Sopenharmony_ci slots (ie. vec4+vec3 -> 7) 1164bf215546Sopenharmony_ci </doc> 1165bf215546Sopenharmony_ci <bitfield name="TOTALATTRTOVS" low="0" high="17" type="uint"/> 1166bf215546Sopenharmony_ci <bitfield name="PACKETSIZE" low="18" high="21" type="uint"/> 1167bf215546Sopenharmony_ci <doc>STRMDECINSTRCNT is # of VFD_DECODE_INSTR registers valid</doc> 1168bf215546Sopenharmony_ci <bitfield name="STRMDECINSTRCNT" low="22" high="26" type="uint"/> 1169bf215546Sopenharmony_ci <doc>STRMFETCHINSTRCNT is # of VFD_FETCH_INSTR registers valid</doc> 1170bf215546Sopenharmony_ci <bitfield name="STRMFETCHINSTRCNT" low="27" high="31" type="uint"/> 1171bf215546Sopenharmony_ci </reg32> 1172bf215546Sopenharmony_ci <reg32 offset="0x2241" name="VFD_CONTROL_1"> 1173bf215546Sopenharmony_ci <doc>MAXSTORAGE could be # of attributes/vbo's</doc> 1174bf215546Sopenharmony_ci <bitfield name="MAXSTORAGE" low="0" high="3" type="uint"/> 1175bf215546Sopenharmony_ci <bitfield name="MAXTHRESHOLD" low="4" high="7" type="uint"/> 1176bf215546Sopenharmony_ci <bitfield name="MINTHRESHOLD" low="8" high="11" type="uint"/> 1177bf215546Sopenharmony_ci <bitfield name="REGID4VTX" low="16" high="23" type="a3xx_regid"/> 1178bf215546Sopenharmony_ci <bitfield name="REGID4INST" low="24" high="31" type="a3xx_regid"/> 1179bf215546Sopenharmony_ci </reg32> 1180bf215546Sopenharmony_ci <reg32 offset="0x2242" name="VFD_INDEX_MIN" type="uint"/> 1181bf215546Sopenharmony_ci <reg32 offset="0x2243" name="VFD_INDEX_MAX" type="uint"/> 1182bf215546Sopenharmony_ci <reg32 offset="0x2244" name="VFD_INSTANCEID_OFFSET" type="uint"/> 1183bf215546Sopenharmony_ci <reg32 offset="0x2245" name="VFD_INDEX_OFFSET" type="uint"/> 1184bf215546Sopenharmony_ci <array offset="0x2246" name="VFD_FETCH" stride="2" length="16"> 1185bf215546Sopenharmony_ci <reg32 offset="0x0" name="INSTR_0"> 1186bf215546Sopenharmony_ci <bitfield name="FETCHSIZE" low="0" high="6" type="uint"/> 1187bf215546Sopenharmony_ci <bitfield name="BUFSTRIDE" low="7" high="15" type="uint"/> 1188bf215546Sopenharmony_ci <bitfield name="INSTANCED" pos="16" type="boolean"/> 1189bf215546Sopenharmony_ci <bitfield name="SWITCHNEXT" pos="17" type="boolean"/> 1190bf215546Sopenharmony_ci <bitfield name="INDEXCODE" low="18" high="23" type="uint"/> 1191bf215546Sopenharmony_ci <bitfield name="STEPRATE" low="24" high="31" type="uint"/> 1192bf215546Sopenharmony_ci </reg32> 1193bf215546Sopenharmony_ci <reg32 offset="0x1" name="INSTR_1"/> 1194bf215546Sopenharmony_ci </array> 1195bf215546Sopenharmony_ci <array offset="0x2266" name="VFD_DECODE" stride="1" length="16"> 1196bf215546Sopenharmony_ci <reg32 offset="0x0" name="INSTR"> 1197bf215546Sopenharmony_ci <bitfield name="WRITEMASK" low="0" high="3" type="hex"/> 1198bf215546Sopenharmony_ci <!-- not sure if this is a bit flag and another flag above it, or?? --> 1199bf215546Sopenharmony_ci <bitfield name="CONSTFILL" pos="4" type="boolean"/> 1200bf215546Sopenharmony_ci <bitfield name="FORMAT" low="6" high="11" type="a3xx_vtx_fmt"/> 1201bf215546Sopenharmony_ci <bitfield name="REGID" low="12" high="19" type="a3xx_regid"/> 1202bf215546Sopenharmony_ci <bitfield name="INT" pos="20" type="boolean"/> 1203bf215546Sopenharmony_ci <doc>SHIFTCNT appears to be size, ie. FLOAT_32_32_32 is 12, and BYTE_8 is 1</doc> 1204bf215546Sopenharmony_ci <bitfield name="SWAP" low="22" high="23" type="a3xx_color_swap"/> 1205bf215546Sopenharmony_ci <bitfield name="SHIFTCNT" low="24" high="28" type="uint"/> 1206bf215546Sopenharmony_ci <bitfield name="LASTCOMPVALID" pos="29" type="boolean"/> 1207bf215546Sopenharmony_ci <bitfield name="SWITCHNEXT" pos="30" type="boolean"/> 1208bf215546Sopenharmony_ci </reg32> 1209bf215546Sopenharmony_ci </array> 1210bf215546Sopenharmony_ci <reg32 offset="0x227e" name="VFD_VS_THREADING_THRESHOLD"> 1211bf215546Sopenharmony_ci <bitfield name="REGID_THRESHOLD" low="0" high="3" type="uint"/> 1212bf215546Sopenharmony_ci <!-- <bitfield name="RESERVED6" low="4" high="7" type="uint"/> --> 1213bf215546Sopenharmony_ci <bitfield name="REGID_VTXCNT" low="8" high="15" type="a3xx_regid"/> 1214bf215546Sopenharmony_ci </reg32> 1215bf215546Sopenharmony_ci 1216bf215546Sopenharmony_ci <!-- VPC registers --> 1217bf215546Sopenharmony_ci <reg32 offset="0x2280" name="VPC_ATTR"> 1218bf215546Sopenharmony_ci <bitfield name="TOTALATTR" low="0" high="8" type="uint"/> 1219bf215546Sopenharmony_ci <!-- PSIZE bit set if gl_PointSize written: --> 1220bf215546Sopenharmony_ci <bitfield name="PSIZE" pos="9" type="boolean"/> 1221bf215546Sopenharmony_ci <bitfield name="THRDASSIGN" low="12" high="27" type="uint"/> 1222bf215546Sopenharmony_ci <bitfield name="LMSIZE" low="28" high="31" type="uint"/> 1223bf215546Sopenharmony_ci </reg32> 1224bf215546Sopenharmony_ci <reg32 offset="0x2281" name="VPC_PACK"> 1225bf215546Sopenharmony_ci <!-- these are always seem to be set to same as TOTALATTR --> 1226bf215546Sopenharmony_ci <bitfield name="NUMFPNONPOSVAR" low="8" high="15" type="uint"/> 1227bf215546Sopenharmony_ci <bitfield name="NUMNONPOSVSVAR" low="16" high="23" type="uint"/> 1228bf215546Sopenharmony_ci </reg32> 1229bf215546Sopenharmony_ci <!-- 1230bf215546Sopenharmony_ci varying interpolate mode. One field per scalar/component 1231bf215546Sopenharmony_ci (since varying slots are scalar, so things don't have to 1232bf215546Sopenharmony_ci be aligned to vec4). 1233bf215546Sopenharmony_ci 4 regs * 16 scalar components each => 16 vec4 1234bf215546Sopenharmony_ci --> 1235bf215546Sopenharmony_ci <array offset="0x2282" name="VPC_VARYING_INTERP" stride="1" length="4"> 1236bf215546Sopenharmony_ci <reg32 offset="0x0" name="MODE"> 1237bf215546Sopenharmony_ci <bitfield name="C0" low="0" high="1" type="a3xx_intp_mode"/> 1238bf215546Sopenharmony_ci <bitfield name="C1" low="2" high="3" type="a3xx_intp_mode"/> 1239bf215546Sopenharmony_ci <bitfield name="C2" low="4" high="5" type="a3xx_intp_mode"/> 1240bf215546Sopenharmony_ci <bitfield name="C3" low="6" high="7" type="a3xx_intp_mode"/> 1241bf215546Sopenharmony_ci <bitfield name="C4" low="8" high="9" type="a3xx_intp_mode"/> 1242bf215546Sopenharmony_ci <bitfield name="C5" low="10" high="11" type="a3xx_intp_mode"/> 1243bf215546Sopenharmony_ci <bitfield name="C6" low="12" high="13" type="a3xx_intp_mode"/> 1244bf215546Sopenharmony_ci <bitfield name="C7" low="14" high="15" type="a3xx_intp_mode"/> 1245bf215546Sopenharmony_ci <bitfield name="C8" low="16" high="17" type="a3xx_intp_mode"/> 1246bf215546Sopenharmony_ci <bitfield name="C9" low="18" high="19" type="a3xx_intp_mode"/> 1247bf215546Sopenharmony_ci <bitfield name="CA" low="20" high="21" type="a3xx_intp_mode"/> 1248bf215546Sopenharmony_ci <bitfield name="CB" low="22" high="23" type="a3xx_intp_mode"/> 1249bf215546Sopenharmony_ci <bitfield name="CC" low="24" high="25" type="a3xx_intp_mode"/> 1250bf215546Sopenharmony_ci <bitfield name="CD" low="26" high="27" type="a3xx_intp_mode"/> 1251bf215546Sopenharmony_ci <bitfield name="CE" low="28" high="29" type="a3xx_intp_mode"/> 1252bf215546Sopenharmony_ci <bitfield name="CF" low="30" high="31" type="a3xx_intp_mode"/> 1253bf215546Sopenharmony_ci </reg32> 1254bf215546Sopenharmony_ci </array> 1255bf215546Sopenharmony_ci <array offset="0x2286" name="VPC_VARYING_PS_REPL" stride="1" length="4"> 1256bf215546Sopenharmony_ci <reg32 offset="0x0" name="MODE"> 1257bf215546Sopenharmony_ci <bitfield name="C0" low="0" high="1" type="a3xx_repl_mode"/> 1258bf215546Sopenharmony_ci <bitfield name="C1" low="2" high="3" type="a3xx_repl_mode"/> 1259bf215546Sopenharmony_ci <bitfield name="C2" low="4" high="5" type="a3xx_repl_mode"/> 1260bf215546Sopenharmony_ci <bitfield name="C3" low="6" high="7" type="a3xx_repl_mode"/> 1261bf215546Sopenharmony_ci <bitfield name="C4" low="8" high="9" type="a3xx_repl_mode"/> 1262bf215546Sopenharmony_ci <bitfield name="C5" low="10" high="11" type="a3xx_repl_mode"/> 1263bf215546Sopenharmony_ci <bitfield name="C6" low="12" high="13" type="a3xx_repl_mode"/> 1264bf215546Sopenharmony_ci <bitfield name="C7" low="14" high="15" type="a3xx_repl_mode"/> 1265bf215546Sopenharmony_ci <bitfield name="C8" low="16" high="17" type="a3xx_repl_mode"/> 1266bf215546Sopenharmony_ci <bitfield name="C9" low="18" high="19" type="a3xx_repl_mode"/> 1267bf215546Sopenharmony_ci <bitfield name="CA" low="20" high="21" type="a3xx_repl_mode"/> 1268bf215546Sopenharmony_ci <bitfield name="CB" low="22" high="23" type="a3xx_repl_mode"/> 1269bf215546Sopenharmony_ci <bitfield name="CC" low="24" high="25" type="a3xx_repl_mode"/> 1270bf215546Sopenharmony_ci <bitfield name="CD" low="26" high="27" type="a3xx_repl_mode"/> 1271bf215546Sopenharmony_ci <bitfield name="CE" low="28" high="29" type="a3xx_repl_mode"/> 1272bf215546Sopenharmony_ci <bitfield name="CF" low="30" high="31" type="a3xx_repl_mode"/> 1273bf215546Sopenharmony_ci </reg32> 1274bf215546Sopenharmony_ci </array> 1275bf215546Sopenharmony_ci <reg32 offset="0x228a" name="VPC_VARY_CYLWRAP_ENABLE_0"/> 1276bf215546Sopenharmony_ci <reg32 offset="0x228b" name="VPC_VARY_CYLWRAP_ENABLE_1"/> 1277bf215546Sopenharmony_ci 1278bf215546Sopenharmony_ci <!-- SP registers --> 1279bf215546Sopenharmony_ci <bitset name="a3xx_vs_fs_length_reg" inline="yes"> 1280bf215546Sopenharmony_ci <bitfield name="SHADERLENGTH" low="0" high="31" type="uint"/> 1281bf215546Sopenharmony_ci </bitset> 1282bf215546Sopenharmony_ci 1283bf215546Sopenharmony_ci <bitset name="sp_vs_fs_obj_offset_reg" inline="yes"> 1284bf215546Sopenharmony_ci <bitfield name="FIRSTEXECINSTROFFSET" low="0" high="15" type="uint"/> 1285bf215546Sopenharmony_ci <doc> 1286bf215546Sopenharmony_ci From register spec: 1287bf215546Sopenharmony_ci SP_FS_OBJ_OFFSET_REG.CONSTOBJECTSTARTOFFSET [16:24]: Constant object 1288bf215546Sopenharmony_ci start offset in on chip RAM, 1289bf215546Sopenharmony_ci 128bit aligned 1290bf215546Sopenharmony_ci </doc> 1291bf215546Sopenharmony_ci <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1292bf215546Sopenharmony_ci <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1293bf215546Sopenharmony_ci </bitset> 1294bf215546Sopenharmony_ci 1295bf215546Sopenharmony_ci <reg32 offset="0x22c0" name="SP_SP_CTRL_REG"> 1296bf215546Sopenharmony_ci <!-- this bit is set during resolve pass: --> 1297bf215546Sopenharmony_ci <bitfield name="RESOLVE" pos="16" type="boolean"/> 1298bf215546Sopenharmony_ci <bitfield name="CONSTMODE" pos="18" type="uint"/> 1299bf215546Sopenharmony_ci <bitfield name="BINNING" pos="19" type="boolean"/> 1300bf215546Sopenharmony_ci <bitfield name="SLEEPMODE" low="20" high="21" type="uint"/> 1301bf215546Sopenharmony_ci <!-- L0MODE==1 when oxiliForceSpL0ModeBuffer=1 --> 1302bf215546Sopenharmony_ci <bitfield name="L0MODE" low="22" high="23" type="uint"/> 1303bf215546Sopenharmony_ci </reg32> 1304bf215546Sopenharmony_ci <reg32 offset="0x22c4" name="SP_VS_CTRL_REG0"> 1305bf215546Sopenharmony_ci <bitfield name="THREADMODE" pos="0" type="a3xx_threadmode"/> 1306bf215546Sopenharmony_ci <bitfield name="INSTRBUFFERMODE" pos="1" type="a3xx_instrbuffermode"/> 1307bf215546Sopenharmony_ci <!-- maybe CACHEINVALID is two bits?? --> 1308bf215546Sopenharmony_ci <bitfield name="CACHEINVALID" pos="2" type="boolean"/> 1309bf215546Sopenharmony_ci <bitfield name="ALUSCHMODE" pos="3" type="boolean"/> 1310bf215546Sopenharmony_ci <doc> 1311bf215546Sopenharmony_ci The full/half register footprint is in units of four components, 1312bf215546Sopenharmony_ci so if r0.x is used, that counts as all of r0.[xyzw] as used. 1313bf215546Sopenharmony_ci There are separate full/half register footprint values as the 1314bf215546Sopenharmony_ci full and half registers are independent (not overlapping). 1315bf215546Sopenharmony_ci Presumably the thread scheduler hardware allocates the full/half 1316bf215546Sopenharmony_ci register names from the actual physical register file and 1317bf215546Sopenharmony_ci handles the register renaming. 1318bf215546Sopenharmony_ci </doc> 1319bf215546Sopenharmony_ci <bitfield name="HALFREGFOOTPRINT" low="4" high="9" type="uint"/> 1320bf215546Sopenharmony_ci <bitfield name="FULLREGFOOTPRINT" low="10" high="15" type="uint"/> 1321bf215546Sopenharmony_ci <bitfield name="THREADSIZE" pos="20" type="a3xx_threadsize"/> 1322bf215546Sopenharmony_ci <bitfield name="SUPERTHREADMODE" pos="21" type="boolean"/> 1323bf215546Sopenharmony_ci <doc> 1324bf215546Sopenharmony_ci From regspec: 1325bf215546Sopenharmony_ci SP_FS_CTRL_REG0.FS_LENGTH [31:24]: FS length, unit = 256bits. 1326bf215546Sopenharmony_ci If bit31 is 1, it means overflow 1327bf215546Sopenharmony_ci or any long shader. 1328bf215546Sopenharmony_ci </doc> 1329bf215546Sopenharmony_ci <bitfield name="LENGTH" low="24" high="31" type="uint"/> 1330bf215546Sopenharmony_ci </reg32> 1331bf215546Sopenharmony_ci <reg32 offset="0x22c5" name="SP_VS_CTRL_REG1"> 1332bf215546Sopenharmony_ci <bitfield name="CONSTLENGTH" low="0" high="9" type="uint"/> 1333bf215546Sopenharmony_ci <!-- 1334bf215546Sopenharmony_ci not sure about full vs half const.. I can't get blob generate 1335bf215546Sopenharmony_ci something with a mediump/lowp uniform. 1336bf215546Sopenharmony_ci --> 1337bf215546Sopenharmony_ci <bitfield name="CONSTFOOTPRINT" low="10" high="19" type="uint"/> 1338bf215546Sopenharmony_ci <bitfield name="INITIALOUTSTANDING" low="24" high="30" type="uint"/> 1339bf215546Sopenharmony_ci </reg32> 1340bf215546Sopenharmony_ci <reg32 offset="0x22c6" name="SP_VS_PARAM_REG"> 1341bf215546Sopenharmony_ci <bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/> 1342bf215546Sopenharmony_ci <bitfield name="PSIZEREGID" low="8" high="15" type="a3xx_regid"/> 1343bf215546Sopenharmony_ci <bitfield name="POS2DMODE" pos="16" type="boolean"/> 1344bf215546Sopenharmony_ci <bitfield name="TOTALVSOUTVAR" low="20" high="24" type="uint"/> 1345bf215546Sopenharmony_ci </reg32> 1346bf215546Sopenharmony_ci <array offset="0x22c7" name="SP_VS_OUT" stride="1" length="8"> 1347bf215546Sopenharmony_ci <reg32 offset="0x0" name="REG"> 1348bf215546Sopenharmony_ci <bitfield name="A_REGID" low="0" high="7" type="a3xx_regid"/> 1349bf215546Sopenharmony_ci <bitfield name="A_HALF" pos="8" type="boolean"/> 1350bf215546Sopenharmony_ci <bitfield name="A_COMPMASK" low="9" high="12" type="hex"/> 1351bf215546Sopenharmony_ci <bitfield name="B_REGID" low="16" high="23" type="a3xx_regid"/> 1352bf215546Sopenharmony_ci <bitfield name="B_HALF" pos="24" type="boolean"/> 1353bf215546Sopenharmony_ci <bitfield name="B_COMPMASK" low="25" high="28" type="hex"/> 1354bf215546Sopenharmony_ci </reg32> 1355bf215546Sopenharmony_ci </array> 1356bf215546Sopenharmony_ci <array offset="0x22d0" name="SP_VS_VPC_DST" stride="1" length="4"> 1357bf215546Sopenharmony_ci <reg32 offset="0x0" name="REG"> 1358bf215546Sopenharmony_ci <doc> 1359bf215546Sopenharmony_ci These seem to be offsets for storage of the varyings. 1360bf215546Sopenharmony_ci Always seems to start from 8, possibly loc 0 and 4 1361bf215546Sopenharmony_ci are for gl_Position and gl_PointSize? 1362bf215546Sopenharmony_ci </doc> 1363bf215546Sopenharmony_ci <bitfield name="OUTLOC0" low="0" high="6" type="uint"/> 1364bf215546Sopenharmony_ci <bitfield name="OUTLOC1" low="8" high="14" type="uint"/> 1365bf215546Sopenharmony_ci <bitfield name="OUTLOC2" low="16" high="22" type="uint"/> 1366bf215546Sopenharmony_ci <bitfield name="OUTLOC3" low="24" high="30" type="uint"/> 1367bf215546Sopenharmony_ci </reg32> 1368bf215546Sopenharmony_ci </array> 1369bf215546Sopenharmony_ci <reg32 offset="0x22d4" name="SP_VS_OBJ_OFFSET_REG" type="sp_vs_fs_obj_offset_reg"/> 1370bf215546Sopenharmony_ci <doc> 1371bf215546Sopenharmony_ci SP_VS_OBJ_START_REG contains pointer to the vertex shader program, 1372bf215546Sopenharmony_ci immediately followed by the binning shader program (although I 1373bf215546Sopenharmony_ci guess that is probably just re-using the same gpu buffer) 1374bf215546Sopenharmony_ci </doc> 1375bf215546Sopenharmony_ci <reg32 offset="0x22d5" name="SP_VS_OBJ_START_REG"/> 1376bf215546Sopenharmony_ci <reg32 offset="0x22d6" name="SP_VS_PVT_MEM_PARAM_REG"> 1377bf215546Sopenharmony_ci <bitfield name="MEMSIZEPERITEM" low="0" high="7" type="uint"/> 1378bf215546Sopenharmony_ci <bitfield name="HWSTACKOFFSET" low="8" high="23" type="uint"/> 1379bf215546Sopenharmony_ci <bitfield name="HWSTACKSIZEPERTHREAD" low="24" high="31" type="uint"/> 1380bf215546Sopenharmony_ci </reg32> 1381bf215546Sopenharmony_ci <reg32 offset="0x22d7" name="SP_VS_PVT_MEM_ADDR_REG"> 1382bf215546Sopenharmony_ci <bitfield name="BURSTLEN" low="0" high="4"/> 1383bf215546Sopenharmony_ci <bitfield name="SHADERSTARTADDRESS" shr="5" low="5" high="31"/> 1384bf215546Sopenharmony_ci </reg32> 1385bf215546Sopenharmony_ci <reg32 offset="0x22d8" name="SP_VS_PVT_MEM_SIZE_REG"/> 1386bf215546Sopenharmony_ci <reg32 offset="0x22df" name="SP_VS_LENGTH_REG" type="a3xx_vs_fs_length_reg"/> 1387bf215546Sopenharmony_ci <reg32 offset="0x22e0" name="SP_FS_CTRL_REG0"> 1388bf215546Sopenharmony_ci <bitfield name="THREADMODE" pos="0" type="a3xx_threadmode"/> 1389bf215546Sopenharmony_ci <bitfield name="INSTRBUFFERMODE" pos="1" type="a3xx_instrbuffermode"/> 1390bf215546Sopenharmony_ci <!-- maybe CACHEINVALID is two bits?? --> 1391bf215546Sopenharmony_ci <bitfield name="CACHEINVALID" pos="2" type="boolean"/> 1392bf215546Sopenharmony_ci <bitfield name="ALUSCHMODE" pos="3" type="boolean"/> 1393bf215546Sopenharmony_ci <doc> 1394bf215546Sopenharmony_ci The full/half register footprint is in units of four components, 1395bf215546Sopenharmony_ci so if r0.x is used, that counts as all of r0.[xyzw] as used. 1396bf215546Sopenharmony_ci There are separate full/half register footprint values as the 1397bf215546Sopenharmony_ci full and half registers are independent (not overlapping). 1398bf215546Sopenharmony_ci Presumably the thread scheduler hardware allocates the full/half 1399bf215546Sopenharmony_ci register names from the actual physical register file and 1400bf215546Sopenharmony_ci handles the register renaming. 1401bf215546Sopenharmony_ci </doc> 1402bf215546Sopenharmony_ci <bitfield name="HALFREGFOOTPRINT" low="4" high="9" type="uint"/> 1403bf215546Sopenharmony_ci <bitfield name="FULLREGFOOTPRINT" low="10" high="15" type="uint"/> 1404bf215546Sopenharmony_ci <bitfield name="FSBYPASSENABLE" pos="17" type="boolean"/> 1405bf215546Sopenharmony_ci <bitfield name="INOUTREGOVERLAP" pos="18" type="boolean"/> 1406bf215546Sopenharmony_ci <bitfield name="OUTORDERED" pos="19" type="boolean"/> 1407bf215546Sopenharmony_ci <bitfield name="THREADSIZE" pos="20" type="a3xx_threadsize"/> 1408bf215546Sopenharmony_ci <bitfield name="SUPERTHREADMODE" pos="21" type="boolean"/> 1409bf215546Sopenharmony_ci <bitfield name="PIXLODENABLE" pos="22" type="boolean"/> 1410bf215546Sopenharmony_ci <bitfield name="COMPUTEMODE" pos="23" type="boolean"/> 1411bf215546Sopenharmony_ci <doc> 1412bf215546Sopenharmony_ci From regspec: 1413bf215546Sopenharmony_ci SP_FS_CTRL_REG0.FS_LENGTH [31:24]: FS length, unit = 256bits. 1414bf215546Sopenharmony_ci If bit31 is 1, it means overflow 1415bf215546Sopenharmony_ci or any long shader. 1416bf215546Sopenharmony_ci </doc> 1417bf215546Sopenharmony_ci <bitfield name="LENGTH" low="24" high="31" type="uint"/> 1418bf215546Sopenharmony_ci </reg32> 1419bf215546Sopenharmony_ci <reg32 offset="0x22e1" name="SP_FS_CTRL_REG1"> 1420bf215546Sopenharmony_ci <bitfield name="CONSTLENGTH" low="0" high="9" type="uint"/> 1421bf215546Sopenharmony_ci <bitfield name="CONSTFOOTPRINT" low="10" high="19" type="uint"/> 1422bf215546Sopenharmony_ci <bitfield name="INITIALOUTSTANDING" low="20" high="23" type="uint"/> 1423bf215546Sopenharmony_ci <bitfield name="HALFPRECVAROFFSET" low="24" high="30" type="uint"/> 1424bf215546Sopenharmony_ci </reg32> 1425bf215546Sopenharmony_ci <reg32 offset="0x22e2" name="SP_FS_OBJ_OFFSET_REG" type="sp_vs_fs_obj_offset_reg"/> 1426bf215546Sopenharmony_ci <doc>SP_FS_OBJ_START_REG contains pointer to fragment shader program</doc> 1427bf215546Sopenharmony_ci <reg32 offset="0x22e3" name="SP_FS_OBJ_START_REG"/> 1428bf215546Sopenharmony_ci <reg32 offset="0x22e4" name="SP_FS_PVT_MEM_PARAM_REG"> 1429bf215546Sopenharmony_ci <bitfield name="MEMSIZEPERITEM" low="0" high="7" type="uint"/> 1430bf215546Sopenharmony_ci <bitfield name="HWSTACKOFFSET" low="8" high="23" type="uint"/> 1431bf215546Sopenharmony_ci <bitfield name="HWSTACKSIZEPERTHREAD" low="24" high="31" type="uint"/> 1432bf215546Sopenharmony_ci </reg32> 1433bf215546Sopenharmony_ci <reg32 offset="0x22e5" name="SP_FS_PVT_MEM_ADDR_REG"> 1434bf215546Sopenharmony_ci <bitfield name="BURSTLEN" low="0" high="4"/> 1435bf215546Sopenharmony_ci <bitfield name="SHADERSTARTADDRESS" shr="5" low="5" high="31"/> 1436bf215546Sopenharmony_ci </reg32> 1437bf215546Sopenharmony_ci <reg32 offset="0x22e6" name="SP_FS_PVT_MEM_SIZE_REG"/> 1438bf215546Sopenharmony_ci <reg32 offset="0x22e8" name="SP_FS_FLAT_SHAD_MODE_REG_0"> 1439bf215546Sopenharmony_ci <doc>seems to be one bit per scalar, '1' for flat, '0' for smooth</doc> 1440bf215546Sopenharmony_ci </reg32> 1441bf215546Sopenharmony_ci <reg32 offset="0x22e9" name="SP_FS_FLAT_SHAD_MODE_REG_1"> 1442bf215546Sopenharmony_ci <doc>seems to be one bit per scalar, '1' for flat, '0' for smooth</doc> 1443bf215546Sopenharmony_ci </reg32> 1444bf215546Sopenharmony_ci <reg32 offset="0x22ec" name="SP_FS_OUTPUT_REG"> 1445bf215546Sopenharmony_ci <bitfield name="MRT" low="0" high="1" type="uint"> 1446bf215546Sopenharmony_ci <doc>render targets - 1</doc> 1447bf215546Sopenharmony_ci </bitfield> 1448bf215546Sopenharmony_ci <bitfield name="DEPTH_ENABLE" pos="7" type="boolean"/> 1449bf215546Sopenharmony_ci <bitfield name="DEPTH_REGID" low="8" high="15" type="a3xx_regid"/> 1450bf215546Sopenharmony_ci </reg32> 1451bf215546Sopenharmony_ci <array offset="0x22f0" name="SP_FS_MRT" stride="1" length="4"> 1452bf215546Sopenharmony_ci <reg32 offset="0x0" name="REG"> 1453bf215546Sopenharmony_ci <bitfield name="REGID" low="0" high="7" type="a3xx_regid"/> 1454bf215546Sopenharmony_ci <bitfield name="HALF_PRECISION" pos="8" type="boolean"/> 1455bf215546Sopenharmony_ci <bitfield name="SINT" pos="10" type="boolean"/> 1456bf215546Sopenharmony_ci <bitfield name="UINT" pos="11" type="boolean"/> 1457bf215546Sopenharmony_ci </reg32> 1458bf215546Sopenharmony_ci </array> 1459bf215546Sopenharmony_ci <array offset="0x22f4" name="SP_FS_IMAGE_OUTPUT" stride="1" length="4"> 1460bf215546Sopenharmony_ci <reg32 offset="0x0" name="REG"> 1461bf215546Sopenharmony_ci <bitfield name="MRTFORMAT" low="0" high="5" type="a3xx_color_fmt"/> 1462bf215546Sopenharmony_ci </reg32> 1463bf215546Sopenharmony_ci </array> 1464bf215546Sopenharmony_ci <reg32 offset="0x22ff" name="SP_FS_LENGTH_REG" type="a3xx_vs_fs_length_reg"/> 1465bf215546Sopenharmony_ci 1466bf215546Sopenharmony_ci <reg32 offset="0x2301" name="PA_SC_AA_CONFIG"/> 1467bf215546Sopenharmony_ci <!-- TPL1 registers --> 1468bf215546Sopenharmony_ci <!-- assume VS/FS_TEX_OFFSET is same --> 1469bf215546Sopenharmony_ci <bitset name="a3xx_tpl1_tp_vs_fs_tex_offset" inline="yes"> 1470bf215546Sopenharmony_ci <bitfield name="SAMPLEROFFSET" low="0" high="7" type="uint"/> 1471bf215546Sopenharmony_ci <bitfield name="MEMOBJOFFSET" low="8" high="15" type="uint"/> 1472bf215546Sopenharmony_ci <!-- not sure the size of this: --> 1473bf215546Sopenharmony_ci <bitfield name="BASETABLEPTR" low="16" high="31" type="uint"/> 1474bf215546Sopenharmony_ci </bitset> 1475bf215546Sopenharmony_ci <reg32 offset="0x2340" name="TPL1_TP_VS_TEX_OFFSET" type="a3xx_tpl1_tp_vs_fs_tex_offset"/> 1476bf215546Sopenharmony_ci <reg32 offset="0x2341" name="TPL1_TP_VS_BORDER_COLOR_BASE_ADDR"/> 1477bf215546Sopenharmony_ci <reg32 offset="0x2342" name="TPL1_TP_FS_TEX_OFFSET" type="a3xx_tpl1_tp_vs_fs_tex_offset"/> 1478bf215546Sopenharmony_ci <reg32 offset="0x2343" name="TPL1_TP_FS_BORDER_COLOR_BASE_ADDR"/> 1479bf215546Sopenharmony_ci 1480bf215546Sopenharmony_ci <!-- VBIF registers --> 1481bf215546Sopenharmony_ci <reg32 offset="0x3001" name="VBIF_CLKON"/> 1482bf215546Sopenharmony_ci <reg32 offset="0x300c" name="VBIF_FIXED_SORT_EN"/> 1483bf215546Sopenharmony_ci <reg32 offset="0x300d" name="VBIF_FIXED_SORT_SEL0"/> 1484bf215546Sopenharmony_ci <reg32 offset="0x300e" name="VBIF_FIXED_SORT_SEL1"/> 1485bf215546Sopenharmony_ci <reg32 offset="0x301c" name="VBIF_ABIT_SORT"/> 1486bf215546Sopenharmony_ci <reg32 offset="0x301d" name="VBIF_ABIT_SORT_CONF"/> 1487bf215546Sopenharmony_ci <reg32 offset="0x302a" name="VBIF_GATE_OFF_WRREQ_EN"/> 1488bf215546Sopenharmony_ci <reg32 offset="0x302c" name="VBIF_IN_RD_LIM_CONF0"/> 1489bf215546Sopenharmony_ci <reg32 offset="0x302d" name="VBIF_IN_RD_LIM_CONF1"/> 1490bf215546Sopenharmony_ci <reg32 offset="0x3030" name="VBIF_IN_WR_LIM_CONF0"/> 1491bf215546Sopenharmony_ci <reg32 offset="0x3031" name="VBIF_IN_WR_LIM_CONF1"/> 1492bf215546Sopenharmony_ci <reg32 offset="0x3034" name="VBIF_OUT_RD_LIM_CONF0"/> 1493bf215546Sopenharmony_ci <reg32 offset="0x3035" name="VBIF_OUT_WR_LIM_CONF0"/> 1494bf215546Sopenharmony_ci <reg32 offset="0x3036" name="VBIF_DDR_OUT_MAX_BURST"/> 1495bf215546Sopenharmony_ci <reg32 offset="0x303c" name="VBIF_ARB_CTL"/> 1496bf215546Sopenharmony_ci <reg32 offset="0x3049" name="VBIF_ROUND_ROBIN_QOS_ARB"/> 1497bf215546Sopenharmony_ci <reg32 offset="0x3058" name="VBIF_OUT_AXI_AMEMTYPE_CONF0"/> 1498bf215546Sopenharmony_ci <reg32 offset="0x305e" name="VBIF_OUT_AXI_AOOO_EN"/> 1499bf215546Sopenharmony_ci <reg32 offset="0x305f" name="VBIF_OUT_AXI_AOOO"/> 1500bf215546Sopenharmony_ci 1501bf215546Sopenharmony_ci <bitset name="a3xx_vbif_perf_cnt" inline="yes"> 1502bf215546Sopenharmony_ci <bitfield name="CNT0" pos="0" type="boolean"/> 1503bf215546Sopenharmony_ci <bitfield name="CNT1" pos="1" type="boolean"/> 1504bf215546Sopenharmony_ci <bitfield name="PWRCNT0" pos="2" type="boolean"/> 1505bf215546Sopenharmony_ci <bitfield name="PWRCNT1" pos="3" type="boolean"/> 1506bf215546Sopenharmony_ci <bitfield name="PWRCNT2" pos="4" type="boolean"/> 1507bf215546Sopenharmony_ci </bitset> 1508bf215546Sopenharmony_ci 1509bf215546Sopenharmony_ci <reg32 offset="0x3070" name="VBIF_PERF_CNT_EN" type="a3xx_vbif_perf_cnt"/> 1510bf215546Sopenharmony_ci <reg32 offset="0x3071" name="VBIF_PERF_CNT_CLR" type="a3xx_vbif_perf_cnt"/> 1511bf215546Sopenharmony_ci <reg32 offset="0x3072" name="VBIF_PERF_CNT_SEL"/> 1512bf215546Sopenharmony_ci <reg32 offset="0x3073" name="VBIF_PERF_CNT0_LO"/> 1513bf215546Sopenharmony_ci <reg32 offset="0x3074" name="VBIF_PERF_CNT0_HI"/> 1514bf215546Sopenharmony_ci <reg32 offset="0x3075" name="VBIF_PERF_CNT1_LO"/> 1515bf215546Sopenharmony_ci <reg32 offset="0x3076" name="VBIF_PERF_CNT1_HI"/> 1516bf215546Sopenharmony_ci <reg32 offset="0x3077" name="VBIF_PERF_PWR_CNT0_LO"/> 1517bf215546Sopenharmony_ci <reg32 offset="0x3078" name="VBIF_PERF_PWR_CNT0_HI"/> 1518bf215546Sopenharmony_ci <reg32 offset="0x3079" name="VBIF_PERF_PWR_CNT1_LO"/> 1519bf215546Sopenharmony_ci <reg32 offset="0x307a" name="VBIF_PERF_PWR_CNT1_HI"/> 1520bf215546Sopenharmony_ci <reg32 offset="0x307b" name="VBIF_PERF_PWR_CNT2_LO"/> 1521bf215546Sopenharmony_ci <reg32 offset="0x307c" name="VBIF_PERF_PWR_CNT2_HI"/> 1522bf215546Sopenharmony_ci 1523bf215546Sopenharmony_ci 1524bf215546Sopenharmony_ci <reg32 offset="0x0c01" name="VSC_BIN_SIZE"> 1525bf215546Sopenharmony_ci <bitfield name="WIDTH" low="0" high="4" shr="5" type="uint"/> 1526bf215546Sopenharmony_ci <bitfield name="HEIGHT" low="5" high="9" shr="5" type="uint"/> 1527bf215546Sopenharmony_ci </reg32> 1528bf215546Sopenharmony_ci 1529bf215546Sopenharmony_ci <reg32 offset="0x0c02" name="VSC_SIZE_ADDRESS"/> 1530bf215546Sopenharmony_ci <array offset="0x0c06" name="VSC_PIPE" stride="3" length="8"> 1531bf215546Sopenharmony_ci <reg32 offset="0x0" name="CONFIG"> 1532bf215546Sopenharmony_ci <doc> 1533bf215546Sopenharmony_ci Configures the mapping between VSC_PIPE buffer and 1534bf215546Sopenharmony_ci bin, X/Y specify the bin index in the horiz/vert 1535bf215546Sopenharmony_ci direction (0,0 is upper left, 0,1 is leftmost bin 1536bf215546Sopenharmony_ci on second row, and so on). W/H specify the number 1537bf215546Sopenharmony_ci of bins assigned to this VSC_PIPE in the horiz/vert 1538bf215546Sopenharmony_ci dimension. 1539bf215546Sopenharmony_ci </doc> 1540bf215546Sopenharmony_ci <bitfield name="X" low="0" high="9" type="uint"/> 1541bf215546Sopenharmony_ci <bitfield name="Y" low="10" high="19" type="uint"/> 1542bf215546Sopenharmony_ci <bitfield name="W" low="20" high="23" type="uint"/> 1543bf215546Sopenharmony_ci <bitfield name="H" low="24" high="27" type="uint"/> 1544bf215546Sopenharmony_ci </reg32> 1545bf215546Sopenharmony_ci <reg32 offset="0x1" name="DATA_ADDRESS"/> 1546bf215546Sopenharmony_ci <reg32 offset="0x2" name="DATA_LENGTH"/> 1547bf215546Sopenharmony_ci </array> 1548bf215546Sopenharmony_ci <reg32 offset="0x0c3c" name="VSC_BIN_CONTROL"> 1549bf215546Sopenharmony_ci <doc>seems to be set to 0x00000001 during binning pass</doc> 1550bf215546Sopenharmony_ci <bitfield name="BINNING_ENABLE" pos="0" type="boolean"/> 1551bf215546Sopenharmony_ci </reg32> 1552bf215546Sopenharmony_ci <reg32 offset="0x0c3d" name="UNKNOWN_0C3D"> 1553bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000001</doc> 1554bf215546Sopenharmony_ci </reg32> 1555bf215546Sopenharmony_ci <reg32 offset="0x0c48" name="PC_PERFCOUNTER0_SELECT" type="a3xx_pc_perfcounter_select"/> 1556bf215546Sopenharmony_ci <reg32 offset="0x0c49" name="PC_PERFCOUNTER1_SELECT" type="a3xx_pc_perfcounter_select"/> 1557bf215546Sopenharmony_ci <reg32 offset="0x0c4a" name="PC_PERFCOUNTER2_SELECT" type="a3xx_pc_perfcounter_select"/> 1558bf215546Sopenharmony_ci <reg32 offset="0x0c4b" name="PC_PERFCOUNTER3_SELECT" type="a3xx_pc_perfcounter_select"/> 1559bf215546Sopenharmony_ci <reg32 offset="0x0c81" name="GRAS_TSE_DEBUG_ECO"> 1560bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000001</doc> 1561bf215546Sopenharmony_ci </reg32> 1562bf215546Sopenharmony_ci 1563bf215546Sopenharmony_ci <reg32 offset="0x0c88" name="GRAS_PERFCOUNTER0_SELECT" type="a3xx_gras_tse_perfcounter_select"/> 1564bf215546Sopenharmony_ci <reg32 offset="0x0c89" name="GRAS_PERFCOUNTER1_SELECT" type="a3xx_gras_tse_perfcounter_select"/> 1565bf215546Sopenharmony_ci <reg32 offset="0x0c8a" name="GRAS_PERFCOUNTER2_SELECT" type="a3xx_gras_ras_perfcounter_select"/> 1566bf215546Sopenharmony_ci <reg32 offset="0x0c8b" name="GRAS_PERFCOUNTER3_SELECT" type="a3xx_gras_ras_perfcounter_select"/> 1567bf215546Sopenharmony_ci <array offset="0x0ca0" name="GRAS_CL_USER_PLANE" stride="4" length="6"> 1568bf215546Sopenharmony_ci <reg32 offset="0x0" name="X"/> 1569bf215546Sopenharmony_ci <reg32 offset="0x1" name="Y"/> 1570bf215546Sopenharmony_ci <reg32 offset="0x2" name="Z"/> 1571bf215546Sopenharmony_ci <reg32 offset="0x3" name="W"/> 1572bf215546Sopenharmony_ci </array> 1573bf215546Sopenharmony_ci <reg32 offset="0x0cc0" name="RB_GMEM_BASE_ADDR"/> 1574bf215546Sopenharmony_ci <reg32 offset="0x0cc1" name="RB_DEBUG_ECO_CONTROLS_ADDR"/> 1575bf215546Sopenharmony_ci <reg32 offset="0x0cc6" name="RB_PERFCOUNTER0_SELECT" type="a3xx_rb_perfcounter_select"/> 1576bf215546Sopenharmony_ci <reg32 offset="0x0cc7" name="RB_PERFCOUNTER1_SELECT" type="a3xx_rb_perfcounter_select"/> 1577bf215546Sopenharmony_ci <reg32 offset="0x0ce0" name="RB_FRAME_BUFFER_DIMENSION"> 1578bf215546Sopenharmony_ci <bitfield name="WIDTH" low="0" high="13" type="uint"/> 1579bf215546Sopenharmony_ci <bitfield name="HEIGHT" low="14" high="27" type="uint"/> 1580bf215546Sopenharmony_ci </reg32> 1581bf215546Sopenharmony_ci <reg32 offset="0x0e00" name="HLSQ_PERFCOUNTER0_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1582bf215546Sopenharmony_ci <reg32 offset="0x0e01" name="HLSQ_PERFCOUNTER1_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1583bf215546Sopenharmony_ci <reg32 offset="0x0e02" name="HLSQ_PERFCOUNTER2_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1584bf215546Sopenharmony_ci <reg32 offset="0x0e03" name="HLSQ_PERFCOUNTER3_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1585bf215546Sopenharmony_ci <reg32 offset="0x0e04" name="HLSQ_PERFCOUNTER4_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1586bf215546Sopenharmony_ci <reg32 offset="0x0e05" name="HLSQ_PERFCOUNTER5_SELECT" type="a3xx_hlsq_perfcounter_select"/> 1587bf215546Sopenharmony_ci <reg32 offset="0x0e43" name="UNKNOWN_0E43"> 1588bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000001</doc> 1589bf215546Sopenharmony_ci </reg32> 1590bf215546Sopenharmony_ci <reg32 offset="0x0e44" name="VFD_PERFCOUNTER0_SELECT" type="a3xx_vfd_perfcounter_select"/> 1591bf215546Sopenharmony_ci <reg32 offset="0x0e45" name="VFD_PERFCOUNTER1_SELECT" type="a3xx_vfd_perfcounter_select"/> 1592bf215546Sopenharmony_ci <reg32 offset="0x0e61" name="VPC_VPC_DEBUG_RAM_SEL"/> 1593bf215546Sopenharmony_ci <reg32 offset="0x0e62" name="VPC_VPC_DEBUG_RAM_READ"/> 1594bf215546Sopenharmony_ci <reg32 offset="0x0e64" name="VPC_PERFCOUNTER0_SELECT" type="a3xx_vpc_perfcounter_select"/> 1595bf215546Sopenharmony_ci <reg32 offset="0x0e65" name="VPC_PERFCOUNTER1_SELECT" type="a3xx_vpc_perfcounter_select"/> 1596bf215546Sopenharmony_ci <reg32 offset="0x0e82" name="UCHE_CACHE_MODE_CONTROL_REG"/> 1597bf215546Sopenharmony_ci <reg32 offset="0x0e84" name="UCHE_PERFCOUNTER0_SELECT" type="a3xx_uche_perfcounter_select"/> 1598bf215546Sopenharmony_ci <reg32 offset="0x0e85" name="UCHE_PERFCOUNTER1_SELECT" type="a3xx_uche_perfcounter_select"/> 1599bf215546Sopenharmony_ci <reg32 offset="0x0e86" name="UCHE_PERFCOUNTER2_SELECT" type="a3xx_uche_perfcounter_select"/> 1600bf215546Sopenharmony_ci <reg32 offset="0x0e87" name="UCHE_PERFCOUNTER3_SELECT" type="a3xx_uche_perfcounter_select"/> 1601bf215546Sopenharmony_ci <reg32 offset="0x0e88" name="UCHE_PERFCOUNTER4_SELECT" type="a3xx_uche_perfcounter_select"/> 1602bf215546Sopenharmony_ci <reg32 offset="0x0e89" name="UCHE_PERFCOUNTER5_SELECT" type="a3xx_uche_perfcounter_select"/> 1603bf215546Sopenharmony_ci <reg32 offset="0x0ea0" name="UCHE_CACHE_INVALIDATE0_REG"> 1604bf215546Sopenharmony_ci <!-- might be shifted right by 5, assuming 32byte cache line size.. --> 1605bf215546Sopenharmony_ci <bitfield name="ADDR" low="0" high="27" type="hex"/> 1606bf215546Sopenharmony_ci </reg32> 1607bf215546Sopenharmony_ci <reg32 offset="0x0ea1" name="UCHE_CACHE_INVALIDATE1_REG"> 1608bf215546Sopenharmony_ci <!-- might be shifted right by 5, assuming 32byte cache line size.. --> 1609bf215546Sopenharmony_ci <bitfield name="ADDR" low="0" high="27" type="hex"/> 1610bf215546Sopenharmony_ci <!-- I'd assume 2 bits, for FLUSH/INVALIDATE/CLEAN? --> 1611bf215546Sopenharmony_ci <bitfield name="OPCODE" low="28" high="29" type="a3xx_cache_opcode"/> 1612bf215546Sopenharmony_ci <bitfield name="ENTIRE_CACHE" pos="31" type="boolean"/> 1613bf215546Sopenharmony_ci </reg32> 1614bf215546Sopenharmony_ci <reg32 offset="0x0ea6" name="UNKNOWN_0EA6"/> 1615bf215546Sopenharmony_ci <reg32 offset="0x0ec4" name="SP_PERFCOUNTER0_SELECT" type="a3xx_sp_perfcounter_select"/> 1616bf215546Sopenharmony_ci <reg32 offset="0x0ec5" name="SP_PERFCOUNTER1_SELECT" type="a3xx_sp_perfcounter_select"/> 1617bf215546Sopenharmony_ci <reg32 offset="0x0ec6" name="SP_PERFCOUNTER2_SELECT" type="a3xx_sp_perfcounter_select"/> 1618bf215546Sopenharmony_ci <reg32 offset="0x0ec7" name="SP_PERFCOUNTER3_SELECT" type="a3xx_sp_perfcounter_select"/> 1619bf215546Sopenharmony_ci <reg32 offset="0x0ec8" name="SP_PERFCOUNTER4_SELECT" type="a3xx_sp_perfcounter_select"/> 1620bf215546Sopenharmony_ci <reg32 offset="0x0ec9" name="SP_PERFCOUNTER5_SELECT" type="a3xx_sp_perfcounter_select"/> 1621bf215546Sopenharmony_ci <reg32 offset="0x0eca" name="SP_PERFCOUNTER6_SELECT" type="a3xx_sp_perfcounter_select"/> 1622bf215546Sopenharmony_ci <reg32 offset="0x0ecb" name="SP_PERFCOUNTER7_SELECT" type="a3xx_sp_perfcounter_select"/> 1623bf215546Sopenharmony_ci <reg32 offset="0x0ee0" name="UNKNOWN_0EE0"> 1624bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000003</doc> 1625bf215546Sopenharmony_ci </reg32> 1626bf215546Sopenharmony_ci <reg32 offset="0x0f03" name="UNKNOWN_0F03"> 1627bf215546Sopenharmony_ci <doc>seems to be always set to 0x00000001</doc> 1628bf215546Sopenharmony_ci </reg32> 1629bf215546Sopenharmony_ci <reg32 offset="0x0f04" name="TP_PERFCOUNTER0_SELECT" type="a3xx_tp_perfcounter_select"/> 1630bf215546Sopenharmony_ci <reg32 offset="0x0f05" name="TP_PERFCOUNTER1_SELECT" type="a3xx_tp_perfcounter_select"/> 1631bf215546Sopenharmony_ci <reg32 offset="0x0f06" name="TP_PERFCOUNTER2_SELECT" type="a3xx_tp_perfcounter_select"/> 1632bf215546Sopenharmony_ci <reg32 offset="0x0f07" name="TP_PERFCOUNTER3_SELECT" type="a3xx_tp_perfcounter_select"/> 1633bf215546Sopenharmony_ci <reg32 offset="0x0f08" name="TP_PERFCOUNTER4_SELECT" type="a3xx_tp_perfcounter_select"/> 1634bf215546Sopenharmony_ci <reg32 offset="0x0f09" name="TP_PERFCOUNTER5_SELECT" type="a3xx_tp_perfcounter_select"/> 1635bf215546Sopenharmony_ci 1636bf215546Sopenharmony_ci <!-- this seems to be the register that CP_RUN_OPENCL writes: --> 1637bf215546Sopenharmony_ci <reg32 offset="0x21f0" name="VGT_CL_INITIATOR"/> 1638bf215546Sopenharmony_ci 1639bf215546Sopenharmony_ci <!-- seems to be same as a2xx according to fwdump.. --> 1640bf215546Sopenharmony_ci <reg32 offset="0x21f9" name="VGT_EVENT_INITIATOR"/> 1641bf215546Sopenharmony_ci <reg32 offset="0x21fc" name="VGT_DRAW_INITIATOR" type="vgt_draw_initiator"/> 1642bf215546Sopenharmony_ci <reg32 offset="0x21fd" name="VGT_IMMED_DATA"/> 1643bf215546Sopenharmony_ci</domain> 1644bf215546Sopenharmony_ci 1645bf215546Sopenharmony_ci<domain name="A3XX_TEX_SAMP" width="32"> 1646bf215546Sopenharmony_ci <doc>Texture sampler dwords</doc> 1647bf215546Sopenharmony_ci <enum name="a3xx_tex_filter"> 1648bf215546Sopenharmony_ci <value name="A3XX_TEX_NEAREST" value="0"/> 1649bf215546Sopenharmony_ci <value name="A3XX_TEX_LINEAR" value="1"/> 1650bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO" value="2"/> 1651bf215546Sopenharmony_ci </enum> 1652bf215546Sopenharmony_ci <enum name="a3xx_tex_clamp"> 1653bf215546Sopenharmony_ci <value name="A3XX_TEX_REPEAT" value="0"/> 1654bf215546Sopenharmony_ci <value name="A3XX_TEX_CLAMP_TO_EDGE" value="1"/> 1655bf215546Sopenharmony_ci <value name="A3XX_TEX_MIRROR_REPEAT" value="2"/> 1656bf215546Sopenharmony_ci <value name="A3XX_TEX_CLAMP_TO_BORDER" value="3"/> 1657bf215546Sopenharmony_ci <value name="A3XX_TEX_MIRROR_CLAMP" value="4"/> 1658bf215546Sopenharmony_ci </enum> 1659bf215546Sopenharmony_ci <enum name="a3xx_tex_aniso"> 1660bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO_1" value="0"/> 1661bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO_2" value="1"/> 1662bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO_4" value="2"/> 1663bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO_8" value="3"/> 1664bf215546Sopenharmony_ci <value name="A3XX_TEX_ANISO_16" value="4"/> 1665bf215546Sopenharmony_ci </enum> 1666bf215546Sopenharmony_ci <reg32 offset="0" name="0"> 1667bf215546Sopenharmony_ci <bitfield name="CLAMPENABLE" pos="0" type="boolean"/> 1668bf215546Sopenharmony_ci <bitfield name="MIPFILTER_LINEAR" pos="1" type="boolean"/> 1669bf215546Sopenharmony_ci <bitfield name="XY_MAG" low="2" high="3" type="a3xx_tex_filter"/> 1670bf215546Sopenharmony_ci <bitfield name="XY_MIN" low="4" high="5" type="a3xx_tex_filter"/> 1671bf215546Sopenharmony_ci <bitfield name="WRAP_S" low="6" high="8" type="a3xx_tex_clamp"/> 1672bf215546Sopenharmony_ci <bitfield name="WRAP_T" low="9" high="11" type="a3xx_tex_clamp"/> 1673bf215546Sopenharmony_ci <bitfield name="WRAP_R" low="12" high="14" type="a3xx_tex_clamp"/> 1674bf215546Sopenharmony_ci <bitfield name="ANISO" low="15" high="17" type="a3xx_tex_aniso"/> 1675bf215546Sopenharmony_ci <bitfield name="COMPARE_FUNC" low="20" high="22" type="adreno_compare_func"/> 1676bf215546Sopenharmony_ci <bitfield name="CUBEMAPSEAMLESSFILTOFF" pos="24" type="boolean"/> 1677bf215546Sopenharmony_ci <!-- UNNORM_COORDS == CLK_NORMALIZED_COORDS_FALSE --> 1678bf215546Sopenharmony_ci <bitfield name="UNNORM_COORDS" pos="31" type="boolean"/> 1679bf215546Sopenharmony_ci </reg32> 1680bf215546Sopenharmony_ci <reg32 offset="1" name="1"> 1681bf215546Sopenharmony_ci <bitfield name="LOD_BIAS" low="0" high="10" type="fixed" radix="6"/> 1682bf215546Sopenharmony_ci <bitfield name="MAX_LOD" low="12" high="21" type="ufixed" radix="6"/> 1683bf215546Sopenharmony_ci <bitfield name="MIN_LOD" low="22" high="31" type="ufixed" radix="6"/> 1684bf215546Sopenharmony_ci </reg32> 1685bf215546Sopenharmony_ci</domain> 1686bf215546Sopenharmony_ci 1687bf215546Sopenharmony_ci<domain name="A3XX_TEX_CONST" width="32"> 1688bf215546Sopenharmony_ci <doc>Texture constant dwords</doc> 1689bf215546Sopenharmony_ci <enum name="a3xx_tex_swiz"> 1690bf215546Sopenharmony_ci <!-- same as a2xx? --> 1691bf215546Sopenharmony_ci <value name="A3XX_TEX_X" value="0"/> 1692bf215546Sopenharmony_ci <value name="A3XX_TEX_Y" value="1"/> 1693bf215546Sopenharmony_ci <value name="A3XX_TEX_Z" value="2"/> 1694bf215546Sopenharmony_ci <value name="A3XX_TEX_W" value="3"/> 1695bf215546Sopenharmony_ci <value name="A3XX_TEX_ZERO" value="4"/> 1696bf215546Sopenharmony_ci <value name="A3XX_TEX_ONE" value="5"/> 1697bf215546Sopenharmony_ci </enum> 1698bf215546Sopenharmony_ci <enum name="a3xx_tex_type"> 1699bf215546Sopenharmony_ci <value name="A3XX_TEX_1D" value="0"/> 1700bf215546Sopenharmony_ci <value name="A3XX_TEX_2D" value="1"/> 1701bf215546Sopenharmony_ci <value name="A3XX_TEX_CUBE" value="2"/> 1702bf215546Sopenharmony_ci <value name="A3XX_TEX_3D" value="3"/> 1703bf215546Sopenharmony_ci </enum> 1704bf215546Sopenharmony_ci <enum name="a3xx_tex_msaa"> 1705bf215546Sopenharmony_ci <value name="A3XX_TPL1_MSAA1X" value="0"/> 1706bf215546Sopenharmony_ci <value name="A3XX_TPL1_MSAA2X" value="1"/> 1707bf215546Sopenharmony_ci <value name="A3XX_TPL1_MSAA4X" value="2"/> 1708bf215546Sopenharmony_ci <value name="A3XX_TPL1_MSAA8X" value="3"/> 1709bf215546Sopenharmony_ci </enum> 1710bf215546Sopenharmony_ci <reg32 offset="0" name="0"> 1711bf215546Sopenharmony_ci <bitfield name="TILE_MODE" low="0" high="1" type="a3xx_tile_mode"/> 1712bf215546Sopenharmony_ci <bitfield name="SRGB" pos="2" type="boolean"/> 1713bf215546Sopenharmony_ci <bitfield name="SWIZ_X" low="4" high="6" type="a3xx_tex_swiz"/> 1714bf215546Sopenharmony_ci <bitfield name="SWIZ_Y" low="7" high="9" type="a3xx_tex_swiz"/> 1715bf215546Sopenharmony_ci <bitfield name="SWIZ_Z" low="10" high="12" type="a3xx_tex_swiz"/> 1716bf215546Sopenharmony_ci <bitfield name="SWIZ_W" low="13" high="15" type="a3xx_tex_swiz"/> 1717bf215546Sopenharmony_ci <bitfield name="MIPLVLS" low="16" high="19" type="uint"/> 1718bf215546Sopenharmony_ci <bitfield name="MSAATEX" low="20" high="21" type="a3xx_tex_msaa"/> 1719bf215546Sopenharmony_ci <bitfield name="FMT" low="22" high="28" type="a3xx_tex_fmt"/> 1720bf215546Sopenharmony_ci <bitfield name="NOCONVERT" pos="29" type="boolean"/> 1721bf215546Sopenharmony_ci <bitfield name="TYPE" low="30" high="31" type="a3xx_tex_type"/> 1722bf215546Sopenharmony_ci </reg32> 1723bf215546Sopenharmony_ci <reg32 offset="1" name="1"> 1724bf215546Sopenharmony_ci <bitfield name="HEIGHT" low="0" high="13" type="uint"/> 1725bf215546Sopenharmony_ci <bitfield name="WIDTH" low="14" high="27" type="uint"/> 1726bf215546Sopenharmony_ci <!-- minimum pitch (for mipmap levels): log2(pitchalign / 16) --> 1727bf215546Sopenharmony_ci <bitfield name="PITCHALIGN" low="28" high="31" type="uint"/> 1728bf215546Sopenharmony_ci </reg32> 1729bf215546Sopenharmony_ci <reg32 offset="2" name="2"> 1730bf215546Sopenharmony_ci <doc>INDX is index of texture address(es) in MIPMAP state block</doc> 1731bf215546Sopenharmony_ci <bitfield name="INDX" low="0" high="8" type="uint"/> 1732bf215546Sopenharmony_ci <doc>Pitch in bytes (so actually stride)</doc> 1733bf215546Sopenharmony_ci <bitfield name="PITCH" low="12" high="29" type="uint"/> 1734bf215546Sopenharmony_ci <doc>SWAP bit is set for BGRA instead of RGBA</doc> 1735bf215546Sopenharmony_ci <bitfield name="SWAP" low="30" high="31" type="a3xx_color_swap"/> 1736bf215546Sopenharmony_ci </reg32> 1737bf215546Sopenharmony_ci <reg32 offset="3" name="3"> 1738bf215546Sopenharmony_ci <!-- 1739bf215546Sopenharmony_ci Update: the two LAYERSZn seem not to be the same thing. 1740bf215546Sopenharmony_ci According to Ilia's experimentation the first one goes up 1741bf215546Sopenharmony_ci to at *least* bit 14.. 1742bf215546Sopenharmony_ci --> 1743bf215546Sopenharmony_ci <bitfield name="LAYERSZ1" low="0" high="16" shr="12" type="uint"/> 1744bf215546Sopenharmony_ci <bitfield name="DEPTH" low="17" high="27" type="uint"/> 1745bf215546Sopenharmony_ci <bitfield name="LAYERSZ2" low="28" high="31" shr="12" type="uint"/> 1746bf215546Sopenharmony_ci </reg32> 1747bf215546Sopenharmony_ci</domain> 1748bf215546Sopenharmony_ci 1749bf215546Sopenharmony_ci</database> 1750