1<?xml version="1.0" encoding="UTF-8"?> 2<database xmlns="http://nouveau.freedesktop.org/" 3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4xsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd"> 5<import file="freedreno_copyright.xml"/> 6<import file="adreno/adreno_common.xml"/> 7<import file="adreno/adreno_pm4.xml"/> 8 9<enum name="a4xx_color_fmt"> 10 <value name="RB4_A8_UNORM" value="0x01"/> 11 <value name="RB4_R8_UNORM" value="0x02"/> 12 <value name="RB4_R8_SNORM" value="0x03"/> 13 <value name="RB4_R8_UINT" value="0x04"/> 14 <value name="RB4_R8_SINT" value="0x05"/> 15 16 <value name="RB4_R4G4B4A4_UNORM" value="0x08"/> 17 <value name="RB4_R5G5B5A1_UNORM" value="0x0a"/> 18 <value name="RB4_R5G6B5_UNORM" value="0x0e"/> 19 <value name="RB4_R8G8_UNORM" value="0x0f"/> 20 <value name="RB4_R8G8_SNORM" value="0x10"/> 21 <value name="RB4_R8G8_UINT" value="0x11"/> 22 <value name="RB4_R8G8_SINT" value="0x12"/> 23 <value name="RB4_R16_UNORM" value="0x13"/> 24 <value name="RB4_R16_SNORM" value="0x14"/> 25 <value name="RB4_R16_FLOAT" value="0x15"/> 26 <value name="RB4_R16_UINT" value="0x16"/> 27 <value name="RB4_R16_SINT" value="0x17"/> 28 29 <value name="RB4_R8G8B8_UNORM" value="0x19"/> 30 31 <value name="RB4_R8G8B8A8_UNORM" value="0x1a"/> 32 <value name="RB4_R8G8B8A8_SNORM" value="0x1c"/> 33 <value name="RB4_R8G8B8A8_UINT" value="0x1d"/> 34 <value name="RB4_R8G8B8A8_SINT" value="0x1e"/> 35 <value name="RB4_R10G10B10A2_UNORM" value="0x1f"/> 36 <value name="RB4_R10G10B10A2_UINT" value="0x22"/> 37 <value name="RB4_R11G11B10_FLOAT" value="0x27"/> 38 <value name="RB4_R16G16_UNORM" value="0x28"/> 39 <value name="RB4_R16G16_SNORM" value="0x29"/> 40 <value name="RB4_R16G16_FLOAT" value="0x2a"/> 41 <value name="RB4_R16G16_UINT" value="0x2b"/> 42 <value name="RB4_R16G16_SINT" value="0x2c"/> 43 <value name="RB4_R32_FLOAT" value="0x2d"/> 44 <value name="RB4_R32_UINT" value="0x2e"/> 45 <value name="RB4_R32_SINT" value="0x2f"/> 46 47 <value name="RB4_R16G16B16A16_UNORM" value="0x34"/> 48 <value name="RB4_R16G16B16A16_SNORM" value="0x35"/> 49 <value name="RB4_R16G16B16A16_FLOAT" value="0x36"/> 50 <value name="RB4_R16G16B16A16_UINT" value="0x37"/> 51 <value name="RB4_R16G16B16A16_SINT" value="0x38"/> 52 <value name="RB4_R32G32_FLOAT" value="0x39"/> 53 <value name="RB4_R32G32_UINT" value="0x3a"/> 54 <value name="RB4_R32G32_SINT" value="0x3b"/> 55 56 <value name="RB4_R32G32B32A32_FLOAT" value="0x3c"/> 57 <value name="RB4_R32G32B32A32_UINT" value="0x3d"/> 58 <value name="RB4_R32G32B32A32_SINT" value="0x3e"/> 59 60 <value name="RB4_NONE" value="0xff"/> 61</enum> 62 63<enum name="a4xx_tile_mode"> 64 <value name="TILE4_LINEAR" value="0"/> 65 <value name="TILE4_2" value="2"/> 66 <value name="TILE4_3" value="3"/> 67</enum> 68 69<enum name="a4xx_vtx_fmt" prefix="chipset"> 70 <!-- hmm, shifted one compared to a3xx?!? --> 71 <value name="VFMT4_32_FLOAT" value="0x1"/> 72 <value name="VFMT4_32_32_FLOAT" value="0x2"/> 73 <value name="VFMT4_32_32_32_FLOAT" value="0x3"/> 74 <value name="VFMT4_32_32_32_32_FLOAT" value="0x4"/> 75 76 <value name="VFMT4_16_FLOAT" value="0x5"/> 77 <value name="VFMT4_16_16_FLOAT" value="0x6"/> 78 <value name="VFMT4_16_16_16_FLOAT" value="0x7"/> 79 <value name="VFMT4_16_16_16_16_FLOAT" value="0x8"/> 80 81 <value name="VFMT4_32_FIXED" value="0x9"/> 82 <value name="VFMT4_32_32_FIXED" value="0xa"/> 83 <value name="VFMT4_32_32_32_FIXED" value="0xb"/> 84 <value name="VFMT4_32_32_32_32_FIXED" value="0xc"/> 85 86 <value name="VFMT4_11_11_10_FLOAT" value="0xd"/> 87 88 <!-- beyond here it does not appear to be shifted --> 89 <value name="VFMT4_16_SINT" value="0x10"/> 90 <value name="VFMT4_16_16_SINT" value="0x11"/> 91 <value name="VFMT4_16_16_16_SINT" value="0x12"/> 92 <value name="VFMT4_16_16_16_16_SINT" value="0x13"/> 93 <value name="VFMT4_16_UINT" value="0x14"/> 94 <value name="VFMT4_16_16_UINT" value="0x15"/> 95 <value name="VFMT4_16_16_16_UINT" value="0x16"/> 96 <value name="VFMT4_16_16_16_16_UINT" value="0x17"/> 97 <value name="VFMT4_16_SNORM" value="0x18"/> 98 <value name="VFMT4_16_16_SNORM" value="0x19"/> 99 <value name="VFMT4_16_16_16_SNORM" value="0x1a"/> 100 <value name="VFMT4_16_16_16_16_SNORM" value="0x1b"/> 101 <value name="VFMT4_16_UNORM" value="0x1c"/> 102 <value name="VFMT4_16_16_UNORM" value="0x1d"/> 103 <value name="VFMT4_16_16_16_UNORM" value="0x1e"/> 104 <value name="VFMT4_16_16_16_16_UNORM" value="0x1f"/> 105 106 <value name="VFMT4_32_UINT" value="0x20"/> 107 <value name="VFMT4_32_32_UINT" value="0x21"/> 108 <value name="VFMT4_32_32_32_UINT" value="0x22"/> 109 <value name="VFMT4_32_32_32_32_UINT" value="0x23"/> 110 <value name="VFMT4_32_SINT" value="0x24"/> 111 <value name="VFMT4_32_32_SINT" value="0x25"/> 112 <value name="VFMT4_32_32_32_SINT" value="0x26"/> 113 <value name="VFMT4_32_32_32_32_SINT" value="0x27"/> 114 115 <value name="VFMT4_8_UINT" value="0x28"/> 116 <value name="VFMT4_8_8_UINT" value="0x29"/> 117 <value name="VFMT4_8_8_8_UINT" value="0x2a"/> 118 <value name="VFMT4_8_8_8_8_UINT" value="0x2b"/> 119 <value name="VFMT4_8_UNORM" value="0x2c"/> 120 <value name="VFMT4_8_8_UNORM" value="0x2d"/> 121 <value name="VFMT4_8_8_8_UNORM" value="0x2e"/> 122 <value name="VFMT4_8_8_8_8_UNORM" value="0x2f"/> 123 <value name="VFMT4_8_SINT" value="0x30"/> 124 <value name="VFMT4_8_8_SINT" value="0x31"/> 125 <value name="VFMT4_8_8_8_SINT" value="0x32"/> 126 <value name="VFMT4_8_8_8_8_SINT" value="0x33"/> 127 <value name="VFMT4_8_SNORM" value="0x34"/> 128 <value name="VFMT4_8_8_SNORM" value="0x35"/> 129 <value name="VFMT4_8_8_8_SNORM" value="0x36"/> 130 <value name="VFMT4_8_8_8_8_SNORM" value="0x37"/> 131 132 <value name="VFMT4_10_10_10_2_UINT" value="0x38"/> 133 <value name="VFMT4_10_10_10_2_UNORM" value="0x39"/> 134 <value name="VFMT4_10_10_10_2_SINT" value="0x3a"/> 135 <value name="VFMT4_10_10_10_2_SNORM" value="0x3b"/> 136 <value name="VFMT4_2_10_10_10_UINT" value="0x3c"/> 137 <value name="VFMT4_2_10_10_10_UNORM" value="0x3d"/> 138 <value name="VFMT4_2_10_10_10_SINT" value="0x3e"/> 139 <value name="VFMT4_2_10_10_10_SNORM" value="0x3f"/> 140 141 <value name="VFMT4_NONE" value="0xff"/> 142</enum> 143 144<enum name="a4xx_tex_fmt"> 145 <!-- 0x00 .. 0x02 --> 146 147 <!-- 8-bit formats --> 148 <value name="TFMT4_A8_UNORM" value="0x03"/> 149 <value name="TFMT4_8_UNORM" value="0x04"/> 150 <value name="TFMT4_8_SNORM" value="0x05"/> 151 <value name="TFMT4_8_UINT" value="0x06"/> 152 <value name="TFMT4_8_SINT" value="0x07"/> 153 154 <!-- 16-bit formats --> 155 <value name="TFMT4_4_4_4_4_UNORM" value="0x08"/> 156 <value name="TFMT4_5_5_5_1_UNORM" value="0x09"/> 157 <!-- 0x0a --> 158 <value name="TFMT4_5_6_5_UNORM" value="0x0b"/> 159 160 <!-- 0x0c --> 161 162 <value name="TFMT4_L8_A8_UNORM" value="0x0d"/> 163 <value name="TFMT4_8_8_UNORM" value="0x0e"/> 164 <value name="TFMT4_8_8_SNORM" value="0x0f"/> 165 <value name="TFMT4_8_8_UINT" value="0x10"/> 166 <value name="TFMT4_8_8_SINT" value="0x11"/> 167 168 <value name="TFMT4_16_UNORM" value="0x12"/> 169 <value name="TFMT4_16_SNORM" value="0x13"/> 170 <value name="TFMT4_16_FLOAT" value="0x14"/> 171 <value name="TFMT4_16_UINT" value="0x15"/> 172 <value name="TFMT4_16_SINT" value="0x16"/> 173 174 <!-- 0x17 .. 0x1b --> 175 176 <!-- 32-bit formats --> 177 <value name="TFMT4_8_8_8_8_UNORM" value="0x1c"/> 178 <value name="TFMT4_8_8_8_8_SNORM" value="0x1d"/> 179 <value name="TFMT4_8_8_8_8_UINT" value="0x1e"/> 180 <value name="TFMT4_8_8_8_8_SINT" value="0x1f"/> 181 182 <value name="TFMT4_9_9_9_E5_FLOAT" value="0x20"/> 183 <value name="TFMT4_10_10_10_2_UNORM" value="0x21"/> 184 <value name="TFMT4_10_10_10_2_UINT" value="0x22"/> 185 <!-- 0x23 .. 0x24 --> 186 <value name="TFMT4_11_11_10_FLOAT" value="0x25"/> 187 188 <value name="TFMT4_16_16_UNORM" value="0x26"/> 189 <value name="TFMT4_16_16_SNORM" value="0x27"/> 190 <value name="TFMT4_16_16_FLOAT" value="0x28"/> 191 <value name="TFMT4_16_16_UINT" value="0x29"/> 192 <value name="TFMT4_16_16_SINT" value="0x2a"/> 193 194 <value name="TFMT4_32_FLOAT" value="0x2b"/> 195 <value name="TFMT4_32_UINT" value="0x2c"/> 196 <value name="TFMT4_32_SINT" value="0x2d"/> 197 198 <!-- 0x2e .. 0x32 --> 199 200 <!-- 64-bit formats --> 201 <value name="TFMT4_16_16_16_16_UNORM" value="0x33"/> 202 <value name="TFMT4_16_16_16_16_SNORM" value="0x34"/> 203 <value name="TFMT4_16_16_16_16_FLOAT" value="0x35"/> 204 <value name="TFMT4_16_16_16_16_UINT" value="0x36"/> 205 <value name="TFMT4_16_16_16_16_SINT" value="0x37"/> 206 207 <value name="TFMT4_32_32_FLOAT" value="0x38"/> 208 <value name="TFMT4_32_32_UINT" value="0x39"/> 209 <value name="TFMT4_32_32_SINT" value="0x3a"/> 210 211 <!-- 96-bit formats --> 212 <value name="TFMT4_32_32_32_FLOAT" value="0x3b"/> 213 <value name="TFMT4_32_32_32_UINT" value="0x3c"/> 214 <value name="TFMT4_32_32_32_SINT" value="0x3d"/> 215 216 <!-- 0x3e --> 217 218 <!-- 128-bit formats --> 219 <value name="TFMT4_32_32_32_32_FLOAT" value="0x3f"/> 220 <value name="TFMT4_32_32_32_32_UINT" value="0x40"/> 221 <value name="TFMT4_32_32_32_32_SINT" value="0x41"/> 222 223 <!-- 0x42 .. 0x46 --> 224 <value name="TFMT4_X8Z24_UNORM" value="0x47"/> 225 <!-- 0x48 .. 0x55 --> 226 227 <!-- compressed formats --> 228 <value name="TFMT4_DXT1" value="0x56"/> 229 <value name="TFMT4_DXT3" value="0x57"/> 230 <value name="TFMT4_DXT5" value="0x58"/> 231 <!-- 0x59 --> 232 <value name="TFMT4_RGTC1_UNORM" value="0x5a"/> 233 <value name="TFMT4_RGTC1_SNORM" value="0x5b"/> 234 <!-- 0x5c .. 0x5d --> 235 <value name="TFMT4_RGTC2_UNORM" value="0x5e"/> 236 <value name="TFMT4_RGTC2_SNORM" value="0x5f"/> 237 <!-- 0x60 --> 238 <value name="TFMT4_BPTC_UFLOAT" value="0x61"/> 239 <value name="TFMT4_BPTC_FLOAT" value="0x62"/> 240 <value name="TFMT4_BPTC" value="0x63"/> 241 <value name="TFMT4_ATC_RGB" value="0x64"/> 242 <value name="TFMT4_ATC_RGBA_EXPLICIT" value="0x65"/> 243 <value name="TFMT4_ATC_RGBA_INTERPOLATED" value="0x66"/> 244 <value name="TFMT4_ETC2_RG11_UNORM" value="0x67"/> 245 <value name="TFMT4_ETC2_RG11_SNORM" value="0x68"/> 246 <value name="TFMT4_ETC2_R11_UNORM" value="0x69"/> 247 <value name="TFMT4_ETC2_R11_SNORM" value="0x6a"/> 248 <value name="TFMT4_ETC1" value="0x6b"/> 249 <value name="TFMT4_ETC2_RGB8" value="0x6c"/> 250 <value name="TFMT4_ETC2_RGBA8" value="0x6d"/> 251 <value name="TFMT4_ETC2_RGB8A1" value="0x6e"/> 252 <value name="TFMT4_ASTC_4x4" value="0x6f"/> 253 <value name="TFMT4_ASTC_5x4" value="0x70"/> 254 <value name="TFMT4_ASTC_5x5" value="0x71"/> 255 <value name="TFMT4_ASTC_6x5" value="0x72"/> 256 <value name="TFMT4_ASTC_6x6" value="0x73"/> 257 <value name="TFMT4_ASTC_8x5" value="0x74"/> 258 <value name="TFMT4_ASTC_8x6" value="0x75"/> 259 <value name="TFMT4_ASTC_8x8" value="0x76"/> 260 <value name="TFMT4_ASTC_10x5" value="0x77"/> 261 <value name="TFMT4_ASTC_10x6" value="0x78"/> 262 <value name="TFMT4_ASTC_10x8" value="0x79"/> 263 <value name="TFMT4_ASTC_10x10" value="0x7a"/> 264 <value name="TFMT4_ASTC_12x10" value="0x7b"/> 265 <value name="TFMT4_ASTC_12x12" value="0x7c"/> 266 <!-- 0x7d .. 0x7f --> 267 268 <value name="TFMT4_NONE" value="0xff"/> 269</enum> 270 271<enum name="a4xx_depth_format"> 272 <value name="DEPTH4_NONE" value="0"/> 273 <value name="DEPTH4_16" value="1"/> 274 <value name="DEPTH4_24_8" value="2"/> 275 <value name="DEPTH4_32" value="3"/> 276</enum> 277 278<!-- 279NOTE counters extracted from test-perf log with the following awful 280script: 281################## 282#!/bin/bash 283 284log=$1 285 286grep -F "counter 287countable 288group" $log | grep -v gl > shortlist.txt 289 290countable="" 291IFS=$'\n'; for line in $(cat shortlist.txt); do 292 # parse ######### group[$n]: $name 293 l=${line########### group} 294 if [ $l != $line ]; then 295 group=`echo $line | awk '{print $3}'` 296 echo "Group: $group" 297 continue 298 fi 299 # parse ######### counter[$n]: $name 300 l=${line########### counter} 301 if [ $l != $line ]; then 302 countable=`echo $line | awk '{print $3}'` 303 #echo " Countable: $countable" 304 continue 305 fi 306 # parse countable: 307 l=${line## countable:} 308 if [ $l != $line ]; then 309 val=`echo $line | awk '{print $2}'` 310 echo "<value value=\"$val\" name=\"$countable\"/>" 311 fi 312 313done 314################## 315 --> 316<enum name="a4xx_ccu_perfcounter_select"> 317 <value value="0" name="CCU_BUSY_CYCLES"/> 318 <value value="2" name="CCU_RB_DEPTH_RETURN_STALL"/> 319 <value value="3" name="CCU_RB_COLOR_RETURN_STALL"/> 320 <value value="6" name="CCU_DEPTH_BLOCKS"/> 321 <value value="7" name="CCU_COLOR_BLOCKS"/> 322 <value value="8" name="CCU_DEPTH_BLOCK_HIT"/> 323 <value value="9" name="CCU_COLOR_BLOCK_HIT"/> 324 <value value="10" name="CCU_DEPTH_FLAG1_COUNT"/> 325 <value value="11" name="CCU_DEPTH_FLAG2_COUNT"/> 326 <value value="12" name="CCU_DEPTH_FLAG3_COUNT"/> 327 <value value="13" name="CCU_DEPTH_FLAG4_COUNT"/> 328 <value value="14" name="CCU_COLOR_FLAG1_COUNT"/> 329 <value value="15" name="CCU_COLOR_FLAG2_COUNT"/> 330 <value value="16" name="CCU_COLOR_FLAG3_COUNT"/> 331 <value value="17" name="CCU_COLOR_FLAG4_COUNT"/> 332 <value value="18" name="CCU_PARTIAL_BLOCK_READ"/> 333</enum> 334 335<!-- 336NOTE other than CP_ALWAYS_COUNT (which is the only one we use so far), 337on a3xx the countable #'s from AMD_performance_monitor disagreed with 338TRM. All these #'s for a4xx come from AMD_performance_monitor, so 339perhaps they should be taken with a grain of salt 340--> 341<enum name="a4xx_cp_perfcounter_select"> 342 <!-- first ctr at least seems same as a3xx, so we can measure freq --> 343 <value value="0" name="CP_ALWAYS_COUNT"/> 344 <value value="1" name="CP_BUSY"/> 345 <value value="2" name="CP_PFP_IDLE"/> 346 <value value="3" name="CP_PFP_BUSY_WORKING"/> 347 <value value="4" name="CP_PFP_STALL_CYCLES_ANY"/> 348 <value value="5" name="CP_PFP_STARVE_CYCLES_ANY"/> 349 <value value="6" name="CP_PFP_STARVED_PER_LOAD_ADDR"/> 350 <value value="7" name="CP_PFP_STALLED_PER_STORE_ADDR"/> 351 <value value="8" name="CP_PFP_PC_PROFILE"/> 352 <value value="9" name="CP_PFP_MATCH_PM4_PKT_PROFILE"/> 353 <value value="10" name="CP_PFP_COND_INDIRECT_DISCARDED"/> 354 <value value="11" name="CP_LONG_RESUMPTIONS"/> 355 <value value="12" name="CP_RESUME_CYCLES"/> 356 <value value="13" name="CP_RESUME_TO_BOUNDARY_CYCLES"/> 357 <value value="14" name="CP_LONG_PREEMPTIONS"/> 358 <value value="15" name="CP_PREEMPT_CYCLES"/> 359 <value value="16" name="CP_PREEMPT_TO_BOUNDARY_CYCLES"/> 360 <value value="17" name="CP_ME_FIFO_EMPTY_PFP_IDLE"/> 361 <value value="18" name="CP_ME_FIFO_EMPTY_PFP_BUSY"/> 362 <value value="19" name="CP_ME_FIFO_NOT_EMPTY_NOT_FULL"/> 363 <value value="20" name="CP_ME_FIFO_FULL_ME_BUSY"/> 364 <value value="21" name="CP_ME_FIFO_FULL_ME_NON_WORKING"/> 365 <value value="22" name="CP_ME_WAITING_FOR_PACKETS"/> 366 <value value="23" name="CP_ME_BUSY_WORKING"/> 367 <value value="24" name="CP_ME_STARVE_CYCLES_ANY"/> 368 <value value="25" name="CP_ME_STARVE_CYCLES_PER_PROFILE"/> 369 <value value="26" name="CP_ME_STALL_CYCLES_PER_PROFILE"/> 370 <value value="27" name="CP_ME_PC_PROFILE"/> 371 <value value="28" name="CP_RCIU_FIFO_EMPTY"/> 372 <value value="29" name="CP_RCIU_FIFO_NOT_EMPTY_NOT_FULL"/> 373 <value value="30" name="CP_RCIU_FIFO_FULL"/> 374 <value value="31" name="CP_RCIU_FIFO_FULL_NO_CONTEXT"/> 375 <value value="32" name="CP_RCIU_FIFO_FULL_AHB_MASTER"/> 376 <value value="33" name="CP_RCIU_FIFO_FULL_OTHER"/> 377 <value value="34" name="CP_AHB_IDLE"/> 378 <value value="35" name="CP_AHB_STALL_ON_GRANT_NO_SPLIT"/> 379 <value value="36" name="CP_AHB_STALL_ON_GRANT_SPLIT"/> 380 <value value="37" name="CP_AHB_STALL_ON_GRANT_SPLIT_PROFILE"/> 381 <value value="38" name="CP_AHB_BUSY_WORKING"/> 382 <value value="39" name="CP_AHB_BUSY_STALL_ON_HRDY"/> 383 <value value="40" name="CP_AHB_BUSY_STALL_ON_HRDY_PROFILE"/> 384</enum> 385 386<enum name="a4xx_gras_ras_perfcounter_select"> 387 <value value="0" name="RAS_SUPER_TILES"/> 388 <value value="1" name="RAS_8X8_TILES"/> 389 <value value="2" name="RAS_4X4_TILES"/> 390 <value value="3" name="RAS_BUSY_CYCLES"/> 391 <value value="4" name="RAS_STALL_CYCLES_BY_RB"/> 392 <value value="5" name="RAS_STALL_CYCLES_BY_VSC"/> 393 <value value="6" name="RAS_STARVE_CYCLES_BY_TSE"/> 394 <value value="7" name="RAS_SUPERTILE_CYCLES"/> 395 <value value="8" name="RAS_TILE_CYCLES"/> 396 <value value="9" name="RAS_FULLY_COVERED_SUPER_TILES"/> 397 <value value="10" name="RAS_FULLY_COVERED_8X8_TILES"/> 398 <value value="11" name="RAS_4X4_PRIM"/> 399 <value value="12" name="RAS_8X4_4X8_PRIM"/> 400 <value value="13" name="RAS_8X8_PRIM"/> 401</enum> 402 403<enum name="a4xx_gras_tse_perfcounter_select"> 404 <value value="0" name="TSE_INPUT_PRIM"/> 405 <value value="1" name="TSE_INPUT_NULL_PRIM"/> 406 <value value="2" name="TSE_TRIVAL_REJ_PRIM"/> 407 <value value="3" name="TSE_CLIPPED_PRIM"/> 408 <value value="4" name="TSE_NEW_PRIM"/> 409 <value value="5" name="TSE_ZERO_AREA_PRIM"/> 410 <value value="6" name="TSE_FACENESS_CULLED_PRIM"/> 411 <value value="7" name="TSE_ZERO_PIXEL_PRIM"/> 412 <value value="8" name="TSE_OUTPUT_NULL_PRIM"/> 413 <value value="9" name="TSE_OUTPUT_VISIBLE_PRIM"/> 414 <value value="10" name="TSE_PRE_CLIP_PRIM"/> 415 <value value="11" name="TSE_POST_CLIP_PRIM"/> 416 <value value="12" name="TSE_BUSY_CYCLES"/> 417 <value value="13" name="TSE_PC_STARVE"/> 418 <value value="14" name="TSE_RAS_STALL"/> 419 <value value="15" name="TSE_STALL_BARYPLANE_FIFO_FULL"/> 420 <value value="16" name="TSE_STALL_ZPLANE_FIFO_FULL"/> 421</enum> 422 423<enum name="a4xx_hlsq_perfcounter_select"> 424 <value value="0" name="HLSQ_SP_VS_STAGE_CONSTANT"/> 425 <value value="1" name="HLSQ_SP_VS_STAGE_INSTRUCTIONS"/> 426 <value value="2" name="HLSQ_SP_FS_STAGE_CONSTANT"/> 427 <value value="3" name="HLSQ_SP_FS_STAGE_INSTRUCTIONS"/> 428 <value value="4" name="HLSQ_TP_STATE"/> 429 <value value="5" name="HLSQ_QUADS"/> 430 <value value="6" name="HLSQ_PIXELS"/> 431 <value value="7" name="HLSQ_VERTICES"/> 432 <value value="13" name="HLSQ_SP_VS_STAGE_DATA_BYTES"/> 433 <value value="14" name="HLSQ_SP_FS_STAGE_DATA_BYTES"/> 434 <value value="15" name="HLSQ_BUSY_CYCLES"/> 435 <value value="16" name="HLSQ_STALL_CYCLES_SP_STATE"/> 436 <value value="17" name="HLSQ_STALL_CYCLES_SP_VS_STAGE"/> 437 <value value="18" name="HLSQ_STALL_CYCLES_SP_FS_STAGE"/> 438 <value value="19" name="HLSQ_STALL_CYCLES_UCHE"/> 439 <value value="20" name="HLSQ_RBBM_LOAD_CYCLES"/> 440 <value value="21" name="HLSQ_DI_TO_VS_START_SP"/> 441 <value value="22" name="HLSQ_DI_TO_FS_START_SP"/> 442 <value value="23" name="HLSQ_VS_STAGE_START_TO_DONE_SP"/> 443 <value value="24" name="HLSQ_FS_STAGE_START_TO_DONE_SP"/> 444 <value value="25" name="HLSQ_SP_STATE_COPY_CYCLES_VS_STAGE"/> 445 <value value="26" name="HLSQ_SP_STATE_COPY_CYCLES_FS_STAGE"/> 446 <value value="27" name="HLSQ_UCHE_LATENCY_CYCLES"/> 447 <value value="28" name="HLSQ_UCHE_LATENCY_COUNT"/> 448 <value value="29" name="HLSQ_STARVE_CYCLES_VFD"/> 449</enum> 450 451<enum name="a4xx_pc_perfcounter_select"> 452 <value value="0" name="PC_VIS_STREAMS_LOADED"/> 453 <value value="2" name="PC_VPC_PRIMITIVES"/> 454 <value value="3" name="PC_DEAD_PRIM"/> 455 <value value="4" name="PC_LIVE_PRIM"/> 456 <value value="5" name="PC_DEAD_DRAWCALLS"/> 457 <value value="6" name="PC_LIVE_DRAWCALLS"/> 458 <value value="7" name="PC_VERTEX_MISSES"/> 459 <value value="9" name="PC_STALL_CYCLES_VFD"/> 460 <value value="10" name="PC_STALL_CYCLES_TSE"/> 461 <value value="11" name="PC_STALL_CYCLES_UCHE"/> 462 <value value="12" name="PC_WORKING_CYCLES"/> 463 <value value="13" name="PC_IA_VERTICES"/> 464 <value value="14" name="PC_GS_PRIMITIVES"/> 465 <value value="15" name="PC_HS_INVOCATIONS"/> 466 <value value="16" name="PC_DS_INVOCATIONS"/> 467 <value value="17" name="PC_DS_PRIMITIVES"/> 468 <value value="20" name="PC_STARVE_CYCLES_FOR_INDEX"/> 469 <value value="21" name="PC_STARVE_CYCLES_FOR_TESS_FACTOR"/> 470 <value value="22" name="PC_STARVE_CYCLES_FOR_VIZ_STREAM"/> 471 <value value="23" name="PC_STALL_CYCLES_TESS"/> 472 <value value="24" name="PC_STARVE_CYCLES_FOR_POSITION"/> 473 <value value="25" name="PC_MODE0_DRAWCALL"/> 474 <value value="26" name="PC_MODE1_DRAWCALL"/> 475 <value value="27" name="PC_MODE2_DRAWCALL"/> 476 <value value="28" name="PC_MODE3_DRAWCALL"/> 477 <value value="29" name="PC_MODE4_DRAWCALL"/> 478 <value value="30" name="PC_PREDICATED_DEAD_DRAWCALL"/> 479 <value value="31" name="PC_STALL_CYCLES_BY_TSE_ONLY"/> 480 <value value="32" name="PC_STALL_CYCLES_BY_VPC_ONLY"/> 481 <value value="33" name="PC_VPC_POS_DATA_TRANSACTION"/> 482 <value value="34" name="PC_BUSY_CYCLES"/> 483 <value value="35" name="PC_STARVE_CYCLES_DI"/> 484 <value value="36" name="PC_STALL_CYCLES_VPC"/> 485 <value value="37" name="TESS_WORKING_CYCLES"/> 486 <value value="38" name="TESS_NUM_CYCLES_SETUP_WORKING"/> 487 <value value="39" name="TESS_NUM_CYCLES_PTGEN_WORKING"/> 488 <value value="40" name="TESS_NUM_CYCLES_CONNGEN_WORKING"/> 489 <value value="41" name="TESS_BUSY_CYCLES"/> 490 <value value="42" name="TESS_STARVE_CYCLES_PC"/> 491 <value value="43" name="TESS_STALL_CYCLES_PC"/> 492</enum> 493 494<enum name="a4xx_pwr_perfcounter_select"> 495 <!-- NOTE not actually used.. see RBBM_RBBM_CTL.RESET_PWR_CTR0/1 --> 496 <value value="0" name="PWR_CORE_CLOCK_CYCLES"/> 497 <value value="1" name="PWR_BUSY_CLOCK_CYCLES"/> 498</enum> 499 500<enum name="a4xx_rb_perfcounter_select"> 501 <value value="0" name="RB_BUSY_CYCLES"/> 502 <value value="1" name="RB_BUSY_CYCLES_BINNING"/> 503 <value value="2" name="RB_BUSY_CYCLES_RENDERING"/> 504 <value value="3" name="RB_BUSY_CYCLES_RESOLVE"/> 505 <value value="4" name="RB_STARVE_CYCLES_BY_SP"/> 506 <value value="5" name="RB_STARVE_CYCLES_BY_RAS"/> 507 <value value="6" name="RB_STARVE_CYCLES_BY_MARB"/> 508 <value value="7" name="RB_STALL_CYCLES_BY_MARB"/> 509 <value value="8" name="RB_STALL_CYCLES_BY_HLSQ"/> 510 <value value="9" name="RB_RB_RB_MARB_DATA"/> 511 <value value="10" name="RB_SP_RB_QUAD"/> 512 <value value="11" name="RB_RAS_RB_Z_QUADS"/> 513 <value value="12" name="RB_GMEM_CH0_READ"/> 514 <value value="13" name="RB_GMEM_CH1_READ"/> 515 <value value="14" name="RB_GMEM_CH0_WRITE"/> 516 <value value="15" name="RB_GMEM_CH1_WRITE"/> 517 <value value="16" name="RB_CP_CONTEXT_DONE"/> 518 <value value="17" name="RB_CP_CACHE_FLUSH"/> 519 <value value="18" name="RB_CP_ZPASS_DONE"/> 520 <value value="19" name="RB_STALL_FIFO0_FULL"/> 521 <value value="20" name="RB_STALL_FIFO1_FULL"/> 522 <value value="21" name="RB_STALL_FIFO2_FULL"/> 523 <value value="22" name="RB_STALL_FIFO3_FULL"/> 524 <value value="23" name="RB_RB_HLSQ_TRANSACTIONS"/> 525 <value value="24" name="RB_Z_READ"/> 526 <value value="25" name="RB_Z_WRITE"/> 527 <value value="26" name="RB_C_READ"/> 528 <value value="27" name="RB_C_WRITE"/> 529 <value value="28" name="RB_C_READ_LATENCY"/> 530 <value value="29" name="RB_Z_READ_LATENCY"/> 531 <value value="30" name="RB_STALL_BY_UCHE"/> 532 <value value="31" name="RB_MARB_UCHE_TRANSACTIONS"/> 533 <value value="32" name="RB_CACHE_STALL_MISS"/> 534 <value value="33" name="RB_CACHE_STALL_FIFO_FULL"/> 535 <value value="34" name="RB_8BIT_BLENDER_UNITS_ACTIVE"/> 536 <value value="35" name="RB_16BIT_BLENDER_UNITS_ACTIVE"/> 537 <value value="36" name="RB_SAMPLER_UNITS_ACTIVE"/> 538 <value value="38" name="RB_TOTAL_PASS"/> 539 <value value="39" name="RB_Z_PASS"/> 540 <value value="40" name="RB_Z_FAIL"/> 541 <value value="41" name="RB_S_FAIL"/> 542 <value value="42" name="RB_POWER0"/> 543 <value value="43" name="RB_POWER1"/> 544 <value value="44" name="RB_POWER2"/> 545 <value value="45" name="RB_POWER3"/> 546 <value value="46" name="RB_POWER4"/> 547 <value value="47" name="RB_POWER5"/> 548 <value value="48" name="RB_POWER6"/> 549 <value value="49" name="RB_POWER7"/> 550</enum> 551 552<enum name="a4xx_rbbm_perfcounter_select"> 553 <value value="0" name="RBBM_ALWAYS_ON"/> 554 <value value="1" name="RBBM_VBIF_BUSY"/> 555 <value value="2" name="RBBM_TSE_BUSY"/> 556 <value value="3" name="RBBM_RAS_BUSY"/> 557 <value value="4" name="RBBM_PC_DCALL_BUSY"/> 558 <value value="5" name="RBBM_PC_VSD_BUSY"/> 559 <value value="6" name="RBBM_VFD_BUSY"/> 560 <value value="7" name="RBBM_VPC_BUSY"/> 561 <value value="8" name="RBBM_UCHE_BUSY"/> 562 <value value="9" name="RBBM_VSC_BUSY"/> 563 <value value="10" name="RBBM_HLSQ_BUSY"/> 564 <value value="11" name="RBBM_ANY_RB_BUSY"/> 565 <value value="12" name="RBBM_ANY_TPL1_BUSY"/> 566 <value value="13" name="RBBM_ANY_SP_BUSY"/> 567 <value value="14" name="RBBM_ANY_MARB_BUSY"/> 568 <value value="15" name="RBBM_ANY_ARB_BUSY"/> 569 <value value="16" name="RBBM_AHB_STATUS_BUSY"/> 570 <value value="17" name="RBBM_AHB_STATUS_STALLED"/> 571 <value value="18" name="RBBM_AHB_STATUS_TXFR"/> 572 <value value="19" name="RBBM_AHB_STATUS_TXFR_SPLIT"/> 573 <value value="20" name="RBBM_AHB_STATUS_TXFR_ERROR"/> 574 <value value="21" name="RBBM_AHB_STATUS_LONG_STALL"/> 575 <value value="22" name="RBBM_STATUS_MASKED"/> 576 <value value="23" name="RBBM_CP_BUSY_GFX_CORE_IDLE"/> 577 <value value="24" name="RBBM_TESS_BUSY"/> 578 <value value="25" name="RBBM_COM_BUSY"/> 579 <value value="32" name="RBBM_DCOM_BUSY"/> 580 <value value="33" name="RBBM_ANY_CCU_BUSY"/> 581 <value value="34" name="RBBM_DPM_BUSY"/> 582</enum> 583 584<enum name="a4xx_sp_perfcounter_select"> 585 <value value="0" name="SP_LM_LOAD_INSTRUCTIONS"/> 586 <value value="1" name="SP_LM_STORE_INSTRUCTIONS"/> 587 <value value="2" name="SP_LM_ATOMICS"/> 588 <value value="3" name="SP_GM_LOAD_INSTRUCTIONS"/> 589 <value value="4" name="SP_GM_STORE_INSTRUCTIONS"/> 590 <value value="5" name="SP_GM_ATOMICS"/> 591 <value value="6" name="SP_VS_STAGE_TEX_INSTRUCTIONS"/> 592 <value value="7" name="SP_VS_STAGE_CFLOW_INSTRUCTIONS"/> 593 <value value="8" name="SP_VS_STAGE_EFU_INSTRUCTIONS"/> 594 <value value="9" name="SP_VS_STAGE_FULL_ALU_INSTRUCTIONS"/> 595 <value value="10" name="SP_VS_STAGE_HALF_ALU_INSTRUCTIONS"/> 596 <value value="11" name="SP_FS_STAGE_TEX_INSTRUCTIONS"/> 597 <value value="12" name="SP_FS_STAGE_CFLOW_INSTRUCTIONS"/> 598 <value value="13" name="SP_FS_STAGE_EFU_INSTRUCTIONS"/> 599 <value value="14" name="SP_FS_STAGE_FULL_ALU_INSTRUCTIONS"/> 600 <value value="15" name="SP_FS_STAGE_HALF_ALU_INSTRUCTIONS"/> 601 <value value="17" name="SP_VS_INSTRUCTIONS"/> 602 <value value="18" name="SP_FS_INSTRUCTIONS"/> 603 <value value="19" name="SP_ADDR_LOCK_COUNT"/> 604 <value value="20" name="SP_UCHE_READ_TRANS"/> 605 <value value="21" name="SP_UCHE_WRITE_TRANS"/> 606 <value value="22" name="SP_EXPORT_VPC_TRANS"/> 607 <value value="23" name="SP_EXPORT_RB_TRANS"/> 608 <value value="24" name="SP_PIXELS_KILLED"/> 609 <value value="25" name="SP_ICL1_REQUESTS"/> 610 <value value="26" name="SP_ICL1_MISSES"/> 611 <value value="27" name="SP_ICL0_REQUESTS"/> 612 <value value="28" name="SP_ICL0_MISSES"/> 613 <value value="29" name="SP_ALU_WORKING_CYCLES"/> 614 <value value="30" name="SP_EFU_WORKING_CYCLES"/> 615 <value value="31" name="SP_STALL_CYCLES_BY_VPC"/> 616 <value value="32" name="SP_STALL_CYCLES_BY_TP"/> 617 <value value="33" name="SP_STALL_CYCLES_BY_UCHE"/> 618 <value value="34" name="SP_STALL_CYCLES_BY_RB"/> 619 <value value="35" name="SP_BUSY_CYCLES"/> 620 <value value="36" name="SP_HS_INSTRUCTIONS"/> 621 <value value="37" name="SP_DS_INSTRUCTIONS"/> 622 <value value="38" name="SP_GS_INSTRUCTIONS"/> 623 <value value="39" name="SP_CS_INSTRUCTIONS"/> 624 <value value="40" name="SP_SCHEDULER_NON_WORKING"/> 625 <value value="41" name="SP_WAVE_CONTEXTS"/> 626 <value value="42" name="SP_WAVE_CONTEXT_CYCLES"/> 627 <value value="43" name="SP_POWER0"/> 628 <value value="44" name="SP_POWER1"/> 629 <value value="45" name="SP_POWER2"/> 630 <value value="46" name="SP_POWER3"/> 631 <value value="47" name="SP_POWER4"/> 632 <value value="48" name="SP_POWER5"/> 633 <value value="49" name="SP_POWER6"/> 634 <value value="50" name="SP_POWER7"/> 635 <value value="51" name="SP_POWER8"/> 636 <value value="52" name="SP_POWER9"/> 637 <value value="53" name="SP_POWER10"/> 638 <value value="54" name="SP_POWER11"/> 639 <value value="55" name="SP_POWER12"/> 640 <value value="56" name="SP_POWER13"/> 641 <value value="57" name="SP_POWER14"/> 642 <value value="58" name="SP_POWER15"/> 643</enum> 644 645<enum name="a4xx_tp_perfcounter_select"> 646 <value value="0" name="TP_L1_REQUESTS"/> 647 <value value="1" name="TP_L1_MISSES"/> 648 <value value="8" name="TP_QUADS_OFFSET"/> 649 <value value="9" name="TP_QUAD_SHADOW"/> 650 <value value="10" name="TP_QUADS_ARRAY"/> 651 <value value="11" name="TP_QUADS_GRADIENT"/> 652 <value value="12" name="TP_QUADS_1D2D"/> 653 <value value="13" name="TP_QUADS_3DCUBE"/> 654 <value value="16" name="TP_BUSY_CYCLES"/> 655 <value value="17" name="TP_STALL_CYCLES_BY_ARB"/> 656 <value value="20" name="TP_STATE_CACHE_REQUESTS"/> 657 <value value="21" name="TP_STATE_CACHE_MISSES"/> 658 <value value="22" name="TP_POWER0"/> 659 <value value="23" name="TP_POWER1"/> 660 <value value="24" name="TP_POWER2"/> 661 <value value="25" name="TP_POWER3"/> 662 <value value="26" name="TP_POWER4"/> 663 <value value="27" name="TP_POWER5"/> 664 <value value="28" name="TP_POWER6"/> 665 <value value="29" name="TP_POWER7"/> 666</enum> 667 668<enum name="a4xx_uche_perfcounter_select"> 669 <value value="0" name="UCHE_VBIF_READ_BEATS_TP"/> 670 <value value="1" name="UCHE_VBIF_READ_BEATS_VFD"/> 671 <value value="2" name="UCHE_VBIF_READ_BEATS_HLSQ"/> 672 <value value="3" name="UCHE_VBIF_READ_BEATS_MARB"/> 673 <value value="4" name="UCHE_VBIF_READ_BEATS_SP"/> 674 <value value="5" name="UCHE_READ_REQUESTS_TP"/> 675 <value value="6" name="UCHE_READ_REQUESTS_VFD"/> 676 <value value="7" name="UCHE_READ_REQUESTS_HLSQ"/> 677 <value value="8" name="UCHE_READ_REQUESTS_MARB"/> 678 <value value="9" name="UCHE_READ_REQUESTS_SP"/> 679 <value value="10" name="UCHE_WRITE_REQUESTS_MARB"/> 680 <value value="11" name="UCHE_WRITE_REQUESTS_SP"/> 681 <value value="12" name="UCHE_TAG_CHECK_FAILS"/> 682 <value value="13" name="UCHE_EVICTS"/> 683 <value value="14" name="UCHE_FLUSHES"/> 684 <value value="15" name="UCHE_VBIF_LATENCY_CYCLES"/> 685 <value value="16" name="UCHE_VBIF_LATENCY_SAMPLES"/> 686 <value value="17" name="UCHE_BUSY_CYCLES"/> 687 <value value="18" name="UCHE_VBIF_READ_BEATS_PC"/> 688 <value value="19" name="UCHE_READ_REQUESTS_PC"/> 689 <value value="20" name="UCHE_WRITE_REQUESTS_VPC"/> 690 <value value="21" name="UCHE_STALL_BY_VBIF"/> 691 <value value="22" name="UCHE_WRITE_REQUESTS_VSC"/> 692 <value value="23" name="UCHE_POWER0"/> 693 <value value="24" name="UCHE_POWER1"/> 694 <value value="25" name="UCHE_POWER2"/> 695 <value value="26" name="UCHE_POWER3"/> 696 <value value="27" name="UCHE_POWER4"/> 697 <value value="28" name="UCHE_POWER5"/> 698 <value value="29" name="UCHE_POWER6"/> 699 <value value="30" name="UCHE_POWER7"/> 700</enum> 701 702<enum name="a4xx_vbif_perfcounter_select"> 703 <value value="0" name="AXI_READ_REQUESTS_ID_0"/> 704 <value value="1" name="AXI_READ_REQUESTS_ID_1"/> 705 <value value="2" name="AXI_READ_REQUESTS_ID_2"/> 706 <value value="3" name="AXI_READ_REQUESTS_ID_3"/> 707 <value value="4" name="AXI_READ_REQUESTS_ID_4"/> 708 <value value="5" name="AXI_READ_REQUESTS_ID_5"/> 709 <value value="6" name="AXI_READ_REQUESTS_ID_6"/> 710 <value value="7" name="AXI_READ_REQUESTS_ID_7"/> 711 <value value="8" name="AXI_READ_REQUESTS_ID_8"/> 712 <value value="9" name="AXI_READ_REQUESTS_ID_9"/> 713 <value value="10" name="AXI_READ_REQUESTS_ID_10"/> 714 <value value="11" name="AXI_READ_REQUESTS_ID_11"/> 715 <value value="12" name="AXI_READ_REQUESTS_ID_12"/> 716 <value value="13" name="AXI_READ_REQUESTS_ID_13"/> 717 <value value="14" name="AXI_READ_REQUESTS_ID_14"/> 718 <value value="15" name="AXI_READ_REQUESTS_ID_15"/> 719 <value value="16" name="AXI0_READ_REQUESTS_TOTAL"/> 720 <value value="17" name="AXI1_READ_REQUESTS_TOTAL"/> 721 <value value="18" name="AXI2_READ_REQUESTS_TOTAL"/> 722 <value value="19" name="AXI3_READ_REQUESTS_TOTAL"/> 723 <value value="20" name="AXI_READ_REQUESTS_TOTAL"/> 724 <value value="21" name="AXI_WRITE_REQUESTS_ID_0"/> 725 <value value="22" name="AXI_WRITE_REQUESTS_ID_1"/> 726 <value value="23" name="AXI_WRITE_REQUESTS_ID_2"/> 727 <value value="24" name="AXI_WRITE_REQUESTS_ID_3"/> 728 <value value="25" name="AXI_WRITE_REQUESTS_ID_4"/> 729 <value value="26" name="AXI_WRITE_REQUESTS_ID_5"/> 730 <value value="27" name="AXI_WRITE_REQUESTS_ID_6"/> 731 <value value="28" name="AXI_WRITE_REQUESTS_ID_7"/> 732 <value value="29" name="AXI_WRITE_REQUESTS_ID_8"/> 733 <value value="30" name="AXI_WRITE_REQUESTS_ID_9"/> 734 <value value="31" name="AXI_WRITE_REQUESTS_ID_10"/> 735 <value value="32" name="AXI_WRITE_REQUESTS_ID_11"/> 736 <value value="33" name="AXI_WRITE_REQUESTS_ID_12"/> 737 <value value="34" name="AXI_WRITE_REQUESTS_ID_13"/> 738 <value value="35" name="AXI_WRITE_REQUESTS_ID_14"/> 739 <value value="36" name="AXI_WRITE_REQUESTS_ID_15"/> 740 <value value="37" name="AXI0_WRITE_REQUESTS_TOTAL"/> 741 <value value="38" name="AXI1_WRITE_REQUESTS_TOTAL"/> 742 <value value="39" name="AXI2_WRITE_REQUESTS_TOTAL"/> 743 <value value="40" name="AXI3_WRITE_REQUESTS_TOTAL"/> 744 <value value="41" name="AXI_WRITE_REQUESTS_TOTAL"/> 745 <value value="42" name="AXI_TOTAL_REQUESTS"/> 746 <value value="43" name="AXI_READ_DATA_BEATS_ID_0"/> 747 <value value="44" name="AXI_READ_DATA_BEATS_ID_1"/> 748 <value value="45" name="AXI_READ_DATA_BEATS_ID_2"/> 749 <value value="46" name="AXI_READ_DATA_BEATS_ID_3"/> 750 <value value="47" name="AXI_READ_DATA_BEATS_ID_4"/> 751 <value value="48" name="AXI_READ_DATA_BEATS_ID_5"/> 752 <value value="49" name="AXI_READ_DATA_BEATS_ID_6"/> 753 <value value="50" name="AXI_READ_DATA_BEATS_ID_7"/> 754 <value value="51" name="AXI_READ_DATA_BEATS_ID_8"/> 755 <value value="52" name="AXI_READ_DATA_BEATS_ID_9"/> 756 <value value="53" name="AXI_READ_DATA_BEATS_ID_10"/> 757 <value value="54" name="AXI_READ_DATA_BEATS_ID_11"/> 758 <value value="55" name="AXI_READ_DATA_BEATS_ID_12"/> 759 <value value="56" name="AXI_READ_DATA_BEATS_ID_13"/> 760 <value value="57" name="AXI_READ_DATA_BEATS_ID_14"/> 761 <value value="58" name="AXI_READ_DATA_BEATS_ID_15"/> 762 <value value="59" name="AXI0_READ_DATA_BEATS_TOTAL"/> 763 <value value="60" name="AXI1_READ_DATA_BEATS_TOTAL"/> 764 <value value="61" name="AXI2_READ_DATA_BEATS_TOTAL"/> 765 <value value="62" name="AXI3_READ_DATA_BEATS_TOTAL"/> 766 <value value="63" name="AXI_READ_DATA_BEATS_TOTAL"/> 767 <value value="64" name="AXI_WRITE_DATA_BEATS_ID_0"/> 768 <value value="65" name="AXI_WRITE_DATA_BEATS_ID_1"/> 769 <value value="66" name="AXI_WRITE_DATA_BEATS_ID_2"/> 770 <value value="67" name="AXI_WRITE_DATA_BEATS_ID_3"/> 771 <value value="68" name="AXI_WRITE_DATA_BEATS_ID_4"/> 772 <value value="69" name="AXI_WRITE_DATA_BEATS_ID_5"/> 773 <value value="70" name="AXI_WRITE_DATA_BEATS_ID_6"/> 774 <value value="71" name="AXI_WRITE_DATA_BEATS_ID_7"/> 775 <value value="72" name="AXI_WRITE_DATA_BEATS_ID_8"/> 776 <value value="73" name="AXI_WRITE_DATA_BEATS_ID_9"/> 777 <value value="74" name="AXI_WRITE_DATA_BEATS_ID_10"/> 778 <value value="75" name="AXI_WRITE_DATA_BEATS_ID_11"/> 779 <value value="76" name="AXI_WRITE_DATA_BEATS_ID_12"/> 780 <value value="77" name="AXI_WRITE_DATA_BEATS_ID_13"/> 781 <value value="78" name="AXI_WRITE_DATA_BEATS_ID_14"/> 782 <value value="79" name="AXI_WRITE_DATA_BEATS_ID_15"/> 783 <value value="80" name="AXI0_WRITE_DATA_BEATS_TOTAL"/> 784 <value value="81" name="AXI1_WRITE_DATA_BEATS_TOTAL"/> 785 <value value="82" name="AXI2_WRITE_DATA_BEATS_TOTAL"/> 786 <value value="83" name="AXI3_WRITE_DATA_BEATS_TOTAL"/> 787 <value value="84" name="AXI_WRITE_DATA_BEATS_TOTAL"/> 788 <value value="85" name="AXI_DATA_BEATS_TOTAL"/> 789 <value value="86" name="CYCLES_HELD_OFF_ID_0"/> 790 <value value="87" name="CYCLES_HELD_OFF_ID_1"/> 791 <value value="88" name="CYCLES_HELD_OFF_ID_2"/> 792 <value value="89" name="CYCLES_HELD_OFF_ID_3"/> 793 <value value="90" name="CYCLES_HELD_OFF_ID_4"/> 794 <value value="91" name="CYCLES_HELD_OFF_ID_5"/> 795 <value value="92" name="CYCLES_HELD_OFF_ID_6"/> 796 <value value="93" name="CYCLES_HELD_OFF_ID_7"/> 797 <value value="94" name="CYCLES_HELD_OFF_ID_8"/> 798 <value value="95" name="CYCLES_HELD_OFF_ID_9"/> 799 <value value="96" name="CYCLES_HELD_OFF_ID_10"/> 800 <value value="97" name="CYCLES_HELD_OFF_ID_11"/> 801 <value value="98" name="CYCLES_HELD_OFF_ID_12"/> 802 <value value="99" name="CYCLES_HELD_OFF_ID_13"/> 803 <value value="100" name="CYCLES_HELD_OFF_ID_14"/> 804 <value value="101" name="CYCLES_HELD_OFF_ID_15"/> 805 <value value="102" name="AXI_READ_REQUEST_HELD_OFF"/> 806 <value value="103" name="AXI_WRITE_REQUEST_HELD_OFF"/> 807 <value value="104" name="AXI_REQUEST_HELD_OFF"/> 808 <value value="105" name="AXI_WRITE_DATA_HELD_OFF"/> 809 <value value="106" name="OCMEM_AXI_READ_REQUEST_HELD_OFF"/> 810 <value value="107" name="OCMEM_AXI_WRITE_REQUEST_HELD_OFF"/> 811 <value value="108" name="OCMEM_AXI_REQUEST_HELD_OFF"/> 812 <value value="109" name="OCMEM_AXI_WRITE_DATA_HELD_OFF"/> 813 <value value="110" name="ELAPSED_CYCLES_DDR"/> 814 <value value="111" name="ELAPSED_CYCLES_OCMEM"/> 815</enum> 816 817<enum name="a4xx_vfd_perfcounter_select"> 818 <value value="0" name="VFD_UCHE_BYTE_FETCHED"/> 819 <value value="1" name="VFD_UCHE_TRANS"/> 820 <value value="3" name="VFD_FETCH_INSTRUCTIONS"/> 821 <value value="5" name="VFD_BUSY_CYCLES"/> 822 <value value="6" name="VFD_STALL_CYCLES_UCHE"/> 823 <value value="7" name="VFD_STALL_CYCLES_HLSQ"/> 824 <value value="8" name="VFD_STALL_CYCLES_VPC_BYPASS"/> 825 <value value="9" name="VFD_STALL_CYCLES_VPC_ALLOC"/> 826 <value value="13" name="VFD_MODE_0_FIBERS"/> 827 <value value="14" name="VFD_MODE_1_FIBERS"/> 828 <value value="15" name="VFD_MODE_2_FIBERS"/> 829 <value value="16" name="VFD_MODE_3_FIBERS"/> 830 <value value="17" name="VFD_MODE_4_FIBERS"/> 831 <value value="18" name="VFD_BFIFO_STALL"/> 832 <value value="19" name="VFD_NUM_VERTICES_TOTAL"/> 833 <value value="20" name="VFD_PACKER_FULL"/> 834 <value value="21" name="VFD_UCHE_REQUEST_FIFO_FULL"/> 835 <value value="22" name="VFD_STARVE_CYCLES_PC"/> 836 <value value="23" name="VFD_STARVE_CYCLES_UCHE"/> 837</enum> 838 839<enum name="a4xx_vpc_perfcounter_select"> 840 <value value="2" name="VPC_SP_LM_COMPONENTS"/> 841 <value value="3" name="VPC_SP0_LM_BYTES"/> 842 <value value="4" name="VPC_SP1_LM_BYTES"/> 843 <value value="5" name="VPC_SP2_LM_BYTES"/> 844 <value value="6" name="VPC_SP3_LM_BYTES"/> 845 <value value="7" name="VPC_WORKING_CYCLES"/> 846 <value value="8" name="VPC_STALL_CYCLES_LM"/> 847 <value value="9" name="VPC_STARVE_CYCLES_RAS"/> 848 <value value="10" name="VPC_STREAMOUT_CYCLES"/> 849 <value value="12" name="VPC_UCHE_TRANSACTIONS"/> 850 <value value="13" name="VPC_STALL_CYCLES_UCHE"/> 851 <value value="14" name="VPC_BUSY_CYCLES"/> 852 <value value="15" name="VPC_STARVE_CYCLES_SP"/> 853</enum> 854 855<enum name="a4xx_vsc_perfcounter_select"> 856 <value value="0" name="VSC_BUSY_CYCLES"/> 857 <value value="1" name="VSC_WORKING_CYCLES"/> 858 <value value="2" name="VSC_STALL_CYCLES_UCHE"/> 859 <value value="3" name="VSC_STARVE_CYCLES_RAS"/> 860 <value value="4" name="VSC_EOT_NUM"/> 861</enum> 862 863<domain name="A4XX" width="32"> 864 <!-- RB registers --> 865 <reg32 offset="0x0cc0" name="RB_GMEM_BASE_ADDR"/> 866 <reg32 offset="0x0cc7" name="RB_PERFCTR_RB_SEL_0" type="a4xx_rb_perfcounter_select"/> 867 <reg32 offset="0x0cc8" name="RB_PERFCTR_RB_SEL_1" type="a4xx_rb_perfcounter_select"/> 868 <reg32 offset="0x0cc9" name="RB_PERFCTR_RB_SEL_2" type="a4xx_rb_perfcounter_select"/> 869 <reg32 offset="0x0cca" name="RB_PERFCTR_RB_SEL_3" type="a4xx_rb_perfcounter_select"/> 870 <reg32 offset="0x0ccb" name="RB_PERFCTR_RB_SEL_4" type="a4xx_rb_perfcounter_select"/> 871 <reg32 offset="0x0ccc" name="RB_PERFCTR_RB_SEL_5" type="a4xx_rb_perfcounter_select"/> 872 <reg32 offset="0x0ccd" name="RB_PERFCTR_RB_SEL_6" type="a4xx_rb_perfcounter_select"/> 873 <reg32 offset="0x0cce" name="RB_PERFCTR_RB_SEL_7" type="a4xx_rb_perfcounter_select"/> 874 <reg32 offset="0x0ccf" name="RB_PERFCTR_CCU_SEL_0" type="a4xx_ccu_perfcounter_select"/> 875 <reg32 offset="0x0cd0" name="RB_PERFCTR_CCU_SEL_1" type="a4xx_ccu_perfcounter_select"/> 876 <reg32 offset="0x0cd1" name="RB_PERFCTR_CCU_SEL_2" type="a4xx_ccu_perfcounter_select"/> 877 <reg32 offset="0x0cd2" name="RB_PERFCTR_CCU_SEL_3" type="a4xx_ccu_perfcounter_select"/> 878 <reg32 offset="0x0ce0" name="RB_FRAME_BUFFER_DIMENSION"> 879 <bitfield name="WIDTH" low="0" high="13" type="uint"/> 880 <bitfield name="HEIGHT" low="16" high="29" type="uint"/> 881 </reg32> 882 <reg32 offset="0x20cc" name="RB_CLEAR_COLOR_DW0"/> 883 <reg32 offset="0x20cd" name="RB_CLEAR_COLOR_DW1"/> 884 <reg32 offset="0x20ce" name="RB_CLEAR_COLOR_DW2"/> 885 <reg32 offset="0x20cf" name="RB_CLEAR_COLOR_DW3"/> 886 <reg32 offset="0x20a0" name="RB_MODE_CONTROL"> 887 <!-- 888 for non-bypass mode, these are bin width/height.. although 889 possibly bigger bitfields to hold entire width/height for 890 gmem-bypass?? Either way, it appears to need to be multiple 891 of 32.. 892 --> 893 <bitfield name="WIDTH" low="0" high="5" shr="5" type="uint"/> 894 <bitfield name="HEIGHT" low="8" high="13" shr="5" type="uint"/> 895 <bitfield name="ENABLE_GMEM" pos="16" type="boolean"/> 896 </reg32> 897 <reg32 offset="0x20a1" name="RB_RENDER_CONTROL"> 898 <bitfield name="BINNING_PASS" pos="0" type="boolean"/> 899 <!-- nearly everything has bit3 set.. --> 900 <!-- bit5 set on resolve and tiling pass --> 901 <bitfield name="DISABLE_COLOR_PIPE" pos="5" type="boolean"/> 902 </reg32> 903 <reg32 offset="0x20a2" name="RB_MSAA_CONTROL"> 904 <bitfield name="DISABLE" pos="12" type="boolean"/> 905 <bitfield name="SAMPLES" low="13" high="15" type="uint"/> 906 </reg32> 907 <reg32 offset="0x20a3" name="RB_RENDER_CONTROL2"> 908 <bitfield name="COORD_MASK" low="0" high="3" type="hex"/> 909 <bitfield name="SAMPLEMASK" pos="4" type="boolean"/> 910 <bitfield name="FACENESS" pos="5" type="boolean"/> 911 <bitfield name="SAMPLEID" pos="6" type="boolean"/> 912 <bitfield name="MSAA_SAMPLES" low="7" high="9" type="uint"/> 913 <bitfield name="SAMPLEID_HR" pos="11" type="boolean"/> 914 <bitfield name="IJ_PERSP_PIXEL" pos="12" type="boolean"/> 915 <!-- the 2 below are just educated guesses --> 916 <bitfield name="IJ_PERSP_CENTROID" pos="13" type="boolean"/> 917 <bitfield name="IJ_PERSP_SAMPLE" pos="14" type="boolean"/> 918 <!-- needs to be enabled to get nopersp values, 919 perhaps other cases too? --> 920 <bitfield name="SIZE" pos="15" type="boolean"/> 921 </reg32> 922 <array offset="0x20a4" name="RB_MRT" stride="5" length="8"> 923 <reg32 offset="0x0" name="CONTROL"> 924 <bitfield name="READ_DEST_ENABLE" pos="3" type="boolean"/> 925 <!-- both these bits seem to get set when enabling GL_BLEND.. --> 926 <bitfield name="BLEND" pos="4" type="boolean"/> 927 <bitfield name="BLEND2" pos="5" type="boolean"/> 928 <bitfield name="ROP_ENABLE" pos="6" type="boolean"/> 929 <bitfield name="ROP_CODE" low="8" high="11" type="a3xx_rop_code"/> 930 <bitfield name="COMPONENT_ENABLE" low="24" high="27" type="hex"/> 931 </reg32> 932 <reg32 offset="0x1" name="BUF_INFO"> 933 <bitfield name="COLOR_FORMAT" low="0" high="5" type="a4xx_color_fmt"/> 934 <!-- 935 guestimate position of COLOR_TILE_MODE.. this works out if 936 common value is 2, like on a3xx.. 937 --> 938 <bitfield name="COLOR_TILE_MODE" low="6" high="7" type="a4xx_tile_mode"/> 939 <bitfield name="DITHER_MODE" low="9" high="10" type="adreno_rb_dither_mode"/> 940 <bitfield name="COLOR_SWAP" low="11" high="12" type="a3xx_color_swap"/> 941 <bitfield name="COLOR_SRGB" pos="13" type="boolean"/> 942 <!-- note: possibly some # of lsb's aren't there: --> 943 <doc> 944 Pitch (actually, appears to be pitch in bytes, so really is a stride) 945 in GMEM, so pitch of the current tile. 946 </doc> 947 <bitfield name="COLOR_BUF_PITCH" low="14" high="31" shr="4" type="uint"/> 948 </reg32> 949 <reg32 offset="0x2" name="BASE"/> 950 <reg32 offset="0x3" name="CONTROL3"> 951 <!-- probably missing some lsb's.. and guessing upper size --> 952 <!-- pitch * cpp * msaa: --> 953 <bitfield name="STRIDE" low="3" high="25" type="uint"/> 954 </reg32> 955 <reg32 offset="0x4" name="BLEND_CONTROL"> 956 <bitfield name="RGB_SRC_FACTOR" low="0" high="4" type="adreno_rb_blend_factor"/> 957 <bitfield name="RGB_BLEND_OPCODE" low="5" high="7" type="a3xx_rb_blend_opcode"/> 958 <bitfield name="RGB_DEST_FACTOR" low="8" high="12" type="adreno_rb_blend_factor"/> 959 <bitfield name="ALPHA_SRC_FACTOR" low="16" high="20" type="adreno_rb_blend_factor"/> 960 <bitfield name="ALPHA_BLEND_OPCODE" low="21" high="23" type="a3xx_rb_blend_opcode"/> 961 <bitfield name="ALPHA_DEST_FACTOR" low="24" high="28" type="adreno_rb_blend_factor"/> 962 </reg32> 963 </array> 964 965 <reg32 offset="0x20f0" name="RB_BLEND_RED"> 966 <bitfield name="UINT" low="0" high="7" type="hex"/> 967 <bitfield name="SINT" low="8" high="15" type="hex"/> 968 <bitfield name="FLOAT" low="16" high="31" type="float"/> 969 </reg32> 970 <reg32 offset="0x20f1" name="RB_BLEND_RED_F32" type="float"/> 971 972 <reg32 offset="0x20f2" name="RB_BLEND_GREEN"> 973 <bitfield name="UINT" low="0" high="7" type="hex"/> 974 <bitfield name="SINT" low="8" high="15" type="hex"/> 975 <bitfield name="FLOAT" low="16" high="31" type="float"/> 976 </reg32> 977 <reg32 offset="0x20f3" name="RB_BLEND_GREEN_F32" type="float"/> 978 979 <reg32 offset="0x20f4" name="RB_BLEND_BLUE"> 980 <bitfield name="UINT" low="0" high="7" type="hex"/> 981 <bitfield name="SINT" low="8" high="15" type="hex"/> 982 <bitfield name="FLOAT" low="16" high="31" type="float"/> 983 </reg32> 984 <reg32 offset="0x20f5" name="RB_BLEND_BLUE_F32" type="float"/> 985 986 <reg32 offset="0x20f6" name="RB_BLEND_ALPHA"> 987 <bitfield name="UINT" low="0" high="7" type="hex"/> 988 <bitfield name="SINT" low="8" high="15" type="hex"/> 989 <bitfield name="FLOAT" low="16" high="31" type="float"/> 990 </reg32> 991 <reg32 offset="0x20f7" name="RB_BLEND_ALPHA_F32" type="float"/> 992 993 <reg32 offset="0x20f8" name="RB_ALPHA_CONTROL"> 994 <bitfield name="ALPHA_REF" low="0" high="7" type="hex"/> 995 <bitfield name="ALPHA_TEST" pos="8" type="boolean"/> 996 <bitfield name="ALPHA_TEST_FUNC" low="9" high="11" type="adreno_compare_func"/> 997 </reg32> 998 <reg32 offset="0x20f9" name="RB_FS_OUTPUT"> 999 <!-- per-mrt enable bit --> 1000 <bitfield name="ENABLE_BLEND" low="0" high="7"/> 1001 <bitfield name="INDEPENDENT_BLEND" pos="8" type="boolean"/> 1002 <!-- a guess? --> 1003 <bitfield name="SAMPLE_MASK" low="16" high="31"/> 1004 </reg32> 1005 <reg32 offset="0x20fa" name="RB_SAMPLE_COUNT_CONTROL"> 1006 <bitfield name="COPY" pos="1" type="boolean"/> 1007 <bitfield name="ADDR" low="2" high="31" shr="2"/> 1008 </reg32> 1009 <!-- always 00000000 for binning pass, else 0000000f: --> 1010 <reg32 offset="0x20fb" name="RB_RENDER_COMPONENTS"> 1011 <bitfield name="RT0" low="0" high="3"/> 1012 <bitfield name="RT1" low="4" high="7"/> 1013 <bitfield name="RT2" low="8" high="11"/> 1014 <bitfield name="RT3" low="12" high="15"/> 1015 <bitfield name="RT4" low="16" high="19"/> 1016 <bitfield name="RT5" low="20" high="23"/> 1017 <bitfield name="RT6" low="24" high="27"/> 1018 <bitfield name="RT7" low="28" high="31"/> 1019 </reg32> 1020 1021 <reg32 offset="0x20fc" name="RB_COPY_CONTROL"> 1022 <!-- not sure # of bits --> 1023 <bitfield name="MSAA_RESOLVE" low="0" high="1" type="a3xx_msaa_samples"/> 1024 <bitfield name="MODE" low="4" high="6" type="adreno_rb_copy_control_mode"/> 1025 <bitfield name="FASTCLEAR" low="8" high="11" type="hex"/> 1026 <bitfield name="GMEM_BASE" low="14" high="31" shr="14" type="hex"/> 1027 </reg32> 1028 <reg32 offset="0x20fd" name="RB_COPY_DEST_BASE"> 1029 <bitfield name="BASE" low="5" high="31" shr="5" type="hex"/> 1030 </reg32> 1031 <reg32 offset="0x20fe" name="RB_COPY_DEST_PITCH"> 1032 <doc>actually, appears to be pitch in bytes, so really is a stride</doc> 1033 <!-- not actually sure about max pitch... --> 1034 <bitfield name="PITCH" low="0" high="31" shr="5" type="uint"/> 1035 </reg32> 1036 <reg32 offset="0x20ff" name="RB_COPY_DEST_INFO"> 1037 <bitfield name="FORMAT" low="2" high="7" type="a4xx_color_fmt"/> 1038 <bitfield name="SWAP" low="8" high="9" type="a3xx_color_swap"/> 1039 <bitfield name="DITHER_MODE" low="10" high="11" type="adreno_rb_dither_mode"/> 1040 <bitfield name="COMPONENT_ENABLE" low="14" high="17" type="hex"/> 1041 <bitfield name="ENDIAN" low="18" high="20" type="adreno_rb_surface_endian"/> 1042 <bitfield name="TILE" low="24" high="25" type="a4xx_tile_mode"/> 1043 </reg32> 1044 <reg32 offset="0x2100" name="RB_FS_OUTPUT_REG"> 1045 <!-- bit0 set except for binning pass.. --> 1046 <bitfield name="MRT" low="0" high="3" type="uint"/> 1047 <bitfield name="FRAG_WRITES_Z" pos="5" type="boolean"/> 1048 </reg32> 1049 <reg32 offset="0x2101" name="RB_DEPTH_CONTROL"> 1050 <!-- 1051 guessing that this matches a2xx with the stencil fields 1052 moved out into RB_STENCIL_CONTROL? 1053 --> 1054 <bitfield name="FRAG_WRITES_Z" pos="0" type="boolean"/> 1055 <bitfield name="Z_TEST_ENABLE" pos="1" type="boolean"/> 1056 <bitfield name="Z_WRITE_ENABLE" pos="2" type="boolean"/> 1057 <bitfield name="ZFUNC" low="4" high="6" type="adreno_compare_func"/> 1058 <bitfield name="Z_CLAMP_ENABLE" pos="7" type="boolean"/> 1059 <bitfield name="EARLY_Z_DISABLE" pos="16" type="boolean"/> 1060 <bitfield name="FORCE_FRAGZ_TO_FS" pos="17" type="boolean"/> 1061 <doc>Z_READ_ENABLE bit is set for zfunc other than GL_ALWAYS or GL_NEVER</doc> 1062 <bitfield name="Z_READ_ENABLE" pos="31" type="boolean"/> 1063 </reg32> 1064 <reg32 offset="0x2102" name="RB_DEPTH_CLEAR"/> 1065 <reg32 offset="0x2103" name="RB_DEPTH_INFO"> 1066 <bitfield name="DEPTH_FORMAT" low="0" high="1" type="a4xx_depth_format"/> 1067 <doc> 1068 DEPTH_BASE is offset in GMEM to depth/stencil buffer, ie 1069 bin_w * bin_h / 1024 (possible rounded up to multiple of 1070 something?? ie. 39 becomes 40, 78 becomes 80.. 75 becomes 1071 80.. so maybe it needs to be multiple of 8?? 1072 </doc> 1073 <bitfield name="DEPTH_BASE" low="12" high="31" shr="12" type="hex"/> 1074 </reg32> 1075 <reg32 offset="0x2104" name="RB_DEPTH_PITCH" shr="5" type="uint"> 1076 <doc>stride of depth/stencil buffer</doc> 1077 </reg32> 1078 <reg32 offset="0x2105" name="RB_DEPTH_PITCH2" shr="5" type="uint"> 1079 <doc>???</doc> 1080 </reg32> 1081 <reg32 offset="0x2106" name="RB_STENCIL_CONTROL"> 1082 <bitfield name="STENCIL_ENABLE" pos="0" type="boolean"/> 1083 <bitfield name="STENCIL_ENABLE_BF" pos="1" type="boolean"/> 1084 <!-- 1085 set for stencil operations that require read from stencil 1086 buffer, but not for example for stencil clear (which does 1087 not require read).. so guessing this is analogous to 1088 READ_DEST_ENABLE for color buffer.. 1089 --> 1090 <bitfield name="STENCIL_READ" pos="2" type="boolean"/> 1091 <bitfield name="FUNC" low="8" high="10" type="adreno_compare_func"/> 1092 <bitfield name="FAIL" low="11" high="13" type="adreno_stencil_op"/> 1093 <bitfield name="ZPASS" low="14" high="16" type="adreno_stencil_op"/> 1094 <bitfield name="ZFAIL" low="17" high="19" type="adreno_stencil_op"/> 1095 <bitfield name="FUNC_BF" low="20" high="22" type="adreno_compare_func"/> 1096 <bitfield name="FAIL_BF" low="23" high="25" type="adreno_stencil_op"/> 1097 <bitfield name="ZPASS_BF" low="26" high="28" type="adreno_stencil_op"/> 1098 <bitfield name="ZFAIL_BF" low="29" high="31" type="adreno_stencil_op"/> 1099 </reg32> 1100 <reg32 offset="0x2107" name="RB_STENCIL_CONTROL2"> 1101 <!-- 1102 This seems to be set by blob if there is a stencil buffer 1103 at all in GMEM, regardless of whether it is enabled for 1104 a particular draw (ie. RB_STENCIL_CONTROL). Not really 1105 sure if that is required or just a quirk of the blob 1106 --> 1107 <bitfield name="STENCIL_BUFFER" pos="0" type="boolean"/> 1108 </reg32> 1109 <reg32 offset="0x2108" name="RB_STENCIL_INFO"> 1110 <bitfield name="SEPARATE_STENCIL" pos="0" type="boolean"/> 1111 <doc>Base address for stencil when not using interleaved depth/stencil</doc> 1112 <bitfield name="STENCIL_BASE" low="12" high="31" shr="12" type="hex"/> 1113 </reg32> 1114 <reg32 offset="0x2109" name="RB_STENCIL_PITCH" shr="5" type="uint"> 1115 <doc>pitch of stencil buffer when not using interleaved depth/stencil</doc> 1116 </reg32> 1117 1118 <reg32 offset="0x210b" name="RB_STENCILREFMASK" type="adreno_rb_stencilrefmask"/> 1119 <reg32 offset="0x210c" name="RB_STENCILREFMASK_BF" type="adreno_rb_stencilrefmask"/> 1120 <reg32 offset="0x210d" name="RB_BIN_OFFSET" type="adreno_reg_xy"/> 1121 <array offset="0x2120" name="RB_VPORT_Z_CLAMP" stride="2" length="16"> 1122 <reg32 offset="0x0" name="MIN"/> 1123 <reg32 offset="0x1" name="MAX"/> 1124 </array> 1125 1126 <!-- RBBM registers --> 1127 <reg32 offset="0x0000" name="RBBM_HW_VERSION"/> 1128 <reg32 offset="0x0002" name="RBBM_HW_CONFIGURATION"/> 1129 <array offset="0x4" name="RBBM_CLOCK_CTL_TP" stride="1" length="4"> 1130 <reg32 offset="0x0" name="REG"/> 1131 </array> 1132 <array offset="0x8" name="RBBM_CLOCK_CTL2_TP" stride="1" length="4"> 1133 <reg32 offset="0x0" name="REG"/> 1134 </array> 1135 <array offset="0xc" name="RBBM_CLOCK_HYST_TP" stride="1" length="4"> 1136 <reg32 offset="0x0" name="REG"/> 1137 </array> 1138 <array offset="0x10" name="RBBM_CLOCK_DELAY_TP" stride="1" length="4"> 1139 <reg32 offset="0x0" name="REG"/> 1140 </array> 1141 <reg32 offset="0x0014" name="RBBM_CLOCK_CTL_UCHE "/> 1142 <reg32 offset="0x0015" name="RBBM_CLOCK_CTL2_UCHE"/> 1143 <reg32 offset="0x0016" name="RBBM_CLOCK_CTL3_UCHE"/> 1144 <reg32 offset="0x0017" name="RBBM_CLOCK_CTL4_UCHE"/> 1145 <reg32 offset="0x0018" name="RBBM_CLOCK_HYST_UCHE"/> 1146 <reg32 offset="0x0019" name="RBBM_CLOCK_DELAY_UCHE"/> 1147 <reg32 offset="0x001a" name="RBBM_CLOCK_MODE_GPC"/> 1148 <reg32 offset="0x001b" name="RBBM_CLOCK_DELAY_GPC"/> 1149 <reg32 offset="0x001c" name="RBBM_CLOCK_HYST_GPC"/> 1150 <reg32 offset="0x001d" name="RBBM_CLOCK_CTL_TSE_RAS_RBBM"/> 1151 <reg32 offset="0x001e" name="RBBM_CLOCK_HYST_TSE_RAS_RBBM"/> 1152 <reg32 offset="0x001f" name="RBBM_CLOCK_DELAY_TSE_RAS_RBBM"/> 1153 <reg32 offset="0x0020" name="RBBM_CLOCK_CTL"/> 1154 <reg32 offset="0x0021" name="RBBM_SP_HYST_CNT"/> 1155 <reg32 offset="0x0022" name="RBBM_SW_RESET_CMD"/> 1156 <reg32 offset="0x0023" name="RBBM_AHB_CTL0"/> 1157 <reg32 offset="0x0024" name="RBBM_AHB_CTL1"/> 1158 <reg32 offset="0x0025" name="RBBM_AHB_CMD"/> 1159 <reg32 offset="0x0026" name="RBBM_RB_SUB_BLOCK_SEL_CTL"/> 1160 <reg32 offset="0x0028" name="RBBM_RAM_ACC_63_32"/> 1161 <reg32 offset="0x002b" name="RBBM_WAIT_IDLE_CLOCKS_CTL"/> 1162 <reg32 offset="0x002f" name="RBBM_INTERFACE_HANG_INT_CTL"/> 1163 <reg32 offset="0x0034" name="RBBM_INTERFACE_HANG_MASK_CTL4"/> 1164 <reg32 offset="0x0036" name="RBBM_INT_CLEAR_CMD"/> 1165 <reg32 offset="0x0037" name="RBBM_INT_0_MASK"/> 1166 <reg32 offset="0x003e" name="RBBM_RBBM_CTL"/> 1167 <reg32 offset="0x003f" name="RBBM_AHB_DEBUG_CTL"/> 1168 <reg32 offset="0x0041" name="RBBM_VBIF_DEBUG_CTL"/> 1169 <reg32 offset="0x0042" name="RBBM_CLOCK_CTL2"/> 1170 <reg32 offset="0x0045" name="RBBM_BLOCK_SW_RESET_CMD"/> 1171 <reg32 offset="0x0047" name="RBBM_RESET_CYCLES"/> 1172 <reg32 offset="0x0049" name="RBBM_EXT_TRACE_BUS_CTL"/> 1173 <reg32 offset="0x004a" name="RBBM_CFG_DEBBUS_SEL_A"/> 1174 <reg32 offset="0x004b" name="RBBM_CFG_DEBBUS_SEL_B"/> 1175 <reg32 offset="0x004c" name="RBBM_CFG_DEBBUS_SEL_C"/> 1176 <reg32 offset="0x004d" name="RBBM_CFG_DEBBUS_SEL_D"/> 1177 <reg32 offset="0x0098" name="RBBM_POWER_CNTL_IP"> 1178 <bitfield name="SW_COLLAPSE" pos="0" type="boolean"/> 1179 <bitfield name="SP_TP_PWR_ON" pos="20" type="boolean"/> 1180 </reg32> 1181 <reg32 offset="0x009c" name="RBBM_PERFCTR_CP_0_LO"/> 1182 <reg32 offset="0x009d" name="RBBM_PERFCTR_CP_0_HI"/> 1183 <reg32 offset="0x009e" name="RBBM_PERFCTR_CP_1_LO"/> 1184 <reg32 offset="0x009f" name="RBBM_PERFCTR_CP_1_HI"/> 1185 <reg32 offset="0x00a0" name="RBBM_PERFCTR_CP_2_LO"/> 1186 <reg32 offset="0x00a1" name="RBBM_PERFCTR_CP_2_HI"/> 1187 <reg32 offset="0x00a2" name="RBBM_PERFCTR_CP_3_LO"/> 1188 <reg32 offset="0x00a3" name="RBBM_PERFCTR_CP_3_HI"/> 1189 <reg32 offset="0x00a4" name="RBBM_PERFCTR_CP_4_LO"/> 1190 <reg32 offset="0x00a5" name="RBBM_PERFCTR_CP_4_HI"/> 1191 <reg32 offset="0x00a6" name="RBBM_PERFCTR_CP_5_LO"/> 1192 <reg32 offset="0x00a7" name="RBBM_PERFCTR_CP_5_HI"/> 1193 <reg32 offset="0x00a8" name="RBBM_PERFCTR_CP_6_LO"/> 1194 <reg32 offset="0x00a9" name="RBBM_PERFCTR_CP_6_HI"/> 1195 <reg32 offset="0x00aa" name="RBBM_PERFCTR_CP_7_LO"/> 1196 <reg32 offset="0x00ab" name="RBBM_PERFCTR_CP_7_HI"/> 1197 <reg32 offset="0x00ac" name="RBBM_PERFCTR_RBBM_0_LO"/> 1198 <reg32 offset="0x00ad" name="RBBM_PERFCTR_RBBM_0_HI"/> 1199 <reg32 offset="0x00ae" name="RBBM_PERFCTR_RBBM_1_LO"/> 1200 <reg32 offset="0x00af" name="RBBM_PERFCTR_RBBM_1_HI"/> 1201 <reg32 offset="0x00b0" name="RBBM_PERFCTR_RBBM_2_LO"/> 1202 <reg32 offset="0x00b1" name="RBBM_PERFCTR_RBBM_2_HI"/> 1203 <reg32 offset="0x00b2" name="RBBM_PERFCTR_RBBM_3_LO"/> 1204 <reg32 offset="0x00b3" name="RBBM_PERFCTR_RBBM_3_HI"/> 1205 <reg32 offset="0x00b4" name="RBBM_PERFCTR_PC_0_LO"/> 1206 <reg32 offset="0x00b5" name="RBBM_PERFCTR_PC_0_HI"/> 1207 <reg32 offset="0x00b6" name="RBBM_PERFCTR_PC_1_LO"/> 1208 <reg32 offset="0x00b7" name="RBBM_PERFCTR_PC_1_HI"/> 1209 <reg32 offset="0x00b8" name="RBBM_PERFCTR_PC_2_LO"/> 1210 <reg32 offset="0x00b9" name="RBBM_PERFCTR_PC_2_HI"/> 1211 <reg32 offset="0x00ba" name="RBBM_PERFCTR_PC_3_LO"/> 1212 <reg32 offset="0x00bb" name="RBBM_PERFCTR_PC_3_HI"/> 1213 <reg32 offset="0x00bc" name="RBBM_PERFCTR_PC_4_LO"/> 1214 <reg32 offset="0x00bd" name="RBBM_PERFCTR_PC_4_HI"/> 1215 <reg32 offset="0x00be" name="RBBM_PERFCTR_PC_5_LO"/> 1216 <reg32 offset="0x00bf" name="RBBM_PERFCTR_PC_5_HI"/> 1217 <reg32 offset="0x00c0" name="RBBM_PERFCTR_PC_6_LO"/> 1218 <reg32 offset="0x00c1" name="RBBM_PERFCTR_PC_6_HI"/> 1219 <reg32 offset="0x00c2" name="RBBM_PERFCTR_PC_7_LO"/> 1220 <reg32 offset="0x00c3" name="RBBM_PERFCTR_PC_7_HI"/> 1221 <reg32 offset="0x00c4" name="RBBM_PERFCTR_VFD_0_LO"/> 1222 <reg32 offset="0x00c5" name="RBBM_PERFCTR_VFD_0_HI"/> 1223 <reg32 offset="0x00c6" name="RBBM_PERFCTR_VFD_1_LO"/> 1224 <reg32 offset="0x00c7" name="RBBM_PERFCTR_VFD_1_HI"/> 1225 <reg32 offset="0x00c8" name="RBBM_PERFCTR_VFD_2_LO"/> 1226 <reg32 offset="0x00c9" name="RBBM_PERFCTR_VFD_2_HI"/> 1227 <reg32 offset="0x00ca" name="RBBM_PERFCTR_VFD_3_LO"/> 1228 <reg32 offset="0x00cb" name="RBBM_PERFCTR_VFD_3_HI"/> 1229 <reg32 offset="0x00cc" name="RBBM_PERFCTR_VFD_4_LO"/> 1230 <reg32 offset="0x00cd" name="RBBM_PERFCTR_VFD_4_HI"/> 1231 <reg32 offset="0x00ce" name="RBBM_PERFCTR_VFD_5_LO"/> 1232 <reg32 offset="0x00cf" name="RBBM_PERFCTR_VFD_5_HI"/> 1233 <reg32 offset="0x00d0" name="RBBM_PERFCTR_VFD_6_LO"/> 1234 <reg32 offset="0x00d1" name="RBBM_PERFCTR_VFD_6_HI"/> 1235 <reg32 offset="0x00d2" name="RBBM_PERFCTR_VFD_7_LO"/> 1236 <reg32 offset="0x00d3" name="RBBM_PERFCTR_VFD_7_HI"/> 1237 <reg32 offset="0x00d4" name="RBBM_PERFCTR_HLSQ_0_LO"/> 1238 <reg32 offset="0x00d5" name="RBBM_PERFCTR_HLSQ_0_HI"/> 1239 <reg32 offset="0x00d6" name="RBBM_PERFCTR_HLSQ_1_LO"/> 1240 <reg32 offset="0x00d7" name="RBBM_PERFCTR_HLSQ_1_HI"/> 1241 <reg32 offset="0x00d8" name="RBBM_PERFCTR_HLSQ_2_LO"/> 1242 <reg32 offset="0x00d9" name="RBBM_PERFCTR_HLSQ_2_HI"/> 1243 <reg32 offset="0x00da" name="RBBM_PERFCTR_HLSQ_3_LO"/> 1244 <reg32 offset="0x00db" name="RBBM_PERFCTR_HLSQ_3_HI"/> 1245 <reg32 offset="0x00dc" name="RBBM_PERFCTR_HLSQ_4_LO"/> 1246 <reg32 offset="0x00dd" name="RBBM_PERFCTR_HLSQ_4_HI"/> 1247 <reg32 offset="0x00de" name="RBBM_PERFCTR_HLSQ_5_LO"/> 1248 <reg32 offset="0x00df" name="RBBM_PERFCTR_HLSQ_5_HI"/> 1249 <reg32 offset="0x00e0" name="RBBM_PERFCTR_HLSQ_6_LO"/> 1250 <reg32 offset="0x00e1" name="RBBM_PERFCTR_HLSQ_6_HI"/> 1251 <reg32 offset="0x00e2" name="RBBM_PERFCTR_HLSQ_7_LO"/> 1252 <reg32 offset="0x00e3" name="RBBM_PERFCTR_HLSQ_7_HI"/> 1253 <reg32 offset="0x00e4" name="RBBM_PERFCTR_VPC_0_LO"/> 1254 <reg32 offset="0x00e5" name="RBBM_PERFCTR_VPC_0_HI"/> 1255 <reg32 offset="0x00e6" name="RBBM_PERFCTR_VPC_1_LO"/> 1256 <reg32 offset="0x00e7" name="RBBM_PERFCTR_VPC_1_HI"/> 1257 <reg32 offset="0x00e8" name="RBBM_PERFCTR_VPC_2_LO"/> 1258 <reg32 offset="0x00e9" name="RBBM_PERFCTR_VPC_2_HI"/> 1259 <reg32 offset="0x00ea" name="RBBM_PERFCTR_VPC_3_LO"/> 1260 <reg32 offset="0x00eb" name="RBBM_PERFCTR_VPC_3_HI"/> 1261 <reg32 offset="0x00ec" name="RBBM_PERFCTR_CCU_0_LO"/> 1262 <reg32 offset="0x00ed" name="RBBM_PERFCTR_CCU_0_HI"/> 1263 <reg32 offset="0x00ee" name="RBBM_PERFCTR_CCU_1_LO"/> 1264 <reg32 offset="0x00ef" name="RBBM_PERFCTR_CCU_1_HI"/> 1265 <reg32 offset="0x00f0" name="RBBM_PERFCTR_CCU_2_LO"/> 1266 <reg32 offset="0x00f1" name="RBBM_PERFCTR_CCU_2_HI"/> 1267 <reg32 offset="0x00f2" name="RBBM_PERFCTR_CCU_3_LO"/> 1268 <reg32 offset="0x00f3" name="RBBM_PERFCTR_CCU_3_HI"/> 1269 <reg32 offset="0x00f4" name="RBBM_PERFCTR_TSE_0_LO"/> 1270 <reg32 offset="0x00f5" name="RBBM_PERFCTR_TSE_0_HI"/> 1271 <reg32 offset="0x00f6" name="RBBM_PERFCTR_TSE_1_LO"/> 1272 <reg32 offset="0x00f7" name="RBBM_PERFCTR_TSE_1_HI"/> 1273 <reg32 offset="0x00f8" name="RBBM_PERFCTR_TSE_2_LO"/> 1274 <reg32 offset="0x00f9" name="RBBM_PERFCTR_TSE_2_HI"/> 1275 <reg32 offset="0x00fa" name="RBBM_PERFCTR_TSE_3_LO"/> 1276 <reg32 offset="0x00fb" name="RBBM_PERFCTR_TSE_3_HI"/> 1277 <reg32 offset="0x00fc" name="RBBM_PERFCTR_RAS_0_LO"/> 1278 <reg32 offset="0x00fd" name="RBBM_PERFCTR_RAS_0_HI"/> 1279 <reg32 offset="0x00fe" name="RBBM_PERFCTR_RAS_1_LO"/> 1280 <reg32 offset="0x00ff" name="RBBM_PERFCTR_RAS_1_HI"/> 1281 <reg32 offset="0x0100" name="RBBM_PERFCTR_RAS_2_LO"/> 1282 <reg32 offset="0x0101" name="RBBM_PERFCTR_RAS_2_HI"/> 1283 <reg32 offset="0x0102" name="RBBM_PERFCTR_RAS_3_LO"/> 1284 <reg32 offset="0x0103" name="RBBM_PERFCTR_RAS_3_HI"/> 1285 <reg32 offset="0x0104" name="RBBM_PERFCTR_UCHE_0_LO"/> 1286 <reg32 offset="0x0105" name="RBBM_PERFCTR_UCHE_0_HI"/> 1287 <reg32 offset="0x0106" name="RBBM_PERFCTR_UCHE_1_LO"/> 1288 <reg32 offset="0x0107" name="RBBM_PERFCTR_UCHE_1_HI"/> 1289 <reg32 offset="0x0108" name="RBBM_PERFCTR_UCHE_2_LO"/> 1290 <reg32 offset="0x0109" name="RBBM_PERFCTR_UCHE_2_HI"/> 1291 <reg32 offset="0x010a" name="RBBM_PERFCTR_UCHE_3_LO"/> 1292 <reg32 offset="0x010b" name="RBBM_PERFCTR_UCHE_3_HI"/> 1293 <reg32 offset="0x010c" name="RBBM_PERFCTR_UCHE_4_LO"/> 1294 <reg32 offset="0x010d" name="RBBM_PERFCTR_UCHE_4_HI"/> 1295 <reg32 offset="0x010e" name="RBBM_PERFCTR_UCHE_5_LO"/> 1296 <reg32 offset="0x010f" name="RBBM_PERFCTR_UCHE_5_HI"/> 1297 <reg32 offset="0x0110" name="RBBM_PERFCTR_UCHE_6_LO"/> 1298 <reg32 offset="0x0111" name="RBBM_PERFCTR_UCHE_6_HI"/> 1299 <reg32 offset="0x0112" name="RBBM_PERFCTR_UCHE_7_LO"/> 1300 <reg32 offset="0x0113" name="RBBM_PERFCTR_UCHE_7_HI"/> 1301 <reg32 offset="0x0114" name="RBBM_PERFCTR_TP_0_LO"/> 1302 <reg32 offset="0x0115" name="RBBM_PERFCTR_TP_0_HI"/> 1303 <reg32 offset="0x0116" name="RBBM_PERFCTR_TP_1_LO"/> 1304 <reg32 offset="0x0117" name="RBBM_PERFCTR_TP_1_HI"/> 1305 <reg32 offset="0x0118" name="RBBM_PERFCTR_TP_2_LO"/> 1306 <reg32 offset="0x0119" name="RBBM_PERFCTR_TP_2_HI"/> 1307 <reg32 offset="0x011a" name="RBBM_PERFCTR_TP_3_LO"/> 1308 <reg32 offset="0x011b" name="RBBM_PERFCTR_TP_3_HI"/> 1309 <reg32 offset="0x011c" name="RBBM_PERFCTR_TP_4_LO"/> 1310 <reg32 offset="0x011d" name="RBBM_PERFCTR_TP_4_HI"/> 1311 <reg32 offset="0x011e" name="RBBM_PERFCTR_TP_5_LO"/> 1312 <reg32 offset="0x011f" name="RBBM_PERFCTR_TP_5_HI"/> 1313 <reg32 offset="0x0120" name="RBBM_PERFCTR_TP_6_LO"/> 1314 <reg32 offset="0x0121" name="RBBM_PERFCTR_TP_6_HI"/> 1315 <reg32 offset="0x0122" name="RBBM_PERFCTR_TP_7_LO"/> 1316 <reg32 offset="0x0123" name="RBBM_PERFCTR_TP_7_HI"/> 1317 <reg32 offset="0x0124" name="RBBM_PERFCTR_SP_0_LO"/> 1318 <reg32 offset="0x0125" name="RBBM_PERFCTR_SP_0_HI"/> 1319 <reg32 offset="0x0126" name="RBBM_PERFCTR_SP_1_LO"/> 1320 <reg32 offset="0x0127" name="RBBM_PERFCTR_SP_1_HI"/> 1321 <reg32 offset="0x0128" name="RBBM_PERFCTR_SP_2_LO"/> 1322 <reg32 offset="0x0129" name="RBBM_PERFCTR_SP_2_HI"/> 1323 <reg32 offset="0x012a" name="RBBM_PERFCTR_SP_3_LO"/> 1324 <reg32 offset="0x012b" name="RBBM_PERFCTR_SP_3_HI"/> 1325 <reg32 offset="0x012c" name="RBBM_PERFCTR_SP_4_LO"/> 1326 <reg32 offset="0x012d" name="RBBM_PERFCTR_SP_4_HI"/> 1327 <reg32 offset="0x012e" name="RBBM_PERFCTR_SP_5_LO"/> 1328 <reg32 offset="0x012f" name="RBBM_PERFCTR_SP_5_HI"/> 1329 <reg32 offset="0x0130" name="RBBM_PERFCTR_SP_6_LO"/> 1330 <reg32 offset="0x0131" name="RBBM_PERFCTR_SP_6_HI"/> 1331 <reg32 offset="0x0132" name="RBBM_PERFCTR_SP_7_LO"/> 1332 <reg32 offset="0x0133" name="RBBM_PERFCTR_SP_7_HI"/> 1333 <reg32 offset="0x0134" name="RBBM_PERFCTR_SP_8_LO"/> 1334 <reg32 offset="0x0135" name="RBBM_PERFCTR_SP_8_HI"/> 1335 <reg32 offset="0x0136" name="RBBM_PERFCTR_SP_9_LO"/> 1336 <reg32 offset="0x0137" name="RBBM_PERFCTR_SP_9_HI"/> 1337 <reg32 offset="0x0138" name="RBBM_PERFCTR_SP_10_LO"/> 1338 <reg32 offset="0x0139" name="RBBM_PERFCTR_SP_10_HI"/> 1339 <reg32 offset="0x013a" name="RBBM_PERFCTR_SP_11_LO"/> 1340 <reg32 offset="0x013b" name="RBBM_PERFCTR_SP_11_HI"/> 1341 <reg32 offset="0x013c" name="RBBM_PERFCTR_RB_0_LO"/> 1342 <reg32 offset="0x013d" name="RBBM_PERFCTR_RB_0_HI"/> 1343 <reg32 offset="0x013e" name="RBBM_PERFCTR_RB_1_LO"/> 1344 <reg32 offset="0x013f" name="RBBM_PERFCTR_RB_1_HI"/> 1345 <reg32 offset="0x0140" name="RBBM_PERFCTR_RB_2_LO"/> 1346 <reg32 offset="0x0141" name="RBBM_PERFCTR_RB_2_HI"/> 1347 <reg32 offset="0x0142" name="RBBM_PERFCTR_RB_3_LO"/> 1348 <reg32 offset="0x0143" name="RBBM_PERFCTR_RB_3_HI"/> 1349 <reg32 offset="0x0144" name="RBBM_PERFCTR_RB_4_LO"/> 1350 <reg32 offset="0x0145" name="RBBM_PERFCTR_RB_4_HI"/> 1351 <reg32 offset="0x0146" name="RBBM_PERFCTR_RB_5_LO"/> 1352 <reg32 offset="0x0147" name="RBBM_PERFCTR_RB_5_HI"/> 1353 <reg32 offset="0x0148" name="RBBM_PERFCTR_RB_6_LO"/> 1354 <reg32 offset="0x0149" name="RBBM_PERFCTR_RB_6_HI"/> 1355 <reg32 offset="0x014a" name="RBBM_PERFCTR_RB_7_LO"/> 1356 <reg32 offset="0x014b" name="RBBM_PERFCTR_RB_7_HI"/> 1357 <reg32 offset="0x014c" name="RBBM_PERFCTR_VSC_0_LO"/> 1358 <reg32 offset="0x014d" name="RBBM_PERFCTR_VSC_0_HI"/> 1359 <reg32 offset="0x014e" name="RBBM_PERFCTR_VSC_1_LO"/> 1360 <reg32 offset="0x014f" name="RBBM_PERFCTR_VSC_1_HI"/> 1361 <reg32 offset="0x0166" name="RBBM_PERFCTR_PWR_0_LO"/> 1362 <reg32 offset="0x0167" name="RBBM_PERFCTR_PWR_0_HI"/> 1363 <reg32 offset="0x0168" name="RBBM_PERFCTR_PWR_1_LO"/> 1364 <reg32 offset="0x0169" name="RBBM_PERFCTR_PWR_1_HI"/> 1365 <reg32 offset="0x016e" name="RBBM_ALWAYSON_COUNTER_LO"/> 1366 <reg32 offset="0x016f" name="RBBM_ALWAYSON_COUNTER_HI"/> 1367 <array offset="0x0068" name="RBBM_CLOCK_CTL_SP" stride="1" length="4"> 1368 <reg32 offset="0x0" name="REG"/> 1369 </array> 1370 <array offset="0x006c" name="RBBM_CLOCK_CTL2_SP" stride="1" length="4"> 1371 <reg32 offset="0x0" name="REG"/> 1372 </array> 1373 <array offset="0x0070" name="RBBM_CLOCK_HYST_SP" stride="1" length="4"> 1374 <reg32 offset="0x0" name="REG"/> 1375 </array> 1376 <array offset="0x0074" name="RBBM_CLOCK_DELAY_SP" stride="1" length="4"> 1377 <reg32 offset="0x0" name="REG"/> 1378 </array> 1379 <array offset="0x0078" name="RBBM_CLOCK_CTL_RB" stride="1" length="4"> 1380 <reg32 offset="0x0" name="REG"/> 1381 </array> 1382 <array offset="0x007c" name="RBBM_CLOCK_CTL2_RB" stride="1" length="4"> 1383 <reg32 offset="0x0" name="REG"/> 1384 </array> 1385 <array offset="0x0082" name="RBBM_CLOCK_CTL_MARB_CCU" stride="1" length="4"> 1386 <reg32 offset="0x0" name="REG"/> 1387 </array> 1388 <array offset="0x0086" name="RBBM_CLOCK_HYST_RB_MARB_CCU" stride="1" length="4"> 1389 <reg32 offset="0x0" name="REG"/> 1390 </array> 1391 <reg32 offset="0x0080" name="RBBM_CLOCK_HYST_COM_DCOM"/> 1392 <reg32 offset="0x0081" name="RBBM_CLOCK_CTL_COM_DCOM"/> 1393 <reg32 offset="0x008a" name="RBBM_CLOCK_CTL_HLSQ"/> 1394 <reg32 offset="0x008b" name="RBBM_CLOCK_HYST_HLSQ"/> 1395 <reg32 offset="0x008c" name="RBBM_CLOCK_DELAY_HLSQ"/> 1396 <bitset name="A4XX_CGC_HLSQ"> 1397 <bitfield name="EARLY_CYC" low="20" high="22" type="uint"/> 1398 </bitset> 1399 <reg32 offset="0x008d" name="RBBM_CLOCK_DELAY_COM_DCOM"/> 1400 <array offset="0x008e" name="RBBM_CLOCK_DELAY_RB_MARB_CCU_L1" stride="1" length="4"> 1401 <reg32 offset="0x0" name="REG"/> 1402 </array> 1403 <bitset name="A4XX_INT0"> 1404 <bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/> 1405 <bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/> 1406 <bitfield name="RBBM_REG_TIMEOUT" pos="2" type="boolean"/> 1407 <bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/> 1408 <bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/> 1409 <bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5" type="boolean"/> 1410 <bitfield name="VFD_ERROR" pos="6" type="boolean"/> 1411 <bitfield name="CP_SW_INT" pos="7" type="boolean"/> 1412 <bitfield name="CP_T0_PACKET_IN_IB" pos="8" type="boolean"/> 1413 <bitfield name="CP_OPCODE_ERROR" pos="9" type="boolean"/> 1414 <bitfield name="CP_RESERVED_BIT_ERROR" pos="10" type="boolean"/> 1415 <bitfield name="CP_HW_FAULT" pos="11" type="boolean"/> 1416 <bitfield name="CP_DMA" pos="12" type="boolean"/> 1417 <bitfield name="CP_IB2_INT" pos="13" type="boolean"/> 1418 <bitfield name="CP_IB1_INT" pos="14" type="boolean"/> 1419 <bitfield name="CP_RB_INT" pos="15" type="boolean"/> 1420 <bitfield name="CP_REG_PROTECT_FAULT" pos="16" type="boolean"/> 1421 <bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/> 1422 <bitfield name="CP_VS_DONE_TS" pos="18" type="boolean"/> 1423 <bitfield name="CP_PS_DONE_TS" pos="19" type="boolean"/> 1424 <bitfield name="CACHE_FLUSH_TS" pos="20" type="boolean"/> 1425 <bitfield name="CP_AHB_ERROR_HALT" pos="21" type="boolean"/> 1426 <bitfield name="MISC_HANG_DETECT" pos="24" type="boolean"/> 1427 <bitfield name="UCHE_OOB_ACCESS" pos="25" type="boolean"/> 1428 </bitset> 1429 1430 <reg32 offset="0x0099" name="RBBM_SP_REGFILE_SLEEP_CNTL_0"/> 1431 <reg32 offset="0x009a" name="RBBM_SP_REGFILE_SLEEP_CNTL_1"/> 1432 <reg32 offset="0x0170" name="RBBM_PERFCTR_CTL"/> 1433 <reg32 offset="0x0171" name="RBBM_PERFCTR_LOAD_CMD0"/> 1434 <reg32 offset="0x0172" name="RBBM_PERFCTR_LOAD_CMD1"/> 1435 <reg32 offset="0x0173" name="RBBM_PERFCTR_LOAD_CMD2"/> 1436 <reg32 offset="0x0174" name="RBBM_PERFCTR_LOAD_VALUE_LO"/> 1437 <reg32 offset="0x0175" name="RBBM_PERFCTR_LOAD_VALUE_HI"/> 1438 <reg32 offset="0x0176" name="RBBM_PERFCTR_RBBM_SEL_0" type="a4xx_rbbm_perfcounter_select"/> 1439 <reg32 offset="0x0177" name="RBBM_PERFCTR_RBBM_SEL_1" type="a4xx_rbbm_perfcounter_select"/> 1440 <reg32 offset="0x0178" name="RBBM_PERFCTR_RBBM_SEL_2" type="a4xx_rbbm_perfcounter_select"/> 1441 <reg32 offset="0x0179" name="RBBM_PERFCTR_RBBM_SEL_3" type="a4xx_rbbm_perfcounter_select"/> 1442 <reg32 offset="0x017a" name="RBBM_GPU_BUSY_MASKED"/> 1443 <reg32 offset="0x017d" name="RBBM_INT_0_STATUS"/> 1444 <reg32 offset="0x0182" name="RBBM_CLOCK_STATUS"/> 1445 <reg32 offset="0x0189" name="RBBM_AHB_STATUS"/> 1446 <reg32 offset="0x018c" name="RBBM_AHB_ME_SPLIT_STATUS"/> 1447 <reg32 offset="0x018d" name="RBBM_AHB_PFP_SPLIT_STATUS"/> 1448 <reg32 offset="0x018f" name="RBBM_AHB_ERROR_STATUS"/> 1449 <reg32 offset="0x0191" name="RBBM_STATUS"> 1450 <bitfield name="HI_BUSY" pos="0" type="boolean"/> 1451 <bitfield name="CP_ME_BUSY" pos="1" type="boolean"/> 1452 <bitfield name="CP_PFP_BUSY" pos="2" type="boolean"/> 1453 <bitfield name="CP_NRT_BUSY" pos="14" type="boolean"/> 1454 <bitfield name="VBIF_BUSY" pos="15" type="boolean"/> 1455 <bitfield name="TSE_BUSY" pos="16" type="boolean"/> 1456 <bitfield name="RAS_BUSY" pos="17" type="boolean"/> 1457 <bitfield name="RB_BUSY" pos="18" type="boolean"/> 1458 <bitfield name="PC_DCALL_BUSY" pos="19" type="boolean"/> 1459 <bitfield name="PC_VSD_BUSY" pos="20" type="boolean"/> 1460 <bitfield name="VFD_BUSY" pos="21" type="boolean"/> 1461 <bitfield name="VPC_BUSY" pos="22" type="boolean"/> 1462 <bitfield name="UCHE_BUSY" pos="23" type="boolean"/> 1463 <bitfield name="SP_BUSY" pos="24" type="boolean"/> 1464 <bitfield name="TPL1_BUSY" pos="25" type="boolean"/> 1465 <bitfield name="MARB_BUSY" pos="26" type="boolean"/> 1466 <bitfield name="VSC_BUSY" pos="27" type="boolean"/> 1467 <bitfield name="ARB_BUSY" pos="28" type="boolean"/> 1468 <bitfield name="HLSQ_BUSY" pos="29" type="boolean"/> 1469 <bitfield name="GPU_BUSY_NOHC" pos="30" type="boolean"/> 1470 <bitfield name="GPU_BUSY" pos="31" type="boolean"/> 1471 </reg32> 1472 <reg32 offset="0x019f" name="RBBM_INTERFACE_RRDY_STATUS5"/> 1473 <reg32 offset="0x01b0" name="RBBM_POWER_STATUS"> 1474 <bitfield name="SP_TP_PWR_ON" pos="20" type="boolean"/> 1475 </reg32> 1476 <reg32 offset="0x01b8" name="RBBM_WAIT_IDLE_CLOCKS_CTL2"/> 1477 1478 <!-- CP registers --> 1479 <reg32 offset="0x0228" name="CP_SCRATCH_UMASK"/> 1480 <reg32 offset="0x0229" name="CP_SCRATCH_ADDR"/> 1481 <reg32 offset="0x0200" name="CP_RB_BASE"/> 1482 <reg32 offset="0x0201" name="CP_RB_CNTL"/> 1483 <reg32 offset="0x0205" name="CP_RB_WPTR"/> 1484 <reg32 offset="0x0203" name="CP_RB_RPTR_ADDR"/> 1485 <reg32 offset="0x0204" name="CP_RB_RPTR"/> 1486 <reg32 offset="0x0206" name="CP_IB1_BASE"/> 1487 <reg32 offset="0x0207" name="CP_IB1_BUFSZ"/> 1488 <reg32 offset="0x0208" name="CP_IB2_BASE"/> 1489 <reg32 offset="0x0209" name="CP_IB2_BUFSZ"/> 1490 <reg32 offset="0x020c" name="CP_ME_NRT_ADDR"/> 1491 <reg32 offset="0x020d" name="CP_ME_NRT_DATA"/> 1492 <reg32 offset="0x0217" name="CP_ME_RB_DONE_DATA"/> 1493 <reg32 offset="0x0219" name="CP_QUEUE_THRESH2"/> 1494 <reg32 offset="0x021b" name="CP_MERCIU_SIZE"/> 1495 <reg32 offset="0x021c" name="CP_ROQ_ADDR"/> 1496 <reg32 offset="0x021d" name="CP_ROQ_DATA"/> 1497 <reg32 offset="0x021e" name="CP_MEQ_ADDR"/> 1498 <reg32 offset="0x021f" name="CP_MEQ_DATA"/> 1499 <reg32 offset="0x0220" name="CP_MERCIU_ADDR"/> 1500 <reg32 offset="0x0221" name="CP_MERCIU_DATA"/> 1501 <reg32 offset="0x0222" name="CP_MERCIU_DATA2"/> 1502 <reg32 offset="0x0223" name="CP_PFP_UCODE_ADDR"/> 1503 <reg32 offset="0x0224" name="CP_PFP_UCODE_DATA"/> 1504 <reg32 offset="0x0225" name="CP_ME_RAM_WADDR"/> 1505 <reg32 offset="0x0226" name="CP_ME_RAM_RADDR"/> 1506 <reg32 offset="0x0227" name="CP_ME_RAM_DATA"/> 1507 <reg32 offset="0x022a" name="CP_PREEMPT"/> 1508 <reg32 offset="0x022c" name="CP_CNTL"/> 1509 <reg32 offset="0x022d" name="CP_ME_CNTL"/> 1510 <reg32 offset="0x022e" name="CP_DEBUG"/> 1511 <reg32 offset="0x0231" name="CP_DEBUG_ECO_CONTROL"/> 1512 <reg32 offset="0x0232" name="CP_DRAW_STATE_ADDR"/> 1513 <array offset="0x0240" name="CP_PROTECT" stride="1" length="16"> 1514 <reg32 offset="0x0" name="REG" type="adreno_cp_protect"/> 1515 </array> 1516 <reg32 offset="0x0250" name="CP_PROTECT_CTRL"/> 1517 <reg32 offset="0x04c0" name="CP_ST_BASE"/> 1518 <reg32 offset="0x04ce" name="CP_STQ_AVAIL"/> 1519 <reg32 offset="0x04d0" name="CP_MERCIU_STAT"/> 1520 <reg32 offset="0x04d2" name="CP_WFI_PEND_CTR"/> 1521 <reg32 offset="0x04d8" name="CP_HW_FAULT"/> 1522 <reg32 offset="0x04da" name="CP_PROTECT_STATUS"/> 1523 <reg32 offset="0x04dd" name="CP_EVENTS_IN_FLIGHT"/> 1524 <reg32 offset="0x0500" name="CP_PERFCTR_CP_SEL_0" type="a4xx_cp_perfcounter_select"/> 1525 <reg32 offset="0x0501" name="CP_PERFCTR_CP_SEL_1" type="a4xx_cp_perfcounter_select"/> 1526 <reg32 offset="0x0502" name="CP_PERFCTR_CP_SEL_2" type="a4xx_cp_perfcounter_select"/> 1527 <reg32 offset="0x0503" name="CP_PERFCTR_CP_SEL_3" type="a4xx_cp_perfcounter_select"/> 1528 <reg32 offset="0x0504" name="CP_PERFCTR_CP_SEL_4" type="a4xx_cp_perfcounter_select"/> 1529 <reg32 offset="0x0505" name="CP_PERFCTR_CP_SEL_5" type="a4xx_cp_perfcounter_select"/> 1530 <reg32 offset="0x0506" name="CP_PERFCTR_CP_SEL_6" type="a4xx_cp_perfcounter_select"/> 1531 <reg32 offset="0x0507" name="CP_PERFCTR_CP_SEL_7" type="a4xx_cp_perfcounter_select"/> 1532 <reg32 offset="0x050b" name="CP_PERFCOMBINER_SELECT"/> 1533 <array offset="0x0578" name="CP_SCRATCH" stride="1" length="23"> 1534 <reg32 offset="0x0" name="REG"/> 1535 </array> 1536 1537 1538 <!-- SP registers --> 1539 <reg32 offset="0x0ec0" name="SP_VS_STATUS"/> 1540 <reg32 offset="0x0ec3" name="SP_MODE_CONTROL"/> 1541 1542 <reg32 offset="0x0ec4" name="SP_PERFCTR_SP_SEL_0" type="a4xx_sp_perfcounter_select"/> 1543 <reg32 offset="0x0ec5" name="SP_PERFCTR_SP_SEL_1" type="a4xx_sp_perfcounter_select"/> 1544 <reg32 offset="0x0ec6" name="SP_PERFCTR_SP_SEL_2" type="a4xx_sp_perfcounter_select"/> 1545 <reg32 offset="0x0ec7" name="SP_PERFCTR_SP_SEL_3" type="a4xx_sp_perfcounter_select"/> 1546 <reg32 offset="0x0ec8" name="SP_PERFCTR_SP_SEL_4" type="a4xx_sp_perfcounter_select"/> 1547 <reg32 offset="0x0ec9" name="SP_PERFCTR_SP_SEL_5" type="a4xx_sp_perfcounter_select"/> 1548 <reg32 offset="0x0eca" name="SP_PERFCTR_SP_SEL_6" type="a4xx_sp_perfcounter_select"/> 1549 <reg32 offset="0x0ecb" name="SP_PERFCTR_SP_SEL_7" type="a4xx_sp_perfcounter_select"/> 1550 <reg32 offset="0x0ecc" name="SP_PERFCTR_SP_SEL_8" type="a4xx_sp_perfcounter_select"/> 1551 <reg32 offset="0x0ecd" name="SP_PERFCTR_SP_SEL_9" type="a4xx_sp_perfcounter_select"/> 1552 <reg32 offset="0x0ece" name="SP_PERFCTR_SP_SEL_10" type="a4xx_sp_perfcounter_select"/> 1553 <reg32 offset="0x0ecf" name="SP_PERFCTR_SP_SEL_11" type="a4xx_sp_perfcounter_select"/> 1554 1555 <reg32 offset="0x22c0" name="SP_SP_CTRL_REG"> 1556 <bitfield name="BINNING_PASS" pos="19" type="boolean"/> 1557 </reg32> 1558 <reg32 offset="0x22c1" name="SP_INSTR_CACHE_CTRL"> 1559 <!-- set when VS in buffer mode: --> 1560 <bitfield name="VS_BUFFER" pos="7" type="boolean"/> 1561 <!-- set when FS in buffer mode: --> 1562 <bitfield name="FS_BUFFER" pos="8" type="boolean"/> 1563 <!-- set when both VS or FS in buffer mode: --> 1564 <bitfield name="INSTR_BUFFER" pos="10" type="boolean"/> 1565 <!-- TODO other bits probably matter when other stages active? --> 1566 </reg32> 1567 1568 <bitset name="a4xx_sp_vs_fs_ctrl_reg0" inline="yes"> 1569 <!-- 1570 NOTE that SP_{VS,FS}_CTRL_REG1 are different, but so far REG0 1571 appears to be the same.. 1572 --> 1573 <bitfield name="THREADMODE" pos="0" type="a3xx_threadmode"/> 1574 <!-- VARYING bit only for FS.. think it controls emitting (ei) flag? --> 1575 <bitfield name="VARYING" pos="1" type="boolean"/> 1576 <!-- maybe CACHEINVALID is two bits?? --> 1577 <bitfield name="CACHEINVALID" pos="2" type="boolean"/> 1578 <doc> 1579 The full/half register footprint is in units of four components, 1580 so if r0.x is used, that counts as all of r0.[xyzw] as used. 1581 There are separate full/half register footprint values as the 1582 full and half registers are independent (not overlapping). 1583 Presumably the thread scheduler hardware allocates the full/half 1584 register names from the actual physical register file and 1585 handles the register renaming. 1586 </doc> 1587 <bitfield name="HALFREGFOOTPRINT" low="4" high="9" type="uint"/> 1588 <bitfield name="FULLREGFOOTPRINT" low="10" high="15" type="uint"/> 1589 <!-- maybe INOUTREGOVERLAP is a bitflag? --> 1590 <bitfield name="INOUTREGOVERLAP" low="18" high="19" type="uint"/> 1591 <bitfield name="THREADSIZE" pos="20" type="a3xx_threadsize"/> 1592 <bitfield name="SUPERTHREADMODE" pos="21" type="boolean"/> 1593 <bitfield name="PIXLODENABLE" pos="22" type="boolean"/> 1594 </bitset> 1595 1596 <reg32 offset="0x22c4" name="SP_VS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/> 1597 <reg32 offset="0x22c5" name="SP_VS_CTRL_REG1"> 1598 <bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/> 1599 <bitfield name="INITIALOUTSTANDING" low="24" high="30" type="uint"/> 1600 </reg32> 1601 <reg32 offset="0x22c6" name="SP_VS_PARAM_REG"> 1602 <bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/> 1603 <bitfield name="PSIZEREGID" low="8" high="15" type="a3xx_regid"/> 1604 <bitfield name="TOTALVSOUTVAR" low="20" high="31" type="uint"/> 1605 </reg32> 1606 <array offset="0x22c7" name="SP_VS_OUT" stride="1" length="16"> 1607 <reg32 offset="0x0" name="REG"> 1608 <bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/> 1609 <bitfield name="A_COMPMASK" low="9" high="12" type="hex"/> 1610 <bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/> 1611 <bitfield name="B_COMPMASK" low="25" high="28" type="hex"/> 1612 </reg32> 1613 </array> 1614 <array offset="0x22d8" name="SP_VS_VPC_DST" stride="1" length="8"> 1615 <reg32 offset="0x0" name="REG"> 1616 <doc> 1617 These seem to be offsets for storage of the varyings. 1618 Always seems to start from 8, possibly loc 0 and 4 1619 are for gl_Position and gl_PointSize? 1620 </doc> 1621 <bitfield name="OUTLOC0" low="0" high="7" type="uint"/> 1622 <bitfield name="OUTLOC1" low="8" high="15" type="uint"/> 1623 <bitfield name="OUTLOC2" low="16" high="23" type="uint"/> 1624 <bitfield name="OUTLOC3" low="24" high="31" type="uint"/> 1625 </reg32> 1626 </array> 1627 1628 <reg32 offset="0x22e0" name="SP_VS_OBJ_OFFSET_REG"> 1629 <!-- always 00000000: --> 1630 <doc> 1631 From register spec: 1632 SP_FS_OBJ_OFFSET_REG.CONSTOBJECTSTARTOFFSET [16:24]: Constant object 1633 start offset in on chip RAM, 1634 128bit aligned 1635 </doc> 1636 <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1637 <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1638 </reg32> 1639 <reg32 offset="0x22e1" name="SP_VS_OBJ_START"/> 1640 <reg32 offset="0x22e2" name="SP_VS_PVT_MEM_PARAM"/> 1641 <reg32 offset="0x22e3" name="SP_VS_PVT_MEM_ADDR"/> 1642 <reg32 offset="0x22e5" name="SP_VS_LENGTH_REG" type="uint"/> 1643 <reg32 offset="0x22e8" name="SP_FS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/> 1644 <reg32 offset="0x22e9" name="SP_FS_CTRL_REG1"> 1645 <bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/> 1646 <bitfield name="FACENESS" pos="19" type="boolean"/> 1647 <bitfield name="VARYING" pos="20" type="boolean"/> 1648 <bitfield name="FRAGCOORD" pos="21" type="boolean"/> 1649 </reg32> 1650 <reg32 offset="0x22ea" name="SP_FS_OBJ_OFFSET_REG"> 1651 <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1652 <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1653 </reg32> 1654 <reg32 offset="0x22eb" name="SP_FS_OBJ_START"/> 1655 <reg32 offset="0x22ec" name="SP_FS_PVT_MEM_PARAM"/> 1656 <reg32 offset="0x22ed" name="SP_FS_PVT_MEM_ADDR"/> 1657 <reg32 offset="0x22ef" name="SP_FS_LENGTH_REG" type="uint"/> 1658 <reg32 offset="0x22f0" name="SP_FS_OUTPUT_REG"> 1659 <bitfield name="MRT" low="0" high="3" type="uint"/> 1660 <bitfield name="DEPTH_ENABLE" pos="7" type="boolean"/> 1661 <!-- TODO double check.. for now assume same as a3xx --> 1662 <bitfield name="DEPTH_REGID" low="8" high="15" type="a3xx_regid"/> 1663 <bitfield name="SAMPLEMASK_REGID" low="24" high="31" type="a3xx_regid"/> 1664 </reg32> 1665 <array offset="0x22f1" name="SP_FS_MRT" stride="1" length="8"> 1666 <reg32 offset="0x0" name="REG"> 1667 <bitfield name="REGID" low="0" high="7" type="a3xx_regid"/> 1668 <bitfield name="HALF_PRECISION" pos="8" type="boolean"/> 1669 <bitfield name="COLOR_SINT" pos="10" type="boolean"/> 1670 <bitfield name="COLOR_UINT" pos="11" type="boolean"/> 1671 <bitfield name="MRTFORMAT" low="12" high="17" type="a4xx_color_fmt"/> 1672 <bitfield name="COLOR_SRGB" pos="18" type="boolean"/> 1673 </reg32> 1674 </array> 1675 <reg32 offset="0x2300" name="SP_CS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/> 1676 <reg32 offset="0x2301" name="SP_CS_OBJ_OFFSET_REG"/> 1677 <reg32 offset="0x2302" name="SP_CS_OBJ_START"/> 1678 <reg32 offset="0x2303" name="SP_CS_PVT_MEM_PARAM"/> 1679 <reg32 offset="0x2304" name="SP_CS_PVT_MEM_ADDR"/> 1680 <reg32 offset="0x2305" name="SP_CS_PVT_MEM_SIZE"/> 1681 <reg32 offset="0x2306" name="SP_CS_LENGTH_REG" type="uint"/> 1682 <reg32 offset="0x230d" name="SP_HS_OBJ_OFFSET_REG"> 1683 <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1684 <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1685 </reg32> 1686 <reg32 offset="0x230e" name="SP_HS_OBJ_START"/> 1687 <reg32 offset="0x230f" name="SP_HS_PVT_MEM_PARAM"/> 1688 <reg32 offset="0x2310" name="SP_HS_PVT_MEM_ADDR"/> 1689 <reg32 offset="0x2312" name="SP_HS_LENGTH_REG" type="uint"/> 1690 1691 <reg32 offset="0x231a" name="SP_DS_PARAM_REG"> 1692 <bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/> 1693 <bitfield name="TOTALGSOUTVAR" low="20" high="31" type="uint"/> 1694 </reg32> 1695 <array offset="0x231b" name="SP_DS_OUT" stride="1" length="16"> 1696 <reg32 offset="0x0" name="REG"> 1697 <bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/> 1698 <bitfield name="A_COMPMASK" low="9" high="12" type="hex"/> 1699 <bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/> 1700 <bitfield name="B_COMPMASK" low="25" high="28" type="hex"/> 1701 </reg32> 1702 </array> 1703 <array offset="0x232c" name="SP_DS_VPC_DST" stride="1" length="8"> 1704 <reg32 offset="0x0" name="REG"> 1705 <doc> 1706 These seem to be offsets for storage of the varyings. 1707 Always seems to start from 8, possibly loc 0 and 4 1708 are for gl_Position and gl_PointSize? 1709 </doc> 1710 <bitfield name="OUTLOC0" low="0" high="7" type="uint"/> 1711 <bitfield name="OUTLOC1" low="8" high="15" type="uint"/> 1712 <bitfield name="OUTLOC2" low="16" high="23" type="uint"/> 1713 <bitfield name="OUTLOC3" low="24" high="31" type="uint"/> 1714 </reg32> 1715 </array> 1716 <reg32 offset="0x2334" name="SP_DS_OBJ_OFFSET_REG"> 1717 <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1718 <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1719 </reg32> 1720 <reg32 offset="0x2335" name="SP_DS_OBJ_START"/> 1721 <reg32 offset="0x2336" name="SP_DS_PVT_MEM_PARAM"/> 1722 <reg32 offset="0x2337" name="SP_DS_PVT_MEM_ADDR"/> 1723 <reg32 offset="0x2339" name="SP_DS_LENGTH_REG" type="uint"/> 1724 1725 <reg32 offset="0x2341" name="SP_GS_PARAM_REG"> 1726 <bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/> 1727 <bitfield name="PRIMREGID" low="8" high="15" type="a3xx_regid"/> 1728 <bitfield name="TOTALGSOUTVAR" low="20" high="31" type="uint"/> 1729 </reg32> 1730 <array offset="0x2342" name="SP_GS_OUT" stride="1" length="16"> 1731 <reg32 offset="0x0" name="REG"> 1732 <bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/> 1733 <bitfield name="A_COMPMASK" low="9" high="12" type="hex"/> 1734 <bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/> 1735 <bitfield name="B_COMPMASK" low="25" high="28" type="hex"/> 1736 </reg32> 1737 </array> 1738 <array offset="0x2353" name="SP_GS_VPC_DST" stride="1" length="8"> 1739 <reg32 offset="0x0" name="REG"> 1740 <doc> 1741 These seem to be offsets for storage of the varyings. 1742 Always seems to start from 8, possibly loc 0 and 4 1743 are for gl_Position and gl_PointSize? 1744 </doc> 1745 <bitfield name="OUTLOC0" low="0" high="7" type="uint"/> 1746 <bitfield name="OUTLOC1" low="8" high="15" type="uint"/> 1747 <bitfield name="OUTLOC2" low="16" high="23" type="uint"/> 1748 <bitfield name="OUTLOC3" low="24" high="31" type="uint"/> 1749 </reg32> 1750 </array> 1751 <reg32 offset="0x235b" name="SP_GS_OBJ_OFFSET_REG"> 1752 <bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/> 1753 <bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/> 1754 </reg32> 1755 <reg32 offset="0x235c" name="SP_GS_OBJ_START"/> 1756 <reg32 offset="0x235d" name="SP_GS_PVT_MEM_PARAM"/> 1757 <reg32 offset="0x235e" name="SP_GS_PVT_MEM_ADDR"/> 1758 <reg32 offset="0x2360" name="SP_GS_LENGTH_REG" type="uint"/> 1759 1760 <!-- VPC registers --> 1761 <reg32 offset="0x0e60" name="VPC_DEBUG_RAM_SEL"/> 1762 <reg32 offset="0x0e61" name="VPC_DEBUG_RAM_READ"/> 1763 <reg32 offset="0x0e64" name="VPC_DEBUG_ECO_CONTROL"/> 1764 <reg32 offset="0x0e65" name="VPC_PERFCTR_VPC_SEL_0" type="a4xx_vpc_perfcounter_select"/> 1765 <reg32 offset="0x0e66" name="VPC_PERFCTR_VPC_SEL_1" type="a4xx_vpc_perfcounter_select"/> 1766 <reg32 offset="0x0e67" name="VPC_PERFCTR_VPC_SEL_2" type="a4xx_vpc_perfcounter_select"/> 1767 <reg32 offset="0x0e68" name="VPC_PERFCTR_VPC_SEL_3" type="a4xx_vpc_perfcounter_select"/> 1768 <reg32 offset="0x2140" name="VPC_ATTR"> 1769 <bitfield name="TOTALATTR" low="0" high="8" type="uint"/> 1770 <!-- PSIZE bit set if gl_PointSize written: --> 1771 <bitfield name="PSIZE" pos="9" type="boolean"/> 1772 <bitfield name="THRDASSIGN" low="12" high="13" type="uint"/> 1773 <bitfield name="ENABLE" pos="25" type="boolean"/> 1774 </reg32> 1775 <reg32 offset="0x2141" name="VPC_PACK"> 1776 <bitfield name="NUMBYPASSVAR" low="0" high="7" type="uint"/> 1777 <bitfield name="NUMFPNONPOSVAR" low="8" high="15" type="uint"/> 1778 <bitfield name="NUMNONPOSVSVAR" low="16" high="23" type="uint"/> 1779 </reg32> 1780 <array offset="0x2142" name="VPC_VARYING_INTERP" stride="1" length="8"> 1781 <reg32 offset="0x0" name="MODE"/> 1782 </array> 1783 <array offset="0x214a" name="VPC_VARYING_PS_REPL" stride="1" length="8"> 1784 <reg32 offset="0x0" name="MODE"/> 1785 </array> 1786 1787 <reg32 offset="0x216e" name="VPC_SO_FLUSH_WADDR_3"/> 1788 1789 <!-- VSC registers --> 1790 <reg32 offset="0x0c00" name="VSC_BIN_SIZE"> 1791 <bitfield name="WIDTH" low="0" high="4" shr="5" type="uint"/> 1792 <bitfield name="HEIGHT" low="5" high="9" shr="5" type="uint"/> 1793 </reg32> 1794 <reg32 offset="0x0c01" name="VSC_SIZE_ADDRESS"/> 1795 <reg32 offset="0x0c02" name="VSC_SIZE_ADDRESS2"/> 1796 <reg32 offset="0x0c03" name="VSC_DEBUG_ECO_CONTROL"/> 1797 <array offset="0x0c08" name="VSC_PIPE_CONFIG" stride="1" length="8"> 1798 <reg32 offset="0x0" name="REG"> 1799 <doc> 1800 Configures the mapping between VSC_PIPE buffer and 1801 bin, X/Y specify the bin index in the horiz/vert 1802 direction (0,0 is upper left, 0,1 is leftmost bin 1803 on second row, and so on). W/H specify the number 1804 of bins assigned to this VSC_PIPE in the horiz/vert 1805 dimension. 1806 </doc> 1807 <bitfield name="X" low="0" high="9" type="uint"/> 1808 <bitfield name="Y" low="10" high="19" type="uint"/> 1809 <bitfield name="W" low="20" high="23" type="uint"/> 1810 <bitfield name="H" low="24" high="27" type="uint"/> 1811 </reg32> 1812 </array> 1813 <array offset="0x0c10" name="VSC_PIPE_DATA_ADDRESS" stride="1" length="8"> 1814 <reg32 offset="0x0" name="REG"/> 1815 </array> 1816 <array offset="0x0c18" name="VSC_PIPE_DATA_LENGTH" stride="1" length="8"> 1817 <reg32 offset="0x0" name="REG"/> 1818 </array> 1819 <reg32 offset="0x0c41" name="VSC_PIPE_PARTIAL_POSN_1"/> 1820 <reg32 offset="0x0c50" name="VSC_PERFCTR_VSC_SEL_0" type="a4xx_vsc_perfcounter_select"/> 1821 <reg32 offset="0x0c51" name="VSC_PERFCTR_VSC_SEL_1" type="a4xx_vsc_perfcounter_select"/> 1822 1823 <!-- VFD registers --> 1824 <reg32 offset="0x0e40" name="VFD_DEBUG_CONTROL"/> 1825 <reg32 offset="0x0e43" name="VFD_PERFCTR_VFD_SEL_0" type="a4xx_vfd_perfcounter_select"/> 1826 <reg32 offset="0x0e44" name="VFD_PERFCTR_VFD_SEL_1" type="a4xx_vfd_perfcounter_select"/> 1827 <reg32 offset="0x0e45" name="VFD_PERFCTR_VFD_SEL_2" type="a4xx_vfd_perfcounter_select"/> 1828 <reg32 offset="0x0e46" name="VFD_PERFCTR_VFD_SEL_3" type="a4xx_vfd_perfcounter_select"/> 1829 <reg32 offset="0x0e47" name="VFD_PERFCTR_VFD_SEL_4" type="a4xx_vfd_perfcounter_select"/> 1830 <reg32 offset="0x0e48" name="VFD_PERFCTR_VFD_SEL_5" type="a4xx_vfd_perfcounter_select"/> 1831 <reg32 offset="0x0e49" name="VFD_PERFCTR_VFD_SEL_6" type="a4xx_vfd_perfcounter_select"/> 1832 <reg32 offset="0x0e4a" name="VFD_PERFCTR_VFD_SEL_7" type="a4xx_vfd_perfcounter_select"/> 1833 <reg32 offset="0x21d0" name="VGT_CL_INITIATOR"/> 1834 <reg32 offset="0x21d9" name="VGT_EVENT_INITIATOR"/> 1835 <reg32 offset="0x2200" name="VFD_CONTROL_0"> 1836 <doc> 1837 TOTALATTRTOVS is # of attributes to vertex shader, in register 1838 slots (ie. vec4+vec3 -> 7) 1839 </doc> 1840 <bitfield name="TOTALATTRTOVS" low="0" high="7" type="uint"/> 1841 <doc> 1842 BYPASSATTROVS seems to count varyings that are just directly 1843 assigned from attributes (ie, "vFoo = aFoo;") 1844 </doc> 1845 <bitfield name="BYPASSATTROVS" low="9" high="16" type="uint"/> 1846 <doc>STRMDECINSTRCNT is # of VFD_DECODE_INSTR registers valid</doc> 1847 <bitfield name="STRMDECINSTRCNT" low="20" high="25" type="uint"/> 1848 <doc>STRMFETCHINSTRCNT is # of VFD_FETCH_INSTR registers valid</doc> 1849 <bitfield name="STRMFETCHINSTRCNT" low="26" high="31" type="uint"/> 1850 </reg32> 1851 <reg32 offset="0x2201" name="VFD_CONTROL_1"> 1852 <doc>MAXSTORAGE could be # of attributes/vbo's</doc> 1853 <bitfield name="MAXSTORAGE" low="0" high="15" type="uint"/> 1854 <bitfield name="REGID4VTX" low="16" high="23" type="a3xx_regid"/> 1855 <bitfield name="REGID4INST" low="24" high="31" type="a3xx_regid"/> 1856 </reg32> 1857 <reg32 offset="0x2202" name="VFD_CONTROL_2"/> 1858 <reg32 offset="0x2203" name="VFD_CONTROL_3"> 1859 <bitfield name="REGID_VTXCNT" low="8" high="15" type="a3xx_regid"/> 1860 <bitfield name="REGID_TESSX" low="16" high="23" type="a3xx_regid"/> 1861 <bitfield name="REGID_TESSY" low="24" high="31" type="a3xx_regid"/> 1862 </reg32> 1863 <reg32 offset="0x2204" name="VFD_CONTROL_4"/> 1864 <reg32 offset="0x2208" name="VFD_INDEX_OFFSET"/> 1865 <array offset="0x220a" name="VFD_FETCH" stride="4" length="32"> 1866 <reg32 offset="0x0" name="INSTR_0"> 1867 <bitfield name="FETCHSIZE" low="0" high="6" type="uint"/> 1868 <bitfield name="BUFSTRIDE" low="7" high="16" type="uint"/> 1869 <bitfield name="SWITCHNEXT" pos="19" type="boolean"/> 1870 <bitfield name="INSTANCED" pos="20" type="boolean"/> 1871 </reg32> 1872 <reg32 offset="0x1" name="INSTR_1"/> 1873 <reg32 offset="0x2" name="INSTR_2"> 1874 <bitfield name="SIZE" low="0" high="31"/> 1875 </reg32> 1876 <reg32 offset="0x3" name="INSTR_3"> 1877 <!-- might well be bigger.. --> 1878 <bitfield name="STEPRATE" low="0" high="8" type="uint"/> 1879 </reg32> 1880 </array> 1881 <array offset="0x228a" name="VFD_DECODE" stride="1" length="32"> 1882 <reg32 offset="0x0" name="INSTR"> 1883 <bitfield name="WRITEMASK" low="0" high="3" type="hex"/> 1884 <!-- not sure if this is a bit flag and another flag above it, or?? --> 1885 <bitfield name="CONSTFILL" pos="4" type="boolean"/> 1886 <bitfield name="FORMAT" low="6" high="11" type="a4xx_vtx_fmt"/> 1887 <bitfield name="REGID" low="12" high="19" type="a3xx_regid"/> 1888 <bitfield name="INT" pos="20" type="boolean"/> 1889 <doc>SHIFTCNT appears to be size, ie. FLOAT_32_32_32 is 12, and BYTE_8 is 1</doc> 1890 <bitfield name="SWAP" low="22" high="23" type="a3xx_color_swap"/> 1891 <bitfield name="SHIFTCNT" low="24" high="28" type="uint"/> 1892 <bitfield name="LASTCOMPVALID" pos="29" type="boolean"/> 1893 <bitfield name="SWITCHNEXT" pos="30" type="boolean"/> 1894 </reg32> 1895 </array> 1896 1897 <!-- TPL1 registers --> 1898 <reg32 offset="0x0f00" name="TPL1_DEBUG_ECO_CONTROL"/> 1899 <!-- always 0000003a: --> 1900 <reg32 offset="0x0f03" name="TPL1_TP_MODE_CONTROL"/> 1901 <reg32 offset="0x0f04" name="TPL1_PERFCTR_TP_SEL_0" type="a4xx_tp_perfcounter_select"/> 1902 <reg32 offset="0x0f05" name="TPL1_PERFCTR_TP_SEL_1" type="a4xx_tp_perfcounter_select"/> 1903 <reg32 offset="0x0f06" name="TPL1_PERFCTR_TP_SEL_2" type="a4xx_tp_perfcounter_select"/> 1904 <reg32 offset="0x0f07" name="TPL1_PERFCTR_TP_SEL_3" type="a4xx_tp_perfcounter_select"/> 1905 <reg32 offset="0x0f08" name="TPL1_PERFCTR_TP_SEL_4" type="a4xx_tp_perfcounter_select"/> 1906 <reg32 offset="0x0f09" name="TPL1_PERFCTR_TP_SEL_5" type="a4xx_tp_perfcounter_select"/> 1907 <reg32 offset="0x0f0a" name="TPL1_PERFCTR_TP_SEL_6" type="a4xx_tp_perfcounter_select"/> 1908 <reg32 offset="0x0f0b" name="TPL1_PERFCTR_TP_SEL_7" type="a4xx_tp_perfcounter_select"/> 1909 <reg32 offset="0x2380" name="TPL1_TP_TEX_OFFSET"/> 1910 <reg32 offset="0x2381" name="TPL1_TP_TEX_COUNT"> 1911 <bitfield name="VS" low="0" high="7" type="uint"/> 1912 <bitfield name="HS" low="8" high="15" type="uint"/> 1913 <bitfield name="DS" low="16" high="23" type="uint"/> 1914 <bitfield name="GS" low="24" high="31" type="uint"/> 1915 </reg32> 1916 <reg32 offset="0x2384" name="TPL1_TP_VS_BORDER_COLOR_BASE_ADDR"/> 1917 <reg32 offset="0x2387" name="TPL1_TP_HS_BORDER_COLOR_BASE_ADDR"/> 1918 <reg32 offset="0x238a" name="TPL1_TP_DS_BORDER_COLOR_BASE_ADDR"/> 1919 <reg32 offset="0x238d" name="TPL1_TP_GS_BORDER_COLOR_BASE_ADDR"/> 1920 <reg32 offset="0x23a0" name="TPL1_TP_FS_TEX_COUNT"> 1921 <bitfield name="FS" low="0" high="7" type="uint"/> 1922 <bitfield name="CS" low="8" high="15" type="uint"/> 1923 </reg32> 1924 <reg32 offset="0x23a1" name="TPL1_TP_FS_BORDER_COLOR_BASE_ADDR"/> 1925 <reg32 offset="0x23a4" name="TPL1_TP_CS_BORDER_COLOR_BASE_ADDR"/> 1926 <reg32 offset="0x23a5" name="TPL1_TP_CS_SAMPLER_BASE_ADDR"/> 1927 <reg32 offset="0x23a6" name="TPL1_TP_CS_TEXMEMOBJ_BASE_ADDR"/> 1928 1929 <!-- GRAS registers --> 1930 <reg32 offset="0x0c80" name="GRAS_TSE_STATUS"/> 1931 <reg32 offset="0x0c81" name="GRAS_DEBUG_ECO_CONTROL"/> 1932 <reg32 offset="0x0c88" name="GRAS_PERFCTR_TSE_SEL_0" type="a4xx_gras_tse_perfcounter_select"/> 1933 <reg32 offset="0x0c89" name="GRAS_PERFCTR_TSE_SEL_1" type="a4xx_gras_tse_perfcounter_select"/> 1934 <reg32 offset="0x0c8a" name="GRAS_PERFCTR_TSE_SEL_2" type="a4xx_gras_tse_perfcounter_select"/> 1935 <reg32 offset="0x0c8b" name="GRAS_PERFCTR_TSE_SEL_3" type="a4xx_gras_tse_perfcounter_select"/> 1936 <reg32 offset="0x0c8c" name="GRAS_PERFCTR_RAS_SEL_0" type="a4xx_gras_ras_perfcounter_select"/> 1937 <reg32 offset="0x0c8d" name="GRAS_PERFCTR_RAS_SEL_1" type="a4xx_gras_ras_perfcounter_select"/> 1938 <reg32 offset="0x0c8e" name="GRAS_PERFCTR_RAS_SEL_2" type="a4xx_gras_ras_perfcounter_select"/> 1939 <reg32 offset="0x0c8f" name="GRAS_PERFCTR_RAS_SEL_3" type="a4xx_gras_ras_perfcounter_select"/> 1940 <reg32 offset="0x2000" name="GRAS_CL_CLIP_CNTL"> 1941 <bitfield name="CLIP_DISABLE" pos="15" type="boolean"/> 1942 <bitfield name="ZNEAR_CLIP_DISABLE" pos="16" type="boolean"/> 1943 <bitfield name="ZFAR_CLIP_DISABLE" pos="17" type="boolean"/> 1944 <bitfield name="ZERO_GB_SCALE_Z" pos="22" type="boolean"/> 1945 </reg32> 1946 <reg32 offset="0x2003" name="GRAS_CNTL"> 1947 <bitfield name="IJ_PERSP" pos="0" type="boolean"/> 1948 <bitfield name="IJ_LINEAR" pos="1" type="boolean"/> 1949 </reg32> 1950 <reg32 offset="0x2004" name="GRAS_CL_GB_CLIP_ADJ"> 1951 <bitfield name="HORZ" low="0" high="9" type="uint"/> 1952 <bitfield name="VERT" low="10" high="19" type="uint"/> 1953 </reg32> 1954 <reg32 offset="0x2008" name="GRAS_CL_VPORT_XOFFSET_0" type="float"/> 1955 <reg32 offset="0x2009" name="GRAS_CL_VPORT_XSCALE_0" type="float"/> 1956 <reg32 offset="0x200a" name="GRAS_CL_VPORT_YOFFSET_0" type="float"/> 1957 <reg32 offset="0x200b" name="GRAS_CL_VPORT_YSCALE_0" type="float"/> 1958 <reg32 offset="0x200c" name="GRAS_CL_VPORT_ZOFFSET_0" type="float"/> 1959 <reg32 offset="0x200d" name="GRAS_CL_VPORT_ZSCALE_0" type="float"/> 1960 <reg32 offset="0x2070" name="GRAS_SU_POINT_MINMAX"> 1961 <bitfield name="MIN" low="0" high="15" type="ufixed" radix="4"/> 1962 <bitfield name="MAX" low="16" high="31" type="ufixed" radix="4"/> 1963 </reg32> 1964 <reg32 offset="0x2071" name="GRAS_SU_POINT_SIZE" type="fixed" radix="4"/> 1965 <reg32 offset="0x2073" name="GRAS_ALPHA_CONTROL"> 1966 <bitfield name="ALPHA_TEST_ENABLE" pos="2" type="boolean"/> 1967 <bitfield name="FORCE_FRAGZ_TO_FS" pos="3" type="boolean"/> 1968 </reg32> 1969 <reg32 offset="0x2074" name="GRAS_SU_POLY_OFFSET_SCALE" type="float"/> 1970 <reg32 offset="0x2075" name="GRAS_SU_POLY_OFFSET_OFFSET" type="float"/> 1971 <reg32 offset="0x2076" name="GRAS_SU_POLY_OFFSET_CLAMP" type="float"/> 1972 <reg32 offset="0x2077" name="GRAS_DEPTH_CONTROL"> 1973 <!-- guestimating that this is GRAS based on addr --> 1974 <bitfield name="FORMAT" low="0" high="1" type="a4xx_depth_format"/> 1975 </reg32> 1976 <reg32 offset="0x2078" name="GRAS_SU_MODE_CONTROL"> 1977 <bitfield name="CULL_FRONT" pos="0" type="boolean"/> 1978 <bitfield name="CULL_BACK" pos="1" type="boolean"/> 1979 <bitfield name="FRONT_CW" pos="2" type="boolean"/> 1980 <bitfield name="LINEHALFWIDTH" low="3" high="10" radix="2" type="fixed"/> 1981 <bitfield name="POLY_OFFSET" pos="11" type="boolean"/> 1982 <bitfield name="MSAA_ENABLE" pos="13" type="boolean"/> 1983 <!-- bit20 set whenever RENDER_MODE = RB_RENDERING_PASS --> 1984 <bitfield name="RENDERING_PASS" pos="20" type="boolean"/> 1985 </reg32> 1986 <reg32 offset="0x207b" name="GRAS_SC_CONTROL"> 1987 <!-- complete wild-ass-guess for sizes of these bitfields.. --> 1988 <bitfield name="RENDER_MODE" low="2" high="3" type="a3xx_render_mode"/> 1989 <bitfield name="MSAA_SAMPLES" low="7" high="9" type="uint"/> 1990 <bitfield name="MSAA_DISABLE" pos="11" type="boolean"/> 1991 <bitfield name="RASTER_MODE" low="12" high="15"/> 1992 </reg32> 1993 <reg32 offset="0x207c" name="GRAS_SC_SCREEN_SCISSOR_TL" type="adreno_reg_xy"/> 1994 <reg32 offset="0x207d" name="GRAS_SC_SCREEN_SCISSOR_BR" type="adreno_reg_xy"/> 1995 <reg32 offset="0x209c" name="GRAS_SC_WINDOW_SCISSOR_BR" type="adreno_reg_xy"/> 1996 <reg32 offset="0x209d" name="GRAS_SC_WINDOW_SCISSOR_TL" type="adreno_reg_xy"/> 1997 <reg32 offset="0x209e" name="GRAS_SC_EXTENT_WINDOW_BR" type="adreno_reg_xy"/> 1998 <reg32 offset="0x209f" name="GRAS_SC_EXTENT_WINDOW_TL" type="adreno_reg_xy"/> 1999 2000 <!-- UCHE registers --> 2001 <reg32 offset="0x0e80" name="UCHE_CACHE_MODE_CONTROL"/> 2002 <reg32 offset="0x0e83" name="UCHE_TRAP_BASE_LO"/> 2003 <reg32 offset="0x0e84" name="UCHE_TRAP_BASE_HI"/> 2004 <reg32 offset="0x0e88" name="UCHE_CACHE_STATUS"/> 2005 <reg32 offset="0x0e8a" name="UCHE_INVALIDATE0"/> 2006 <reg32 offset="0x0e8b" name="UCHE_INVALIDATE1"/> 2007 <reg32 offset="0x0e8c" name="UCHE_CACHE_WAYS_VFD"/> 2008 <reg32 offset="0x0e8e" name="UCHE_PERFCTR_UCHE_SEL_0" type="a4xx_uche_perfcounter_select"/> 2009 <reg32 offset="0x0e8f" name="UCHE_PERFCTR_UCHE_SEL_1" type="a4xx_uche_perfcounter_select"/> 2010 <reg32 offset="0x0e90" name="UCHE_PERFCTR_UCHE_SEL_2" type="a4xx_uche_perfcounter_select"/> 2011 <reg32 offset="0x0e91" name="UCHE_PERFCTR_UCHE_SEL_3" type="a4xx_uche_perfcounter_select"/> 2012 <reg32 offset="0x0e92" name="UCHE_PERFCTR_UCHE_SEL_4" type="a4xx_uche_perfcounter_select"/> 2013 <reg32 offset="0x0e93" name="UCHE_PERFCTR_UCHE_SEL_5" type="a4xx_uche_perfcounter_select"/> 2014 <reg32 offset="0x0e94" name="UCHE_PERFCTR_UCHE_SEL_6" type="a4xx_uche_perfcounter_select"/> 2015 <reg32 offset="0x0e95" name="UCHE_PERFCTR_UCHE_SEL_7" type="a4xx_uche_perfcounter_select"/> 2016 2017 <!-- HLSQ registers --> 2018 <reg32 offset="0x0e00" name="HLSQ_TIMEOUT_THRESHOLD"/> 2019 <reg32 offset="0x0e04" name="HLSQ_DEBUG_ECO_CONTROL"/> 2020 <!-- always 00000000: --> 2021 <reg32 offset="0x0e05" name="HLSQ_MODE_CONTROL"/> 2022 <reg32 offset="0x0e0e" name="HLSQ_PERF_PIPE_MASK"/> 2023 <reg32 offset="0x0e06" name="HLSQ_PERFCTR_HLSQ_SEL_0" type="a4xx_hlsq_perfcounter_select"/> 2024 <reg32 offset="0x0e07" name="HLSQ_PERFCTR_HLSQ_SEL_1" type="a4xx_hlsq_perfcounter_select"/> 2025 <reg32 offset="0x0e08" name="HLSQ_PERFCTR_HLSQ_SEL_2" type="a4xx_hlsq_perfcounter_select"/> 2026 <reg32 offset="0x0e09" name="HLSQ_PERFCTR_HLSQ_SEL_3" type="a4xx_hlsq_perfcounter_select"/> 2027 <reg32 offset="0x0e0a" name="HLSQ_PERFCTR_HLSQ_SEL_4" type="a4xx_hlsq_perfcounter_select"/> 2028 <reg32 offset="0x0e0b" name="HLSQ_PERFCTR_HLSQ_SEL_5" type="a4xx_hlsq_perfcounter_select"/> 2029 <reg32 offset="0x0e0c" name="HLSQ_PERFCTR_HLSQ_SEL_6" type="a4xx_hlsq_perfcounter_select"/> 2030 <reg32 offset="0x0e0d" name="HLSQ_PERFCTR_HLSQ_SEL_7" type="a4xx_hlsq_perfcounter_select"/> 2031 <reg32 offset="0x23c0" name="HLSQ_CONTROL_0_REG"> 2032 <!-- I guess same as a3xx, but so far only seen 08000050 --> 2033 <bitfield name="FSTHREADSIZE" pos="4" type="a3xx_threadsize"/> 2034 <bitfield name="FSSUPERTHREADENABLE" pos="6" type="boolean"/> 2035 <bitfield name="SPSHADERRESTART" pos="9" type="boolean"/> 2036 <bitfield name="RESERVED2" pos="10" type="boolean"/> 2037 <bitfield name="CHUNKDISABLE" pos="26" type="boolean"/> 2038 <bitfield name="CONSTMODE" pos="27" type="uint"/> 2039 <bitfield name="LAZYUPDATEDISABLE" pos="28" type="boolean"/> 2040 <bitfield name="SPCONSTFULLUPDATE" pos="29" type="boolean"/> 2041 <bitfield name="TPFULLUPDATE" pos="30" type="boolean"/> 2042 <bitfield name="SINGLECONTEXT" pos="31" type="boolean"/> 2043 </reg32> 2044 <reg32 offset="0x23c1" name="HLSQ_CONTROL_1_REG"> 2045 <bitfield name="VSTHREADSIZE" pos="6" type="a3xx_threadsize"/> 2046 <bitfield name="VSSUPERTHREADENABLE" pos="8" type="boolean"/> 2047 <bitfield name="RESERVED1" pos="9" type="boolean"/> 2048 <bitfield name="COORDREGID" low="16" high="23" type="a3xx_regid"/> 2049 <!-- set if gl_FragCoord.[zw] used in frag shader: --> 2050 <bitfield name="ZWCOORDREGID" low="24" high="31" type="a3xx_regid"/> 2051 </reg32> 2052 <reg32 offset="0x23c2" name="HLSQ_CONTROL_2_REG"> 2053 <bitfield name="PRIMALLOCTHRESHOLD" low="26" high="31" type="uint"/> 2054 <bitfield name="FACEREGID" low="2" high="9" type="a3xx_regid"/> 2055 <bitfield name="SAMPLEID_REGID" low="10" high="17" type="a3xx_regid"/> 2056 <bitfield name="SAMPLEMASK_REGID" low="18" high="25" type="a3xx_regid"/> 2057 </reg32> 2058 <reg32 offset="0x23c3" name="HLSQ_CONTROL_3_REG"> 2059 <!-- register loaded with position (bary.f) --> 2060 <bitfield name="IJ_PERSP_PIXEL" low="0" high="7" type="a3xx_regid"/> 2061 <bitfield name="IJ_LINEAR_PIXEL" low="8" high="15" type="a3xx_regid"/> 2062 <bitfield name="IJ_PERSP_CENTROID" low="16" high="23" type="a3xx_regid"/> 2063 <bitfield name="IJ_LINEAR_CENTROID" low="24" high="31" type="a3xx_regid"/> 2064 </reg32> 2065 <!-- 0x23c4 3 regids, lowest one goes to 0 when *not* per-sample shading --> 2066 <reg32 offset="0x23c4" name="HLSQ_CONTROL_4_REG"> 2067 <bitfield name="IJ_PERSP_SAMPLE" low="0" high="7" type="a3xx_regid"/> 2068 <bitfield name="IJ_LINEAR_SAMPLE" low="8" high="15" type="a3xx_regid"/> 2069 </reg32> 2070 2071 <bitset name="a4xx_xs_control_reg" inline="yes"> 2072 <bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/> 2073 <bitfield name="CONSTOBJECTOFFSET" low="8" high="14" type="uint"/> 2074 <bitfield name="SSBO_ENABLE" pos="15" type="boolean"/> 2075 <bitfield name="ENABLED" pos="16" type="boolean"/> 2076 <bitfield name="SHADEROBJOFFSET" low="17" high="23" type="uint"/> 2077 <bitfield name="INSTRLENGTH" low="24" high="31" type="uint"/> 2078 </bitset> 2079 <reg32 offset="0x23c5" name="HLSQ_VS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2080 <reg32 offset="0x23c6" name="HLSQ_FS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2081 <reg32 offset="0x23c7" name="HLSQ_HS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2082 <reg32 offset="0x23c8" name="HLSQ_DS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2083 <reg32 offset="0x23c9" name="HLSQ_GS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2084 <reg32 offset="0x23ca" name="HLSQ_CS_CONTROL_REG" type="a4xx_xs_control_reg"/> 2085 <reg32 offset="0x23cd" name="HLSQ_CL_NDRANGE_0"> 2086 <bitfield name="KERNELDIM" low="0" high="1" type="uint"/> 2087 <!-- localsize is value minus one: --> 2088 <bitfield name="LOCALSIZEX" low="2" high="11" type="uint"/> 2089 <bitfield name="LOCALSIZEY" low="12" high="21" type="uint"/> 2090 <bitfield name="LOCALSIZEZ" low="22" high="31" type="uint"/> 2091 </reg32> 2092 <reg32 offset="0x23ce" name="HLSQ_CL_NDRANGE_1"> 2093 <bitfield name="SIZE_X" low="0" high="31" type="uint"/> 2094 </reg32> 2095 <reg32 offset="0x23cf" name="HLSQ_CL_NDRANGE_2"/> 2096 <reg32 offset="0x23d0" name="HLSQ_CL_NDRANGE_3"> 2097 <bitfield name="SIZE_Y" low="0" high="31" type="uint"/> 2098 </reg32> 2099 <reg32 offset="0x23d1" name="HLSQ_CL_NDRANGE_4"/> 2100 <reg32 offset="0x23d2" name="HLSQ_CL_NDRANGE_5"> 2101 <bitfield name="SIZE_Z" low="0" high="31" type="uint"/> 2102 </reg32> 2103 <reg32 offset="0x23d3" name="HLSQ_CL_NDRANGE_6"/> 2104 <reg32 offset="0x23d4" name="HLSQ_CL_CONTROL_0"> 2105 <bitfield name="WGIDCONSTID" low="0" high="11" type="a3xx_regid"/> 2106 <bitfield name="KERNELDIMCONSTID" low="12" high="23" type="a3xx_regid"/> 2107 <bitfield name="LOCALIDREGID" low="24" high="31" type="a3xx_regid"/> 2108 </reg32> 2109 <reg32 offset="0x23d5" name="HLSQ_CL_CONTROL_1"> 2110 <!-- GLOBALSIZECONSTID? "kernel size" --> 2111 <bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/> 2112 <bitfield name="WORKGROUPSIZECONSTID" low="12" high="23" type="a3xx_regid"/> 2113 </reg32> 2114 <reg32 offset="0x23d6" name="HLSQ_CL_KERNEL_CONST"> 2115 <!-- GLOBALOFFSETCONSTID --> 2116 <bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/> 2117 <bitfield name="NUMWGCONSTID" low="12" high="23" type="a3xx_regid"/> 2118 </reg32> 2119 <reg32 offset="0x23d7" name="HLSQ_CL_KERNEL_GROUP_X"/> 2120 <reg32 offset="0x23d8" name="HLSQ_CL_KERNEL_GROUP_Y"/> 2121 <reg32 offset="0x23d9" name="HLSQ_CL_KERNEL_GROUP_Z"/> 2122 <reg32 offset="0x23da" name="HLSQ_CL_WG_OFFSET"> 2123 <!-- WGOFFSETCONSTID --> 2124 <bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/> 2125 </reg32> 2126 <reg32 offset="0x23db" name="HLSQ_UPDATE_CONTROL"/> 2127 2128 <!-- PC registers --> 2129 <reg32 offset="0x0d00" name="PC_BINNING_COMMAND"> 2130 <bitfield name="BINNING_ENABLE" pos="0" type="boolean"/> 2131 </reg32> 2132 <reg32 offset="0x0d08" name="PC_TESSFACTOR_ADDR"/> 2133 <reg32 offset="0x0d0c" name="PC_DRAWCALL_SETUP_OVERRIDE"/> 2134 <reg32 offset="0x0d10" name="PC_PERFCTR_PC_SEL_0" type="a4xx_pc_perfcounter_select"/> 2135 <reg32 offset="0x0d11" name="PC_PERFCTR_PC_SEL_1" type="a4xx_pc_perfcounter_select"/> 2136 <reg32 offset="0x0d12" name="PC_PERFCTR_PC_SEL_2" type="a4xx_pc_perfcounter_select"/> 2137 <reg32 offset="0x0d13" name="PC_PERFCTR_PC_SEL_3" type="a4xx_pc_perfcounter_select"/> 2138 <reg32 offset="0x0d14" name="PC_PERFCTR_PC_SEL_4" type="a4xx_pc_perfcounter_select"/> 2139 <reg32 offset="0x0d15" name="PC_PERFCTR_PC_SEL_5" type="a4xx_pc_perfcounter_select"/> 2140 <reg32 offset="0x0d16" name="PC_PERFCTR_PC_SEL_6" type="a4xx_pc_perfcounter_select"/> 2141 <reg32 offset="0x0d17" name="PC_PERFCTR_PC_SEL_7" type="a4xx_pc_perfcounter_select"/> 2142 <reg32 offset="0x21c0" name="PC_BIN_BASE"/> 2143 <reg32 offset="0x21c2" name="PC_VSTREAM_CONTROL"> 2144 <doc>SIZE is current pipe width * height (in tiles)</doc> 2145 <bitfield name="SIZE" low="16" high="21" type="uint"/> 2146 <doc> 2147 N is some sort of slot # between 0..(SIZE-1). In case 2148 multiple tiles use same pipe, each tile gets unique slot # 2149 </doc> 2150 <bitfield name="N" low="22" high="26" type="uint"/> 2151 </reg32> 2152 <reg32 offset="0x21c4" name="PC_PRIM_VTX_CNTL"> 2153 <!-- bit0 set if there is >= 1 varying (actually used by FS) --> 2154 <bitfield name="VAROUT" low="0" high="3" type="uint"> 2155 <doc>in groups of 4x vec4, blob only uses values 2156 0, 1, 2, 4, 6, 8</doc> 2157 </bitfield> 2158 <bitfield name="PRIMITIVE_RESTART" pos="20" type="boolean"/> 2159 <bitfield name="PROVOKING_VTX_LAST" pos="25" type="boolean"/> 2160 <!-- PSIZE bit set if gl_PointSize written: --> 2161 <bitfield name="PSIZE" pos="26" type="boolean"/> 2162 </reg32> 2163 <reg32 offset="0x21c5" name="PC_PRIM_VTX_CNTL2"> 2164 <bitfield name="POLYMODE_FRONT_PTYPE" low="0" high="2" type="adreno_pa_su_sc_draw"/> 2165 <bitfield name="POLYMODE_BACK_PTYPE" low="3" high="5" type="adreno_pa_su_sc_draw"/> 2166 <bitfield name="POLYMODE_ENABLE" pos="6" type="boolean"/> 2167 </reg32> 2168 <reg32 offset="0x21c6" name="PC_RESTART_INDEX"/> 2169 <reg32 offset="0x21e5" name="PC_GS_PARAM"> 2170 <bitfield name="MAX_VERTICES" low="0" high="9" type="uint"/><!-- +1, i.e. max is 1024 --> 2171 <bitfield name="INVOCATIONS" low="11" high="15" type="uint"/><!-- +1, i.e. max is 32 --> 2172 <bitfield name="PRIMTYPE" low="23" high="24" type="adreno_pa_su_sc_draw"/> 2173 <bitfield name="LAYER" pos="31" type="boolean"/> 2174 </reg32> 2175 <reg32 offset="0x21e7" name="PC_HS_PARAM"> 2176 <bitfield name="VERTICES_OUT" low="0" high="5" type="uint"/> 2177 <bitfield name="SPACING" low="21" high="22" type="a4xx_tess_spacing"/> 2178 <bitfield name="CW" pos="23" type="boolean"/> 2179 <bitfield name="CONNECTED" pos="24" type="boolean"/> 2180 </reg32> 2181 2182 <!-- VBIF registers --> 2183 <reg32 offset="0x3000" name="VBIF_VERSION"/> 2184 <reg32 offset="0x3001" name="VBIF_CLKON"> 2185 <bitfield name="FORCE_ON_TESTBUS" pos="0" type="boolean"/> 2186 </reg32> 2187 <reg32 offset="0x301c" name="VBIF_ABIT_SORT"/> 2188 <reg32 offset="0x301d" name="VBIF_ABIT_SORT_CONF"/> 2189 <reg32 offset="0x302a" name="VBIF_GATE_OFF_WRREQ_EN"/> 2190 <reg32 offset="0x302c" name="VBIF_IN_RD_LIM_CONF0"/> 2191 <reg32 offset="0x302d" name="VBIF_IN_RD_LIM_CONF1"/> 2192 <reg32 offset="0x3030" name="VBIF_IN_WR_LIM_CONF0"/> 2193 <reg32 offset="0x3031" name="VBIF_IN_WR_LIM_CONF1"/> 2194 <reg32 offset="0x3049" name="VBIF_ROUND_ROBIN_QOS_ARB"/> 2195 <reg32 offset="0x30c0" name="VBIF_PERF_CNT_EN0"/> 2196 <reg32 offset="0x30c1" name="VBIF_PERF_CNT_EN1"/> 2197 <reg32 offset="0x30c2" name="VBIF_PERF_CNT_EN2"/> 2198 <reg32 offset="0x30c3" name="VBIF_PERF_CNT_EN3"/> 2199 <reg32 offset="0x30d0" name="VBIF_PERF_CNT_SEL0" type="a4xx_vbif_perfcounter_select"/> 2200 <reg32 offset="0x30d1" name="VBIF_PERF_CNT_SEL1" type="a4xx_vbif_perfcounter_select"/> 2201 <reg32 offset="0x30d2" name="VBIF_PERF_CNT_SEL2" type="a4xx_vbif_perfcounter_select"/> 2202 <reg32 offset="0x30d3" name="VBIF_PERF_CNT_SEL3" type="a4xx_vbif_perfcounter_select"/> 2203 <reg32 offset="0x30d8" name="VBIF_PERF_CNT_LOW0"/> 2204 <reg32 offset="0x30d9" name="VBIF_PERF_CNT_LOW1"/> 2205 <reg32 offset="0x30da" name="VBIF_PERF_CNT_LOW2"/> 2206 <reg32 offset="0x30db" name="VBIF_PERF_CNT_LOW3"/> 2207 <reg32 offset="0x30e0" name="VBIF_PERF_CNT_HIGH0"/> 2208 <reg32 offset="0x30e1" name="VBIF_PERF_CNT_HIGH1"/> 2209 <reg32 offset="0x30e2" name="VBIF_PERF_CNT_HIGH2"/> 2210 <reg32 offset="0x30e3" name="VBIF_PERF_CNT_HIGH3"/> 2211 <reg32 offset="0x3100" name="VBIF_PERF_PWR_CNT_EN0"/> 2212 <reg32 offset="0x3101" name="VBIF_PERF_PWR_CNT_EN1"/> 2213 <reg32 offset="0x3102" name="VBIF_PERF_PWR_CNT_EN2"/> 2214 2215 <!-- 2216 Unknown registers: 2217 (mostly related to DX11 features not used yet, I guess?) 2218 --> 2219 2220 <!-- always 00000006: --> 2221 <reg32 offset="0x0cc5" name="UNKNOWN_0CC5"/> 2222 2223 <!-- always 00000000: --> 2224 <reg32 offset="0x0cc6" name="UNKNOWN_0CC6"/> 2225 2226 <!-- always 00000001: --> 2227 <reg32 offset="0x0d01" name="UNKNOWN_0D01"/> 2228 2229 <!-- always 00000000: --> 2230 <reg32 offset="0x0e42" name="UNKNOWN_0E42"/> 2231 2232 <!-- always 00040000: --> 2233 <reg32 offset="0x0ec2" name="UNKNOWN_0EC2"/> 2234 2235 <!-- always 00000000: --> 2236 <reg32 offset="0x2001" name="UNKNOWN_2001"/> 2237 2238 <!-- always 00000000: --> 2239 <reg32 offset="0x209b" name="UNKNOWN_209B"/> 2240 2241 <!-- always 00000000: --> 2242 <reg32 offset="0x20ef" name="UNKNOWN_20EF"/> 2243 2244 <!-- always 00000000: --> 2245 <reg32 offset="0x2152" name="UNKNOWN_2152"/> 2246 2247 <!-- always 00000000: --> 2248 <reg32 offset="0x2153" name="UNKNOWN_2153"/> 2249 2250 <!-- always 00000000: --> 2251 <reg32 offset="0x2154" name="UNKNOWN_2154"/> 2252 2253 <!-- always 00000000: --> 2254 <reg32 offset="0x2155" name="UNKNOWN_2155"/> 2255 2256 <!-- always 00000000: --> 2257 <reg32 offset="0x2156" name="UNKNOWN_2156"/> 2258 2259 <!-- always 00000000: --> 2260 <reg32 offset="0x2157" name="UNKNOWN_2157"/> 2261 2262 <!-- always 0000000b: --> 2263 <reg32 offset="0x21c3" name="UNKNOWN_21C3"/> 2264 2265 <!-- always 00000001: --> 2266 <reg32 offset="0x21e6" name="UNKNOWN_21E6"/> 2267 2268 <!-- always 00000000: --> 2269 <reg32 offset="0x2209" name="UNKNOWN_2209"/> 2270 2271 <!-- always 00000000: --> 2272 <reg32 offset="0x22d7" name="UNKNOWN_22D7"/> 2273 2274 <!-- always 00fcfc00: --> 2275 <reg32 offset="0x2352" name="UNKNOWN_2352"/> 2276 2277</domain> 2278 2279 2280<domain name="A4XX_TEX_SAMP" width="32"> 2281 <doc>Texture sampler dwords</doc> 2282 <enum name="a4xx_tex_filter"> 2283 <value name="A4XX_TEX_NEAREST" value="0"/> 2284 <value name="A4XX_TEX_LINEAR" value="1"/> 2285 <value name="A4XX_TEX_ANISO" value="2"/> 2286 </enum> 2287 <enum name="a4xx_tex_clamp"> 2288 <value name="A4XX_TEX_REPEAT" value="0"/> 2289 <value name="A4XX_TEX_CLAMP_TO_EDGE" value="1"/> 2290 <value name="A4XX_TEX_MIRROR_REPEAT" value="2"/> 2291 <value name="A4XX_TEX_CLAMP_TO_BORDER" value="3"/> 2292 <value name="A4XX_TEX_MIRROR_CLAMP" value="4"/> 2293 </enum> 2294 <enum name="a4xx_tex_aniso"> 2295 <value name="A4XX_TEX_ANISO_1" value="0"/> 2296 <value name="A4XX_TEX_ANISO_2" value="1"/> 2297 <value name="A4XX_TEX_ANISO_4" value="2"/> 2298 <value name="A4XX_TEX_ANISO_8" value="3"/> 2299 <value name="A4XX_TEX_ANISO_16" value="4"/> 2300 </enum> 2301 <reg32 offset="0" name="0"> 2302 <bitfield name="MIPFILTER_LINEAR_NEAR" pos="0" type="boolean"/> 2303 <bitfield name="XY_MAG" low="1" high="2" type="a4xx_tex_filter"/> 2304 <bitfield name="XY_MIN" low="3" high="4" type="a4xx_tex_filter"/> 2305 <bitfield name="WRAP_S" low="5" high="7" type="a4xx_tex_clamp"/> 2306 <bitfield name="WRAP_T" low="8" high="10" type="a4xx_tex_clamp"/> 2307 <bitfield name="WRAP_R" low="11" high="13" type="a4xx_tex_clamp"/> 2308 <bitfield name="ANISO" low="14" high="16" type="a4xx_tex_aniso"/> 2309 <bitfield name="LOD_BIAS" low="19" high="31" type="fixed" radix="8"/><!-- no idea how many bits for real --> 2310 </reg32> 2311 <reg32 offset="1" name="1"> 2312 <bitfield name="COMPARE_FUNC" low="1" high="3" type="adreno_compare_func"/> 2313 <bitfield name="CUBEMAPSEAMLESSFILTOFF" pos="4" type="boolean"/> 2314 <bitfield name="UNNORM_COORDS" pos="5" type="boolean"/> 2315 <bitfield name="MIPFILTER_LINEAR_FAR" pos="6" type="boolean"/> 2316 <bitfield name="MAX_LOD" low="8" high="19" type="ufixed" radix="8"/> 2317 <bitfield name="MIN_LOD" low="20" high="31" type="ufixed" radix="8"/> 2318 </reg32> 2319</domain> 2320 2321<domain name="A4XX_TEX_CONST" width="32"> 2322 <doc>Texture constant dwords</doc> 2323 <enum name="a4xx_tex_swiz"> 2324 <!-- same as a2xx? --> 2325 <value name="A4XX_TEX_X" value="0"/> 2326 <value name="A4XX_TEX_Y" value="1"/> 2327 <value name="A4XX_TEX_Z" value="2"/> 2328 <value name="A4XX_TEX_W" value="3"/> 2329 <value name="A4XX_TEX_ZERO" value="4"/> 2330 <value name="A4XX_TEX_ONE" value="5"/> 2331 </enum> 2332 <enum name="a4xx_tex_type"> 2333 <value name="A4XX_TEX_1D" value="0"/> 2334 <value name="A4XX_TEX_2D" value="1"/> 2335 <value name="A4XX_TEX_CUBE" value="2"/> 2336 <value name="A4XX_TEX_3D" value="3"/> 2337 <value name="A4XX_TEX_BUFFER" value="4"/> 2338 </enum> 2339 <reg32 offset="0" name="0"> 2340 <bitfield name="TILED" pos="0" type="boolean"/> 2341 <bitfield name="SRGB" pos="2" type="boolean"/> 2342 <bitfield name="SWIZ_X" low="4" high="6" type="a4xx_tex_swiz"/> 2343 <bitfield name="SWIZ_Y" low="7" high="9" type="a4xx_tex_swiz"/> 2344 <bitfield name="SWIZ_Z" low="10" high="12" type="a4xx_tex_swiz"/> 2345 <bitfield name="SWIZ_W" low="13" high="15" type="a4xx_tex_swiz"/> 2346 <bitfield name="MIPLVLS" low="16" high="19" type="uint"/> 2347 <bitfield name="FMT" low="22" high="28" type="a4xx_tex_fmt"/> 2348 <bitfield name="TYPE" low="29" high="31" type="a4xx_tex_type"/> 2349 </reg32> 2350 <reg32 offset="1" name="1"> 2351 <bitfield name="HEIGHT" low="0" high="14" type="uint"/> 2352 <bitfield name="WIDTH" low="15" high="29" type="uint"/> 2353 </reg32> 2354 <reg32 offset="2" name="2"> 2355 <!-- minimum pitch (for mipmap levels): log2(pitchalign / 32) --> 2356 <bitfield name="PITCHALIGN" low="0" high="3" type="uint"/> 2357 <bitfield name="BUFFER" pos="6" type="boolean"/> 2358 <doc>Pitch in bytes (so actually stride)</doc> 2359 <bitfield name="PITCH" low="9" high="29" type="uint"/> 2360 <bitfield name="SWAP" low="30" high="31" type="a3xx_color_swap"/> 2361 </reg32> 2362 <reg32 offset="3" name="3"> 2363 <bitfield name="LAYERSZ" low="0" high="13" shr="12" type="uint"/> 2364 <bitfield name="DEPTH" low="18" high="30" type="uint"/> 2365 </reg32> 2366 <reg32 offset="4" name="4"> 2367 <!-- 2368 like a3xx we seem to have two LAYERSZ's.. although this one 2369 seems too small to be useful, and when it overflows blob just 2370 sets it to zero.. 2371 --> 2372 <bitfield name="LAYERSZ" low="0" high="3" shr="12" type="uint"/> 2373 <bitfield name="BASE" low="5" high="31" shr="5"/> 2374 </reg32> 2375 <reg32 offset="5" name="5"/> 2376 <reg32 offset="6" name="6"/> 2377 <reg32 offset="7" name="7"/> 2378</domain> 2379 2380<domain name="A4XX_SSBO_0" width="32"> 2381 <reg32 offset="0" name="0"> 2382 <bitfield name="BASE" low="5" high="31" shr="5"/> 2383 </reg32> 2384 <reg32 offset="1" name="1"> 2385 <doc>Pitch in bytes (so actually stride)</doc> 2386 <bitfield name="PITCH" low="0" high="21" type="uint"/> 2387 </reg32> 2388 <reg32 offset="2" name="2"> 2389 <bitfield name="ARRAY_PITCH" low="12" high="25" shr="12" type="uint"/> 2390 </reg32> 2391 <reg32 offset="3" name="3"> 2392 <!-- bytes per pixel: --> 2393 <bitfield name="CPP" low="0" high="5" type="uint"/> 2394 </reg32> 2395</domain> 2396 2397<domain name="A4XX_SSBO_1" width="32"> 2398 <reg32 offset="0" name="0"> 2399 <bitfield name="CPP" low="0" high="4" type="uint"/> 2400 <bitfield name="FMT" low="8" high="15" type="a4xx_color_fmt"/> 2401 <bitfield name="WIDTH" low="16" high="31" type="uint"/> 2402 </reg32> 2403 <reg32 offset="1" name="1"> 2404 <bitfield name="HEIGHT" low="0" high="15" type="uint"/> 2405 <bitfield name="DEPTH" low="16" high="31" type="uint"/> 2406 </reg32> 2407</domain> 2408 2409</database> 2410