17ec681f3Smrg<?xml version="1.0" encoding="UTF-8"?>
27ec681f3Smrg<database xmlns="http://nouveau.freedesktop.org/"
37ec681f3Smrgxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
47ec681f3Smrgxsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd">
57ec681f3Smrg<import file="freedreno_copyright.xml"/>
67ec681f3Smrg<import file="adreno/adreno_common.xml"/>
77ec681f3Smrg<import file="adreno/adreno_pm4.xml"/>
87ec681f3Smrg
97ec681f3Smrg<enum name="a4xx_color_fmt">
107ec681f3Smrg	<value name="RB4_A8_UNORM" value="0x01"/>
117ec681f3Smrg	<value name="RB4_R8_UNORM" value="0x02"/>
127ec681f3Smrg	<value name="RB4_R8_SNORM" value="0x03"/>
137ec681f3Smrg	<value name="RB4_R8_UINT" value="0x04"/>
147ec681f3Smrg	<value name="RB4_R8_SINT" value="0x05"/>
157ec681f3Smrg
167ec681f3Smrg	<value name="RB4_R4G4B4A4_UNORM" value="0x08"/>
177ec681f3Smrg	<value name="RB4_R5G5B5A1_UNORM" value="0x0a"/>
187ec681f3Smrg	<value name="RB4_R5G6B5_UNORM" value="0x0e"/>
197ec681f3Smrg	<value name="RB4_R8G8_UNORM" value="0x0f"/>
207ec681f3Smrg	<value name="RB4_R8G8_SNORM" value="0x10"/>
217ec681f3Smrg	<value name="RB4_R8G8_UINT" value="0x11"/>
227ec681f3Smrg	<value name="RB4_R8G8_SINT" value="0x12"/>
237ec681f3Smrg	<value name="RB4_R16_UNORM" value="0x13"/>
247ec681f3Smrg	<value name="RB4_R16_SNORM" value="0x14"/>
257ec681f3Smrg	<value name="RB4_R16_FLOAT" value="0x15"/>
267ec681f3Smrg	<value name="RB4_R16_UINT" value="0x16"/>
277ec681f3Smrg	<value name="RB4_R16_SINT" value="0x17"/>
287ec681f3Smrg
297ec681f3Smrg	<value name="RB4_R8G8B8_UNORM" value="0x19"/>
307ec681f3Smrg
317ec681f3Smrg	<value name="RB4_R8G8B8A8_UNORM" value="0x1a"/>
327ec681f3Smrg	<value name="RB4_R8G8B8A8_SNORM" value="0x1c"/>
337ec681f3Smrg	<value name="RB4_R8G8B8A8_UINT" value="0x1d"/>
347ec681f3Smrg	<value name="RB4_R8G8B8A8_SINT" value="0x1e"/>
357ec681f3Smrg	<value name="RB4_R10G10B10A2_UNORM" value="0x1f"/>
367ec681f3Smrg	<value name="RB4_R10G10B10A2_UINT" value="0x22"/>
377ec681f3Smrg	<value name="RB4_R11G11B10_FLOAT" value="0x27"/>
387ec681f3Smrg	<value name="RB4_R16G16_UNORM" value="0x28"/>
397ec681f3Smrg	<value name="RB4_R16G16_SNORM" value="0x29"/>
407ec681f3Smrg	<value name="RB4_R16G16_FLOAT" value="0x2a"/>
417ec681f3Smrg	<value name="RB4_R16G16_UINT" value="0x2b"/>
427ec681f3Smrg	<value name="RB4_R16G16_SINT" value="0x2c"/>
437ec681f3Smrg	<value name="RB4_R32_FLOAT" value="0x2d"/>
447ec681f3Smrg	<value name="RB4_R32_UINT" value="0x2e"/>
457ec681f3Smrg	<value name="RB4_R32_SINT" value="0x2f"/>
467ec681f3Smrg
477ec681f3Smrg	<value name="RB4_R16G16B16A16_UNORM" value="0x34"/>
487ec681f3Smrg	<value name="RB4_R16G16B16A16_SNORM" value="0x35"/>
497ec681f3Smrg	<value name="RB4_R16G16B16A16_FLOAT" value="0x36"/>
507ec681f3Smrg	<value name="RB4_R16G16B16A16_UINT" value="0x37"/>
517ec681f3Smrg	<value name="RB4_R16G16B16A16_SINT" value="0x38"/>
527ec681f3Smrg	<value name="RB4_R32G32_FLOAT" value="0x39"/>
537ec681f3Smrg	<value name="RB4_R32G32_UINT" value="0x3a"/>
547ec681f3Smrg	<value name="RB4_R32G32_SINT" value="0x3b"/>
557ec681f3Smrg
567ec681f3Smrg	<value name="RB4_R32G32B32A32_FLOAT" value="0x3c"/>
577ec681f3Smrg	<value name="RB4_R32G32B32A32_UINT" value="0x3d"/>
587ec681f3Smrg	<value name="RB4_R32G32B32A32_SINT" value="0x3e"/>
597ec681f3Smrg
607ec681f3Smrg	<value name="RB4_NONE" value="0xff"/>
617ec681f3Smrg</enum>
627ec681f3Smrg
637ec681f3Smrg<enum name="a4xx_tile_mode">
647ec681f3Smrg	<value name="TILE4_LINEAR" value="0"/>
657ec681f3Smrg	<value name="TILE4_2" value="2"/>
667ec681f3Smrg	<value name="TILE4_3" value="3"/>
677ec681f3Smrg</enum>
687ec681f3Smrg
697ec681f3Smrg<enum name="a4xx_vtx_fmt" prefix="chipset">
707ec681f3Smrg	<!-- hmm, shifted one compared to a3xx?!?  -->
717ec681f3Smrg	<value name="VFMT4_32_FLOAT" value="0x1"/>
727ec681f3Smrg	<value name="VFMT4_32_32_FLOAT" value="0x2"/>
737ec681f3Smrg	<value name="VFMT4_32_32_32_FLOAT" value="0x3"/>
747ec681f3Smrg	<value name="VFMT4_32_32_32_32_FLOAT" value="0x4"/>
757ec681f3Smrg
767ec681f3Smrg	<value name="VFMT4_16_FLOAT" value="0x5"/>
777ec681f3Smrg	<value name="VFMT4_16_16_FLOAT" value="0x6"/>
787ec681f3Smrg	<value name="VFMT4_16_16_16_FLOAT" value="0x7"/>
797ec681f3Smrg	<value name="VFMT4_16_16_16_16_FLOAT" value="0x8"/>
807ec681f3Smrg
817ec681f3Smrg	<value name="VFMT4_32_FIXED" value="0x9"/>
827ec681f3Smrg	<value name="VFMT4_32_32_FIXED" value="0xa"/>
837ec681f3Smrg	<value name="VFMT4_32_32_32_FIXED" value="0xb"/>
847ec681f3Smrg	<value name="VFMT4_32_32_32_32_FIXED" value="0xc"/>
857ec681f3Smrg
867ec681f3Smrg	<value name="VFMT4_11_11_10_FLOAT" value="0xd"/>
877ec681f3Smrg
887ec681f3Smrg	<!-- beyond here it does not appear to be shifted -->
897ec681f3Smrg	<value name="VFMT4_16_SINT" value="0x10"/>
907ec681f3Smrg	<value name="VFMT4_16_16_SINT" value="0x11"/>
917ec681f3Smrg	<value name="VFMT4_16_16_16_SINT" value="0x12"/>
927ec681f3Smrg	<value name="VFMT4_16_16_16_16_SINT" value="0x13"/>
937ec681f3Smrg	<value name="VFMT4_16_UINT" value="0x14"/>
947ec681f3Smrg	<value name="VFMT4_16_16_UINT" value="0x15"/>
957ec681f3Smrg	<value name="VFMT4_16_16_16_UINT" value="0x16"/>
967ec681f3Smrg	<value name="VFMT4_16_16_16_16_UINT" value="0x17"/>
977ec681f3Smrg	<value name="VFMT4_16_SNORM" value="0x18"/>
987ec681f3Smrg	<value name="VFMT4_16_16_SNORM" value="0x19"/>
997ec681f3Smrg	<value name="VFMT4_16_16_16_SNORM" value="0x1a"/>
1007ec681f3Smrg	<value name="VFMT4_16_16_16_16_SNORM" value="0x1b"/>
1017ec681f3Smrg	<value name="VFMT4_16_UNORM" value="0x1c"/>
1027ec681f3Smrg	<value name="VFMT4_16_16_UNORM" value="0x1d"/>
1037ec681f3Smrg	<value name="VFMT4_16_16_16_UNORM" value="0x1e"/>
1047ec681f3Smrg	<value name="VFMT4_16_16_16_16_UNORM" value="0x1f"/>
1057ec681f3Smrg
1067ec681f3Smrg	<value name="VFMT4_32_UINT" value="0x20"/>
1077ec681f3Smrg	<value name="VFMT4_32_32_UINT" value="0x21"/>
1087ec681f3Smrg	<value name="VFMT4_32_32_32_UINT" value="0x22"/>
1097ec681f3Smrg	<value name="VFMT4_32_32_32_32_UINT" value="0x23"/>
1107ec681f3Smrg	<value name="VFMT4_32_SINT" value="0x24"/>
1117ec681f3Smrg	<value name="VFMT4_32_32_SINT" value="0x25"/>
1127ec681f3Smrg	<value name="VFMT4_32_32_32_SINT" value="0x26"/>
1137ec681f3Smrg	<value name="VFMT4_32_32_32_32_SINT" value="0x27"/>
1147ec681f3Smrg
1157ec681f3Smrg	<value name="VFMT4_8_UINT" value="0x28"/>
1167ec681f3Smrg	<value name="VFMT4_8_8_UINT" value="0x29"/>
1177ec681f3Smrg	<value name="VFMT4_8_8_8_UINT" value="0x2a"/>
1187ec681f3Smrg	<value name="VFMT4_8_8_8_8_UINT" value="0x2b"/>
1197ec681f3Smrg	<value name="VFMT4_8_UNORM" value="0x2c"/>
1207ec681f3Smrg	<value name="VFMT4_8_8_UNORM" value="0x2d"/>
1217ec681f3Smrg	<value name="VFMT4_8_8_8_UNORM" value="0x2e"/>
1227ec681f3Smrg	<value name="VFMT4_8_8_8_8_UNORM" value="0x2f"/>
1237ec681f3Smrg	<value name="VFMT4_8_SINT" value="0x30"/>
1247ec681f3Smrg	<value name="VFMT4_8_8_SINT" value="0x31"/>
1257ec681f3Smrg	<value name="VFMT4_8_8_8_SINT" value="0x32"/>
1267ec681f3Smrg	<value name="VFMT4_8_8_8_8_SINT" value="0x33"/>
1277ec681f3Smrg	<value name="VFMT4_8_SNORM" value="0x34"/>
1287ec681f3Smrg	<value name="VFMT4_8_8_SNORM" value="0x35"/>
1297ec681f3Smrg	<value name="VFMT4_8_8_8_SNORM" value="0x36"/>
1307ec681f3Smrg	<value name="VFMT4_8_8_8_8_SNORM" value="0x37"/>
1317ec681f3Smrg
1327ec681f3Smrg	<value name="VFMT4_10_10_10_2_UINT" value="0x38"/>
1337ec681f3Smrg	<value name="VFMT4_10_10_10_2_UNORM" value="0x39"/>
1347ec681f3Smrg	<value name="VFMT4_10_10_10_2_SINT" value="0x3a"/>
1357ec681f3Smrg	<value name="VFMT4_10_10_10_2_SNORM" value="0x3b"/>
1367ec681f3Smrg	<value name="VFMT4_2_10_10_10_UINT" value="0x3c"/>
1377ec681f3Smrg	<value name="VFMT4_2_10_10_10_UNORM" value="0x3d"/>
1387ec681f3Smrg	<value name="VFMT4_2_10_10_10_SINT" value="0x3e"/>
1397ec681f3Smrg	<value name="VFMT4_2_10_10_10_SNORM" value="0x3f"/>
1407ec681f3Smrg
1417ec681f3Smrg	<value name="VFMT4_NONE" value="0xff"/>
1427ec681f3Smrg</enum>
1437ec681f3Smrg
1447ec681f3Smrg<enum name="a4xx_tex_fmt">
1457ec681f3Smrg	<!-- 0x00 .. 0x02 -->
1467ec681f3Smrg
1477ec681f3Smrg	<!-- 8-bit formats -->
1487ec681f3Smrg	<value name="TFMT4_A8_UNORM" value="0x03"/>
1497ec681f3Smrg	<value name="TFMT4_8_UNORM"  value="0x04"/>
1507ec681f3Smrg	<value name="TFMT4_8_SNORM"  value="0x05"/>
1517ec681f3Smrg	<value name="TFMT4_8_UINT"   value="0x06"/>
1527ec681f3Smrg	<value name="TFMT4_8_SINT"   value="0x07"/>
1537ec681f3Smrg
1547ec681f3Smrg	<!-- 16-bit formats -->
1557ec681f3Smrg	<value name="TFMT4_4_4_4_4_UNORM" value="0x08"/>
1567ec681f3Smrg	<value name="TFMT4_5_5_5_1_UNORM" value="0x09"/>
1577ec681f3Smrg	<!-- 0x0a -->
1587ec681f3Smrg	<value name="TFMT4_5_6_5_UNORM"   value="0x0b"/>
1597ec681f3Smrg
1607ec681f3Smrg	<!-- 0x0c -->
1617ec681f3Smrg
1627ec681f3Smrg	<value name="TFMT4_L8_A8_UNORM" value="0x0d"/>
1637ec681f3Smrg	<value name="TFMT4_8_8_UNORM"   value="0x0e"/>
1647ec681f3Smrg	<value name="TFMT4_8_8_SNORM"   value="0x0f"/>
1657ec681f3Smrg	<value name="TFMT4_8_8_UINT"    value="0x10"/>
1667ec681f3Smrg	<value name="TFMT4_8_8_SINT"    value="0x11"/>
1677ec681f3Smrg
1687ec681f3Smrg	<value name="TFMT4_16_UNORM" value="0x12"/>
1697ec681f3Smrg	<value name="TFMT4_16_SNORM" value="0x13"/>
1707ec681f3Smrg	<value name="TFMT4_16_FLOAT" value="0x14"/>
1717ec681f3Smrg	<value name="TFMT4_16_UINT"  value="0x15"/>
1727ec681f3Smrg	<value name="TFMT4_16_SINT"  value="0x16"/>
1737ec681f3Smrg
1747ec681f3Smrg	<!-- 0x17 .. 0x1b -->
1757ec681f3Smrg
1767ec681f3Smrg	<!-- 32-bit formats -->
1777ec681f3Smrg	<value name="TFMT4_8_8_8_8_UNORM" value="0x1c"/>
1787ec681f3Smrg	<value name="TFMT4_8_8_8_8_SNORM" value="0x1d"/>
1797ec681f3Smrg	<value name="TFMT4_8_8_8_8_UINT"  value="0x1e"/>
1807ec681f3Smrg	<value name="TFMT4_8_8_8_8_SINT"  value="0x1f"/>
1817ec681f3Smrg
1827ec681f3Smrg	<value name="TFMT4_9_9_9_E5_FLOAT"   value="0x20"/>
1837ec681f3Smrg	<value name="TFMT4_10_10_10_2_UNORM" value="0x21"/>
1847ec681f3Smrg	<value name="TFMT4_10_10_10_2_UINT"  value="0x22"/>
1857ec681f3Smrg	<!-- 0x23 .. 0x24 -->
1867ec681f3Smrg	<value name="TFMT4_11_11_10_FLOAT"   value="0x25"/>
1877ec681f3Smrg
1887ec681f3Smrg	<value name="TFMT4_16_16_UNORM" value="0x26"/>
1897ec681f3Smrg	<value name="TFMT4_16_16_SNORM" value="0x27"/>
1907ec681f3Smrg	<value name="TFMT4_16_16_FLOAT" value="0x28"/>
1917ec681f3Smrg	<value name="TFMT4_16_16_UINT"  value="0x29"/>
1927ec681f3Smrg	<value name="TFMT4_16_16_SINT"  value="0x2a"/>
1937ec681f3Smrg
1947ec681f3Smrg	<value name="TFMT4_32_FLOAT" value="0x2b"/>
1957ec681f3Smrg	<value name="TFMT4_32_UINT"  value="0x2c"/>
1967ec681f3Smrg	<value name="TFMT4_32_SINT"  value="0x2d"/>
1977ec681f3Smrg
1987ec681f3Smrg	<!-- 0x2e .. 0x32 -->
1997ec681f3Smrg
2007ec681f3Smrg	<!-- 64-bit formats -->
2017ec681f3Smrg	<value name="TFMT4_16_16_16_16_UNORM" value="0x33"/>
2027ec681f3Smrg	<value name="TFMT4_16_16_16_16_SNORM" value="0x34"/>
2037ec681f3Smrg	<value name="TFMT4_16_16_16_16_FLOAT" value="0x35"/>
2047ec681f3Smrg	<value name="TFMT4_16_16_16_16_UINT"  value="0x36"/>
2057ec681f3Smrg	<value name="TFMT4_16_16_16_16_SINT"  value="0x37"/>
2067ec681f3Smrg
2077ec681f3Smrg	<value name="TFMT4_32_32_FLOAT" value="0x38"/>
2087ec681f3Smrg	<value name="TFMT4_32_32_UINT"  value="0x39"/>
2097ec681f3Smrg	<value name="TFMT4_32_32_SINT"  value="0x3a"/>
2107ec681f3Smrg
2117ec681f3Smrg	<!-- 96-bit formats -->
2127ec681f3Smrg	<value name="TFMT4_32_32_32_FLOAT" value="0x3b"/>
2137ec681f3Smrg	<value name="TFMT4_32_32_32_UINT"  value="0x3c"/>
2147ec681f3Smrg	<value name="TFMT4_32_32_32_SINT"  value="0x3d"/>
2157ec681f3Smrg
2167ec681f3Smrg	<!-- 0x3e -->
2177ec681f3Smrg
2187ec681f3Smrg	<!-- 128-bit formats -->
2197ec681f3Smrg	<value name="TFMT4_32_32_32_32_FLOAT" value="0x3f"/>
2207ec681f3Smrg	<value name="TFMT4_32_32_32_32_UINT"  value="0x40"/>
2217ec681f3Smrg	<value name="TFMT4_32_32_32_32_SINT"  value="0x41"/>
2227ec681f3Smrg
2237ec681f3Smrg	<!-- 0x42 .. 0x46 -->
2247ec681f3Smrg	<value name="TFMT4_X8Z24_UNORM" value="0x47"/>
2257ec681f3Smrg	<!-- 0x48 .. 0x55 -->
2267ec681f3Smrg
2277ec681f3Smrg	<!-- compressed formats -->
2287ec681f3Smrg	<value name="TFMT4_DXT1"                  value="0x56"/>
2297ec681f3Smrg	<value name="TFMT4_DXT3"                  value="0x57"/>
2307ec681f3Smrg	<value name="TFMT4_DXT5"                  value="0x58"/>
2317ec681f3Smrg	<!-- 0x59 -->
2327ec681f3Smrg	<value name="TFMT4_RGTC1_UNORM"           value="0x5a"/>
2337ec681f3Smrg	<value name="TFMT4_RGTC1_SNORM"           value="0x5b"/>
2347ec681f3Smrg	<!-- 0x5c .. 0x5d -->
2357ec681f3Smrg	<value name="TFMT4_RGTC2_UNORM"           value="0x5e"/>
2367ec681f3Smrg	<value name="TFMT4_RGTC2_SNORM"           value="0x5f"/>
2377ec681f3Smrg	<!-- 0x60 -->
2387ec681f3Smrg	<value name="TFMT4_BPTC_UFLOAT"           value="0x61"/>
2397ec681f3Smrg	<value name="TFMT4_BPTC_FLOAT"            value="0x62"/>
2407ec681f3Smrg	<value name="TFMT4_BPTC"                  value="0x63"/>
2417ec681f3Smrg	<value name="TFMT4_ATC_RGB"               value="0x64"/>
2427ec681f3Smrg	<value name="TFMT4_ATC_RGBA_EXPLICIT"     value="0x65"/>
2437ec681f3Smrg	<value name="TFMT4_ATC_RGBA_INTERPOLATED" value="0x66"/>
2447ec681f3Smrg	<value name="TFMT4_ETC2_RG11_UNORM"       value="0x67"/>
2457ec681f3Smrg	<value name="TFMT4_ETC2_RG11_SNORM"       value="0x68"/>
2467ec681f3Smrg	<value name="TFMT4_ETC2_R11_UNORM"        value="0x69"/>
2477ec681f3Smrg	<value name="TFMT4_ETC2_R11_SNORM"        value="0x6a"/>
2487ec681f3Smrg	<value name="TFMT4_ETC1"                  value="0x6b"/>
2497ec681f3Smrg	<value name="TFMT4_ETC2_RGB8"             value="0x6c"/>
2507ec681f3Smrg	<value name="TFMT4_ETC2_RGBA8"            value="0x6d"/>
2517ec681f3Smrg	<value name="TFMT4_ETC2_RGB8A1"           value="0x6e"/>
2527ec681f3Smrg	<value name="TFMT4_ASTC_4x4"              value="0x6f"/>
2537ec681f3Smrg	<value name="TFMT4_ASTC_5x4"              value="0x70"/>
2547ec681f3Smrg	<value name="TFMT4_ASTC_5x5"              value="0x71"/>
2557ec681f3Smrg	<value name="TFMT4_ASTC_6x5"              value="0x72"/>
2567ec681f3Smrg	<value name="TFMT4_ASTC_6x6"              value="0x73"/>
2577ec681f3Smrg	<value name="TFMT4_ASTC_8x5"              value="0x74"/>
2587ec681f3Smrg	<value name="TFMT4_ASTC_8x6"              value="0x75"/>
2597ec681f3Smrg	<value name="TFMT4_ASTC_8x8"              value="0x76"/>
2607ec681f3Smrg	<value name="TFMT4_ASTC_10x5"             value="0x77"/>
2617ec681f3Smrg	<value name="TFMT4_ASTC_10x6"             value="0x78"/>
2627ec681f3Smrg	<value name="TFMT4_ASTC_10x8"             value="0x79"/>
2637ec681f3Smrg	<value name="TFMT4_ASTC_10x10"            value="0x7a"/>
2647ec681f3Smrg	<value name="TFMT4_ASTC_12x10"            value="0x7b"/>
2657ec681f3Smrg	<value name="TFMT4_ASTC_12x12"            value="0x7c"/>
2667ec681f3Smrg	<!-- 0x7d .. 0x7f -->
2677ec681f3Smrg
2687ec681f3Smrg	<value name="TFMT4_NONE"                  value="0xff"/>
2697ec681f3Smrg</enum>
2707ec681f3Smrg
2717ec681f3Smrg<enum name="a4xx_depth_format">
2727ec681f3Smrg	<value name="DEPTH4_NONE" value="0"/>
2737ec681f3Smrg	<value name="DEPTH4_16" value="1"/>
2747ec681f3Smrg	<value name="DEPTH4_24_8" value="2"/>
2757ec681f3Smrg	<value name="DEPTH4_32" value="3"/>
2767ec681f3Smrg</enum>
2777ec681f3Smrg
2787ec681f3Smrg<!--
2797ec681f3SmrgNOTE counters extracted from test-perf log with the following awful
2807ec681f3Smrgscript:
2817ec681f3Smrg##################
2827ec681f3Smrg#!/bin/bash
2837ec681f3Smrg
2847ec681f3Smrglog=$1
2857ec681f3Smrg
2867ec681f3Smrggrep -F "counter
2877ec681f3Smrgcountable
2887ec681f3Smrggroup" $log | grep -v gl > shortlist.txt
2897ec681f3Smrg
2907ec681f3Smrgcountable=""
2917ec681f3SmrgIFS=$'\n'; for line in $(cat shortlist.txt); do
2927ec681f3Smrg	# parse ######### group[$n]: $name
2937ec681f3Smrg	l=${line########### group}
2947ec681f3Smrg	if [ $l != $line ];  then
2957ec681f3Smrg		group=`echo $line | awk '{print $3}'`
2967ec681f3Smrg		echo "Group: $group"
2977ec681f3Smrg		continue
2987ec681f3Smrg	fi
2997ec681f3Smrg	# parse #########   counter[$n]: $name
3007ec681f3Smrg	l=${line###########   counter}
3017ec681f3Smrg	if [ $l != $line ]; then
3027ec681f3Smrg		countable=`echo $line | awk '{print $3}'`
3037ec681f3Smrg		#echo "  Countable: $countable"
3047ec681f3Smrg		continue
3057ec681f3Smrg	fi
3067ec681f3Smrg	# parse 		countable:
3077ec681f3Smrg	l=${line##		countable:}
3087ec681f3Smrg	if [ $l != $line ]; then
3097ec681f3Smrg		val=`echo $line | awk '{print $2}'`
3107ec681f3Smrg		echo "<value value=\"$val\" name=\"$countable\"/>"
3117ec681f3Smrg	fi
3127ec681f3Smrg
3137ec681f3Smrgdone
3147ec681f3Smrg##################
3157ec681f3Smrg -->
3167ec681f3Smrg<enum name="a4xx_ccu_perfcounter_select">
3177ec681f3Smrg	<value value="0" name="CCU_BUSY_CYCLES"/>
3187ec681f3Smrg	<value value="2" name="CCU_RB_DEPTH_RETURN_STALL"/>
3197ec681f3Smrg	<value value="3" name="CCU_RB_COLOR_RETURN_STALL"/>
3207ec681f3Smrg	<value value="6" name="CCU_DEPTH_BLOCKS"/>
3217ec681f3Smrg	<value value="7" name="CCU_COLOR_BLOCKS"/>
3227ec681f3Smrg	<value value="8" name="CCU_DEPTH_BLOCK_HIT"/>
3237ec681f3Smrg	<value value="9" name="CCU_COLOR_BLOCK_HIT"/>
3247ec681f3Smrg	<value value="10" name="CCU_DEPTH_FLAG1_COUNT"/>
3257ec681f3Smrg	<value value="11" name="CCU_DEPTH_FLAG2_COUNT"/>
3267ec681f3Smrg	<value value="12" name="CCU_DEPTH_FLAG3_COUNT"/>
3277ec681f3Smrg	<value value="13" name="CCU_DEPTH_FLAG4_COUNT"/>
3287ec681f3Smrg	<value value="14" name="CCU_COLOR_FLAG1_COUNT"/>
3297ec681f3Smrg	<value value="15" name="CCU_COLOR_FLAG2_COUNT"/>
3307ec681f3Smrg	<value value="16" name="CCU_COLOR_FLAG3_COUNT"/>
3317ec681f3Smrg	<value value="17" name="CCU_COLOR_FLAG4_COUNT"/>
3327ec681f3Smrg	<value value="18" name="CCU_PARTIAL_BLOCK_READ"/>
3337ec681f3Smrg</enum>
3347ec681f3Smrg
3357ec681f3Smrg<!--
3367ec681f3SmrgNOTE other than CP_ALWAYS_COUNT (which is the only one we use so far),
3377ec681f3Smrgon a3xx the countable #'s from AMD_performance_monitor disagreed with
3387ec681f3SmrgTRM.  All these #'s for a4xx come from AMD_performance_monitor, so
3397ec681f3Smrgperhaps they should be taken with a grain of salt
3407ec681f3Smrg-->
3417ec681f3Smrg<enum name="a4xx_cp_perfcounter_select">
3427ec681f3Smrg	<!-- first ctr at least seems same as a3xx, so we can measure freq -->
3437ec681f3Smrg	<value value="0" name="CP_ALWAYS_COUNT"/>
3447ec681f3Smrg	<value value="1" name="CP_BUSY"/>
3457ec681f3Smrg	<value value="2" name="CP_PFP_IDLE"/>
3467ec681f3Smrg	<value value="3" name="CP_PFP_BUSY_WORKING"/>
3477ec681f3Smrg	<value value="4" name="CP_PFP_STALL_CYCLES_ANY"/>
3487ec681f3Smrg	<value value="5" name="CP_PFP_STARVE_CYCLES_ANY"/>
3497ec681f3Smrg	<value value="6" name="CP_PFP_STARVED_PER_LOAD_ADDR"/>
3507ec681f3Smrg	<value value="7" name="CP_PFP_STALLED_PER_STORE_ADDR"/>
3517ec681f3Smrg	<value value="8" name="CP_PFP_PC_PROFILE"/>
3527ec681f3Smrg	<value value="9" name="CP_PFP_MATCH_PM4_PKT_PROFILE"/>
3537ec681f3Smrg	<value value="10" name="CP_PFP_COND_INDIRECT_DISCARDED"/>
3547ec681f3Smrg	<value value="11" name="CP_LONG_RESUMPTIONS"/>
3557ec681f3Smrg	<value value="12" name="CP_RESUME_CYCLES"/>
3567ec681f3Smrg	<value value="13" name="CP_RESUME_TO_BOUNDARY_CYCLES"/>
3577ec681f3Smrg	<value value="14" name="CP_LONG_PREEMPTIONS"/>
3587ec681f3Smrg	<value value="15" name="CP_PREEMPT_CYCLES"/>
3597ec681f3Smrg	<value value="16" name="CP_PREEMPT_TO_BOUNDARY_CYCLES"/>
3607ec681f3Smrg	<value value="17" name="CP_ME_FIFO_EMPTY_PFP_IDLE"/>
3617ec681f3Smrg	<value value="18" name="CP_ME_FIFO_EMPTY_PFP_BUSY"/>
3627ec681f3Smrg	<value value="19" name="CP_ME_FIFO_NOT_EMPTY_NOT_FULL"/>
3637ec681f3Smrg	<value value="20" name="CP_ME_FIFO_FULL_ME_BUSY"/>
3647ec681f3Smrg	<value value="21" name="CP_ME_FIFO_FULL_ME_NON_WORKING"/>
3657ec681f3Smrg	<value value="22" name="CP_ME_WAITING_FOR_PACKETS"/>
3667ec681f3Smrg	<value value="23" name="CP_ME_BUSY_WORKING"/>
3677ec681f3Smrg	<value value="24" name="CP_ME_STARVE_CYCLES_ANY"/>
3687ec681f3Smrg	<value value="25" name="CP_ME_STARVE_CYCLES_PER_PROFILE"/>
3697ec681f3Smrg	<value value="26" name="CP_ME_STALL_CYCLES_PER_PROFILE"/>
3707ec681f3Smrg	<value value="27" name="CP_ME_PC_PROFILE"/>
3717ec681f3Smrg	<value value="28" name="CP_RCIU_FIFO_EMPTY"/>
3727ec681f3Smrg	<value value="29" name="CP_RCIU_FIFO_NOT_EMPTY_NOT_FULL"/>
3737ec681f3Smrg	<value value="30" name="CP_RCIU_FIFO_FULL"/>
3747ec681f3Smrg	<value value="31" name="CP_RCIU_FIFO_FULL_NO_CONTEXT"/>
3757ec681f3Smrg	<value value="32" name="CP_RCIU_FIFO_FULL_AHB_MASTER"/>
3767ec681f3Smrg	<value value="33" name="CP_RCIU_FIFO_FULL_OTHER"/>
3777ec681f3Smrg	<value value="34" name="CP_AHB_IDLE"/>
3787ec681f3Smrg	<value value="35" name="CP_AHB_STALL_ON_GRANT_NO_SPLIT"/>
3797ec681f3Smrg	<value value="36" name="CP_AHB_STALL_ON_GRANT_SPLIT"/>
3807ec681f3Smrg	<value value="37" name="CP_AHB_STALL_ON_GRANT_SPLIT_PROFILE"/>
3817ec681f3Smrg	<value value="38" name="CP_AHB_BUSY_WORKING"/>
3827ec681f3Smrg	<value value="39" name="CP_AHB_BUSY_STALL_ON_HRDY"/>
3837ec681f3Smrg	<value value="40" name="CP_AHB_BUSY_STALL_ON_HRDY_PROFILE"/>
3847ec681f3Smrg</enum>
3857ec681f3Smrg
3867ec681f3Smrg<enum name="a4xx_gras_ras_perfcounter_select">
3877ec681f3Smrg	<value value="0" name="RAS_SUPER_TILES"/>
3887ec681f3Smrg	<value value="1" name="RAS_8X8_TILES"/>
3897ec681f3Smrg	<value value="2" name="RAS_4X4_TILES"/>
3907ec681f3Smrg	<value value="3" name="RAS_BUSY_CYCLES"/>
3917ec681f3Smrg	<value value="4" name="RAS_STALL_CYCLES_BY_RB"/>
3927ec681f3Smrg	<value value="5" name="RAS_STALL_CYCLES_BY_VSC"/>
3937ec681f3Smrg	<value value="6" name="RAS_STARVE_CYCLES_BY_TSE"/>
3947ec681f3Smrg	<value value="7" name="RAS_SUPERTILE_CYCLES"/>
3957ec681f3Smrg	<value value="8" name="RAS_TILE_CYCLES"/>
3967ec681f3Smrg	<value value="9" name="RAS_FULLY_COVERED_SUPER_TILES"/>
3977ec681f3Smrg	<value value="10" name="RAS_FULLY_COVERED_8X8_TILES"/>
3987ec681f3Smrg	<value value="11" name="RAS_4X4_PRIM"/>
3997ec681f3Smrg	<value value="12" name="RAS_8X4_4X8_PRIM"/>
4007ec681f3Smrg	<value value="13" name="RAS_8X8_PRIM"/>
4017ec681f3Smrg</enum>
4027ec681f3Smrg
4037ec681f3Smrg<enum name="a4xx_gras_tse_perfcounter_select">
4047ec681f3Smrg	<value value="0" name="TSE_INPUT_PRIM"/>
4057ec681f3Smrg	<value value="1" name="TSE_INPUT_NULL_PRIM"/>
4067ec681f3Smrg	<value value="2" name="TSE_TRIVAL_REJ_PRIM"/>
4077ec681f3Smrg	<value value="3" name="TSE_CLIPPED_PRIM"/>
4087ec681f3Smrg	<value value="4" name="TSE_NEW_PRIM"/>
4097ec681f3Smrg	<value value="5" name="TSE_ZERO_AREA_PRIM"/>
4107ec681f3Smrg	<value value="6" name="TSE_FACENESS_CULLED_PRIM"/>
4117ec681f3Smrg	<value value="7" name="TSE_ZERO_PIXEL_PRIM"/>
4127ec681f3Smrg	<value value="8" name="TSE_OUTPUT_NULL_PRIM"/>
4137ec681f3Smrg	<value value="9" name="TSE_OUTPUT_VISIBLE_PRIM"/>
4147ec681f3Smrg	<value value="10" name="TSE_PRE_CLIP_PRIM"/>
4157ec681f3Smrg	<value value="11" name="TSE_POST_CLIP_PRIM"/>
4167ec681f3Smrg	<value value="12" name="TSE_BUSY_CYCLES"/>
4177ec681f3Smrg	<value value="13" name="TSE_PC_STARVE"/>
4187ec681f3Smrg	<value value="14" name="TSE_RAS_STALL"/>
4197ec681f3Smrg	<value value="15" name="TSE_STALL_BARYPLANE_FIFO_FULL"/>
4207ec681f3Smrg	<value value="16" name="TSE_STALL_ZPLANE_FIFO_FULL"/>
4217ec681f3Smrg</enum>
4227ec681f3Smrg
4237ec681f3Smrg<enum name="a4xx_hlsq_perfcounter_select">
4247ec681f3Smrg	<value value="0" name="HLSQ_SP_VS_STAGE_CONSTANT"/>
4257ec681f3Smrg	<value value="1" name="HLSQ_SP_VS_STAGE_INSTRUCTIONS"/>
4267ec681f3Smrg	<value value="2" name="HLSQ_SP_FS_STAGE_CONSTANT"/>
4277ec681f3Smrg	<value value="3" name="HLSQ_SP_FS_STAGE_INSTRUCTIONS"/>
4287ec681f3Smrg	<value value="4" name="HLSQ_TP_STATE"/>
4297ec681f3Smrg	<value value="5" name="HLSQ_QUADS"/>
4307ec681f3Smrg	<value value="6" name="HLSQ_PIXELS"/>
4317ec681f3Smrg	<value value="7" name="HLSQ_VERTICES"/>
4327ec681f3Smrg	<value value="13" name="HLSQ_SP_VS_STAGE_DATA_BYTES"/>
4337ec681f3Smrg	<value value="14" name="HLSQ_SP_FS_STAGE_DATA_BYTES"/>
4347ec681f3Smrg	<value value="15" name="HLSQ_BUSY_CYCLES"/>
4357ec681f3Smrg	<value value="16" name="HLSQ_STALL_CYCLES_SP_STATE"/>
4367ec681f3Smrg	<value value="17" name="HLSQ_STALL_CYCLES_SP_VS_STAGE"/>
4377ec681f3Smrg	<value value="18" name="HLSQ_STALL_CYCLES_SP_FS_STAGE"/>
4387ec681f3Smrg	<value value="19" name="HLSQ_STALL_CYCLES_UCHE"/>
4397ec681f3Smrg	<value value="20" name="HLSQ_RBBM_LOAD_CYCLES"/>
4407ec681f3Smrg	<value value="21" name="HLSQ_DI_TO_VS_START_SP"/>
4417ec681f3Smrg	<value value="22" name="HLSQ_DI_TO_FS_START_SP"/>
4427ec681f3Smrg	<value value="23" name="HLSQ_VS_STAGE_START_TO_DONE_SP"/>
4437ec681f3Smrg	<value value="24" name="HLSQ_FS_STAGE_START_TO_DONE_SP"/>
4447ec681f3Smrg	<value value="25" name="HLSQ_SP_STATE_COPY_CYCLES_VS_STAGE"/>
4457ec681f3Smrg	<value value="26" name="HLSQ_SP_STATE_COPY_CYCLES_FS_STAGE"/>
4467ec681f3Smrg	<value value="27" name="HLSQ_UCHE_LATENCY_CYCLES"/>
4477ec681f3Smrg	<value value="28" name="HLSQ_UCHE_LATENCY_COUNT"/>
4487ec681f3Smrg	<value value="29" name="HLSQ_STARVE_CYCLES_VFD"/>
4497ec681f3Smrg</enum>
4507ec681f3Smrg
4517ec681f3Smrg<enum name="a4xx_pc_perfcounter_select">
4527ec681f3Smrg	<value value="0" name="PC_VIS_STREAMS_LOADED"/>
4537ec681f3Smrg	<value value="2" name="PC_VPC_PRIMITIVES"/>
4547ec681f3Smrg	<value value="3" name="PC_DEAD_PRIM"/>
4557ec681f3Smrg	<value value="4" name="PC_LIVE_PRIM"/>
4567ec681f3Smrg	<value value="5" name="PC_DEAD_DRAWCALLS"/>
4577ec681f3Smrg	<value value="6" name="PC_LIVE_DRAWCALLS"/>
4587ec681f3Smrg	<value value="7" name="PC_VERTEX_MISSES"/>
4597ec681f3Smrg	<value value="9" name="PC_STALL_CYCLES_VFD"/>
4607ec681f3Smrg	<value value="10" name="PC_STALL_CYCLES_TSE"/>
4617ec681f3Smrg	<value value="11" name="PC_STALL_CYCLES_UCHE"/>
4627ec681f3Smrg	<value value="12" name="PC_WORKING_CYCLES"/>
4637ec681f3Smrg	<value value="13" name="PC_IA_VERTICES"/>
4647ec681f3Smrg	<value value="14" name="PC_GS_PRIMITIVES"/>
4657ec681f3Smrg	<value value="15" name="PC_HS_INVOCATIONS"/>
4667ec681f3Smrg	<value value="16" name="PC_DS_INVOCATIONS"/>
4677ec681f3Smrg	<value value="17" name="PC_DS_PRIMITIVES"/>
4687ec681f3Smrg	<value value="20" name="PC_STARVE_CYCLES_FOR_INDEX"/>
4697ec681f3Smrg	<value value="21" name="PC_STARVE_CYCLES_FOR_TESS_FACTOR"/>
4707ec681f3Smrg	<value value="22" name="PC_STARVE_CYCLES_FOR_VIZ_STREAM"/>
4717ec681f3Smrg	<value value="23" name="PC_STALL_CYCLES_TESS"/>
4727ec681f3Smrg	<value value="24" name="PC_STARVE_CYCLES_FOR_POSITION"/>
4737ec681f3Smrg	<value value="25" name="PC_MODE0_DRAWCALL"/>
4747ec681f3Smrg	<value value="26" name="PC_MODE1_DRAWCALL"/>
4757ec681f3Smrg	<value value="27" name="PC_MODE2_DRAWCALL"/>
4767ec681f3Smrg	<value value="28" name="PC_MODE3_DRAWCALL"/>
4777ec681f3Smrg	<value value="29" name="PC_MODE4_DRAWCALL"/>
4787ec681f3Smrg	<value value="30" name="PC_PREDICATED_DEAD_DRAWCALL"/>
4797ec681f3Smrg	<value value="31" name="PC_STALL_CYCLES_BY_TSE_ONLY"/>
4807ec681f3Smrg	<value value="32" name="PC_STALL_CYCLES_BY_VPC_ONLY"/>
4817ec681f3Smrg	<value value="33" name="PC_VPC_POS_DATA_TRANSACTION"/>
4827ec681f3Smrg	<value value="34" name="PC_BUSY_CYCLES"/>
4837ec681f3Smrg	<value value="35" name="PC_STARVE_CYCLES_DI"/>
4847ec681f3Smrg	<value value="36" name="PC_STALL_CYCLES_VPC"/>
4857ec681f3Smrg	<value value="37" name="TESS_WORKING_CYCLES"/>
4867ec681f3Smrg	<value value="38" name="TESS_NUM_CYCLES_SETUP_WORKING"/>
4877ec681f3Smrg	<value value="39" name="TESS_NUM_CYCLES_PTGEN_WORKING"/>
4887ec681f3Smrg	<value value="40" name="TESS_NUM_CYCLES_CONNGEN_WORKING"/>
4897ec681f3Smrg	<value value="41" name="TESS_BUSY_CYCLES"/>
4907ec681f3Smrg	<value value="42" name="TESS_STARVE_CYCLES_PC"/>
4917ec681f3Smrg	<value value="43" name="TESS_STALL_CYCLES_PC"/>
4927ec681f3Smrg</enum>
4937ec681f3Smrg
4947ec681f3Smrg<enum name="a4xx_pwr_perfcounter_select">
4957ec681f3Smrg	<!-- NOTE not actually used.. see RBBM_RBBM_CTL.RESET_PWR_CTR0/1 -->
4967ec681f3Smrg	<value value="0" name="PWR_CORE_CLOCK_CYCLES"/>
4977ec681f3Smrg	<value value="1" name="PWR_BUSY_CLOCK_CYCLES"/>
4987ec681f3Smrg</enum>
4997ec681f3Smrg
5007ec681f3Smrg<enum name="a4xx_rb_perfcounter_select">
5017ec681f3Smrg	<value value="0" name="RB_BUSY_CYCLES"/>
5027ec681f3Smrg	<value value="1" name="RB_BUSY_CYCLES_BINNING"/>
5037ec681f3Smrg	<value value="2" name="RB_BUSY_CYCLES_RENDERING"/>
5047ec681f3Smrg	<value value="3" name="RB_BUSY_CYCLES_RESOLVE"/>
5057ec681f3Smrg	<value value="4" name="RB_STARVE_CYCLES_BY_SP"/>
5067ec681f3Smrg	<value value="5" name="RB_STARVE_CYCLES_BY_RAS"/>
5077ec681f3Smrg	<value value="6" name="RB_STARVE_CYCLES_BY_MARB"/>
5087ec681f3Smrg	<value value="7" name="RB_STALL_CYCLES_BY_MARB"/>
5097ec681f3Smrg	<value value="8" name="RB_STALL_CYCLES_BY_HLSQ"/>
5107ec681f3Smrg	<value value="9" name="RB_RB_RB_MARB_DATA"/>
5117ec681f3Smrg	<value value="10" name="RB_SP_RB_QUAD"/>
5127ec681f3Smrg	<value value="11" name="RB_RAS_RB_Z_QUADS"/>
5137ec681f3Smrg	<value value="12" name="RB_GMEM_CH0_READ"/>
5147ec681f3Smrg	<value value="13" name="RB_GMEM_CH1_READ"/>
5157ec681f3Smrg	<value value="14" name="RB_GMEM_CH0_WRITE"/>
5167ec681f3Smrg	<value value="15" name="RB_GMEM_CH1_WRITE"/>
5177ec681f3Smrg	<value value="16" name="RB_CP_CONTEXT_DONE"/>
5187ec681f3Smrg	<value value="17" name="RB_CP_CACHE_FLUSH"/>
5197ec681f3Smrg	<value value="18" name="RB_CP_ZPASS_DONE"/>
5207ec681f3Smrg	<value value="19" name="RB_STALL_FIFO0_FULL"/>
5217ec681f3Smrg	<value value="20" name="RB_STALL_FIFO1_FULL"/>
5227ec681f3Smrg	<value value="21" name="RB_STALL_FIFO2_FULL"/>
5237ec681f3Smrg	<value value="22" name="RB_STALL_FIFO3_FULL"/>
5247ec681f3Smrg	<value value="23" name="RB_RB_HLSQ_TRANSACTIONS"/>
5257ec681f3Smrg	<value value="24" name="RB_Z_READ"/>
5267ec681f3Smrg	<value value="25" name="RB_Z_WRITE"/>
5277ec681f3Smrg	<value value="26" name="RB_C_READ"/>
5287ec681f3Smrg	<value value="27" name="RB_C_WRITE"/>
5297ec681f3Smrg	<value value="28" name="RB_C_READ_LATENCY"/>
5307ec681f3Smrg	<value value="29" name="RB_Z_READ_LATENCY"/>
5317ec681f3Smrg	<value value="30" name="RB_STALL_BY_UCHE"/>
5327ec681f3Smrg	<value value="31" name="RB_MARB_UCHE_TRANSACTIONS"/>
5337ec681f3Smrg	<value value="32" name="RB_CACHE_STALL_MISS"/>
5347ec681f3Smrg	<value value="33" name="RB_CACHE_STALL_FIFO_FULL"/>
5357ec681f3Smrg	<value value="34" name="RB_8BIT_BLENDER_UNITS_ACTIVE"/>
5367ec681f3Smrg	<value value="35" name="RB_16BIT_BLENDER_UNITS_ACTIVE"/>
5377ec681f3Smrg	<value value="36" name="RB_SAMPLER_UNITS_ACTIVE"/>
5387ec681f3Smrg	<value value="38" name="RB_TOTAL_PASS"/>
5397ec681f3Smrg	<value value="39" name="RB_Z_PASS"/>
5407ec681f3Smrg	<value value="40" name="RB_Z_FAIL"/>
5417ec681f3Smrg	<value value="41" name="RB_S_FAIL"/>
5427ec681f3Smrg	<value value="42" name="RB_POWER0"/>
5437ec681f3Smrg	<value value="43" name="RB_POWER1"/>
5447ec681f3Smrg	<value value="44" name="RB_POWER2"/>
5457ec681f3Smrg	<value value="45" name="RB_POWER3"/>
5467ec681f3Smrg	<value value="46" name="RB_POWER4"/>
5477ec681f3Smrg	<value value="47" name="RB_POWER5"/>
5487ec681f3Smrg	<value value="48" name="RB_POWER6"/>
5497ec681f3Smrg	<value value="49" name="RB_POWER7"/>
5507ec681f3Smrg</enum>
5517ec681f3Smrg
5527ec681f3Smrg<enum name="a4xx_rbbm_perfcounter_select">
5537ec681f3Smrg	<value value="0" name="RBBM_ALWAYS_ON"/>
5547ec681f3Smrg	<value value="1" name="RBBM_VBIF_BUSY"/>
5557ec681f3Smrg	<value value="2" name="RBBM_TSE_BUSY"/>
5567ec681f3Smrg	<value value="3" name="RBBM_RAS_BUSY"/>
5577ec681f3Smrg	<value value="4" name="RBBM_PC_DCALL_BUSY"/>
5587ec681f3Smrg	<value value="5" name="RBBM_PC_VSD_BUSY"/>
5597ec681f3Smrg	<value value="6" name="RBBM_VFD_BUSY"/>
5607ec681f3Smrg	<value value="7" name="RBBM_VPC_BUSY"/>
5617ec681f3Smrg	<value value="8" name="RBBM_UCHE_BUSY"/>
5627ec681f3Smrg	<value value="9" name="RBBM_VSC_BUSY"/>
5637ec681f3Smrg	<value value="10" name="RBBM_HLSQ_BUSY"/>
5647ec681f3Smrg	<value value="11" name="RBBM_ANY_RB_BUSY"/>
5657ec681f3Smrg	<value value="12" name="RBBM_ANY_TPL1_BUSY"/>
5667ec681f3Smrg	<value value="13" name="RBBM_ANY_SP_BUSY"/>
5677ec681f3Smrg	<value value="14" name="RBBM_ANY_MARB_BUSY"/>
5687ec681f3Smrg	<value value="15" name="RBBM_ANY_ARB_BUSY"/>
5697ec681f3Smrg	<value value="16" name="RBBM_AHB_STATUS_BUSY"/>
5707ec681f3Smrg	<value value="17" name="RBBM_AHB_STATUS_STALLED"/>
5717ec681f3Smrg	<value value="18" name="RBBM_AHB_STATUS_TXFR"/>
5727ec681f3Smrg	<value value="19" name="RBBM_AHB_STATUS_TXFR_SPLIT"/>
5737ec681f3Smrg	<value value="20" name="RBBM_AHB_STATUS_TXFR_ERROR"/>
5747ec681f3Smrg	<value value="21" name="RBBM_AHB_STATUS_LONG_STALL"/>
5757ec681f3Smrg	<value value="22" name="RBBM_STATUS_MASKED"/>
5767ec681f3Smrg	<value value="23" name="RBBM_CP_BUSY_GFX_CORE_IDLE"/>
5777ec681f3Smrg	<value value="24" name="RBBM_TESS_BUSY"/>
5787ec681f3Smrg	<value value="25" name="RBBM_COM_BUSY"/>
5797ec681f3Smrg	<value value="32" name="RBBM_DCOM_BUSY"/>
5807ec681f3Smrg	<value value="33" name="RBBM_ANY_CCU_BUSY"/>
5817ec681f3Smrg	<value value="34" name="RBBM_DPM_BUSY"/>
5827ec681f3Smrg</enum>
5837ec681f3Smrg
5847ec681f3Smrg<enum name="a4xx_sp_perfcounter_select">
5857ec681f3Smrg	<value value="0" name="SP_LM_LOAD_INSTRUCTIONS"/>
5867ec681f3Smrg	<value value="1" name="SP_LM_STORE_INSTRUCTIONS"/>
5877ec681f3Smrg	<value value="2" name="SP_LM_ATOMICS"/>
5887ec681f3Smrg	<value value="3" name="SP_GM_LOAD_INSTRUCTIONS"/>
5897ec681f3Smrg	<value value="4" name="SP_GM_STORE_INSTRUCTIONS"/>
5907ec681f3Smrg	<value value="5" name="SP_GM_ATOMICS"/>
5917ec681f3Smrg	<value value="6" name="SP_VS_STAGE_TEX_INSTRUCTIONS"/>
5927ec681f3Smrg	<value value="7" name="SP_VS_STAGE_CFLOW_INSTRUCTIONS"/>
5937ec681f3Smrg	<value value="8" name="SP_VS_STAGE_EFU_INSTRUCTIONS"/>
5947ec681f3Smrg	<value value="9" name="SP_VS_STAGE_FULL_ALU_INSTRUCTIONS"/>
5957ec681f3Smrg	<value value="10" name="SP_VS_STAGE_HALF_ALU_INSTRUCTIONS"/>
5967ec681f3Smrg	<value value="11" name="SP_FS_STAGE_TEX_INSTRUCTIONS"/>
5977ec681f3Smrg	<value value="12" name="SP_FS_STAGE_CFLOW_INSTRUCTIONS"/>
5987ec681f3Smrg	<value value="13" name="SP_FS_STAGE_EFU_INSTRUCTIONS"/>
5997ec681f3Smrg	<value value="14" name="SP_FS_STAGE_FULL_ALU_INSTRUCTIONS"/>
6007ec681f3Smrg	<value value="15" name="SP_FS_STAGE_HALF_ALU_INSTRUCTIONS"/>
6017ec681f3Smrg	<value value="17" name="SP_VS_INSTRUCTIONS"/>
6027ec681f3Smrg	<value value="18" name="SP_FS_INSTRUCTIONS"/>
6037ec681f3Smrg	<value value="19" name="SP_ADDR_LOCK_COUNT"/>
6047ec681f3Smrg	<value value="20" name="SP_UCHE_READ_TRANS"/>
6057ec681f3Smrg	<value value="21" name="SP_UCHE_WRITE_TRANS"/>
6067ec681f3Smrg	<value value="22" name="SP_EXPORT_VPC_TRANS"/>
6077ec681f3Smrg	<value value="23" name="SP_EXPORT_RB_TRANS"/>
6087ec681f3Smrg	<value value="24" name="SP_PIXELS_KILLED"/>
6097ec681f3Smrg	<value value="25" name="SP_ICL1_REQUESTS"/>
6107ec681f3Smrg	<value value="26" name="SP_ICL1_MISSES"/>
6117ec681f3Smrg	<value value="27" name="SP_ICL0_REQUESTS"/>
6127ec681f3Smrg	<value value="28" name="SP_ICL0_MISSES"/>
6137ec681f3Smrg	<value value="29" name="SP_ALU_WORKING_CYCLES"/>
6147ec681f3Smrg	<value value="30" name="SP_EFU_WORKING_CYCLES"/>
6157ec681f3Smrg	<value value="31" name="SP_STALL_CYCLES_BY_VPC"/>
6167ec681f3Smrg	<value value="32" name="SP_STALL_CYCLES_BY_TP"/>
6177ec681f3Smrg	<value value="33" name="SP_STALL_CYCLES_BY_UCHE"/>
6187ec681f3Smrg	<value value="34" name="SP_STALL_CYCLES_BY_RB"/>
6197ec681f3Smrg	<value value="35" name="SP_BUSY_CYCLES"/>
6207ec681f3Smrg	<value value="36" name="SP_HS_INSTRUCTIONS"/>
6217ec681f3Smrg	<value value="37" name="SP_DS_INSTRUCTIONS"/>
6227ec681f3Smrg	<value value="38" name="SP_GS_INSTRUCTIONS"/>
6237ec681f3Smrg	<value value="39" name="SP_CS_INSTRUCTIONS"/>
6247ec681f3Smrg	<value value="40" name="SP_SCHEDULER_NON_WORKING"/>
6257ec681f3Smrg	<value value="41" name="SP_WAVE_CONTEXTS"/>
6267ec681f3Smrg	<value value="42" name="SP_WAVE_CONTEXT_CYCLES"/>
6277ec681f3Smrg	<value value="43" name="SP_POWER0"/>
6287ec681f3Smrg	<value value="44" name="SP_POWER1"/>
6297ec681f3Smrg	<value value="45" name="SP_POWER2"/>
6307ec681f3Smrg	<value value="46" name="SP_POWER3"/>
6317ec681f3Smrg	<value value="47" name="SP_POWER4"/>
6327ec681f3Smrg	<value value="48" name="SP_POWER5"/>
6337ec681f3Smrg	<value value="49" name="SP_POWER6"/>
6347ec681f3Smrg	<value value="50" name="SP_POWER7"/>
6357ec681f3Smrg	<value value="51" name="SP_POWER8"/>
6367ec681f3Smrg	<value value="52" name="SP_POWER9"/>
6377ec681f3Smrg	<value value="53" name="SP_POWER10"/>
6387ec681f3Smrg	<value value="54" name="SP_POWER11"/>
6397ec681f3Smrg	<value value="55" name="SP_POWER12"/>
6407ec681f3Smrg	<value value="56" name="SP_POWER13"/>
6417ec681f3Smrg	<value value="57" name="SP_POWER14"/>
6427ec681f3Smrg	<value value="58" name="SP_POWER15"/>
6437ec681f3Smrg</enum>
6447ec681f3Smrg
6457ec681f3Smrg<enum name="a4xx_tp_perfcounter_select">
6467ec681f3Smrg	<value value="0" name="TP_L1_REQUESTS"/>
6477ec681f3Smrg	<value value="1" name="TP_L1_MISSES"/>
6487ec681f3Smrg	<value value="8" name="TP_QUADS_OFFSET"/>
6497ec681f3Smrg	<value value="9" name="TP_QUAD_SHADOW"/>
6507ec681f3Smrg	<value value="10" name="TP_QUADS_ARRAY"/>
6517ec681f3Smrg	<value value="11" name="TP_QUADS_GRADIENT"/>
6527ec681f3Smrg	<value value="12" name="TP_QUADS_1D2D"/>
6537ec681f3Smrg	<value value="13" name="TP_QUADS_3DCUBE"/>
6547ec681f3Smrg	<value value="16" name="TP_BUSY_CYCLES"/>
6557ec681f3Smrg	<value value="17" name="TP_STALL_CYCLES_BY_ARB"/>
6567ec681f3Smrg	<value value="20" name="TP_STATE_CACHE_REQUESTS"/>
6577ec681f3Smrg	<value value="21" name="TP_STATE_CACHE_MISSES"/>
6587ec681f3Smrg	<value value="22" name="TP_POWER0"/>
6597ec681f3Smrg	<value value="23" name="TP_POWER1"/>
6607ec681f3Smrg	<value value="24" name="TP_POWER2"/>
6617ec681f3Smrg	<value value="25" name="TP_POWER3"/>
6627ec681f3Smrg	<value value="26" name="TP_POWER4"/>
6637ec681f3Smrg	<value value="27" name="TP_POWER5"/>
6647ec681f3Smrg	<value value="28" name="TP_POWER6"/>
6657ec681f3Smrg	<value value="29" name="TP_POWER7"/>
6667ec681f3Smrg</enum>
6677ec681f3Smrg
6687ec681f3Smrg<enum name="a4xx_uche_perfcounter_select">
6697ec681f3Smrg	<value value="0" name="UCHE_VBIF_READ_BEATS_TP"/>
6707ec681f3Smrg	<value value="1" name="UCHE_VBIF_READ_BEATS_VFD"/>
6717ec681f3Smrg	<value value="2" name="UCHE_VBIF_READ_BEATS_HLSQ"/>
6727ec681f3Smrg	<value value="3" name="UCHE_VBIF_READ_BEATS_MARB"/>
6737ec681f3Smrg	<value value="4" name="UCHE_VBIF_READ_BEATS_SP"/>
6747ec681f3Smrg	<value value="5" name="UCHE_READ_REQUESTS_TP"/>
6757ec681f3Smrg	<value value="6" name="UCHE_READ_REQUESTS_VFD"/>
6767ec681f3Smrg	<value value="7" name="UCHE_READ_REQUESTS_HLSQ"/>
6777ec681f3Smrg	<value value="8" name="UCHE_READ_REQUESTS_MARB"/>
6787ec681f3Smrg	<value value="9" name="UCHE_READ_REQUESTS_SP"/>
6797ec681f3Smrg	<value value="10" name="UCHE_WRITE_REQUESTS_MARB"/>
6807ec681f3Smrg	<value value="11" name="UCHE_WRITE_REQUESTS_SP"/>
6817ec681f3Smrg	<value value="12" name="UCHE_TAG_CHECK_FAILS"/>
6827ec681f3Smrg	<value value="13" name="UCHE_EVICTS"/>
6837ec681f3Smrg	<value value="14" name="UCHE_FLUSHES"/>
6847ec681f3Smrg	<value value="15" name="UCHE_VBIF_LATENCY_CYCLES"/>
6857ec681f3Smrg	<value value="16" name="UCHE_VBIF_LATENCY_SAMPLES"/>
6867ec681f3Smrg	<value value="17" name="UCHE_BUSY_CYCLES"/>
6877ec681f3Smrg	<value value="18" name="UCHE_VBIF_READ_BEATS_PC"/>
6887ec681f3Smrg	<value value="19" name="UCHE_READ_REQUESTS_PC"/>
6897ec681f3Smrg	<value value="20" name="UCHE_WRITE_REQUESTS_VPC"/>
6907ec681f3Smrg	<value value="21" name="UCHE_STALL_BY_VBIF"/>
6917ec681f3Smrg	<value value="22" name="UCHE_WRITE_REQUESTS_VSC"/>
6927ec681f3Smrg	<value value="23" name="UCHE_POWER0"/>
6937ec681f3Smrg	<value value="24" name="UCHE_POWER1"/>
6947ec681f3Smrg	<value value="25" name="UCHE_POWER2"/>
6957ec681f3Smrg	<value value="26" name="UCHE_POWER3"/>
6967ec681f3Smrg	<value value="27" name="UCHE_POWER4"/>
6977ec681f3Smrg	<value value="28" name="UCHE_POWER5"/>
6987ec681f3Smrg	<value value="29" name="UCHE_POWER6"/>
6997ec681f3Smrg	<value value="30" name="UCHE_POWER7"/>
7007ec681f3Smrg</enum>
7017ec681f3Smrg
7027ec681f3Smrg<enum name="a4xx_vbif_perfcounter_select">
7037ec681f3Smrg	<value value="0" name="AXI_READ_REQUESTS_ID_0"/>
7047ec681f3Smrg	<value value="1" name="AXI_READ_REQUESTS_ID_1"/>
7057ec681f3Smrg	<value value="2" name="AXI_READ_REQUESTS_ID_2"/>
7067ec681f3Smrg	<value value="3" name="AXI_READ_REQUESTS_ID_3"/>
7077ec681f3Smrg	<value value="4" name="AXI_READ_REQUESTS_ID_4"/>
7087ec681f3Smrg	<value value="5" name="AXI_READ_REQUESTS_ID_5"/>
7097ec681f3Smrg	<value value="6" name="AXI_READ_REQUESTS_ID_6"/>
7107ec681f3Smrg	<value value="7" name="AXI_READ_REQUESTS_ID_7"/>
7117ec681f3Smrg	<value value="8" name="AXI_READ_REQUESTS_ID_8"/>
7127ec681f3Smrg	<value value="9" name="AXI_READ_REQUESTS_ID_9"/>
7137ec681f3Smrg	<value value="10" name="AXI_READ_REQUESTS_ID_10"/>
7147ec681f3Smrg	<value value="11" name="AXI_READ_REQUESTS_ID_11"/>
7157ec681f3Smrg	<value value="12" name="AXI_READ_REQUESTS_ID_12"/>
7167ec681f3Smrg	<value value="13" name="AXI_READ_REQUESTS_ID_13"/>
7177ec681f3Smrg	<value value="14" name="AXI_READ_REQUESTS_ID_14"/>
7187ec681f3Smrg	<value value="15" name="AXI_READ_REQUESTS_ID_15"/>
7197ec681f3Smrg	<value value="16" name="AXI0_READ_REQUESTS_TOTAL"/>
7207ec681f3Smrg	<value value="17" name="AXI1_READ_REQUESTS_TOTAL"/>
7217ec681f3Smrg	<value value="18" name="AXI2_READ_REQUESTS_TOTAL"/>
7227ec681f3Smrg	<value value="19" name="AXI3_READ_REQUESTS_TOTAL"/>
7237ec681f3Smrg	<value value="20" name="AXI_READ_REQUESTS_TOTAL"/>
7247ec681f3Smrg	<value value="21" name="AXI_WRITE_REQUESTS_ID_0"/>
7257ec681f3Smrg	<value value="22" name="AXI_WRITE_REQUESTS_ID_1"/>
7267ec681f3Smrg	<value value="23" name="AXI_WRITE_REQUESTS_ID_2"/>
7277ec681f3Smrg	<value value="24" name="AXI_WRITE_REQUESTS_ID_3"/>
7287ec681f3Smrg	<value value="25" name="AXI_WRITE_REQUESTS_ID_4"/>
7297ec681f3Smrg	<value value="26" name="AXI_WRITE_REQUESTS_ID_5"/>
7307ec681f3Smrg	<value value="27" name="AXI_WRITE_REQUESTS_ID_6"/>
7317ec681f3Smrg	<value value="28" name="AXI_WRITE_REQUESTS_ID_7"/>
7327ec681f3Smrg	<value value="29" name="AXI_WRITE_REQUESTS_ID_8"/>
7337ec681f3Smrg	<value value="30" name="AXI_WRITE_REQUESTS_ID_9"/>
7347ec681f3Smrg	<value value="31" name="AXI_WRITE_REQUESTS_ID_10"/>
7357ec681f3Smrg	<value value="32" name="AXI_WRITE_REQUESTS_ID_11"/>
7367ec681f3Smrg	<value value="33" name="AXI_WRITE_REQUESTS_ID_12"/>
7377ec681f3Smrg	<value value="34" name="AXI_WRITE_REQUESTS_ID_13"/>
7387ec681f3Smrg	<value value="35" name="AXI_WRITE_REQUESTS_ID_14"/>
7397ec681f3Smrg	<value value="36" name="AXI_WRITE_REQUESTS_ID_15"/>
7407ec681f3Smrg	<value value="37" name="AXI0_WRITE_REQUESTS_TOTAL"/>
7417ec681f3Smrg	<value value="38" name="AXI1_WRITE_REQUESTS_TOTAL"/>
7427ec681f3Smrg	<value value="39" name="AXI2_WRITE_REQUESTS_TOTAL"/>
7437ec681f3Smrg	<value value="40" name="AXI3_WRITE_REQUESTS_TOTAL"/>
7447ec681f3Smrg	<value value="41" name="AXI_WRITE_REQUESTS_TOTAL"/>
7457ec681f3Smrg	<value value="42" name="AXI_TOTAL_REQUESTS"/>
7467ec681f3Smrg	<value value="43" name="AXI_READ_DATA_BEATS_ID_0"/>
7477ec681f3Smrg	<value value="44" name="AXI_READ_DATA_BEATS_ID_1"/>
7487ec681f3Smrg	<value value="45" name="AXI_READ_DATA_BEATS_ID_2"/>
7497ec681f3Smrg	<value value="46" name="AXI_READ_DATA_BEATS_ID_3"/>
7507ec681f3Smrg	<value value="47" name="AXI_READ_DATA_BEATS_ID_4"/>
7517ec681f3Smrg	<value value="48" name="AXI_READ_DATA_BEATS_ID_5"/>
7527ec681f3Smrg	<value value="49" name="AXI_READ_DATA_BEATS_ID_6"/>
7537ec681f3Smrg	<value value="50" name="AXI_READ_DATA_BEATS_ID_7"/>
7547ec681f3Smrg	<value value="51" name="AXI_READ_DATA_BEATS_ID_8"/>
7557ec681f3Smrg	<value value="52" name="AXI_READ_DATA_BEATS_ID_9"/>
7567ec681f3Smrg	<value value="53" name="AXI_READ_DATA_BEATS_ID_10"/>
7577ec681f3Smrg	<value value="54" name="AXI_READ_DATA_BEATS_ID_11"/>
7587ec681f3Smrg	<value value="55" name="AXI_READ_DATA_BEATS_ID_12"/>
7597ec681f3Smrg	<value value="56" name="AXI_READ_DATA_BEATS_ID_13"/>
7607ec681f3Smrg	<value value="57" name="AXI_READ_DATA_BEATS_ID_14"/>
7617ec681f3Smrg	<value value="58" name="AXI_READ_DATA_BEATS_ID_15"/>
7627ec681f3Smrg	<value value="59" name="AXI0_READ_DATA_BEATS_TOTAL"/>
7637ec681f3Smrg	<value value="60" name="AXI1_READ_DATA_BEATS_TOTAL"/>
7647ec681f3Smrg	<value value="61" name="AXI2_READ_DATA_BEATS_TOTAL"/>
7657ec681f3Smrg	<value value="62" name="AXI3_READ_DATA_BEATS_TOTAL"/>
7667ec681f3Smrg	<value value="63" name="AXI_READ_DATA_BEATS_TOTAL"/>
7677ec681f3Smrg	<value value="64" name="AXI_WRITE_DATA_BEATS_ID_0"/>
7687ec681f3Smrg	<value value="65" name="AXI_WRITE_DATA_BEATS_ID_1"/>
7697ec681f3Smrg	<value value="66" name="AXI_WRITE_DATA_BEATS_ID_2"/>
7707ec681f3Smrg	<value value="67" name="AXI_WRITE_DATA_BEATS_ID_3"/>
7717ec681f3Smrg	<value value="68" name="AXI_WRITE_DATA_BEATS_ID_4"/>
7727ec681f3Smrg	<value value="69" name="AXI_WRITE_DATA_BEATS_ID_5"/>
7737ec681f3Smrg	<value value="70" name="AXI_WRITE_DATA_BEATS_ID_6"/>
7747ec681f3Smrg	<value value="71" name="AXI_WRITE_DATA_BEATS_ID_7"/>
7757ec681f3Smrg	<value value="72" name="AXI_WRITE_DATA_BEATS_ID_8"/>
7767ec681f3Smrg	<value value="73" name="AXI_WRITE_DATA_BEATS_ID_9"/>
7777ec681f3Smrg	<value value="74" name="AXI_WRITE_DATA_BEATS_ID_10"/>
7787ec681f3Smrg	<value value="75" name="AXI_WRITE_DATA_BEATS_ID_11"/>
7797ec681f3Smrg	<value value="76" name="AXI_WRITE_DATA_BEATS_ID_12"/>
7807ec681f3Smrg	<value value="77" name="AXI_WRITE_DATA_BEATS_ID_13"/>
7817ec681f3Smrg	<value value="78" name="AXI_WRITE_DATA_BEATS_ID_14"/>
7827ec681f3Smrg	<value value="79" name="AXI_WRITE_DATA_BEATS_ID_15"/>
7837ec681f3Smrg	<value value="80" name="AXI0_WRITE_DATA_BEATS_TOTAL"/>
7847ec681f3Smrg	<value value="81" name="AXI1_WRITE_DATA_BEATS_TOTAL"/>
7857ec681f3Smrg	<value value="82" name="AXI2_WRITE_DATA_BEATS_TOTAL"/>
7867ec681f3Smrg	<value value="83" name="AXI3_WRITE_DATA_BEATS_TOTAL"/>
7877ec681f3Smrg	<value value="84" name="AXI_WRITE_DATA_BEATS_TOTAL"/>
7887ec681f3Smrg	<value value="85" name="AXI_DATA_BEATS_TOTAL"/>
7897ec681f3Smrg	<value value="86" name="CYCLES_HELD_OFF_ID_0"/>
7907ec681f3Smrg	<value value="87" name="CYCLES_HELD_OFF_ID_1"/>
7917ec681f3Smrg	<value value="88" name="CYCLES_HELD_OFF_ID_2"/>
7927ec681f3Smrg	<value value="89" name="CYCLES_HELD_OFF_ID_3"/>
7937ec681f3Smrg	<value value="90" name="CYCLES_HELD_OFF_ID_4"/>
7947ec681f3Smrg	<value value="91" name="CYCLES_HELD_OFF_ID_5"/>
7957ec681f3Smrg	<value value="92" name="CYCLES_HELD_OFF_ID_6"/>
7967ec681f3Smrg	<value value="93" name="CYCLES_HELD_OFF_ID_7"/>
7977ec681f3Smrg	<value value="94" name="CYCLES_HELD_OFF_ID_8"/>
7987ec681f3Smrg	<value value="95" name="CYCLES_HELD_OFF_ID_9"/>
7997ec681f3Smrg	<value value="96" name="CYCLES_HELD_OFF_ID_10"/>
8007ec681f3Smrg	<value value="97" name="CYCLES_HELD_OFF_ID_11"/>
8017ec681f3Smrg	<value value="98" name="CYCLES_HELD_OFF_ID_12"/>
8027ec681f3Smrg	<value value="99" name="CYCLES_HELD_OFF_ID_13"/>
8037ec681f3Smrg	<value value="100" name="CYCLES_HELD_OFF_ID_14"/>
8047ec681f3Smrg	<value value="101" name="CYCLES_HELD_OFF_ID_15"/>
8057ec681f3Smrg	<value value="102" name="AXI_READ_REQUEST_HELD_OFF"/>
8067ec681f3Smrg	<value value="103" name="AXI_WRITE_REQUEST_HELD_OFF"/>
8077ec681f3Smrg	<value value="104" name="AXI_REQUEST_HELD_OFF"/>
8087ec681f3Smrg	<value value="105" name="AXI_WRITE_DATA_HELD_OFF"/>
8097ec681f3Smrg	<value value="106" name="OCMEM_AXI_READ_REQUEST_HELD_OFF"/>
8107ec681f3Smrg	<value value="107" name="OCMEM_AXI_WRITE_REQUEST_HELD_OFF"/>
8117ec681f3Smrg	<value value="108" name="OCMEM_AXI_REQUEST_HELD_OFF"/>
8127ec681f3Smrg	<value value="109" name="OCMEM_AXI_WRITE_DATA_HELD_OFF"/>
8137ec681f3Smrg	<value value="110" name="ELAPSED_CYCLES_DDR"/>
8147ec681f3Smrg	<value value="111" name="ELAPSED_CYCLES_OCMEM"/>
8157ec681f3Smrg</enum>
8167ec681f3Smrg
8177ec681f3Smrg<enum name="a4xx_vfd_perfcounter_select">
8187ec681f3Smrg	<value value="0" name="VFD_UCHE_BYTE_FETCHED"/>
8197ec681f3Smrg	<value value="1" name="VFD_UCHE_TRANS"/>
8207ec681f3Smrg	<value value="3" name="VFD_FETCH_INSTRUCTIONS"/>
8217ec681f3Smrg	<value value="5" name="VFD_BUSY_CYCLES"/>
8227ec681f3Smrg	<value value="6" name="VFD_STALL_CYCLES_UCHE"/>
8237ec681f3Smrg	<value value="7" name="VFD_STALL_CYCLES_HLSQ"/>
8247ec681f3Smrg	<value value="8" name="VFD_STALL_CYCLES_VPC_BYPASS"/>
8257ec681f3Smrg	<value value="9" name="VFD_STALL_CYCLES_VPC_ALLOC"/>
8267ec681f3Smrg	<value value="13" name="VFD_MODE_0_FIBERS"/>
8277ec681f3Smrg	<value value="14" name="VFD_MODE_1_FIBERS"/>
8287ec681f3Smrg	<value value="15" name="VFD_MODE_2_FIBERS"/>
8297ec681f3Smrg	<value value="16" name="VFD_MODE_3_FIBERS"/>
8307ec681f3Smrg	<value value="17" name="VFD_MODE_4_FIBERS"/>
8317ec681f3Smrg	<value value="18" name="VFD_BFIFO_STALL"/>
8327ec681f3Smrg	<value value="19" name="VFD_NUM_VERTICES_TOTAL"/>
8337ec681f3Smrg	<value value="20" name="VFD_PACKER_FULL"/>
8347ec681f3Smrg	<value value="21" name="VFD_UCHE_REQUEST_FIFO_FULL"/>
8357ec681f3Smrg	<value value="22" name="VFD_STARVE_CYCLES_PC"/>
8367ec681f3Smrg	<value value="23" name="VFD_STARVE_CYCLES_UCHE"/>
8377ec681f3Smrg</enum>
8387ec681f3Smrg
8397ec681f3Smrg<enum name="a4xx_vpc_perfcounter_select">
8407ec681f3Smrg	<value value="2" name="VPC_SP_LM_COMPONENTS"/>
8417ec681f3Smrg	<value value="3" name="VPC_SP0_LM_BYTES"/>
8427ec681f3Smrg	<value value="4" name="VPC_SP1_LM_BYTES"/>
8437ec681f3Smrg	<value value="5" name="VPC_SP2_LM_BYTES"/>
8447ec681f3Smrg	<value value="6" name="VPC_SP3_LM_BYTES"/>
8457ec681f3Smrg	<value value="7" name="VPC_WORKING_CYCLES"/>
8467ec681f3Smrg	<value value="8" name="VPC_STALL_CYCLES_LM"/>
8477ec681f3Smrg	<value value="9" name="VPC_STARVE_CYCLES_RAS"/>
8487ec681f3Smrg	<value value="10" name="VPC_STREAMOUT_CYCLES"/>
8497ec681f3Smrg	<value value="12" name="VPC_UCHE_TRANSACTIONS"/>
8507ec681f3Smrg	<value value="13" name="VPC_STALL_CYCLES_UCHE"/>
8517ec681f3Smrg	<value value="14" name="VPC_BUSY_CYCLES"/>
8527ec681f3Smrg	<value value="15" name="VPC_STARVE_CYCLES_SP"/>
8537ec681f3Smrg</enum>
8547ec681f3Smrg
8557ec681f3Smrg<enum name="a4xx_vsc_perfcounter_select">
8567ec681f3Smrg	<value value="0" name="VSC_BUSY_CYCLES"/>
8577ec681f3Smrg	<value value="1" name="VSC_WORKING_CYCLES"/>
8587ec681f3Smrg	<value value="2" name="VSC_STALL_CYCLES_UCHE"/>
8597ec681f3Smrg	<value value="3" name="VSC_STARVE_CYCLES_RAS"/>
8607ec681f3Smrg	<value value="4" name="VSC_EOT_NUM"/>
8617ec681f3Smrg</enum>
8627ec681f3Smrg
8637ec681f3Smrg<domain name="A4XX" width="32">
8647ec681f3Smrg	<!-- RB registers -->
8657ec681f3Smrg	<reg32 offset="0x0cc0" name="RB_GMEM_BASE_ADDR"/>
8667ec681f3Smrg	<reg32 offset="0x0cc7" name="RB_PERFCTR_RB_SEL_0" type="a4xx_rb_perfcounter_select"/>
8677ec681f3Smrg	<reg32 offset="0x0cc8" name="RB_PERFCTR_RB_SEL_1" type="a4xx_rb_perfcounter_select"/>
8687ec681f3Smrg	<reg32 offset="0x0cc9" name="RB_PERFCTR_RB_SEL_2" type="a4xx_rb_perfcounter_select"/>
8697ec681f3Smrg	<reg32 offset="0x0cca" name="RB_PERFCTR_RB_SEL_3" type="a4xx_rb_perfcounter_select"/>
8707ec681f3Smrg	<reg32 offset="0x0ccb" name="RB_PERFCTR_RB_SEL_4" type="a4xx_rb_perfcounter_select"/>
8717ec681f3Smrg	<reg32 offset="0x0ccc" name="RB_PERFCTR_RB_SEL_5" type="a4xx_rb_perfcounter_select"/>
8727ec681f3Smrg	<reg32 offset="0x0ccd" name="RB_PERFCTR_RB_SEL_6" type="a4xx_rb_perfcounter_select"/>
8737ec681f3Smrg	<reg32 offset="0x0cce" name="RB_PERFCTR_RB_SEL_7" type="a4xx_rb_perfcounter_select"/>
8747ec681f3Smrg	<reg32 offset="0x0ccf" name="RB_PERFCTR_CCU_SEL_0" type="a4xx_ccu_perfcounter_select"/>
8757ec681f3Smrg	<reg32 offset="0x0cd0" name="RB_PERFCTR_CCU_SEL_1" type="a4xx_ccu_perfcounter_select"/>
8767ec681f3Smrg	<reg32 offset="0x0cd1" name="RB_PERFCTR_CCU_SEL_2" type="a4xx_ccu_perfcounter_select"/>
8777ec681f3Smrg	<reg32 offset="0x0cd2" name="RB_PERFCTR_CCU_SEL_3" type="a4xx_ccu_perfcounter_select"/>
8787ec681f3Smrg	<reg32 offset="0x0ce0" name="RB_FRAME_BUFFER_DIMENSION">
8797ec681f3Smrg		<bitfield name="WIDTH" low="0" high="13" type="uint"/>
8807ec681f3Smrg		<bitfield name="HEIGHT" low="16" high="29" type="uint"/>
8817ec681f3Smrg	</reg32>
8827ec681f3Smrg	<reg32 offset="0x20cc" name="RB_CLEAR_COLOR_DW0"/>
8837ec681f3Smrg	<reg32 offset="0x20cd" name="RB_CLEAR_COLOR_DW1"/>
8847ec681f3Smrg	<reg32 offset="0x20ce" name="RB_CLEAR_COLOR_DW2"/>
8857ec681f3Smrg	<reg32 offset="0x20cf" name="RB_CLEAR_COLOR_DW3"/>
8867ec681f3Smrg	<reg32 offset="0x20a0" name="RB_MODE_CONTROL">
8877ec681f3Smrg		<!--
8887ec681f3Smrg		for non-bypass mode, these are bin width/height..  although
8897ec681f3Smrg		possibly bigger bitfields to hold entire width/height for
8907ec681f3Smrg		gmem-bypass??  Either way, it appears to need to be multiple
8917ec681f3Smrg		of 32..
8927ec681f3Smrg		-->
8937ec681f3Smrg		<bitfield name="WIDTH" low="0" high="5" shr="5" type="uint"/>
8947ec681f3Smrg		<bitfield name="HEIGHT" low="8" high="13" shr="5" type="uint"/>
8957ec681f3Smrg		<bitfield name="ENABLE_GMEM" pos="16" type="boolean"/>
8967ec681f3Smrg	</reg32>
8977ec681f3Smrg	<reg32 offset="0x20a1" name="RB_RENDER_CONTROL">
8987ec681f3Smrg		<bitfield name="BINNING_PASS" pos="0" type="boolean"/>
8997ec681f3Smrg		<!-- nearly everything has bit3 set.. -->
9007ec681f3Smrg		<!-- bit5 set on resolve and tiling pass -->
9017ec681f3Smrg		<bitfield name="DISABLE_COLOR_PIPE" pos="5" type="boolean"/>
9027ec681f3Smrg	</reg32>
9037ec681f3Smrg	<reg32 offset="0x20a2" name="RB_MSAA_CONTROL">
9047ec681f3Smrg		<bitfield name="DISABLE" pos="12" type="boolean"/>
9057ec681f3Smrg		<bitfield name="SAMPLES" low="13" high="15" type="uint"/>
9067ec681f3Smrg	</reg32>
9077ec681f3Smrg	<reg32 offset="0x20a3" name="RB_RENDER_CONTROL2">
9087ec681f3Smrg		<bitfield name="COORD_MASK" low="0" high="3" type="hex"/>
9097ec681f3Smrg		<bitfield name="SAMPLEMASK" pos="4" type="boolean"/>
9107ec681f3Smrg		<bitfield name="FACENESS" pos="5" type="boolean"/>
9117ec681f3Smrg		<bitfield name="SAMPLEID" pos="6" type="boolean"/>
9127ec681f3Smrg		<bitfield name="MSAA_SAMPLES" low="7" high="9" type="uint"/>
9137ec681f3Smrg		<bitfield name="SAMPLEID_HR" pos="11" type="boolean"/>
9147ec681f3Smrg		<bitfield name="IJ_PERSP_PIXEL" pos="12" type="boolean"/>
9157ec681f3Smrg		<!-- the 2 below are just educated guesses -->
9167ec681f3Smrg		<bitfield name="IJ_PERSP_CENTROID" pos="13" type="boolean"/>
9177ec681f3Smrg		<bitfield name="IJ_PERSP_SAMPLE" pos="14" type="boolean"/>
9187ec681f3Smrg		<!-- needs to be enabled to get nopersp values,
9197ec681f3Smrg		     perhaps other cases too? -->
9207ec681f3Smrg		<bitfield name="SIZE" pos="15" type="boolean"/>
9217ec681f3Smrg	</reg32>
9227ec681f3Smrg	<array offset="0x20a4" name="RB_MRT" stride="5" length="8">
9237ec681f3Smrg		<reg32 offset="0x0" name="CONTROL">
9247ec681f3Smrg			<bitfield name="READ_DEST_ENABLE" pos="3" type="boolean"/>
9257ec681f3Smrg			<!-- both these bits seem to get set when enabling GL_BLEND.. -->
9267ec681f3Smrg			<bitfield name="BLEND" pos="4" type="boolean"/>
9277ec681f3Smrg			<bitfield name="BLEND2" pos="5" type="boolean"/>
9287ec681f3Smrg			<bitfield name="ROP_ENABLE" pos="6" type="boolean"/>
9297ec681f3Smrg			<bitfield name="ROP_CODE" low="8" high="11" type="a3xx_rop_code"/>
9307ec681f3Smrg			<bitfield name="COMPONENT_ENABLE" low="24" high="27" type="hex"/>
9317ec681f3Smrg		</reg32>
9327ec681f3Smrg		<reg32 offset="0x1" name="BUF_INFO">
9337ec681f3Smrg			<bitfield name="COLOR_FORMAT" low="0" high="5" type="a4xx_color_fmt"/>
9347ec681f3Smrg			<!--
9357ec681f3Smrg			    guestimate position of COLOR_TILE_MODE..  this works out if
9367ec681f3Smrg			    common value is 2, like on a3xx..
9377ec681f3Smrg			 -->
9387ec681f3Smrg			<bitfield name="COLOR_TILE_MODE" low="6" high="7" type="a4xx_tile_mode"/>
9397ec681f3Smrg			<bitfield name="DITHER_MODE" low="9" high="10" type="adreno_rb_dither_mode"/>
9407ec681f3Smrg			<bitfield name="COLOR_SWAP" low="11" high="12" type="a3xx_color_swap"/>
9417ec681f3Smrg			<bitfield name="COLOR_SRGB" pos="13" type="boolean"/>
9427ec681f3Smrg			<!-- note: possibly some # of lsb's aren't there: -->
9437ec681f3Smrg			<doc>
9447ec681f3Smrg				Pitch (actually, appears to be pitch in bytes, so really is a stride)
9457ec681f3Smrg				in GMEM, so pitch of the current tile.
9467ec681f3Smrg			</doc>
9477ec681f3Smrg			<bitfield name="COLOR_BUF_PITCH" low="14" high="31" shr="4" type="uint"/>
9487ec681f3Smrg		</reg32>
9497ec681f3Smrg		<reg32 offset="0x2" name="BASE"/>
9507ec681f3Smrg		<reg32 offset="0x3" name="CONTROL3">
9517ec681f3Smrg			<!-- probably missing some lsb's.. and guessing upper size -->
9527ec681f3Smrg			<!-- pitch * cpp * msaa: -->
9537ec681f3Smrg			<bitfield name="STRIDE" low="3" high="25" type="uint"/>
9547ec681f3Smrg		</reg32>
9557ec681f3Smrg		<reg32 offset="0x4" name="BLEND_CONTROL">
9567ec681f3Smrg			<bitfield name="RGB_SRC_FACTOR" low="0" high="4" type="adreno_rb_blend_factor"/>
9577ec681f3Smrg			<bitfield name="RGB_BLEND_OPCODE" low="5" high="7" type="a3xx_rb_blend_opcode"/>
9587ec681f3Smrg			<bitfield name="RGB_DEST_FACTOR" low="8" high="12" type="adreno_rb_blend_factor"/>
9597ec681f3Smrg			<bitfield name="ALPHA_SRC_FACTOR" low="16" high="20" type="adreno_rb_blend_factor"/>
9607ec681f3Smrg			<bitfield name="ALPHA_BLEND_OPCODE" low="21" high="23" type="a3xx_rb_blend_opcode"/>
9617ec681f3Smrg			<bitfield name="ALPHA_DEST_FACTOR" low="24" high="28" type="adreno_rb_blend_factor"/>
9627ec681f3Smrg		</reg32>
9637ec681f3Smrg	</array>
9647ec681f3Smrg
9657ec681f3Smrg	<reg32 offset="0x20f0" name="RB_BLEND_RED">
9667ec681f3Smrg		<bitfield name="UINT" low="0" high="7" type="hex"/>
9677ec681f3Smrg		<bitfield name="SINT" low="8" high="15" type="hex"/>
9687ec681f3Smrg		<bitfield name="FLOAT" low="16" high="31" type="float"/>
9697ec681f3Smrg	</reg32>
9707ec681f3Smrg	<reg32 offset="0x20f1" name="RB_BLEND_RED_F32" type="float"/>
9717ec681f3Smrg
9727ec681f3Smrg	<reg32 offset="0x20f2" name="RB_BLEND_GREEN">
9737ec681f3Smrg		<bitfield name="UINT" low="0" high="7" type="hex"/>
9747ec681f3Smrg		<bitfield name="SINT" low="8" high="15" type="hex"/>
9757ec681f3Smrg		<bitfield name="FLOAT" low="16" high="31" type="float"/>
9767ec681f3Smrg	</reg32>
9777ec681f3Smrg	<reg32 offset="0x20f3" name="RB_BLEND_GREEN_F32" type="float"/>
9787ec681f3Smrg
9797ec681f3Smrg	<reg32 offset="0x20f4" name="RB_BLEND_BLUE">
9807ec681f3Smrg		<bitfield name="UINT" low="0" high="7" type="hex"/>
9817ec681f3Smrg		<bitfield name="SINT" low="8" high="15" type="hex"/>
9827ec681f3Smrg		<bitfield name="FLOAT" low="16" high="31" type="float"/>
9837ec681f3Smrg	</reg32>
9847ec681f3Smrg	<reg32 offset="0x20f5" name="RB_BLEND_BLUE_F32" type="float"/>
9857ec681f3Smrg
9867ec681f3Smrg	<reg32 offset="0x20f6" name="RB_BLEND_ALPHA">
9877ec681f3Smrg		<bitfield name="UINT" low="0" high="7" type="hex"/>
9887ec681f3Smrg		<bitfield name="SINT" low="8" high="15" type="hex"/>
9897ec681f3Smrg		<bitfield name="FLOAT" low="16" high="31" type="float"/>
9907ec681f3Smrg	</reg32>
9917ec681f3Smrg	<reg32 offset="0x20f7" name="RB_BLEND_ALPHA_F32" type="float"/>
9927ec681f3Smrg
9937ec681f3Smrg	<reg32 offset="0x20f8" name="RB_ALPHA_CONTROL">
9947ec681f3Smrg		<bitfield name="ALPHA_REF" low="0" high="7" type="hex"/>
9957ec681f3Smrg		<bitfield name="ALPHA_TEST" pos="8" type="boolean"/>
9967ec681f3Smrg		<bitfield name="ALPHA_TEST_FUNC" low="9" high="11" type="adreno_compare_func"/>
9977ec681f3Smrg	</reg32>
9987ec681f3Smrg	<reg32 offset="0x20f9" name="RB_FS_OUTPUT">
9997ec681f3Smrg		<!-- per-mrt enable bit -->
10007ec681f3Smrg		<bitfield name="ENABLE_BLEND" low="0" high="7"/>
10017ec681f3Smrg		<bitfield name="INDEPENDENT_BLEND" pos="8" type="boolean"/>
10027ec681f3Smrg		<!-- a guess? -->
10037ec681f3Smrg		<bitfield name="SAMPLE_MASK" low="16" high="31"/>
10047ec681f3Smrg	</reg32>
10057ec681f3Smrg	<reg32 offset="0x20fa" name="RB_SAMPLE_COUNT_CONTROL">
10067ec681f3Smrg		<bitfield name="COPY" pos="1" type="boolean"/>
10077ec681f3Smrg		<bitfield name="ADDR" low="2" high="31" shr="2"/>
10087ec681f3Smrg	</reg32>
10097ec681f3Smrg	<!-- always 00000000 for binning pass, else 0000000f: -->
10107ec681f3Smrg	<reg32 offset="0x20fb" name="RB_RENDER_COMPONENTS">
10117ec681f3Smrg		<bitfield name="RT0" low="0" high="3"/>
10127ec681f3Smrg		<bitfield name="RT1" low="4" high="7"/>
10137ec681f3Smrg		<bitfield name="RT2" low="8" high="11"/>
10147ec681f3Smrg		<bitfield name="RT3" low="12" high="15"/>
10157ec681f3Smrg		<bitfield name="RT4" low="16" high="19"/>
10167ec681f3Smrg		<bitfield name="RT5" low="20" high="23"/>
10177ec681f3Smrg		<bitfield name="RT6" low="24" high="27"/>
10187ec681f3Smrg		<bitfield name="RT7" low="28" high="31"/>
10197ec681f3Smrg	</reg32>
10207ec681f3Smrg
10217ec681f3Smrg	<reg32 offset="0x20fc" name="RB_COPY_CONTROL">
10227ec681f3Smrg		<!-- not sure # of bits -->
10237ec681f3Smrg		<bitfield name="MSAA_RESOLVE" low="0" high="1" type="a3xx_msaa_samples"/>
10247ec681f3Smrg		<bitfield name="MODE" low="4" high="6" type="adreno_rb_copy_control_mode"/>
10257ec681f3Smrg		<bitfield name="FASTCLEAR" low="8" high="11" type="hex"/>
10267ec681f3Smrg		<bitfield name="GMEM_BASE" low="14" high="31" shr="14" type="hex"/>
10277ec681f3Smrg	</reg32>
10287ec681f3Smrg	<reg32 offset="0x20fd" name="RB_COPY_DEST_BASE">
10297ec681f3Smrg		<bitfield name="BASE" low="5" high="31" shr="5" type="hex"/>
10307ec681f3Smrg	</reg32>
10317ec681f3Smrg	<reg32 offset="0x20fe" name="RB_COPY_DEST_PITCH">
10327ec681f3Smrg		<doc>actually, appears to be pitch in bytes, so really is a stride</doc>
10337ec681f3Smrg		<!-- not actually sure about max pitch... -->
10347ec681f3Smrg		<bitfield name="PITCH" low="0" high="31" shr="5" type="uint"/>
10357ec681f3Smrg	</reg32>
10367ec681f3Smrg	<reg32 offset="0x20ff" name="RB_COPY_DEST_INFO">
10377ec681f3Smrg		<bitfield name="FORMAT" low="2" high="7" type="a4xx_color_fmt"/>
10387ec681f3Smrg		<bitfield name="SWAP" low="8" high="9" type="a3xx_color_swap"/>
10397ec681f3Smrg		<bitfield name="DITHER_MODE" low="10" high="11" type="adreno_rb_dither_mode"/>
10407ec681f3Smrg		<bitfield name="COMPONENT_ENABLE" low="14" high="17" type="hex"/>
10417ec681f3Smrg		<bitfield name="ENDIAN" low="18" high="20" type="adreno_rb_surface_endian"/>
10427ec681f3Smrg		<bitfield name="TILE" low="24" high="25" type="a4xx_tile_mode"/>
10437ec681f3Smrg	</reg32>
10447ec681f3Smrg	<reg32 offset="0x2100" name="RB_FS_OUTPUT_REG">
10457ec681f3Smrg		<!-- bit0 set except for binning pass.. -->
10467ec681f3Smrg		<bitfield name="MRT" low="0" high="3" type="uint"/>
10477ec681f3Smrg		<bitfield name="FRAG_WRITES_Z" pos="5" type="boolean"/>
10487ec681f3Smrg	</reg32>
10497ec681f3Smrg	<reg32 offset="0x2101" name="RB_DEPTH_CONTROL">
10507ec681f3Smrg		<!--
10517ec681f3Smrg			guessing that this matches a2xx with the stencil fields
10527ec681f3Smrg			moved out into RB_STENCIL_CONTROL?
10537ec681f3Smrg		 -->
10547ec681f3Smrg		<bitfield name="FRAG_WRITES_Z" pos="0" type="boolean"/>
10557ec681f3Smrg		<bitfield name="Z_TEST_ENABLE" pos="1" type="boolean"/>
10567ec681f3Smrg		<bitfield name="Z_WRITE_ENABLE" pos="2" type="boolean"/>
10577ec681f3Smrg		<bitfield name="ZFUNC" low="4" high="6" type="adreno_compare_func"/>
10587ec681f3Smrg		<bitfield name="Z_CLAMP_ENABLE" pos="7" type="boolean"/>
10597ec681f3Smrg		<bitfield name="EARLY_Z_DISABLE" pos="16" type="boolean"/>
10607ec681f3Smrg		<bitfield name="FORCE_FRAGZ_TO_FS" pos="17" type="boolean"/>
10617ec681f3Smrg		<doc>Z_READ_ENABLE bit is set for zfunc other than GL_ALWAYS or GL_NEVER</doc>
10627ec681f3Smrg		<bitfield name="Z_READ_ENABLE" pos="31" type="boolean"/>
10637ec681f3Smrg	</reg32>
10647ec681f3Smrg	<reg32 offset="0x2102" name="RB_DEPTH_CLEAR"/>
10657ec681f3Smrg	<reg32 offset="0x2103" name="RB_DEPTH_INFO">
10667ec681f3Smrg		<bitfield name="DEPTH_FORMAT" low="0" high="1" type="a4xx_depth_format"/>
10677ec681f3Smrg		<doc>
10687ec681f3Smrg			DEPTH_BASE is offset in GMEM to depth/stencil buffer, ie
10697ec681f3Smrg			bin_w * bin_h / 1024 (possible rounded up to multiple of
10707ec681f3Smrg			something??  ie. 39 becomes 40, 78 becomes 80.. 75 becomes
10717ec681f3Smrg			80.. so maybe it needs to be multiple of 8??
10727ec681f3Smrg		</doc>
10737ec681f3Smrg		<bitfield name="DEPTH_BASE" low="12" high="31" shr="12" type="hex"/>
10747ec681f3Smrg	</reg32>
10757ec681f3Smrg	<reg32 offset="0x2104" name="RB_DEPTH_PITCH" shr="5" type="uint">
10767ec681f3Smrg		<doc>stride of depth/stencil buffer</doc>
10777ec681f3Smrg	</reg32>
10787ec681f3Smrg	<reg32 offset="0x2105" name="RB_DEPTH_PITCH2" shr="5" type="uint">
10797ec681f3Smrg		<doc>???</doc>
10807ec681f3Smrg	</reg32>
10817ec681f3Smrg	<reg32 offset="0x2106" name="RB_STENCIL_CONTROL">
10827ec681f3Smrg		<bitfield name="STENCIL_ENABLE" pos="0" type="boolean"/>
10837ec681f3Smrg		<bitfield name="STENCIL_ENABLE_BF" pos="1" type="boolean"/>
10847ec681f3Smrg		<!--
10857ec681f3Smrg			set for stencil operations that require read from stencil
10867ec681f3Smrg			buffer, but not for example for stencil clear (which does
10877ec681f3Smrg			not require read).. so guessing this is analogous to
10887ec681f3Smrg			READ_DEST_ENABLE for color buffer..
10897ec681f3Smrg		 -->
10907ec681f3Smrg		<bitfield name="STENCIL_READ" pos="2" type="boolean"/>
10917ec681f3Smrg		<bitfield name="FUNC" low="8" high="10" type="adreno_compare_func"/>
10927ec681f3Smrg		<bitfield name="FAIL" low="11" high="13" type="adreno_stencil_op"/>
10937ec681f3Smrg		<bitfield name="ZPASS" low="14" high="16" type="adreno_stencil_op"/>
10947ec681f3Smrg		<bitfield name="ZFAIL" low="17" high="19" type="adreno_stencil_op"/>
10957ec681f3Smrg		<bitfield name="FUNC_BF" low="20" high="22" type="adreno_compare_func"/>
10967ec681f3Smrg		<bitfield name="FAIL_BF" low="23" high="25" type="adreno_stencil_op"/>
10977ec681f3Smrg		<bitfield name="ZPASS_BF" low="26" high="28" type="adreno_stencil_op"/>
10987ec681f3Smrg		<bitfield name="ZFAIL_BF" low="29" high="31" type="adreno_stencil_op"/>
10997ec681f3Smrg	</reg32>
11007ec681f3Smrg	<reg32 offset="0x2107" name="RB_STENCIL_CONTROL2">
11017ec681f3Smrg		<!--
11027ec681f3Smrg		This seems to be set by blob if there is a stencil buffer
11037ec681f3Smrg		at all in GMEM, regardless of whether it is enabled for
11047ec681f3Smrg		a particular draw (ie. RB_STENCIL_CONTROL).  Not really
11057ec681f3Smrg		sure if that is required or just a quirk of the blob
11067ec681f3Smrg		-->
11077ec681f3Smrg		<bitfield name="STENCIL_BUFFER" pos="0" type="boolean"/>
11087ec681f3Smrg	</reg32>
11097ec681f3Smrg	<reg32 offset="0x2108" name="RB_STENCIL_INFO">
11107ec681f3Smrg		<bitfield name="SEPARATE_STENCIL" pos="0" type="boolean"/>
11117ec681f3Smrg		<doc>Base address for stencil when not using interleaved depth/stencil</doc>
11127ec681f3Smrg		<bitfield name="STENCIL_BASE" low="12" high="31" shr="12" type="hex"/>
11137ec681f3Smrg	</reg32>
11147ec681f3Smrg	<reg32 offset="0x2109" name="RB_STENCIL_PITCH" shr="5" type="uint">
11157ec681f3Smrg		<doc>pitch of stencil buffer when not using interleaved depth/stencil</doc>
11167ec681f3Smrg	</reg32>
11177ec681f3Smrg
11187ec681f3Smrg	<reg32 offset="0x210b" name="RB_STENCILREFMASK" type="adreno_rb_stencilrefmask"/>
11197ec681f3Smrg	<reg32 offset="0x210c" name="RB_STENCILREFMASK_BF" type="adreno_rb_stencilrefmask"/>
11207ec681f3Smrg	<reg32 offset="0x210d" name="RB_BIN_OFFSET" type="adreno_reg_xy"/>
11217ec681f3Smrg	<array offset="0x2120" name="RB_VPORT_Z_CLAMP" stride="2" length="16">
11227ec681f3Smrg		<reg32 offset="0x0" name="MIN"/>
11237ec681f3Smrg		<reg32 offset="0x1" name="MAX"/>
11247ec681f3Smrg	</array>
11257ec681f3Smrg
11267ec681f3Smrg	<!-- RBBM registers -->
11277ec681f3Smrg	<reg32 offset="0x0000" name="RBBM_HW_VERSION"/>
11287ec681f3Smrg	<reg32 offset="0x0002" name="RBBM_HW_CONFIGURATION"/>
11297ec681f3Smrg	<array offset="0x4" name="RBBM_CLOCK_CTL_TP" stride="1" length="4">
11307ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
11317ec681f3Smrg	</array>
11327ec681f3Smrg	<array offset="0x8" name="RBBM_CLOCK_CTL2_TP" stride="1" length="4">
11337ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
11347ec681f3Smrg	</array>
11357ec681f3Smrg	<array offset="0xc" name="RBBM_CLOCK_HYST_TP" stride="1" length="4">
11367ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
11377ec681f3Smrg	</array>
11387ec681f3Smrg	<array offset="0x10" name="RBBM_CLOCK_DELAY_TP" stride="1" length="4">
11397ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
11407ec681f3Smrg	</array>
11417ec681f3Smrg	<reg32 offset="0x0014" name="RBBM_CLOCK_CTL_UCHE "/>
11427ec681f3Smrg	<reg32 offset="0x0015" name="RBBM_CLOCK_CTL2_UCHE"/>
11437ec681f3Smrg	<reg32 offset="0x0016" name="RBBM_CLOCK_CTL3_UCHE"/>
11447ec681f3Smrg	<reg32 offset="0x0017" name="RBBM_CLOCK_CTL4_UCHE"/>
11457ec681f3Smrg	<reg32 offset="0x0018" name="RBBM_CLOCK_HYST_UCHE"/>
11467ec681f3Smrg	<reg32 offset="0x0019" name="RBBM_CLOCK_DELAY_UCHE"/>
11477ec681f3Smrg	<reg32 offset="0x001a" name="RBBM_CLOCK_MODE_GPC"/>
11487ec681f3Smrg	<reg32 offset="0x001b" name="RBBM_CLOCK_DELAY_GPC"/>
11497ec681f3Smrg	<reg32 offset="0x001c" name="RBBM_CLOCK_HYST_GPC"/>
11507ec681f3Smrg	<reg32 offset="0x001d" name="RBBM_CLOCK_CTL_TSE_RAS_RBBM"/>
11517ec681f3Smrg	<reg32 offset="0x001e" name="RBBM_CLOCK_HYST_TSE_RAS_RBBM"/>
11527ec681f3Smrg	<reg32 offset="0x001f" name="RBBM_CLOCK_DELAY_TSE_RAS_RBBM"/>
11537ec681f3Smrg	<reg32 offset="0x0020" name="RBBM_CLOCK_CTL"/>
11547ec681f3Smrg	<reg32 offset="0x0021" name="RBBM_SP_HYST_CNT"/>
11557ec681f3Smrg	<reg32 offset="0x0022" name="RBBM_SW_RESET_CMD"/>
11567ec681f3Smrg	<reg32 offset="0x0023" name="RBBM_AHB_CTL0"/>
11577ec681f3Smrg	<reg32 offset="0x0024" name="RBBM_AHB_CTL1"/>
11587ec681f3Smrg	<reg32 offset="0x0025" name="RBBM_AHB_CMD"/>
11597ec681f3Smrg	<reg32 offset="0x0026" name="RBBM_RB_SUB_BLOCK_SEL_CTL"/>
11607ec681f3Smrg	<reg32 offset="0x0028" name="RBBM_RAM_ACC_63_32"/>
11617ec681f3Smrg	<reg32 offset="0x002b" name="RBBM_WAIT_IDLE_CLOCKS_CTL"/>
11627ec681f3Smrg	<reg32 offset="0x002f" name="RBBM_INTERFACE_HANG_INT_CTL"/>
11637ec681f3Smrg	<reg32 offset="0x0034" name="RBBM_INTERFACE_HANG_MASK_CTL4"/>
11647ec681f3Smrg	<reg32 offset="0x0036" name="RBBM_INT_CLEAR_CMD"/>
11657ec681f3Smrg	<reg32 offset="0x0037" name="RBBM_INT_0_MASK"/>
11667ec681f3Smrg	<reg32 offset="0x003e" name="RBBM_RBBM_CTL"/>
11677ec681f3Smrg	<reg32 offset="0x003f" name="RBBM_AHB_DEBUG_CTL"/>
11687ec681f3Smrg	<reg32 offset="0x0041" name="RBBM_VBIF_DEBUG_CTL"/>
11697ec681f3Smrg	<reg32 offset="0x0042" name="RBBM_CLOCK_CTL2"/>
11707ec681f3Smrg	<reg32 offset="0x0045" name="RBBM_BLOCK_SW_RESET_CMD"/>
11717ec681f3Smrg	<reg32 offset="0x0047" name="RBBM_RESET_CYCLES"/>
11727ec681f3Smrg	<reg32 offset="0x0049" name="RBBM_EXT_TRACE_BUS_CTL"/>
11737ec681f3Smrg	<reg32 offset="0x004a" name="RBBM_CFG_DEBBUS_SEL_A"/>
11747ec681f3Smrg	<reg32 offset="0x004b" name="RBBM_CFG_DEBBUS_SEL_B"/>
11757ec681f3Smrg	<reg32 offset="0x004c" name="RBBM_CFG_DEBBUS_SEL_C"/>
11767ec681f3Smrg	<reg32 offset="0x004d" name="RBBM_CFG_DEBBUS_SEL_D"/>
11777ec681f3Smrg	<reg32 offset="0x0098" name="RBBM_POWER_CNTL_IP">
11787ec681f3Smrg		<bitfield name="SW_COLLAPSE" pos="0" type="boolean"/>
11797ec681f3Smrg		<bitfield name="SP_TP_PWR_ON" pos="20" type="boolean"/>
11807ec681f3Smrg	</reg32>
11817ec681f3Smrg	<reg32 offset="0x009c" name="RBBM_PERFCTR_CP_0_LO"/>
11827ec681f3Smrg	<reg32 offset="0x009d" name="RBBM_PERFCTR_CP_0_HI"/>
11837ec681f3Smrg	<reg32 offset="0x009e" name="RBBM_PERFCTR_CP_1_LO"/>
11847ec681f3Smrg	<reg32 offset="0x009f" name="RBBM_PERFCTR_CP_1_HI"/>
11857ec681f3Smrg	<reg32 offset="0x00a0" name="RBBM_PERFCTR_CP_2_LO"/>
11867ec681f3Smrg	<reg32 offset="0x00a1" name="RBBM_PERFCTR_CP_2_HI"/>
11877ec681f3Smrg	<reg32 offset="0x00a2" name="RBBM_PERFCTR_CP_3_LO"/>
11887ec681f3Smrg	<reg32 offset="0x00a3" name="RBBM_PERFCTR_CP_3_HI"/>
11897ec681f3Smrg	<reg32 offset="0x00a4" name="RBBM_PERFCTR_CP_4_LO"/>
11907ec681f3Smrg	<reg32 offset="0x00a5" name="RBBM_PERFCTR_CP_4_HI"/>
11917ec681f3Smrg	<reg32 offset="0x00a6" name="RBBM_PERFCTR_CP_5_LO"/>
11927ec681f3Smrg	<reg32 offset="0x00a7" name="RBBM_PERFCTR_CP_5_HI"/>
11937ec681f3Smrg	<reg32 offset="0x00a8" name="RBBM_PERFCTR_CP_6_LO"/>
11947ec681f3Smrg	<reg32 offset="0x00a9" name="RBBM_PERFCTR_CP_6_HI"/>
11957ec681f3Smrg	<reg32 offset="0x00aa" name="RBBM_PERFCTR_CP_7_LO"/>
11967ec681f3Smrg	<reg32 offset="0x00ab" name="RBBM_PERFCTR_CP_7_HI"/>
11977ec681f3Smrg	<reg32 offset="0x00ac" name="RBBM_PERFCTR_RBBM_0_LO"/>
11987ec681f3Smrg	<reg32 offset="0x00ad" name="RBBM_PERFCTR_RBBM_0_HI"/>
11997ec681f3Smrg	<reg32 offset="0x00ae" name="RBBM_PERFCTR_RBBM_1_LO"/>
12007ec681f3Smrg	<reg32 offset="0x00af" name="RBBM_PERFCTR_RBBM_1_HI"/>
12017ec681f3Smrg	<reg32 offset="0x00b0" name="RBBM_PERFCTR_RBBM_2_LO"/>
12027ec681f3Smrg	<reg32 offset="0x00b1" name="RBBM_PERFCTR_RBBM_2_HI"/>
12037ec681f3Smrg	<reg32 offset="0x00b2" name="RBBM_PERFCTR_RBBM_3_LO"/>
12047ec681f3Smrg	<reg32 offset="0x00b3" name="RBBM_PERFCTR_RBBM_3_HI"/>
12057ec681f3Smrg	<reg32 offset="0x00b4" name="RBBM_PERFCTR_PC_0_LO"/>
12067ec681f3Smrg	<reg32 offset="0x00b5" name="RBBM_PERFCTR_PC_0_HI"/>
12077ec681f3Smrg	<reg32 offset="0x00b6" name="RBBM_PERFCTR_PC_1_LO"/>
12087ec681f3Smrg	<reg32 offset="0x00b7" name="RBBM_PERFCTR_PC_1_HI"/>
12097ec681f3Smrg	<reg32 offset="0x00b8" name="RBBM_PERFCTR_PC_2_LO"/>
12107ec681f3Smrg	<reg32 offset="0x00b9" name="RBBM_PERFCTR_PC_2_HI"/>
12117ec681f3Smrg	<reg32 offset="0x00ba" name="RBBM_PERFCTR_PC_3_LO"/>
12127ec681f3Smrg	<reg32 offset="0x00bb" name="RBBM_PERFCTR_PC_3_HI"/>
12137ec681f3Smrg	<reg32 offset="0x00bc" name="RBBM_PERFCTR_PC_4_LO"/>
12147ec681f3Smrg	<reg32 offset="0x00bd" name="RBBM_PERFCTR_PC_4_HI"/>
12157ec681f3Smrg	<reg32 offset="0x00be" name="RBBM_PERFCTR_PC_5_LO"/>
12167ec681f3Smrg	<reg32 offset="0x00bf" name="RBBM_PERFCTR_PC_5_HI"/>
12177ec681f3Smrg	<reg32 offset="0x00c0" name="RBBM_PERFCTR_PC_6_LO"/>
12187ec681f3Smrg	<reg32 offset="0x00c1" name="RBBM_PERFCTR_PC_6_HI"/>
12197ec681f3Smrg	<reg32 offset="0x00c2" name="RBBM_PERFCTR_PC_7_LO"/>
12207ec681f3Smrg	<reg32 offset="0x00c3" name="RBBM_PERFCTR_PC_7_HI"/>
12217ec681f3Smrg	<reg32 offset="0x00c4" name="RBBM_PERFCTR_VFD_0_LO"/>
12227ec681f3Smrg	<reg32 offset="0x00c5" name="RBBM_PERFCTR_VFD_0_HI"/>
12237ec681f3Smrg	<reg32 offset="0x00c6" name="RBBM_PERFCTR_VFD_1_LO"/>
12247ec681f3Smrg	<reg32 offset="0x00c7" name="RBBM_PERFCTR_VFD_1_HI"/>
12257ec681f3Smrg	<reg32 offset="0x00c8" name="RBBM_PERFCTR_VFD_2_LO"/>
12267ec681f3Smrg	<reg32 offset="0x00c9" name="RBBM_PERFCTR_VFD_2_HI"/>
12277ec681f3Smrg	<reg32 offset="0x00ca" name="RBBM_PERFCTR_VFD_3_LO"/>
12287ec681f3Smrg	<reg32 offset="0x00cb" name="RBBM_PERFCTR_VFD_3_HI"/>
12297ec681f3Smrg	<reg32 offset="0x00cc" name="RBBM_PERFCTR_VFD_4_LO"/>
12307ec681f3Smrg	<reg32 offset="0x00cd" name="RBBM_PERFCTR_VFD_4_HI"/>
12317ec681f3Smrg	<reg32 offset="0x00ce" name="RBBM_PERFCTR_VFD_5_LO"/>
12327ec681f3Smrg	<reg32 offset="0x00cf" name="RBBM_PERFCTR_VFD_5_HI"/>
12337ec681f3Smrg	<reg32 offset="0x00d0" name="RBBM_PERFCTR_VFD_6_LO"/>
12347ec681f3Smrg	<reg32 offset="0x00d1" name="RBBM_PERFCTR_VFD_6_HI"/>
12357ec681f3Smrg	<reg32 offset="0x00d2" name="RBBM_PERFCTR_VFD_7_LO"/>
12367ec681f3Smrg	<reg32 offset="0x00d3" name="RBBM_PERFCTR_VFD_7_HI"/>
12377ec681f3Smrg	<reg32 offset="0x00d4" name="RBBM_PERFCTR_HLSQ_0_LO"/>
12387ec681f3Smrg	<reg32 offset="0x00d5" name="RBBM_PERFCTR_HLSQ_0_HI"/>
12397ec681f3Smrg	<reg32 offset="0x00d6" name="RBBM_PERFCTR_HLSQ_1_LO"/>
12407ec681f3Smrg	<reg32 offset="0x00d7" name="RBBM_PERFCTR_HLSQ_1_HI"/>
12417ec681f3Smrg	<reg32 offset="0x00d8" name="RBBM_PERFCTR_HLSQ_2_LO"/>
12427ec681f3Smrg	<reg32 offset="0x00d9" name="RBBM_PERFCTR_HLSQ_2_HI"/>
12437ec681f3Smrg	<reg32 offset="0x00da" name="RBBM_PERFCTR_HLSQ_3_LO"/>
12447ec681f3Smrg	<reg32 offset="0x00db" name="RBBM_PERFCTR_HLSQ_3_HI"/>
12457ec681f3Smrg	<reg32 offset="0x00dc" name="RBBM_PERFCTR_HLSQ_4_LO"/>
12467ec681f3Smrg	<reg32 offset="0x00dd" name="RBBM_PERFCTR_HLSQ_4_HI"/>
12477ec681f3Smrg	<reg32 offset="0x00de" name="RBBM_PERFCTR_HLSQ_5_LO"/>
12487ec681f3Smrg	<reg32 offset="0x00df" name="RBBM_PERFCTR_HLSQ_5_HI"/>
12497ec681f3Smrg	<reg32 offset="0x00e0" name="RBBM_PERFCTR_HLSQ_6_LO"/>
12507ec681f3Smrg	<reg32 offset="0x00e1" name="RBBM_PERFCTR_HLSQ_6_HI"/>
12517ec681f3Smrg	<reg32 offset="0x00e2" name="RBBM_PERFCTR_HLSQ_7_LO"/>
12527ec681f3Smrg	<reg32 offset="0x00e3" name="RBBM_PERFCTR_HLSQ_7_HI"/>
12537ec681f3Smrg	<reg32 offset="0x00e4" name="RBBM_PERFCTR_VPC_0_LO"/>
12547ec681f3Smrg	<reg32 offset="0x00e5" name="RBBM_PERFCTR_VPC_0_HI"/>
12557ec681f3Smrg	<reg32 offset="0x00e6" name="RBBM_PERFCTR_VPC_1_LO"/>
12567ec681f3Smrg	<reg32 offset="0x00e7" name="RBBM_PERFCTR_VPC_1_HI"/>
12577ec681f3Smrg	<reg32 offset="0x00e8" name="RBBM_PERFCTR_VPC_2_LO"/>
12587ec681f3Smrg	<reg32 offset="0x00e9" name="RBBM_PERFCTR_VPC_2_HI"/>
12597ec681f3Smrg	<reg32 offset="0x00ea" name="RBBM_PERFCTR_VPC_3_LO"/>
12607ec681f3Smrg	<reg32 offset="0x00eb" name="RBBM_PERFCTR_VPC_3_HI"/>
12617ec681f3Smrg	<reg32 offset="0x00ec" name="RBBM_PERFCTR_CCU_0_LO"/>
12627ec681f3Smrg	<reg32 offset="0x00ed" name="RBBM_PERFCTR_CCU_0_HI"/>
12637ec681f3Smrg	<reg32 offset="0x00ee" name="RBBM_PERFCTR_CCU_1_LO"/>
12647ec681f3Smrg	<reg32 offset="0x00ef" name="RBBM_PERFCTR_CCU_1_HI"/>
12657ec681f3Smrg	<reg32 offset="0x00f0" name="RBBM_PERFCTR_CCU_2_LO"/>
12667ec681f3Smrg	<reg32 offset="0x00f1" name="RBBM_PERFCTR_CCU_2_HI"/>
12677ec681f3Smrg	<reg32 offset="0x00f2" name="RBBM_PERFCTR_CCU_3_LO"/>
12687ec681f3Smrg	<reg32 offset="0x00f3" name="RBBM_PERFCTR_CCU_3_HI"/>
12697ec681f3Smrg	<reg32 offset="0x00f4" name="RBBM_PERFCTR_TSE_0_LO"/>
12707ec681f3Smrg	<reg32 offset="0x00f5" name="RBBM_PERFCTR_TSE_0_HI"/>
12717ec681f3Smrg	<reg32 offset="0x00f6" name="RBBM_PERFCTR_TSE_1_LO"/>
12727ec681f3Smrg	<reg32 offset="0x00f7" name="RBBM_PERFCTR_TSE_1_HI"/>
12737ec681f3Smrg	<reg32 offset="0x00f8" name="RBBM_PERFCTR_TSE_2_LO"/>
12747ec681f3Smrg	<reg32 offset="0x00f9" name="RBBM_PERFCTR_TSE_2_HI"/>
12757ec681f3Smrg	<reg32 offset="0x00fa" name="RBBM_PERFCTR_TSE_3_LO"/>
12767ec681f3Smrg	<reg32 offset="0x00fb" name="RBBM_PERFCTR_TSE_3_HI"/>
12777ec681f3Smrg	<reg32 offset="0x00fc" name="RBBM_PERFCTR_RAS_0_LO"/>
12787ec681f3Smrg	<reg32 offset="0x00fd" name="RBBM_PERFCTR_RAS_0_HI"/>
12797ec681f3Smrg	<reg32 offset="0x00fe" name="RBBM_PERFCTR_RAS_1_LO"/>
12807ec681f3Smrg	<reg32 offset="0x00ff" name="RBBM_PERFCTR_RAS_1_HI"/>
12817ec681f3Smrg	<reg32 offset="0x0100" name="RBBM_PERFCTR_RAS_2_LO"/>
12827ec681f3Smrg	<reg32 offset="0x0101" name="RBBM_PERFCTR_RAS_2_HI"/>
12837ec681f3Smrg	<reg32 offset="0x0102" name="RBBM_PERFCTR_RAS_3_LO"/>
12847ec681f3Smrg	<reg32 offset="0x0103" name="RBBM_PERFCTR_RAS_3_HI"/>
12857ec681f3Smrg	<reg32 offset="0x0104" name="RBBM_PERFCTR_UCHE_0_LO"/>
12867ec681f3Smrg	<reg32 offset="0x0105" name="RBBM_PERFCTR_UCHE_0_HI"/>
12877ec681f3Smrg	<reg32 offset="0x0106" name="RBBM_PERFCTR_UCHE_1_LO"/>
12887ec681f3Smrg	<reg32 offset="0x0107" name="RBBM_PERFCTR_UCHE_1_HI"/>
12897ec681f3Smrg	<reg32 offset="0x0108" name="RBBM_PERFCTR_UCHE_2_LO"/>
12907ec681f3Smrg	<reg32 offset="0x0109" name="RBBM_PERFCTR_UCHE_2_HI"/>
12917ec681f3Smrg	<reg32 offset="0x010a" name="RBBM_PERFCTR_UCHE_3_LO"/>
12927ec681f3Smrg	<reg32 offset="0x010b" name="RBBM_PERFCTR_UCHE_3_HI"/>
12937ec681f3Smrg	<reg32 offset="0x010c" name="RBBM_PERFCTR_UCHE_4_LO"/>
12947ec681f3Smrg	<reg32 offset="0x010d" name="RBBM_PERFCTR_UCHE_4_HI"/>
12957ec681f3Smrg	<reg32 offset="0x010e" name="RBBM_PERFCTR_UCHE_5_LO"/>
12967ec681f3Smrg	<reg32 offset="0x010f" name="RBBM_PERFCTR_UCHE_5_HI"/>
12977ec681f3Smrg	<reg32 offset="0x0110" name="RBBM_PERFCTR_UCHE_6_LO"/>
12987ec681f3Smrg	<reg32 offset="0x0111" name="RBBM_PERFCTR_UCHE_6_HI"/>
12997ec681f3Smrg	<reg32 offset="0x0112" name="RBBM_PERFCTR_UCHE_7_LO"/>
13007ec681f3Smrg	<reg32 offset="0x0113" name="RBBM_PERFCTR_UCHE_7_HI"/>
13017ec681f3Smrg	<reg32 offset="0x0114" name="RBBM_PERFCTR_TP_0_LO"/>
13027ec681f3Smrg	<reg32 offset="0x0115" name="RBBM_PERFCTR_TP_0_HI"/>
13037ec681f3Smrg	<reg32 offset="0x0116" name="RBBM_PERFCTR_TP_1_LO"/>
13047ec681f3Smrg	<reg32 offset="0x0117" name="RBBM_PERFCTR_TP_1_HI"/>
13057ec681f3Smrg	<reg32 offset="0x0118" name="RBBM_PERFCTR_TP_2_LO"/>
13067ec681f3Smrg	<reg32 offset="0x0119" name="RBBM_PERFCTR_TP_2_HI"/>
13077ec681f3Smrg	<reg32 offset="0x011a" name="RBBM_PERFCTR_TP_3_LO"/>
13087ec681f3Smrg	<reg32 offset="0x011b" name="RBBM_PERFCTR_TP_3_HI"/>
13097ec681f3Smrg	<reg32 offset="0x011c" name="RBBM_PERFCTR_TP_4_LO"/>
13107ec681f3Smrg	<reg32 offset="0x011d" name="RBBM_PERFCTR_TP_4_HI"/>
13117ec681f3Smrg	<reg32 offset="0x011e" name="RBBM_PERFCTR_TP_5_LO"/>
13127ec681f3Smrg	<reg32 offset="0x011f" name="RBBM_PERFCTR_TP_5_HI"/>
13137ec681f3Smrg	<reg32 offset="0x0120" name="RBBM_PERFCTR_TP_6_LO"/>
13147ec681f3Smrg	<reg32 offset="0x0121" name="RBBM_PERFCTR_TP_6_HI"/>
13157ec681f3Smrg	<reg32 offset="0x0122" name="RBBM_PERFCTR_TP_7_LO"/>
13167ec681f3Smrg	<reg32 offset="0x0123" name="RBBM_PERFCTR_TP_7_HI"/>
13177ec681f3Smrg	<reg32 offset="0x0124" name="RBBM_PERFCTR_SP_0_LO"/>
13187ec681f3Smrg	<reg32 offset="0x0125" name="RBBM_PERFCTR_SP_0_HI"/>
13197ec681f3Smrg	<reg32 offset="0x0126" name="RBBM_PERFCTR_SP_1_LO"/>
13207ec681f3Smrg	<reg32 offset="0x0127" name="RBBM_PERFCTR_SP_1_HI"/>
13217ec681f3Smrg	<reg32 offset="0x0128" name="RBBM_PERFCTR_SP_2_LO"/>
13227ec681f3Smrg	<reg32 offset="0x0129" name="RBBM_PERFCTR_SP_2_HI"/>
13237ec681f3Smrg	<reg32 offset="0x012a" name="RBBM_PERFCTR_SP_3_LO"/>
13247ec681f3Smrg	<reg32 offset="0x012b" name="RBBM_PERFCTR_SP_3_HI"/>
13257ec681f3Smrg	<reg32 offset="0x012c" name="RBBM_PERFCTR_SP_4_LO"/>
13267ec681f3Smrg	<reg32 offset="0x012d" name="RBBM_PERFCTR_SP_4_HI"/>
13277ec681f3Smrg	<reg32 offset="0x012e" name="RBBM_PERFCTR_SP_5_LO"/>
13287ec681f3Smrg	<reg32 offset="0x012f" name="RBBM_PERFCTR_SP_5_HI"/>
13297ec681f3Smrg	<reg32 offset="0x0130" name="RBBM_PERFCTR_SP_6_LO"/>
13307ec681f3Smrg	<reg32 offset="0x0131" name="RBBM_PERFCTR_SP_6_HI"/>
13317ec681f3Smrg	<reg32 offset="0x0132" name="RBBM_PERFCTR_SP_7_LO"/>
13327ec681f3Smrg	<reg32 offset="0x0133" name="RBBM_PERFCTR_SP_7_HI"/>
13337ec681f3Smrg	<reg32 offset="0x0134" name="RBBM_PERFCTR_SP_8_LO"/>
13347ec681f3Smrg	<reg32 offset="0x0135" name="RBBM_PERFCTR_SP_8_HI"/>
13357ec681f3Smrg	<reg32 offset="0x0136" name="RBBM_PERFCTR_SP_9_LO"/>
13367ec681f3Smrg	<reg32 offset="0x0137" name="RBBM_PERFCTR_SP_9_HI"/>
13377ec681f3Smrg	<reg32 offset="0x0138" name="RBBM_PERFCTR_SP_10_LO"/>
13387ec681f3Smrg	<reg32 offset="0x0139" name="RBBM_PERFCTR_SP_10_HI"/>
13397ec681f3Smrg	<reg32 offset="0x013a" name="RBBM_PERFCTR_SP_11_LO"/>
13407ec681f3Smrg	<reg32 offset="0x013b" name="RBBM_PERFCTR_SP_11_HI"/>
13417ec681f3Smrg	<reg32 offset="0x013c" name="RBBM_PERFCTR_RB_0_LO"/>
13427ec681f3Smrg	<reg32 offset="0x013d" name="RBBM_PERFCTR_RB_0_HI"/>
13437ec681f3Smrg	<reg32 offset="0x013e" name="RBBM_PERFCTR_RB_1_LO"/>
13447ec681f3Smrg	<reg32 offset="0x013f" name="RBBM_PERFCTR_RB_1_HI"/>
13457ec681f3Smrg	<reg32 offset="0x0140" name="RBBM_PERFCTR_RB_2_LO"/>
13467ec681f3Smrg	<reg32 offset="0x0141" name="RBBM_PERFCTR_RB_2_HI"/>
13477ec681f3Smrg	<reg32 offset="0x0142" name="RBBM_PERFCTR_RB_3_LO"/>
13487ec681f3Smrg	<reg32 offset="0x0143" name="RBBM_PERFCTR_RB_3_HI"/>
13497ec681f3Smrg	<reg32 offset="0x0144" name="RBBM_PERFCTR_RB_4_LO"/>
13507ec681f3Smrg	<reg32 offset="0x0145" name="RBBM_PERFCTR_RB_4_HI"/>
13517ec681f3Smrg	<reg32 offset="0x0146" name="RBBM_PERFCTR_RB_5_LO"/>
13527ec681f3Smrg	<reg32 offset="0x0147" name="RBBM_PERFCTR_RB_5_HI"/>
13537ec681f3Smrg	<reg32 offset="0x0148" name="RBBM_PERFCTR_RB_6_LO"/>
13547ec681f3Smrg	<reg32 offset="0x0149" name="RBBM_PERFCTR_RB_6_HI"/>
13557ec681f3Smrg	<reg32 offset="0x014a" name="RBBM_PERFCTR_RB_7_LO"/>
13567ec681f3Smrg	<reg32 offset="0x014b" name="RBBM_PERFCTR_RB_7_HI"/>
13577ec681f3Smrg	<reg32 offset="0x014c" name="RBBM_PERFCTR_VSC_0_LO"/>
13587ec681f3Smrg	<reg32 offset="0x014d" name="RBBM_PERFCTR_VSC_0_HI"/>
13597ec681f3Smrg	<reg32 offset="0x014e" name="RBBM_PERFCTR_VSC_1_LO"/>
13607ec681f3Smrg	<reg32 offset="0x014f" name="RBBM_PERFCTR_VSC_1_HI"/>
13617ec681f3Smrg	<reg32 offset="0x0166" name="RBBM_PERFCTR_PWR_0_LO"/>
13627ec681f3Smrg	<reg32 offset="0x0167" name="RBBM_PERFCTR_PWR_0_HI"/>
13637ec681f3Smrg	<reg32 offset="0x0168" name="RBBM_PERFCTR_PWR_1_LO"/>
13647ec681f3Smrg	<reg32 offset="0x0169" name="RBBM_PERFCTR_PWR_1_HI"/>
13657ec681f3Smrg	<reg32 offset="0x016e" name="RBBM_ALWAYSON_COUNTER_LO"/>
13667ec681f3Smrg	<reg32 offset="0x016f" name="RBBM_ALWAYSON_COUNTER_HI"/>
13677ec681f3Smrg	<array offset="0x0068" name="RBBM_CLOCK_CTL_SP" stride="1" length="4">
13687ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13697ec681f3Smrg	</array>
13707ec681f3Smrg	<array offset="0x006c" name="RBBM_CLOCK_CTL2_SP" stride="1" length="4">
13717ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13727ec681f3Smrg	</array>
13737ec681f3Smrg	<array offset="0x0070" name="RBBM_CLOCK_HYST_SP" stride="1" length="4">
13747ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13757ec681f3Smrg	</array>
13767ec681f3Smrg	<array offset="0x0074" name="RBBM_CLOCK_DELAY_SP" stride="1" length="4">
13777ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13787ec681f3Smrg	</array>
13797ec681f3Smrg	<array offset="0x0078" name="RBBM_CLOCK_CTL_RB" stride="1" length="4">
13807ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13817ec681f3Smrg	</array>
13827ec681f3Smrg	<array offset="0x007c" name="RBBM_CLOCK_CTL2_RB" stride="1" length="4">
13837ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13847ec681f3Smrg	</array>
13857ec681f3Smrg	<array offset="0x0082" name="RBBM_CLOCK_CTL_MARB_CCU" stride="1" length="4">
13867ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13877ec681f3Smrg	</array>
13887ec681f3Smrg	<array offset="0x0086" name="RBBM_CLOCK_HYST_RB_MARB_CCU" stride="1" length="4">
13897ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
13907ec681f3Smrg	</array>
13917ec681f3Smrg	<reg32 offset="0x0080" name="RBBM_CLOCK_HYST_COM_DCOM"/>
13927ec681f3Smrg	<reg32 offset="0x0081" name="RBBM_CLOCK_CTL_COM_DCOM"/>
13937ec681f3Smrg	<reg32 offset="0x008a" name="RBBM_CLOCK_CTL_HLSQ"/>
13947ec681f3Smrg	<reg32 offset="0x008b" name="RBBM_CLOCK_HYST_HLSQ"/>
13957ec681f3Smrg	<reg32 offset="0x008c" name="RBBM_CLOCK_DELAY_HLSQ"/>
13967ec681f3Smrg	<bitset name="A4XX_CGC_HLSQ">
13977ec681f3Smrg		<bitfield name="EARLY_CYC" low="20" high="22" type="uint"/>
13987ec681f3Smrg	</bitset>
13997ec681f3Smrg	<reg32 offset="0x008d" name="RBBM_CLOCK_DELAY_COM_DCOM"/>
14007ec681f3Smrg	<array offset="0x008e" name="RBBM_CLOCK_DELAY_RB_MARB_CCU_L1" stride="1" length="4">
14017ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
14027ec681f3Smrg	</array>
14037ec681f3Smrg	<bitset name="A4XX_INT0">
14047ec681f3Smrg		<bitfield name="RBBM_GPU_IDLE" pos="0" type="boolean"/>
14057ec681f3Smrg		<bitfield name="RBBM_AHB_ERROR" pos="1" type="boolean"/>
14067ec681f3Smrg		<bitfield name="RBBM_REG_TIMEOUT" pos="2" type="boolean"/>
14077ec681f3Smrg		<bitfield name="RBBM_ME_MS_TIMEOUT" pos="3" type="boolean"/>
14087ec681f3Smrg		<bitfield name="RBBM_PFP_MS_TIMEOUT" pos="4" type="boolean"/>
14097ec681f3Smrg		<bitfield name="RBBM_ATB_BUS_OVERFLOW" pos="5" type="boolean"/>
14107ec681f3Smrg		<bitfield name="VFD_ERROR" pos="6" type="boolean"/>
14117ec681f3Smrg		<bitfield name="CP_SW_INT" pos="7" type="boolean"/>
14127ec681f3Smrg		<bitfield name="CP_T0_PACKET_IN_IB" pos="8" type="boolean"/>
14137ec681f3Smrg		<bitfield name="CP_OPCODE_ERROR" pos="9" type="boolean"/>
14147ec681f3Smrg		<bitfield name="CP_RESERVED_BIT_ERROR" pos="10" type="boolean"/>
14157ec681f3Smrg		<bitfield name="CP_HW_FAULT" pos="11" type="boolean"/>
14167ec681f3Smrg		<bitfield name="CP_DMA" pos="12" type="boolean"/>
14177ec681f3Smrg		<bitfield name="CP_IB2_INT" pos="13" type="boolean"/>
14187ec681f3Smrg		<bitfield name="CP_IB1_INT" pos="14" type="boolean"/>
14197ec681f3Smrg		<bitfield name="CP_RB_INT" pos="15" type="boolean"/>
14207ec681f3Smrg		<bitfield name="CP_REG_PROTECT_FAULT" pos="16" type="boolean"/>
14217ec681f3Smrg		<bitfield name="CP_RB_DONE_TS" pos="17" type="boolean"/>
14227ec681f3Smrg		<bitfield name="CP_VS_DONE_TS" pos="18" type="boolean"/>
14237ec681f3Smrg		<bitfield name="CP_PS_DONE_TS" pos="19" type="boolean"/>
14247ec681f3Smrg		<bitfield name="CACHE_FLUSH_TS" pos="20" type="boolean"/>
14257ec681f3Smrg		<bitfield name="CP_AHB_ERROR_HALT" pos="21" type="boolean"/>
14267ec681f3Smrg		<bitfield name="MISC_HANG_DETECT" pos="24" type="boolean"/>
14277ec681f3Smrg		<bitfield name="UCHE_OOB_ACCESS" pos="25" type="boolean"/>
14287ec681f3Smrg	</bitset>
14297ec681f3Smrg
14307ec681f3Smrg	<reg32 offset="0x0099" name="RBBM_SP_REGFILE_SLEEP_CNTL_0"/>
14317ec681f3Smrg	<reg32 offset="0x009a" name="RBBM_SP_REGFILE_SLEEP_CNTL_1"/>
14327ec681f3Smrg	<reg32 offset="0x0170" name="RBBM_PERFCTR_CTL"/>
14337ec681f3Smrg	<reg32 offset="0x0171" name="RBBM_PERFCTR_LOAD_CMD0"/>
14347ec681f3Smrg	<reg32 offset="0x0172" name="RBBM_PERFCTR_LOAD_CMD1"/>
14357ec681f3Smrg	<reg32 offset="0x0173" name="RBBM_PERFCTR_LOAD_CMD2"/>
14367ec681f3Smrg	<reg32 offset="0x0174" name="RBBM_PERFCTR_LOAD_VALUE_LO"/>
14377ec681f3Smrg	<reg32 offset="0x0175" name="RBBM_PERFCTR_LOAD_VALUE_HI"/>
14387ec681f3Smrg	<reg32 offset="0x0176" name="RBBM_PERFCTR_RBBM_SEL_0" type="a4xx_rbbm_perfcounter_select"/>
14397ec681f3Smrg	<reg32 offset="0x0177" name="RBBM_PERFCTR_RBBM_SEL_1" type="a4xx_rbbm_perfcounter_select"/>
14407ec681f3Smrg	<reg32 offset="0x0178" name="RBBM_PERFCTR_RBBM_SEL_2" type="a4xx_rbbm_perfcounter_select"/>
14417ec681f3Smrg	<reg32 offset="0x0179" name="RBBM_PERFCTR_RBBM_SEL_3" type="a4xx_rbbm_perfcounter_select"/>
14427ec681f3Smrg	<reg32 offset="0x017a" name="RBBM_GPU_BUSY_MASKED"/>
14437ec681f3Smrg	<reg32 offset="0x017d" name="RBBM_INT_0_STATUS"/>
14447ec681f3Smrg	<reg32 offset="0x0182" name="RBBM_CLOCK_STATUS"/>
14457ec681f3Smrg	<reg32 offset="0x0189" name="RBBM_AHB_STATUS"/>
14467ec681f3Smrg	<reg32 offset="0x018c" name="RBBM_AHB_ME_SPLIT_STATUS"/>
14477ec681f3Smrg	<reg32 offset="0x018d" name="RBBM_AHB_PFP_SPLIT_STATUS"/>
14487ec681f3Smrg	<reg32 offset="0x018f" name="RBBM_AHB_ERROR_STATUS"/>
14497ec681f3Smrg	<reg32 offset="0x0191" name="RBBM_STATUS">
14507ec681f3Smrg		<bitfield name="HI_BUSY" pos="0" type="boolean"/>
14517ec681f3Smrg		<bitfield name="CP_ME_BUSY" pos="1" type="boolean"/>
14527ec681f3Smrg		<bitfield name="CP_PFP_BUSY" pos="2" type="boolean"/>
14537ec681f3Smrg		<bitfield name="CP_NRT_BUSY" pos="14" type="boolean"/>
14547ec681f3Smrg		<bitfield name="VBIF_BUSY" pos="15" type="boolean"/>
14557ec681f3Smrg		<bitfield name="TSE_BUSY" pos="16" type="boolean"/>
14567ec681f3Smrg		<bitfield name="RAS_BUSY" pos="17" type="boolean"/>
14577ec681f3Smrg		<bitfield name="RB_BUSY" pos="18" type="boolean"/>
14587ec681f3Smrg		<bitfield name="PC_DCALL_BUSY" pos="19" type="boolean"/>
14597ec681f3Smrg		<bitfield name="PC_VSD_BUSY" pos="20" type="boolean"/>
14607ec681f3Smrg		<bitfield name="VFD_BUSY" pos="21" type="boolean"/>
14617ec681f3Smrg		<bitfield name="VPC_BUSY" pos="22" type="boolean"/>
14627ec681f3Smrg		<bitfield name="UCHE_BUSY" pos="23" type="boolean"/>
14637ec681f3Smrg		<bitfield name="SP_BUSY" pos="24" type="boolean"/>
14647ec681f3Smrg		<bitfield name="TPL1_BUSY" pos="25" type="boolean"/>
14657ec681f3Smrg		<bitfield name="MARB_BUSY" pos="26" type="boolean"/>
14667ec681f3Smrg		<bitfield name="VSC_BUSY" pos="27" type="boolean"/>
14677ec681f3Smrg		<bitfield name="ARB_BUSY" pos="28" type="boolean"/>
14687ec681f3Smrg		<bitfield name="HLSQ_BUSY" pos="29" type="boolean"/>
14697ec681f3Smrg		<bitfield name="GPU_BUSY_NOHC" pos="30" type="boolean"/>
14707ec681f3Smrg		<bitfield name="GPU_BUSY" pos="31" type="boolean"/>
14717ec681f3Smrg	</reg32>
14727ec681f3Smrg	<reg32 offset="0x019f" name="RBBM_INTERFACE_RRDY_STATUS5"/>
14737ec681f3Smrg	<reg32 offset="0x01b0" name="RBBM_POWER_STATUS">
14747ec681f3Smrg		<bitfield name="SP_TP_PWR_ON" pos="20" type="boolean"/>
14757ec681f3Smrg	</reg32>
14767ec681f3Smrg	<reg32 offset="0x01b8" name="RBBM_WAIT_IDLE_CLOCKS_CTL2"/>
14777ec681f3Smrg
14787ec681f3Smrg	<!-- CP registers -->
14797ec681f3Smrg	<reg32 offset="0x0228" name="CP_SCRATCH_UMASK"/>
14807ec681f3Smrg	<reg32 offset="0x0229" name="CP_SCRATCH_ADDR"/>
14817ec681f3Smrg	<reg32 offset="0x0200" name="CP_RB_BASE"/>
14827ec681f3Smrg	<reg32 offset="0x0201" name="CP_RB_CNTL"/>
14837ec681f3Smrg	<reg32 offset="0x0205" name="CP_RB_WPTR"/>
14847ec681f3Smrg	<reg32 offset="0x0203" name="CP_RB_RPTR_ADDR"/>
14857ec681f3Smrg	<reg32 offset="0x0204" name="CP_RB_RPTR"/>
14867ec681f3Smrg	<reg32 offset="0x0206" name="CP_IB1_BASE"/>
14877ec681f3Smrg	<reg32 offset="0x0207" name="CP_IB1_BUFSZ"/>
14887ec681f3Smrg	<reg32 offset="0x0208" name="CP_IB2_BASE"/>
14897ec681f3Smrg	<reg32 offset="0x0209" name="CP_IB2_BUFSZ"/>
14907ec681f3Smrg	<reg32 offset="0x020c" name="CP_ME_NRT_ADDR"/>
14917ec681f3Smrg	<reg32 offset="0x020d" name="CP_ME_NRT_DATA"/>
14927ec681f3Smrg	<reg32 offset="0x0217" name="CP_ME_RB_DONE_DATA"/>
14937ec681f3Smrg	<reg32 offset="0x0219" name="CP_QUEUE_THRESH2"/>
14947ec681f3Smrg	<reg32 offset="0x021b" name="CP_MERCIU_SIZE"/>
14957ec681f3Smrg	<reg32 offset="0x021c" name="CP_ROQ_ADDR"/>
14967ec681f3Smrg	<reg32 offset="0x021d" name="CP_ROQ_DATA"/>
14977ec681f3Smrg	<reg32 offset="0x021e" name="CP_MEQ_ADDR"/>
14987ec681f3Smrg	<reg32 offset="0x021f" name="CP_MEQ_DATA"/>
14997ec681f3Smrg	<reg32 offset="0x0220" name="CP_MERCIU_ADDR"/>
15007ec681f3Smrg	<reg32 offset="0x0221" name="CP_MERCIU_DATA"/>
15017ec681f3Smrg	<reg32 offset="0x0222" name="CP_MERCIU_DATA2"/>
15027ec681f3Smrg	<reg32 offset="0x0223" name="CP_PFP_UCODE_ADDR"/>
15037ec681f3Smrg	<reg32 offset="0x0224" name="CP_PFP_UCODE_DATA"/>
15047ec681f3Smrg	<reg32 offset="0x0225" name="CP_ME_RAM_WADDR"/>
15057ec681f3Smrg	<reg32 offset="0x0226" name="CP_ME_RAM_RADDR"/>
15067ec681f3Smrg	<reg32 offset="0x0227" name="CP_ME_RAM_DATA"/>
15077ec681f3Smrg	<reg32 offset="0x022a" name="CP_PREEMPT"/>
15087ec681f3Smrg	<reg32 offset="0x022c" name="CP_CNTL"/>
15097ec681f3Smrg	<reg32 offset="0x022d" name="CP_ME_CNTL"/>
15107ec681f3Smrg	<reg32 offset="0x022e" name="CP_DEBUG"/>
15117ec681f3Smrg	<reg32 offset="0x0231" name="CP_DEBUG_ECO_CONTROL"/>
15127ec681f3Smrg	<reg32 offset="0x0232" name="CP_DRAW_STATE_ADDR"/>
15137ec681f3Smrg	<array offset="0x0240" name="CP_PROTECT" stride="1" length="16">
15147ec681f3Smrg		<reg32 offset="0x0" name="REG" type="adreno_cp_protect"/>
15157ec681f3Smrg	</array>
15167ec681f3Smrg	<reg32 offset="0x0250" name="CP_PROTECT_CTRL"/>
15177ec681f3Smrg	<reg32 offset="0x04c0" name="CP_ST_BASE"/>
15187ec681f3Smrg	<reg32 offset="0x04ce" name="CP_STQ_AVAIL"/>
15197ec681f3Smrg	<reg32 offset="0x04d0" name="CP_MERCIU_STAT"/>
15207ec681f3Smrg	<reg32 offset="0x04d2" name="CP_WFI_PEND_CTR"/>
15217ec681f3Smrg	<reg32 offset="0x04d8" name="CP_HW_FAULT"/>
15227ec681f3Smrg	<reg32 offset="0x04da" name="CP_PROTECT_STATUS"/>
15237ec681f3Smrg	<reg32 offset="0x04dd" name="CP_EVENTS_IN_FLIGHT"/>
15247ec681f3Smrg	<reg32 offset="0x0500" name="CP_PERFCTR_CP_SEL_0" type="a4xx_cp_perfcounter_select"/>
15257ec681f3Smrg	<reg32 offset="0x0501" name="CP_PERFCTR_CP_SEL_1" type="a4xx_cp_perfcounter_select"/>
15267ec681f3Smrg	<reg32 offset="0x0502" name="CP_PERFCTR_CP_SEL_2" type="a4xx_cp_perfcounter_select"/>
15277ec681f3Smrg	<reg32 offset="0x0503" name="CP_PERFCTR_CP_SEL_3" type="a4xx_cp_perfcounter_select"/>
15287ec681f3Smrg	<reg32 offset="0x0504" name="CP_PERFCTR_CP_SEL_4" type="a4xx_cp_perfcounter_select"/>
15297ec681f3Smrg	<reg32 offset="0x0505" name="CP_PERFCTR_CP_SEL_5" type="a4xx_cp_perfcounter_select"/>
15307ec681f3Smrg	<reg32 offset="0x0506" name="CP_PERFCTR_CP_SEL_6" type="a4xx_cp_perfcounter_select"/>
15317ec681f3Smrg	<reg32 offset="0x0507" name="CP_PERFCTR_CP_SEL_7" type="a4xx_cp_perfcounter_select"/>
15327ec681f3Smrg	<reg32 offset="0x050b" name="CP_PERFCOMBINER_SELECT"/>
15337ec681f3Smrg	<array offset="0x0578" name="CP_SCRATCH" stride="1" length="23">
15347ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
15357ec681f3Smrg	</array>
15367ec681f3Smrg
15377ec681f3Smrg
15387ec681f3Smrg	<!-- SP registers -->
15397ec681f3Smrg	<reg32 offset="0x0ec0" name="SP_VS_STATUS"/>
15407ec681f3Smrg	<reg32 offset="0x0ec3" name="SP_MODE_CONTROL"/>
15417ec681f3Smrg
15427ec681f3Smrg	<reg32 offset="0x0ec4" name="SP_PERFCTR_SP_SEL_0" type="a4xx_sp_perfcounter_select"/>
15437ec681f3Smrg	<reg32 offset="0x0ec5" name="SP_PERFCTR_SP_SEL_1" type="a4xx_sp_perfcounter_select"/>
15447ec681f3Smrg	<reg32 offset="0x0ec6" name="SP_PERFCTR_SP_SEL_2" type="a4xx_sp_perfcounter_select"/>
15457ec681f3Smrg	<reg32 offset="0x0ec7" name="SP_PERFCTR_SP_SEL_3" type="a4xx_sp_perfcounter_select"/>
15467ec681f3Smrg	<reg32 offset="0x0ec8" name="SP_PERFCTR_SP_SEL_4" type="a4xx_sp_perfcounter_select"/>
15477ec681f3Smrg	<reg32 offset="0x0ec9" name="SP_PERFCTR_SP_SEL_5" type="a4xx_sp_perfcounter_select"/>
15487ec681f3Smrg	<reg32 offset="0x0eca" name="SP_PERFCTR_SP_SEL_6" type="a4xx_sp_perfcounter_select"/>
15497ec681f3Smrg	<reg32 offset="0x0ecb" name="SP_PERFCTR_SP_SEL_7" type="a4xx_sp_perfcounter_select"/>
15507ec681f3Smrg	<reg32 offset="0x0ecc" name="SP_PERFCTR_SP_SEL_8" type="a4xx_sp_perfcounter_select"/>
15517ec681f3Smrg	<reg32 offset="0x0ecd" name="SP_PERFCTR_SP_SEL_9" type="a4xx_sp_perfcounter_select"/>
15527ec681f3Smrg	<reg32 offset="0x0ece" name="SP_PERFCTR_SP_SEL_10" type="a4xx_sp_perfcounter_select"/>
15537ec681f3Smrg	<reg32 offset="0x0ecf" name="SP_PERFCTR_SP_SEL_11" type="a4xx_sp_perfcounter_select"/>
15547ec681f3Smrg
15557ec681f3Smrg	<reg32 offset="0x22c0" name="SP_SP_CTRL_REG">
15567ec681f3Smrg		<bitfield name="BINNING_PASS" pos="19" type="boolean"/>
15577ec681f3Smrg	</reg32>
15587ec681f3Smrg	<reg32 offset="0x22c1" name="SP_INSTR_CACHE_CTRL">
15597ec681f3Smrg		<!-- set when VS in buffer mode: -->
15607ec681f3Smrg		<bitfield name="VS_BUFFER" pos="7" type="boolean"/>
15617ec681f3Smrg		<!-- set when FS in buffer mode: -->
15627ec681f3Smrg		<bitfield name="FS_BUFFER" pos="8" type="boolean"/>
15637ec681f3Smrg		<!-- set when both VS or FS in buffer mode: -->
15647ec681f3Smrg		<bitfield name="INSTR_BUFFER" pos="10" type="boolean"/>
15657ec681f3Smrg		<!-- TODO other bits probably matter when other stages active? -->
15667ec681f3Smrg	</reg32>
15677ec681f3Smrg
15687ec681f3Smrg	<bitset name="a4xx_sp_vs_fs_ctrl_reg0" inline="yes">
15697ec681f3Smrg		<!--
15707ec681f3Smrg			NOTE that SP_{VS,FS}_CTRL_REG1 are different, but so far REG0
15717ec681f3Smrg			appears to be the same..
15727ec681f3Smrg		-->
15737ec681f3Smrg		<bitfield name="THREADMODE" pos="0" type="a3xx_threadmode"/>
15747ec681f3Smrg		<!-- VARYING bit only for FS.. think it controls emitting (ei) flag? -->
15757ec681f3Smrg		<bitfield name="VARYING" pos="1" type="boolean"/>
15767ec681f3Smrg		<!-- maybe CACHEINVALID is two bits?? -->
15777ec681f3Smrg		<bitfield name="CACHEINVALID" pos="2" type="boolean"/>
15787ec681f3Smrg		<doc>
15797ec681f3Smrg			The full/half register footprint is in units of four components,
15807ec681f3Smrg			so if r0.x is used, that counts as all of r0.[xyzw] as used.
15817ec681f3Smrg			There are separate full/half register footprint values as the
15827ec681f3Smrg			full and half registers are independent (not overlapping).
15837ec681f3Smrg			Presumably the thread scheduler hardware allocates the full/half
15847ec681f3Smrg			register names from the actual physical register file and
15857ec681f3Smrg			handles the register renaming.
15867ec681f3Smrg		</doc>
15877ec681f3Smrg		<bitfield name="HALFREGFOOTPRINT" low="4" high="9" type="uint"/>
15887ec681f3Smrg		<bitfield name="FULLREGFOOTPRINT" low="10" high="15" type="uint"/>
15897ec681f3Smrg		<!-- maybe INOUTREGOVERLAP is a bitflag? -->
15907ec681f3Smrg		<bitfield name="INOUTREGOVERLAP" low="18" high="19" type="uint"/>
15917ec681f3Smrg		<bitfield name="THREADSIZE" pos="20" type="a3xx_threadsize"/>
15927ec681f3Smrg		<bitfield name="SUPERTHREADMODE" pos="21" type="boolean"/>
15937ec681f3Smrg		<bitfield name="PIXLODENABLE" pos="22" type="boolean"/>
15947ec681f3Smrg	</bitset>
15957ec681f3Smrg
15967ec681f3Smrg	<reg32 offset="0x22c4" name="SP_VS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/>
15977ec681f3Smrg	<reg32 offset="0x22c5" name="SP_VS_CTRL_REG1">
15987ec681f3Smrg		<bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/>
15997ec681f3Smrg		<bitfield name="INITIALOUTSTANDING" low="24" high="30" type="uint"/>
16007ec681f3Smrg	</reg32>
16017ec681f3Smrg	<reg32 offset="0x22c6" name="SP_VS_PARAM_REG">
16027ec681f3Smrg		<bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/>
16037ec681f3Smrg		<bitfield name="PSIZEREGID" low="8" high="15" type="a3xx_regid"/>
16047ec681f3Smrg		<bitfield name="TOTALVSOUTVAR" low="20" high="31" type="uint"/>
16057ec681f3Smrg	</reg32>
16067ec681f3Smrg	<array offset="0x22c7" name="SP_VS_OUT" stride="1" length="16">
16077ec681f3Smrg		<reg32 offset="0x0" name="REG">
16087ec681f3Smrg			<bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/>
16097ec681f3Smrg			<bitfield name="A_COMPMASK" low="9" high="12" type="hex"/>
16107ec681f3Smrg			<bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/>
16117ec681f3Smrg			<bitfield name="B_COMPMASK" low="25" high="28" type="hex"/>
16127ec681f3Smrg		</reg32>
16137ec681f3Smrg	</array>
16147ec681f3Smrg	<array offset="0x22d8" name="SP_VS_VPC_DST" stride="1" length="8">
16157ec681f3Smrg		<reg32 offset="0x0" name="REG">
16167ec681f3Smrg			<doc>
16177ec681f3Smrg				These seem to be offsets for storage of the varyings.
16187ec681f3Smrg				Always seems to start from 8, possibly loc 0 and 4
16197ec681f3Smrg				are for gl_Position and gl_PointSize?
16207ec681f3Smrg			</doc>
16217ec681f3Smrg			<bitfield name="OUTLOC0" low="0" high="7" type="uint"/>
16227ec681f3Smrg			<bitfield name="OUTLOC1" low="8" high="15" type="uint"/>
16237ec681f3Smrg			<bitfield name="OUTLOC2" low="16" high="23" type="uint"/>
16247ec681f3Smrg			<bitfield name="OUTLOC3" low="24" high="31" type="uint"/>
16257ec681f3Smrg		</reg32>
16267ec681f3Smrg	</array>
16277ec681f3Smrg
16287ec681f3Smrg	<reg32 offset="0x22e0" name="SP_VS_OBJ_OFFSET_REG">
16297ec681f3Smrg		<!-- always 00000000: -->
16307ec681f3Smrg		<doc>
16317ec681f3Smrg			From register spec:
16327ec681f3Smrg			SP_FS_OBJ_OFFSET_REG.CONSTOBJECTSTARTOFFSET [16:24]: Constant object
16337ec681f3Smrg			start offset in on chip RAM,
16347ec681f3Smrg			128bit aligned
16357ec681f3Smrg		</doc>
16367ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/>
16377ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/>
16387ec681f3Smrg	</reg32>
16397ec681f3Smrg	<reg32 offset="0x22e1" name="SP_VS_OBJ_START"/>
16407ec681f3Smrg	<reg32 offset="0x22e2" name="SP_VS_PVT_MEM_PARAM"/>
16417ec681f3Smrg	<reg32 offset="0x22e3" name="SP_VS_PVT_MEM_ADDR"/>
16427ec681f3Smrg	<reg32 offset="0x22e5" name="SP_VS_LENGTH_REG" type="uint"/>
16437ec681f3Smrg	<reg32 offset="0x22e8" name="SP_FS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/>
16447ec681f3Smrg	<reg32 offset="0x22e9" name="SP_FS_CTRL_REG1">
16457ec681f3Smrg		<bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/>
16467ec681f3Smrg		<bitfield name="FACENESS" pos="19" type="boolean"/>
16477ec681f3Smrg		<bitfield name="VARYING" pos="20" type="boolean"/>
16487ec681f3Smrg		<bitfield name="FRAGCOORD" pos="21" type="boolean"/>
16497ec681f3Smrg	</reg32>
16507ec681f3Smrg	<reg32 offset="0x22ea" name="SP_FS_OBJ_OFFSET_REG">
16517ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/>
16527ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/>
16537ec681f3Smrg	</reg32>
16547ec681f3Smrg	<reg32 offset="0x22eb" name="SP_FS_OBJ_START"/>
16557ec681f3Smrg	<reg32 offset="0x22ec" name="SP_FS_PVT_MEM_PARAM"/>
16567ec681f3Smrg	<reg32 offset="0x22ed" name="SP_FS_PVT_MEM_ADDR"/>
16577ec681f3Smrg	<reg32 offset="0x22ef" name="SP_FS_LENGTH_REG" type="uint"/>
16587ec681f3Smrg	<reg32 offset="0x22f0" name="SP_FS_OUTPUT_REG">
16597ec681f3Smrg		<bitfield name="MRT" low="0" high="3" type="uint"/>
16607ec681f3Smrg		<bitfield name="DEPTH_ENABLE" pos="7" type="boolean"/>
16617ec681f3Smrg		<!-- TODO double check.. for now assume same as a3xx -->
16627ec681f3Smrg		<bitfield name="DEPTH_REGID" low="8" high="15" type="a3xx_regid"/>
16637ec681f3Smrg		<bitfield name="SAMPLEMASK_REGID" low="24" high="31" type="a3xx_regid"/>
16647ec681f3Smrg	</reg32>
16657ec681f3Smrg	<array offset="0x22f1" name="SP_FS_MRT" stride="1" length="8">
16667ec681f3Smrg		<reg32 offset="0x0" name="REG">
16677ec681f3Smrg			<bitfield name="REGID" low="0" high="7" type="a3xx_regid"/>
16687ec681f3Smrg			<bitfield name="HALF_PRECISION" pos="8" type="boolean"/>
16697ec681f3Smrg			<bitfield name="MRTFORMAT" low="12" high="17" type="a4xx_color_fmt"/>
16707ec681f3Smrg			<bitfield name="COLOR_SRGB" pos="18" type="boolean"/>
16717ec681f3Smrg		</reg32>
16727ec681f3Smrg	</array>
16737ec681f3Smrg	<reg32 offset="0x2300" name="SP_CS_CTRL_REG0" type="a4xx_sp_vs_fs_ctrl_reg0"/>
16747ec681f3Smrg	<reg32 offset="0x2301" name="SP_CS_OBJ_OFFSET_REG"/>
16757ec681f3Smrg	<reg32 offset="0x2302" name="SP_CS_OBJ_START"/>
16767ec681f3Smrg	<reg32 offset="0x2303" name="SP_CS_PVT_MEM_PARAM"/>
16777ec681f3Smrg	<reg32 offset="0x2304" name="SP_CS_PVT_MEM_ADDR"/>
16787ec681f3Smrg	<reg32 offset="0x2305" name="SP_CS_PVT_MEM_SIZE"/>
16797ec681f3Smrg	<reg32 offset="0x2306" name="SP_CS_LENGTH_REG" type="uint"/>
16807ec681f3Smrg	<reg32 offset="0x230d" name="SP_HS_OBJ_OFFSET_REG">
16817ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/>
16827ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/>
16837ec681f3Smrg	</reg32>
16847ec681f3Smrg	<reg32 offset="0x230e" name="SP_HS_OBJ_START"/>
16857ec681f3Smrg	<reg32 offset="0x230f" name="SP_HS_PVT_MEM_PARAM"/>
16867ec681f3Smrg	<reg32 offset="0x2310" name="SP_HS_PVT_MEM_ADDR"/>
16877ec681f3Smrg	<reg32 offset="0x2312" name="SP_HS_LENGTH_REG" type="uint"/>
16887ec681f3Smrg
16897ec681f3Smrg	<reg32 offset="0x231a" name="SP_DS_PARAM_REG">
16907ec681f3Smrg		<bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/>
16917ec681f3Smrg		<bitfield name="TOTALGSOUTVAR" low="20" high="31" type="uint"/>
16927ec681f3Smrg	</reg32>
16937ec681f3Smrg	<array offset="0x231b" name="SP_DS_OUT" stride="1" length="16">
16947ec681f3Smrg		<reg32 offset="0x0" name="REG">
16957ec681f3Smrg			<bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/>
16967ec681f3Smrg			<bitfield name="A_COMPMASK" low="9" high="12" type="hex"/>
16977ec681f3Smrg			<bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/>
16987ec681f3Smrg			<bitfield name="B_COMPMASK" low="25" high="28" type="hex"/>
16997ec681f3Smrg		</reg32>
17007ec681f3Smrg	</array>
17017ec681f3Smrg	<array offset="0x232c" name="SP_DS_VPC_DST" stride="1" length="8">
17027ec681f3Smrg		<reg32 offset="0x0" name="REG">
17037ec681f3Smrg			<doc>
17047ec681f3Smrg				These seem to be offsets for storage of the varyings.
17057ec681f3Smrg				Always seems to start from 8, possibly loc 0 and 4
17067ec681f3Smrg				are for gl_Position and gl_PointSize?
17077ec681f3Smrg			</doc>
17087ec681f3Smrg			<bitfield name="OUTLOC0" low="0" high="7" type="uint"/>
17097ec681f3Smrg			<bitfield name="OUTLOC1" low="8" high="15" type="uint"/>
17107ec681f3Smrg			<bitfield name="OUTLOC2" low="16" high="23" type="uint"/>
17117ec681f3Smrg			<bitfield name="OUTLOC3" low="24" high="31" type="uint"/>
17127ec681f3Smrg		</reg32>
17137ec681f3Smrg	</array>
17147ec681f3Smrg	<reg32 offset="0x2334" name="SP_DS_OBJ_OFFSET_REG">
17157ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/>
17167ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/>
17177ec681f3Smrg	</reg32>
17187ec681f3Smrg	<reg32 offset="0x2335" name="SP_DS_OBJ_START"/>
17197ec681f3Smrg	<reg32 offset="0x2336" name="SP_DS_PVT_MEM_PARAM"/>
17207ec681f3Smrg	<reg32 offset="0x2337" name="SP_DS_PVT_MEM_ADDR"/>
17217ec681f3Smrg	<reg32 offset="0x2339" name="SP_DS_LENGTH_REG" type="uint"/>
17227ec681f3Smrg
17237ec681f3Smrg	<reg32 offset="0x2341" name="SP_GS_PARAM_REG">
17247ec681f3Smrg		<bitfield name="POSREGID" low="0" high="7" type="a3xx_regid"/>
17257ec681f3Smrg		<bitfield name="PRIMREGID" low="8" high="15" type="a3xx_regid"/>
17267ec681f3Smrg		<bitfield name="TOTALGSOUTVAR" low="20" high="31" type="uint"/>
17277ec681f3Smrg	</reg32>
17287ec681f3Smrg	<array offset="0x2342" name="SP_GS_OUT" stride="1" length="16">
17297ec681f3Smrg		<reg32 offset="0x0" name="REG">
17307ec681f3Smrg			<bitfield name="A_REGID" low="0" high="8" type="a3xx_regid"/>
17317ec681f3Smrg			<bitfield name="A_COMPMASK" low="9" high="12" type="hex"/>
17327ec681f3Smrg			<bitfield name="B_REGID" low="16" high="24" type="a3xx_regid"/>
17337ec681f3Smrg			<bitfield name="B_COMPMASK" low="25" high="28" type="hex"/>
17347ec681f3Smrg		</reg32>
17357ec681f3Smrg	</array>
17367ec681f3Smrg	<array offset="0x2353" name="SP_GS_VPC_DST" stride="1" length="8">
17377ec681f3Smrg		<reg32 offset="0x0" name="REG">
17387ec681f3Smrg			<doc>
17397ec681f3Smrg				These seem to be offsets for storage of the varyings.
17407ec681f3Smrg				Always seems to start from 8, possibly loc 0 and 4
17417ec681f3Smrg				are for gl_Position and gl_PointSize?
17427ec681f3Smrg			</doc>
17437ec681f3Smrg			<bitfield name="OUTLOC0" low="0" high="7" type="uint"/>
17447ec681f3Smrg			<bitfield name="OUTLOC1" low="8" high="15" type="uint"/>
17457ec681f3Smrg			<bitfield name="OUTLOC2" low="16" high="23" type="uint"/>
17467ec681f3Smrg			<bitfield name="OUTLOC3" low="24" high="31" type="uint"/>
17477ec681f3Smrg		</reg32>
17487ec681f3Smrg	</array>
17497ec681f3Smrg	<reg32 offset="0x235b" name="SP_GS_OBJ_OFFSET_REG">
17507ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="16" high="24" type="uint"/>
17517ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="25" high="31" type="uint"/>
17527ec681f3Smrg	</reg32>
17537ec681f3Smrg	<reg32 offset="0x235c" name="SP_GS_OBJ_START"/>
17547ec681f3Smrg	<reg32 offset="0x235d" name="SP_GS_PVT_MEM_PARAM"/>
17557ec681f3Smrg	<reg32 offset="0x235e" name="SP_GS_PVT_MEM_ADDR"/>
17567ec681f3Smrg	<reg32 offset="0x2360" name="SP_GS_LENGTH_REG" type="uint"/>
17577ec681f3Smrg
17587ec681f3Smrg	<!-- VPC registers -->
17597ec681f3Smrg	<reg32 offset="0x0e60" name="VPC_DEBUG_RAM_SEL"/>
17607ec681f3Smrg	<reg32 offset="0x0e61" name="VPC_DEBUG_RAM_READ"/>
17617ec681f3Smrg	<reg32 offset="0x0e64" name="VPC_DEBUG_ECO_CONTROL"/>
17627ec681f3Smrg	<reg32 offset="0x0e65" name="VPC_PERFCTR_VPC_SEL_0" type="a4xx_vpc_perfcounter_select"/>
17637ec681f3Smrg	<reg32 offset="0x0e66" name="VPC_PERFCTR_VPC_SEL_1" type="a4xx_vpc_perfcounter_select"/>
17647ec681f3Smrg	<reg32 offset="0x0e67" name="VPC_PERFCTR_VPC_SEL_2" type="a4xx_vpc_perfcounter_select"/>
17657ec681f3Smrg	<reg32 offset="0x0e68" name="VPC_PERFCTR_VPC_SEL_3" type="a4xx_vpc_perfcounter_select"/>
17667ec681f3Smrg	<reg32 offset="0x2140" name="VPC_ATTR">
17677ec681f3Smrg		<bitfield name="TOTALATTR" low="0" high="8" type="uint"/>
17687ec681f3Smrg		<!-- PSIZE bit set if gl_PointSize written: -->
17697ec681f3Smrg		<bitfield name="PSIZE" pos="9" type="boolean"/>
17707ec681f3Smrg		<bitfield name="THRDASSIGN" low="12" high="13" type="uint"/>
17717ec681f3Smrg		<bitfield name="ENABLE" pos="25" type="boolean"/>
17727ec681f3Smrg	</reg32>
17737ec681f3Smrg	<reg32 offset="0x2141" name="VPC_PACK">
17747ec681f3Smrg		<bitfield name="NUMBYPASSVAR" low="0" high="7" type="uint"/>
17757ec681f3Smrg		<bitfield name="NUMFPNONPOSVAR" low="8" high="15" type="uint"/>
17767ec681f3Smrg		<bitfield name="NUMNONPOSVSVAR" low="16" high="23" type="uint"/>
17777ec681f3Smrg	</reg32>
17787ec681f3Smrg	<array offset="0x2142" name="VPC_VARYING_INTERP" stride="1" length="8">
17797ec681f3Smrg		<reg32 offset="0x0" name="MODE"/>
17807ec681f3Smrg	</array>
17817ec681f3Smrg	<array offset="0x214a" name="VPC_VARYING_PS_REPL" stride="1" length="8">
17827ec681f3Smrg		<reg32 offset="0x0" name="MODE"/>
17837ec681f3Smrg	</array>
17847ec681f3Smrg
17857ec681f3Smrg	<reg32 offset="0x216e" name="VPC_SO_FLUSH_WADDR_3"/>
17867ec681f3Smrg
17877ec681f3Smrg	<!-- VSC registers -->
17887ec681f3Smrg	<reg32 offset="0x0c00" name="VSC_BIN_SIZE">
17897ec681f3Smrg		<bitfield name="WIDTH" low="0" high="4" shr="5" type="uint"/>
17907ec681f3Smrg		<bitfield name="HEIGHT" low="5" high="9" shr="5" type="uint"/>
17917ec681f3Smrg	</reg32>
17927ec681f3Smrg	<reg32 offset="0x0c01" name="VSC_SIZE_ADDRESS"/>
17937ec681f3Smrg	<reg32 offset="0x0c02" name="VSC_SIZE_ADDRESS2"/>
17947ec681f3Smrg	<reg32 offset="0x0c03" name="VSC_DEBUG_ECO_CONTROL"/>
17957ec681f3Smrg	<array offset="0x0c08" name="VSC_PIPE_CONFIG" stride="1" length="8">
17967ec681f3Smrg		<reg32 offset="0x0" name="REG">
17977ec681f3Smrg			<doc>
17987ec681f3Smrg				Configures the mapping between VSC_PIPE buffer and
17997ec681f3Smrg				bin, X/Y specify the bin index in the horiz/vert
18007ec681f3Smrg				direction (0,0 is upper left, 0,1 is leftmost bin
18017ec681f3Smrg				on second row, and so on).  W/H specify the number
18027ec681f3Smrg				of bins assigned to this VSC_PIPE in the horiz/vert
18037ec681f3Smrg				dimension.
18047ec681f3Smrg			</doc>
18057ec681f3Smrg			<bitfield name="X" low="0" high="9" type="uint"/>
18067ec681f3Smrg			<bitfield name="Y" low="10" high="19" type="uint"/>
18077ec681f3Smrg			<bitfield name="W" low="20" high="23" type="uint"/>
18087ec681f3Smrg			<bitfield name="H" low="24" high="27" type="uint"/>
18097ec681f3Smrg		</reg32>
18107ec681f3Smrg	</array>
18117ec681f3Smrg	<array offset="0x0c10" name="VSC_PIPE_DATA_ADDRESS" stride="1" length="8">
18127ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
18137ec681f3Smrg	</array>
18147ec681f3Smrg	<array offset="0x0c18" name="VSC_PIPE_DATA_LENGTH" stride="1" length="8">
18157ec681f3Smrg		<reg32 offset="0x0" name="REG"/>
18167ec681f3Smrg	</array>
18177ec681f3Smrg	<reg32 offset="0x0c41" name="VSC_PIPE_PARTIAL_POSN_1"/>
18187ec681f3Smrg	<reg32 offset="0x0c50" name="VSC_PERFCTR_VSC_SEL_0" type="a4xx_vsc_perfcounter_select"/>
18197ec681f3Smrg	<reg32 offset="0x0c51" name="VSC_PERFCTR_VSC_SEL_1" type="a4xx_vsc_perfcounter_select"/>
18207ec681f3Smrg
18217ec681f3Smrg	<!-- VFD registers -->
18227ec681f3Smrg	<reg32 offset="0x0e40" name="VFD_DEBUG_CONTROL"/>
18237ec681f3Smrg	<reg32 offset="0x0e43" name="VFD_PERFCTR_VFD_SEL_0" type="a4xx_vfd_perfcounter_select"/>
18247ec681f3Smrg	<reg32 offset="0x0e44" name="VFD_PERFCTR_VFD_SEL_1" type="a4xx_vfd_perfcounter_select"/>
18257ec681f3Smrg	<reg32 offset="0x0e45" name="VFD_PERFCTR_VFD_SEL_2" type="a4xx_vfd_perfcounter_select"/>
18267ec681f3Smrg	<reg32 offset="0x0e46" name="VFD_PERFCTR_VFD_SEL_3" type="a4xx_vfd_perfcounter_select"/>
18277ec681f3Smrg	<reg32 offset="0x0e47" name="VFD_PERFCTR_VFD_SEL_4" type="a4xx_vfd_perfcounter_select"/>
18287ec681f3Smrg	<reg32 offset="0x0e48" name="VFD_PERFCTR_VFD_SEL_5" type="a4xx_vfd_perfcounter_select"/>
18297ec681f3Smrg	<reg32 offset="0x0e49" name="VFD_PERFCTR_VFD_SEL_6" type="a4xx_vfd_perfcounter_select"/>
18307ec681f3Smrg	<reg32 offset="0x0e4a" name="VFD_PERFCTR_VFD_SEL_7" type="a4xx_vfd_perfcounter_select"/>
18317ec681f3Smrg	<reg32 offset="0x21d0" name="VGT_CL_INITIATOR"/>
18327ec681f3Smrg	<reg32 offset="0x21d9" name="VGT_EVENT_INITIATOR"/>
18337ec681f3Smrg	<reg32 offset="0x2200" name="VFD_CONTROL_0">
18347ec681f3Smrg		<doc>
18357ec681f3Smrg			TOTALATTRTOVS is # of attributes to vertex shader, in register
18367ec681f3Smrg			slots (ie. vec4+vec3 -> 7)
18377ec681f3Smrg		</doc>
18387ec681f3Smrg		<bitfield name="TOTALATTRTOVS" low="0" high="7" type="uint"/>
18397ec681f3Smrg		<doc>
18407ec681f3Smrg		BYPASSATTROVS seems to count varyings that are just directly
18417ec681f3Smrg		assigned from attributes (ie, "vFoo = aFoo;")
18427ec681f3Smrg		</doc>
18437ec681f3Smrg		<bitfield name="BYPASSATTROVS" low="9" high="16" type="uint"/>
18447ec681f3Smrg		<doc>STRMDECINSTRCNT is # of VFD_DECODE_INSTR registers valid</doc>
18457ec681f3Smrg		<bitfield name="STRMDECINSTRCNT" low="20" high="25" type="uint"/>
18467ec681f3Smrg		<doc>STRMFETCHINSTRCNT is # of VFD_FETCH_INSTR registers valid</doc>
18477ec681f3Smrg		<bitfield name="STRMFETCHINSTRCNT" low="26" high="31" type="uint"/>
18487ec681f3Smrg	</reg32>
18497ec681f3Smrg	<reg32 offset="0x2201" name="VFD_CONTROL_1">
18507ec681f3Smrg		<doc>MAXSTORAGE could be # of attributes/vbo's</doc>
18517ec681f3Smrg		<bitfield name="MAXSTORAGE" low="0" high="15" type="uint"/>
18527ec681f3Smrg		<bitfield name="REGID4VTX" low="16" high="23" type="a3xx_regid"/>
18537ec681f3Smrg		<bitfield name="REGID4INST" low="24" high="31" type="a3xx_regid"/>
18547ec681f3Smrg	</reg32>
18557ec681f3Smrg	<reg32 offset="0x2202" name="VFD_CONTROL_2"/>
18567ec681f3Smrg	<reg32 offset="0x2203" name="VFD_CONTROL_3">
18577ec681f3Smrg		<bitfield name="REGID_VTXCNT" low="8" high="15" type="a3xx_regid"/>
18587ec681f3Smrg		<bitfield name="REGID_TESSX" low="16" high="23" type="a3xx_regid"/>
18597ec681f3Smrg		<bitfield name="REGID_TESSY" low="24" high="31" type="a3xx_regid"/>
18607ec681f3Smrg	</reg32>
18617ec681f3Smrg	<reg32 offset="0x2204" name="VFD_CONTROL_4"/>
18627ec681f3Smrg	<reg32 offset="0x2208" name="VFD_INDEX_OFFSET"/>
18637ec681f3Smrg	<array offset="0x220a" name="VFD_FETCH" stride="4" length="32">
18647ec681f3Smrg		<reg32 offset="0x0" name="INSTR_0">
18657ec681f3Smrg			<bitfield name="FETCHSIZE" low="0" high="6" type="uint"/>
18667ec681f3Smrg			<bitfield name="BUFSTRIDE" low="7" high="16" type="uint"/>
18677ec681f3Smrg			<bitfield name="SWITCHNEXT" pos="19" type="boolean"/>
18687ec681f3Smrg			<bitfield name="INSTANCED" pos="20" type="boolean"/>
18697ec681f3Smrg		</reg32>
18707ec681f3Smrg		<reg32 offset="0x1" name="INSTR_1"/>
18717ec681f3Smrg		<reg32 offset="0x2" name="INSTR_2">
18727ec681f3Smrg			<bitfield name="SIZE" low="0" high="31"/>
18737ec681f3Smrg		</reg32>
18747ec681f3Smrg		<reg32 offset="0x3" name="INSTR_3">
18757ec681f3Smrg			<!-- might well be bigger.. -->
18767ec681f3Smrg			<bitfield name="STEPRATE" low="0" high="8" type="uint"/>
18777ec681f3Smrg		</reg32>
18787ec681f3Smrg	</array>
18797ec681f3Smrg	<array offset="0x228a" name="VFD_DECODE" stride="1" length="32">
18807ec681f3Smrg		<reg32 offset="0x0" name="INSTR">
18817ec681f3Smrg			<bitfield name="WRITEMASK" low="0" high="3" type="hex"/>
18827ec681f3Smrg			<!-- not sure if this is a bit flag and another flag above it, or?? -->
18837ec681f3Smrg			<bitfield name="CONSTFILL" pos="4" type="boolean"/>
18847ec681f3Smrg			<bitfield name="FORMAT" low="6" high="11" type="a4xx_vtx_fmt"/>
18857ec681f3Smrg			<bitfield name="REGID" low="12" high="19" type="a3xx_regid"/>
18867ec681f3Smrg			<bitfield name="INT" pos="20" type="boolean"/>
18877ec681f3Smrg			<doc>SHIFTCNT appears to be size, ie. FLOAT_32_32_32 is 12, and BYTE_8 is 1</doc>
18887ec681f3Smrg			<bitfield name="SWAP" low="22" high="23" type="a3xx_color_swap"/>
18897ec681f3Smrg			<bitfield name="SHIFTCNT" low="24" high="28" type="uint"/>
18907ec681f3Smrg			<bitfield name="LASTCOMPVALID" pos="29" type="boolean"/>
18917ec681f3Smrg			<bitfield name="SWITCHNEXT" pos="30" type="boolean"/>
18927ec681f3Smrg		</reg32>
18937ec681f3Smrg	</array>
18947ec681f3Smrg
18957ec681f3Smrg	<!-- TPL1 registers -->
18967ec681f3Smrg	<reg32 offset="0x0f00" name="TPL1_DEBUG_ECO_CONTROL"/>
18977ec681f3Smrg	<!-- always 0000003a: -->
18987ec681f3Smrg	<reg32 offset="0x0f03" name="TPL1_TP_MODE_CONTROL"/>
18997ec681f3Smrg	<reg32 offset="0x0f04" name="TPL1_PERFCTR_TP_SEL_0" type="a4xx_tp_perfcounter_select"/>
19007ec681f3Smrg	<reg32 offset="0x0f05" name="TPL1_PERFCTR_TP_SEL_1" type="a4xx_tp_perfcounter_select"/>
19017ec681f3Smrg	<reg32 offset="0x0f06" name="TPL1_PERFCTR_TP_SEL_2" type="a4xx_tp_perfcounter_select"/>
19027ec681f3Smrg	<reg32 offset="0x0f07" name="TPL1_PERFCTR_TP_SEL_3" type="a4xx_tp_perfcounter_select"/>
19037ec681f3Smrg	<reg32 offset="0x0f08" name="TPL1_PERFCTR_TP_SEL_4" type="a4xx_tp_perfcounter_select"/>
19047ec681f3Smrg	<reg32 offset="0x0f09" name="TPL1_PERFCTR_TP_SEL_5" type="a4xx_tp_perfcounter_select"/>
19057ec681f3Smrg	<reg32 offset="0x0f0a" name="TPL1_PERFCTR_TP_SEL_6" type="a4xx_tp_perfcounter_select"/>
19067ec681f3Smrg	<reg32 offset="0x0f0b" name="TPL1_PERFCTR_TP_SEL_7" type="a4xx_tp_perfcounter_select"/>
19077ec681f3Smrg	<reg32 offset="0x2380" name="TPL1_TP_TEX_OFFSET"/>
19087ec681f3Smrg	<reg32 offset="0x2381" name="TPL1_TP_TEX_COUNT">
19097ec681f3Smrg		<bitfield name="VS" low="0" high="7" type="uint"/>
19107ec681f3Smrg		<bitfield name="HS" low="8" high="15" type="uint"/>
19117ec681f3Smrg		<bitfield name="DS" low="16" high="23" type="uint"/>
19127ec681f3Smrg		<bitfield name="GS" low="24" high="31" type="uint"/>
19137ec681f3Smrg	</reg32>
19147ec681f3Smrg	<reg32 offset="0x2384" name="TPL1_TP_VS_BORDER_COLOR_BASE_ADDR"/>
19157ec681f3Smrg	<reg32 offset="0x2387" name="TPL1_TP_HS_BORDER_COLOR_BASE_ADDR"/>
19167ec681f3Smrg	<reg32 offset="0x238a" name="TPL1_TP_DS_BORDER_COLOR_BASE_ADDR"/>
19177ec681f3Smrg	<reg32 offset="0x238d" name="TPL1_TP_GS_BORDER_COLOR_BASE_ADDR"/>
19187ec681f3Smrg	<reg32 offset="0x23a0" name="TPL1_TP_FS_TEX_COUNT"/>
19197ec681f3Smrg	<reg32 offset="0x23a1" name="TPL1_TP_FS_BORDER_COLOR_BASE_ADDR"/>
19207ec681f3Smrg	<reg32 offset="0x23a4" name="TPL1_TP_CS_BORDER_COLOR_BASE_ADDR"/>
19217ec681f3Smrg	<reg32 offset="0x23a5" name="TPL1_TP_CS_SAMPLER_BASE_ADDR"/>
19227ec681f3Smrg	<reg32 offset="0x23a6" name="TPL1_TP_CS_TEXMEMOBJ_BASE_ADDR"/>
19237ec681f3Smrg
19247ec681f3Smrg	<!-- GRAS registers -->
19257ec681f3Smrg	<reg32 offset="0x0c80" name="GRAS_TSE_STATUS"/>
19267ec681f3Smrg	<reg32 offset="0x0c81" name="GRAS_DEBUG_ECO_CONTROL"/>
19277ec681f3Smrg	<reg32 offset="0x0c88" name="GRAS_PERFCTR_TSE_SEL_0" type="a4xx_gras_tse_perfcounter_select"/>
19287ec681f3Smrg	<reg32 offset="0x0c89" name="GRAS_PERFCTR_TSE_SEL_1" type="a4xx_gras_tse_perfcounter_select"/>
19297ec681f3Smrg	<reg32 offset="0x0c8a" name="GRAS_PERFCTR_TSE_SEL_2" type="a4xx_gras_tse_perfcounter_select"/>
19307ec681f3Smrg	<reg32 offset="0x0c8b" name="GRAS_PERFCTR_TSE_SEL_3" type="a4xx_gras_tse_perfcounter_select"/>
19317ec681f3Smrg	<reg32 offset="0x0c8c" name="GRAS_PERFCTR_RAS_SEL_0" type="a4xx_gras_ras_perfcounter_select"/>
19327ec681f3Smrg	<reg32 offset="0x0c8d" name="GRAS_PERFCTR_RAS_SEL_1" type="a4xx_gras_ras_perfcounter_select"/>
19337ec681f3Smrg	<reg32 offset="0x0c8e" name="GRAS_PERFCTR_RAS_SEL_2" type="a4xx_gras_ras_perfcounter_select"/>
19347ec681f3Smrg	<reg32 offset="0x0c8f" name="GRAS_PERFCTR_RAS_SEL_3" type="a4xx_gras_ras_perfcounter_select"/>
19357ec681f3Smrg	<reg32 offset="0x2000" name="GRAS_CL_CLIP_CNTL">
19367ec681f3Smrg		<bitfield name="CLIP_DISABLE" pos="15" type="boolean"/>
19377ec681f3Smrg		<bitfield name="ZNEAR_CLIP_DISABLE" pos="16" type="boolean"/>
19387ec681f3Smrg		<bitfield name="ZFAR_CLIP_DISABLE" pos="17" type="boolean"/>
19397ec681f3Smrg		<bitfield name="ZERO_GB_SCALE_Z" pos="22" type="boolean"/>
19407ec681f3Smrg	</reg32>
19417ec681f3Smrg	<reg32 offset="0x2003" name="GRAS_CNTL">
19427ec681f3Smrg		<bitfield name="IJ_PERSP" pos="0" type="boolean"/>
19437ec681f3Smrg		<bitfield name="IJ_LINEAR" pos="1" type="boolean"/>
19447ec681f3Smrg	</reg32>
19457ec681f3Smrg	<reg32 offset="0x2004" name="GRAS_CL_GB_CLIP_ADJ">
19467ec681f3Smrg		<bitfield name="HORZ" low="0" high="9" type="uint"/>
19477ec681f3Smrg		<bitfield name="VERT" low="10" high="19" type="uint"/>
19487ec681f3Smrg	</reg32>
19497ec681f3Smrg	<reg32 offset="0x2008" name="GRAS_CL_VPORT_XOFFSET_0" type="float"/>
19507ec681f3Smrg	<reg32 offset="0x2009" name="GRAS_CL_VPORT_XSCALE_0" type="float"/>
19517ec681f3Smrg	<reg32 offset="0x200a" name="GRAS_CL_VPORT_YOFFSET_0" type="float"/>
19527ec681f3Smrg	<reg32 offset="0x200b" name="GRAS_CL_VPORT_YSCALE_0" type="float"/>
19537ec681f3Smrg	<reg32 offset="0x200c" name="GRAS_CL_VPORT_ZOFFSET_0" type="float"/>
19547ec681f3Smrg	<reg32 offset="0x200d" name="GRAS_CL_VPORT_ZSCALE_0" type="float"/>
19557ec681f3Smrg	<reg32 offset="0x2070" name="GRAS_SU_POINT_MINMAX">
19567ec681f3Smrg		<bitfield name="MIN" low="0" high="15" type="ufixed" radix="4"/>
19577ec681f3Smrg		<bitfield name="MAX" low="16" high="31" type="ufixed" radix="4"/>
19587ec681f3Smrg	</reg32>
19597ec681f3Smrg	<reg32 offset="0x2071" name="GRAS_SU_POINT_SIZE" type="fixed" radix="4"/>
19607ec681f3Smrg	<reg32 offset="0x2073" name="GRAS_ALPHA_CONTROL">
19617ec681f3Smrg		<bitfield name="ALPHA_TEST_ENABLE" pos="2" type="boolean"/>
19627ec681f3Smrg		<bitfield name="FORCE_FRAGZ_TO_FS" pos="3" type="boolean"/>
19637ec681f3Smrg	</reg32>
19647ec681f3Smrg	<reg32 offset="0x2074" name="GRAS_SU_POLY_OFFSET_SCALE" type="float"/>
19657ec681f3Smrg	<reg32 offset="0x2075" name="GRAS_SU_POLY_OFFSET_OFFSET" type="float"/>
19667ec681f3Smrg	<reg32 offset="0x2076" name="GRAS_SU_POLY_OFFSET_CLAMP" type="float"/>
19677ec681f3Smrg	<reg32 offset="0x2077" name="GRAS_DEPTH_CONTROL">
19687ec681f3Smrg		<!-- guestimating that this is GRAS based on addr -->
19697ec681f3Smrg		<bitfield name="FORMAT" low="0" high="1" type="a4xx_depth_format"/>
19707ec681f3Smrg	</reg32>
19717ec681f3Smrg	<reg32 offset="0x2078" name="GRAS_SU_MODE_CONTROL">
19727ec681f3Smrg		<bitfield name="CULL_FRONT" pos="0" type="boolean"/>
19737ec681f3Smrg		<bitfield name="CULL_BACK" pos="1" type="boolean"/>
19747ec681f3Smrg		<bitfield name="FRONT_CW" pos="2" type="boolean"/>
19757ec681f3Smrg		<bitfield name="LINEHALFWIDTH" low="3" high="10" radix="2" type="fixed"/>
19767ec681f3Smrg		<bitfield name="POLY_OFFSET" pos="11" type="boolean"/>
19777ec681f3Smrg		<bitfield name="MSAA_ENABLE" pos="13" type="boolean"/>
19787ec681f3Smrg		<!-- bit20 set whenever RENDER_MODE = RB_RENDERING_PASS -->
19797ec681f3Smrg		<bitfield name="RENDERING_PASS" pos="20" type="boolean"/>
19807ec681f3Smrg	</reg32>
19817ec681f3Smrg	<reg32 offset="0x207b" name="GRAS_SC_CONTROL">
19827ec681f3Smrg		<!-- complete wild-ass-guess for sizes of these bitfields.. -->
19837ec681f3Smrg		<bitfield name="RENDER_MODE" low="2" high="3" type="a3xx_render_mode"/>
19847ec681f3Smrg		<bitfield name="MSAA_SAMPLES" low="7" high="9" type="uint"/>
19857ec681f3Smrg		<bitfield name="MSAA_DISABLE" pos="11" type="boolean"/>
19867ec681f3Smrg		<bitfield name="RASTER_MODE" low="12" high="15"/>
19877ec681f3Smrg	</reg32>
19887ec681f3Smrg	<reg32 offset="0x207c" name="GRAS_SC_SCREEN_SCISSOR_TL" type="adreno_reg_xy"/>
19897ec681f3Smrg	<reg32 offset="0x207d" name="GRAS_SC_SCREEN_SCISSOR_BR" type="adreno_reg_xy"/>
19907ec681f3Smrg	<reg32 offset="0x209c" name="GRAS_SC_WINDOW_SCISSOR_BR" type="adreno_reg_xy"/>
19917ec681f3Smrg	<reg32 offset="0x209d" name="GRAS_SC_WINDOW_SCISSOR_TL" type="adreno_reg_xy"/>
19927ec681f3Smrg	<reg32 offset="0x209e" name="GRAS_SC_EXTENT_WINDOW_BR" type="adreno_reg_xy"/>
19937ec681f3Smrg	<reg32 offset="0x209f" name="GRAS_SC_EXTENT_WINDOW_TL" type="adreno_reg_xy"/>
19947ec681f3Smrg
19957ec681f3Smrg	<!-- UCHE registers -->
19967ec681f3Smrg	<reg32 offset="0x0e80" name="UCHE_CACHE_MODE_CONTROL"/>
19977ec681f3Smrg	<reg32 offset="0x0e83" name="UCHE_TRAP_BASE_LO"/>
19987ec681f3Smrg	<reg32 offset="0x0e84" name="UCHE_TRAP_BASE_HI"/>
19997ec681f3Smrg	<reg32 offset="0x0e88" name="UCHE_CACHE_STATUS"/>
20007ec681f3Smrg	<reg32 offset="0x0e8a" name="UCHE_INVALIDATE0"/>
20017ec681f3Smrg	<reg32 offset="0x0e8b" name="UCHE_INVALIDATE1"/>
20027ec681f3Smrg	<reg32 offset="0x0e8c" name="UCHE_CACHE_WAYS_VFD"/>
20037ec681f3Smrg	<reg32 offset="0x0e8e" name="UCHE_PERFCTR_UCHE_SEL_0" type="a4xx_uche_perfcounter_select"/>
20047ec681f3Smrg	<reg32 offset="0x0e8f" name="UCHE_PERFCTR_UCHE_SEL_1" type="a4xx_uche_perfcounter_select"/>
20057ec681f3Smrg	<reg32 offset="0x0e90" name="UCHE_PERFCTR_UCHE_SEL_2" type="a4xx_uche_perfcounter_select"/>
20067ec681f3Smrg	<reg32 offset="0x0e91" name="UCHE_PERFCTR_UCHE_SEL_3" type="a4xx_uche_perfcounter_select"/>
20077ec681f3Smrg	<reg32 offset="0x0e92" name="UCHE_PERFCTR_UCHE_SEL_4" type="a4xx_uche_perfcounter_select"/>
20087ec681f3Smrg	<reg32 offset="0x0e93" name="UCHE_PERFCTR_UCHE_SEL_5" type="a4xx_uche_perfcounter_select"/>
20097ec681f3Smrg	<reg32 offset="0x0e94" name="UCHE_PERFCTR_UCHE_SEL_6" type="a4xx_uche_perfcounter_select"/>
20107ec681f3Smrg	<reg32 offset="0x0e95" name="UCHE_PERFCTR_UCHE_SEL_7" type="a4xx_uche_perfcounter_select"/>
20117ec681f3Smrg
20127ec681f3Smrg	<!-- HLSQ registers -->
20137ec681f3Smrg	<reg32 offset="0x0e00" name="HLSQ_TIMEOUT_THRESHOLD"/>
20147ec681f3Smrg	<reg32 offset="0x0e04" name="HLSQ_DEBUG_ECO_CONTROL"/>
20157ec681f3Smrg	<!-- always 00000000: -->
20167ec681f3Smrg	<reg32 offset="0x0e05" name="HLSQ_MODE_CONTROL"/>
20177ec681f3Smrg	<reg32 offset="0x0e0e" name="HLSQ_PERF_PIPE_MASK"/>
20187ec681f3Smrg	<reg32 offset="0x0e06" name="HLSQ_PERFCTR_HLSQ_SEL_0" type="a4xx_hlsq_perfcounter_select"/>
20197ec681f3Smrg	<reg32 offset="0x0e07" name="HLSQ_PERFCTR_HLSQ_SEL_1" type="a4xx_hlsq_perfcounter_select"/>
20207ec681f3Smrg	<reg32 offset="0x0e08" name="HLSQ_PERFCTR_HLSQ_SEL_2" type="a4xx_hlsq_perfcounter_select"/>
20217ec681f3Smrg	<reg32 offset="0x0e09" name="HLSQ_PERFCTR_HLSQ_SEL_3" type="a4xx_hlsq_perfcounter_select"/>
20227ec681f3Smrg	<reg32 offset="0x0e0a" name="HLSQ_PERFCTR_HLSQ_SEL_4" type="a4xx_hlsq_perfcounter_select"/>
20237ec681f3Smrg	<reg32 offset="0x0e0b" name="HLSQ_PERFCTR_HLSQ_SEL_5" type="a4xx_hlsq_perfcounter_select"/>
20247ec681f3Smrg	<reg32 offset="0x0e0c" name="HLSQ_PERFCTR_HLSQ_SEL_6" type="a4xx_hlsq_perfcounter_select"/>
20257ec681f3Smrg	<reg32 offset="0x0e0d" name="HLSQ_PERFCTR_HLSQ_SEL_7" type="a4xx_hlsq_perfcounter_select"/>
20267ec681f3Smrg	<reg32 offset="0x23c0" name="HLSQ_CONTROL_0_REG">
20277ec681f3Smrg		<!-- I guess same as a3xx, but so far only seen 08000050 -->
20287ec681f3Smrg		<bitfield name="FSTHREADSIZE" pos="4" type="a3xx_threadsize"/>
20297ec681f3Smrg		<bitfield name="FSSUPERTHREADENABLE" pos="6" type="boolean"/>
20307ec681f3Smrg		<bitfield name="SPSHADERRESTART" pos="9" type="boolean"/>
20317ec681f3Smrg		<bitfield name="RESERVED2" pos="10" type="boolean"/>
20327ec681f3Smrg		<bitfield name="CHUNKDISABLE" pos="26" type="boolean"/>
20337ec681f3Smrg		<bitfield name="CONSTMODE" pos="27" type="uint"/>
20347ec681f3Smrg		<bitfield name="LAZYUPDATEDISABLE" pos="28" type="boolean"/>
20357ec681f3Smrg		<bitfield name="SPCONSTFULLUPDATE" pos="29" type="boolean"/>
20367ec681f3Smrg		<bitfield name="TPFULLUPDATE" pos="30" type="boolean"/>
20377ec681f3Smrg		<bitfield name="SINGLECONTEXT" pos="31" type="boolean"/>
20387ec681f3Smrg	</reg32>
20397ec681f3Smrg	<reg32 offset="0x23c1" name="HLSQ_CONTROL_1_REG">
20407ec681f3Smrg		<bitfield name="VSTHREADSIZE" pos="6" type="a3xx_threadsize"/>
20417ec681f3Smrg		<bitfield name="VSSUPERTHREADENABLE" pos="8" type="boolean"/>
20427ec681f3Smrg		<bitfield name="RESERVED1" pos="9" type="boolean"/>
20437ec681f3Smrg		<bitfield name="COORDREGID" low="16" high="23" type="a3xx_regid"/>
20447ec681f3Smrg		<!-- set if gl_FragCoord.[zw] used in frag shader: -->
20457ec681f3Smrg		<bitfield name="ZWCOORDREGID" low="24" high="31" type="a3xx_regid"/>
20467ec681f3Smrg	</reg32>
20477ec681f3Smrg	<reg32 offset="0x23c2" name="HLSQ_CONTROL_2_REG">
20487ec681f3Smrg		<bitfield name="PRIMALLOCTHRESHOLD" low="26" high="31" type="uint"/>
20497ec681f3Smrg		<bitfield name="FACEREGID" low="2" high="9" type="a3xx_regid"/>
20507ec681f3Smrg		<bitfield name="SAMPLEID_REGID" low="10" high="17" type="a3xx_regid"/>
20517ec681f3Smrg		<bitfield name="SAMPLEMASK_REGID" low="18" high="25" type="a3xx_regid"/>
20527ec681f3Smrg	</reg32>
20537ec681f3Smrg	<reg32 offset="0x23c3" name="HLSQ_CONTROL_3_REG">
20547ec681f3Smrg		<!-- register loaded with position (bary.f) -->
20557ec681f3Smrg		<bitfield name="IJ_PERSP_PIXEL" low="0" high="7" type="a3xx_regid"/>
20567ec681f3Smrg		<bitfield name="IJ_LINEAR_PIXEL" low="8" high="15" type="a3xx_regid"/>
20577ec681f3Smrg		<bitfield name="IJ_PERSP_CENTROID" low="16" high="23" type="a3xx_regid"/>
20587ec681f3Smrg		<bitfield name="IJ_LINEAR_CENTROID" low="24" high="31" type="a3xx_regid"/>
20597ec681f3Smrg	</reg32>
20607ec681f3Smrg	<!-- 0x23c4 3 regids, lowest one goes to 0 when *not* per-sample shading -->
20617ec681f3Smrg	<reg32 offset="0x23c4" name="HLSQ_CONTROL_4_REG">
20627ec681f3Smrg		<bitfield name="IJ_PERSP_SAMPLE" low="0" high="7" type="a3xx_regid"/>
20637ec681f3Smrg		<bitfield name="IJ_LINEAR_SAMPLE" low="8" high="15" type="a3xx_regid"/>
20647ec681f3Smrg	</reg32>
20657ec681f3Smrg
20667ec681f3Smrg	<bitset name="a4xx_xs_control_reg" inline="yes">
20677ec681f3Smrg		<bitfield name="CONSTLENGTH" low="0" high="7" type="uint"/>
20687ec681f3Smrg		<bitfield name="CONSTOBJECTOFFSET" low="8" high="14" type="uint"/>
20697ec681f3Smrg		<bitfield name="SSBO_ENABLE" pos="15" type="boolean"/>
20707ec681f3Smrg		<bitfield name="ENABLED" pos="16" type="boolean"/>
20717ec681f3Smrg		<bitfield name="SHADEROBJOFFSET" low="17" high="23" type="uint"/>
20727ec681f3Smrg		<bitfield name="INSTRLENGTH" low="24" high="31" type="uint"/>
20737ec681f3Smrg	</bitset>
20747ec681f3Smrg	<reg32 offset="0x23c5" name="HLSQ_VS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20757ec681f3Smrg	<reg32 offset="0x23c6" name="HLSQ_FS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20767ec681f3Smrg	<reg32 offset="0x23c7" name="HLSQ_HS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20777ec681f3Smrg	<reg32 offset="0x23c8" name="HLSQ_DS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20787ec681f3Smrg	<reg32 offset="0x23c9" name="HLSQ_GS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20797ec681f3Smrg	<reg32 offset="0x23ca" name="HLSQ_CS_CONTROL_REG" type="a4xx_xs_control_reg"/>
20807ec681f3Smrg	<reg32 offset="0x23cd" name="HLSQ_CL_NDRANGE_0">
20817ec681f3Smrg		<bitfield name="KERNELDIM" low="0" high="1" type="uint"/>
20827ec681f3Smrg		<!-- localsize is value minus one: -->
20837ec681f3Smrg		<bitfield name="LOCALSIZEX" low="2" high="11" type="uint"/>
20847ec681f3Smrg		<bitfield name="LOCALSIZEY" low="12" high="21" type="uint"/>
20857ec681f3Smrg		<bitfield name="LOCALSIZEZ" low="22" high="31" type="uint"/>
20867ec681f3Smrg	</reg32>
20877ec681f3Smrg	<reg32 offset="0x23ce" name="HLSQ_CL_NDRANGE_1">
20887ec681f3Smrg		<bitfield name="SIZE_X" low="0" high="31" type="uint"/>
20897ec681f3Smrg	</reg32>
20907ec681f3Smrg	<reg32 offset="0x23cf" name="HLSQ_CL_NDRANGE_2"/>
20917ec681f3Smrg	<reg32 offset="0x23d0" name="HLSQ_CL_NDRANGE_3">
20927ec681f3Smrg		<bitfield name="SIZE_Y" low="0" high="31" type="uint"/>
20937ec681f3Smrg	</reg32>
20947ec681f3Smrg	<reg32 offset="0x23d1" name="HLSQ_CL_NDRANGE_4"/>
20957ec681f3Smrg	<reg32 offset="0x23d2" name="HLSQ_CL_NDRANGE_5">
20967ec681f3Smrg		<bitfield name="SIZE_Z" low="0" high="31" type="uint"/>
20977ec681f3Smrg	</reg32>
20987ec681f3Smrg	<reg32 offset="0x23d3" name="HLSQ_CL_NDRANGE_6"/>
20997ec681f3Smrg	<reg32 offset="0x23d4" name="HLSQ_CL_CONTROL_0">
21007ec681f3Smrg		<bitfield name="WGIDCONSTID" low="0" high="11" type="a3xx_regid"/>
21017ec681f3Smrg		<bitfield name="UNK12CONSTID" low="12" high="23" type="a3xx_regid"/>
21027ec681f3Smrg		<bitfield name="LOCALIDREGID" low="24" high="31" type="a3xx_regid"/>
21037ec681f3Smrg	</reg32>
21047ec681f3Smrg	<reg32 offset="0x23d5" name="HLSQ_CL_CONTROL_1">
21057ec681f3Smrg		<bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/>
21067ec681f3Smrg		<bitfield name="UNK12CONSTID" low="12" high="23" type="a3xx_regid"/>
21077ec681f3Smrg	</reg32>
21087ec681f3Smrg	<reg32 offset="0x23d6" name="HLSQ_CL_KERNEL_CONST">
21097ec681f3Smrg		<bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/>
21107ec681f3Smrg		<bitfield name="NUMWGCONSTID" low="12" high="23" type="a3xx_regid"/>
21117ec681f3Smrg	</reg32>
21127ec681f3Smrg	<reg32 offset="0x23d7" name="HLSQ_CL_KERNEL_GROUP_X"/>
21137ec681f3Smrg	<reg32 offset="0x23d8" name="HLSQ_CL_KERNEL_GROUP_Y"/>
21147ec681f3Smrg	<reg32 offset="0x23d9" name="HLSQ_CL_KERNEL_GROUP_Z"/>
21157ec681f3Smrg	<reg32 offset="0x23da" name="HLSQ_CL_WG_OFFSET">
21167ec681f3Smrg		<bitfield name="UNK0CONSTID" low="0" high="11" type="a3xx_regid"/>
21177ec681f3Smrg	</reg32>
21187ec681f3Smrg	<reg32 offset="0x23db" name="HLSQ_UPDATE_CONTROL"/>
21197ec681f3Smrg
21207ec681f3Smrg	<!-- PC registers -->
21217ec681f3Smrg	<reg32 offset="0x0d00" name="PC_BINNING_COMMAND">
21227ec681f3Smrg		<bitfield name="BINNING_ENABLE" pos="0" type="boolean"/>
21237ec681f3Smrg	</reg32>
21247ec681f3Smrg	<reg32 offset="0x0d08" name="PC_TESSFACTOR_ADDR"/>
21257ec681f3Smrg	<reg32 offset="0x0d0c" name="PC_DRAWCALL_SETUP_OVERRIDE"/>
21267ec681f3Smrg	<reg32 offset="0x0d10" name="PC_PERFCTR_PC_SEL_0" type="a4xx_pc_perfcounter_select"/>
21277ec681f3Smrg	<reg32 offset="0x0d11" name="PC_PERFCTR_PC_SEL_1" type="a4xx_pc_perfcounter_select"/>
21287ec681f3Smrg	<reg32 offset="0x0d12" name="PC_PERFCTR_PC_SEL_2" type="a4xx_pc_perfcounter_select"/>
21297ec681f3Smrg	<reg32 offset="0x0d13" name="PC_PERFCTR_PC_SEL_3" type="a4xx_pc_perfcounter_select"/>
21307ec681f3Smrg	<reg32 offset="0x0d14" name="PC_PERFCTR_PC_SEL_4" type="a4xx_pc_perfcounter_select"/>
21317ec681f3Smrg	<reg32 offset="0x0d15" name="PC_PERFCTR_PC_SEL_5" type="a4xx_pc_perfcounter_select"/>
21327ec681f3Smrg	<reg32 offset="0x0d16" name="PC_PERFCTR_PC_SEL_6" type="a4xx_pc_perfcounter_select"/>
21337ec681f3Smrg	<reg32 offset="0x0d17" name="PC_PERFCTR_PC_SEL_7" type="a4xx_pc_perfcounter_select"/>
21347ec681f3Smrg	<reg32 offset="0x21c0" name="PC_BIN_BASE"/>
21357ec681f3Smrg	<reg32 offset="0x21c2" name="PC_VSTREAM_CONTROL">
21367ec681f3Smrg		<doc>SIZE is current pipe width * height (in tiles)</doc>
21377ec681f3Smrg		<bitfield name="SIZE" low="16" high="21" type="uint"/>
21387ec681f3Smrg		<doc>
21397ec681f3Smrg			N is some sort of slot # between 0..(SIZE-1).  In case
21407ec681f3Smrg			multiple tiles use same pipe, each tile gets unique slot #
21417ec681f3Smrg		</doc>
21427ec681f3Smrg		<bitfield name="N" low="22" high="26" type="uint"/>
21437ec681f3Smrg	</reg32>
21447ec681f3Smrg	<reg32 offset="0x21c4" name="PC_PRIM_VTX_CNTL">
21457ec681f3Smrg		<!-- bit0 set if there is >= 1 varying (actually used by FS) -->
21467ec681f3Smrg		<bitfield name="VAROUT" low="0" high="3" type="uint">
21477ec681f3Smrg			<doc>in groups of 4x vec4, blob only uses values
21487ec681f3Smrg			0, 1, 2, 4, 6, 8</doc>
21497ec681f3Smrg		</bitfield>
21507ec681f3Smrg		<bitfield name="PRIMITIVE_RESTART" pos="20" type="boolean"/>
21517ec681f3Smrg		<bitfield name="PROVOKING_VTX_LAST" pos="25" type="boolean"/>
21527ec681f3Smrg		<!-- PSIZE bit set if gl_PointSize written: -->
21537ec681f3Smrg		<bitfield name="PSIZE" pos="26" type="boolean"/>
21547ec681f3Smrg	</reg32>
21557ec681f3Smrg	<reg32 offset="0x21c5" name="PC_PRIM_VTX_CNTL2">
21567ec681f3Smrg		<bitfield name="POLYMODE_FRONT_PTYPE" low="0" high="2" type="adreno_pa_su_sc_draw"/>
21577ec681f3Smrg		<bitfield name="POLYMODE_BACK_PTYPE" low="3" high="5" type="adreno_pa_su_sc_draw"/>
21587ec681f3Smrg		<bitfield name="POLYMODE_ENABLE" pos="6" type="boolean"/>
21597ec681f3Smrg	</reg32>
21607ec681f3Smrg	<reg32 offset="0x21c6" name="PC_RESTART_INDEX"/>
21617ec681f3Smrg	<reg32 offset="0x21e5" name="PC_GS_PARAM">
21627ec681f3Smrg		<bitfield name="MAX_VERTICES" low="0" high="9" type="uint"/><!-- +1, i.e. max is 1024 -->
21637ec681f3Smrg		<bitfield name="INVOCATIONS" low="11" high="15" type="uint"/><!-- +1, i.e. max is 32 -->
21647ec681f3Smrg		<bitfield name="PRIMTYPE" low="23" high="24" type="adreno_pa_su_sc_draw"/>
21657ec681f3Smrg		<bitfield name="LAYER" pos="31" type="boolean"/>
21667ec681f3Smrg	</reg32>
21677ec681f3Smrg	<reg32 offset="0x21e7" name="PC_HS_PARAM">
21687ec681f3Smrg		<bitfield name="VERTICES_OUT" low="0" high="5" type="uint"/>
21697ec681f3Smrg		<bitfield name="SPACING" low="21" high="22" type="a4xx_tess_spacing"/>
21707ec681f3Smrg		<bitfield name="CW" pos="23" type="boolean"/>
21717ec681f3Smrg		<bitfield name="CONNECTED" pos="24" type="boolean"/>
21727ec681f3Smrg	</reg32>
21737ec681f3Smrg
21747ec681f3Smrg	<!-- VBIF registers -->
21757ec681f3Smrg	<reg32 offset="0x3000" name="VBIF_VERSION"/>
21767ec681f3Smrg	<reg32 offset="0x3001" name="VBIF_CLKON">
21777ec681f3Smrg		<bitfield name="FORCE_ON_TESTBUS" pos="0" type="boolean"/>
21787ec681f3Smrg	</reg32>
21797ec681f3Smrg	<reg32 offset="0x301c" name="VBIF_ABIT_SORT"/>
21807ec681f3Smrg	<reg32 offset="0x301d" name="VBIF_ABIT_SORT_CONF"/>
21817ec681f3Smrg	<reg32 offset="0x302a" name="VBIF_GATE_OFF_WRREQ_EN"/>
21827ec681f3Smrg	<reg32 offset="0x302c" name="VBIF_IN_RD_LIM_CONF0"/>
21837ec681f3Smrg	<reg32 offset="0x302d" name="VBIF_IN_RD_LIM_CONF1"/>
21847ec681f3Smrg	<reg32 offset="0x3030" name="VBIF_IN_WR_LIM_CONF0"/>
21857ec681f3Smrg	<reg32 offset="0x3031" name="VBIF_IN_WR_LIM_CONF1"/>
21867ec681f3Smrg	<reg32 offset="0x3049" name="VBIF_ROUND_ROBIN_QOS_ARB"/>
21877ec681f3Smrg	<reg32 offset="0x30c0" name="VBIF_PERF_CNT_EN0"/>
21887ec681f3Smrg	<reg32 offset="0x30c1" name="VBIF_PERF_CNT_EN1"/>
21897ec681f3Smrg	<reg32 offset="0x30c2" name="VBIF_PERF_CNT_EN2"/>
21907ec681f3Smrg	<reg32 offset="0x30c3" name="VBIF_PERF_CNT_EN3"/>
21917ec681f3Smrg	<reg32 offset="0x30d0" name="VBIF_PERF_CNT_SEL0" type="a4xx_vbif_perfcounter_select"/>
21927ec681f3Smrg	<reg32 offset="0x30d1" name="VBIF_PERF_CNT_SEL1" type="a4xx_vbif_perfcounter_select"/>
21937ec681f3Smrg	<reg32 offset="0x30d2" name="VBIF_PERF_CNT_SEL2" type="a4xx_vbif_perfcounter_select"/>
21947ec681f3Smrg	<reg32 offset="0x30d3" name="VBIF_PERF_CNT_SEL3" type="a4xx_vbif_perfcounter_select"/>
21957ec681f3Smrg	<reg32 offset="0x30d8" name="VBIF_PERF_CNT_LOW0"/>
21967ec681f3Smrg	<reg32 offset="0x30d9" name="VBIF_PERF_CNT_LOW1"/>
21977ec681f3Smrg	<reg32 offset="0x30da" name="VBIF_PERF_CNT_LOW2"/>
21987ec681f3Smrg	<reg32 offset="0x30db" name="VBIF_PERF_CNT_LOW3"/>
21997ec681f3Smrg	<reg32 offset="0x30e0" name="VBIF_PERF_CNT_HIGH0"/>
22007ec681f3Smrg	<reg32 offset="0x30e1" name="VBIF_PERF_CNT_HIGH1"/>
22017ec681f3Smrg	<reg32 offset="0x30e2" name="VBIF_PERF_CNT_HIGH2"/>
22027ec681f3Smrg	<reg32 offset="0x30e3" name="VBIF_PERF_CNT_HIGH3"/>
22037ec681f3Smrg	<reg32 offset="0x3100" name="VBIF_PERF_PWR_CNT_EN0"/>
22047ec681f3Smrg	<reg32 offset="0x3101" name="VBIF_PERF_PWR_CNT_EN1"/>
22057ec681f3Smrg	<reg32 offset="0x3102" name="VBIF_PERF_PWR_CNT_EN2"/>
22067ec681f3Smrg
22077ec681f3Smrg	<!--
22087ec681f3Smrg	Unknown registers:
22097ec681f3Smrg	(mostly related to DX11 features not used yet, I guess?)
22107ec681f3Smrg	-->
22117ec681f3Smrg
22127ec681f3Smrg	<!-- always 00000006: -->
22137ec681f3Smrg	<reg32 offset="0x0cc5" name="UNKNOWN_0CC5"/>
22147ec681f3Smrg
22157ec681f3Smrg	<!-- always 00000000: -->
22167ec681f3Smrg	<reg32 offset="0x0cc6" name="UNKNOWN_0CC6"/>
22177ec681f3Smrg
22187ec681f3Smrg	<!-- always 00000001: -->
22197ec681f3Smrg	<reg32 offset="0x0d01" name="UNKNOWN_0D01"/>
22207ec681f3Smrg
22217ec681f3Smrg	<!-- always 00000000: -->
22227ec681f3Smrg	<reg32 offset="0x0e42" name="UNKNOWN_0E42"/>
22237ec681f3Smrg
22247ec681f3Smrg	<!-- always 00040000: -->
22257ec681f3Smrg	<reg32 offset="0x0ec2" name="UNKNOWN_0EC2"/>
22267ec681f3Smrg
22277ec681f3Smrg	<!-- always 00000000: -->
22287ec681f3Smrg	<reg32 offset="0x2001" name="UNKNOWN_2001"/>
22297ec681f3Smrg
22307ec681f3Smrg	<!-- always 00000000: -->
22317ec681f3Smrg	<reg32 offset="0x209b" name="UNKNOWN_209B"/>
22327ec681f3Smrg
22337ec681f3Smrg	<!-- always 00000000: -->
22347ec681f3Smrg	<reg32 offset="0x20ef" name="UNKNOWN_20EF"/>
22357ec681f3Smrg
22367ec681f3Smrg	<!-- always 00000000: -->
22377ec681f3Smrg	<reg32 offset="0x2152" name="UNKNOWN_2152"/>
22387ec681f3Smrg
22397ec681f3Smrg	<!-- always 00000000: -->
22407ec681f3Smrg	<reg32 offset="0x2153" name="UNKNOWN_2153"/>
22417ec681f3Smrg
22427ec681f3Smrg	<!-- always 00000000: -->
22437ec681f3Smrg	<reg32 offset="0x2154" name="UNKNOWN_2154"/>
22447ec681f3Smrg
22457ec681f3Smrg	<!-- always 00000000: -->
22467ec681f3Smrg	<reg32 offset="0x2155" name="UNKNOWN_2155"/>
22477ec681f3Smrg
22487ec681f3Smrg	<!-- always 00000000: -->
22497ec681f3Smrg	<reg32 offset="0x2156" name="UNKNOWN_2156"/>
22507ec681f3Smrg
22517ec681f3Smrg	<!-- always 00000000: -->
22527ec681f3Smrg	<reg32 offset="0x2157" name="UNKNOWN_2157"/>
22537ec681f3Smrg
22547ec681f3Smrg	<!-- always 0000000b: -->
22557ec681f3Smrg	<reg32 offset="0x21c3" name="UNKNOWN_21C3"/>
22567ec681f3Smrg
22577ec681f3Smrg	<!-- always 00000001: -->
22587ec681f3Smrg	<reg32 offset="0x21e6" name="UNKNOWN_21E6"/>
22597ec681f3Smrg
22607ec681f3Smrg	<!-- always 00000000: -->
22617ec681f3Smrg	<reg32 offset="0x2209" name="UNKNOWN_2209"/>
22627ec681f3Smrg
22637ec681f3Smrg	<!-- always 00000000: -->
22647ec681f3Smrg	<reg32 offset="0x22d7" name="UNKNOWN_22D7"/>
22657ec681f3Smrg
22667ec681f3Smrg        <!-- always 00fcfc00: -->
22677ec681f3Smrg        <reg32 offset="0x2352" name="UNKNOWN_2352"/>
22687ec681f3Smrg
22697ec681f3Smrg</domain>
22707ec681f3Smrg
22717ec681f3Smrg
22727ec681f3Smrg<domain name="A4XX_TEX_SAMP" width="32">
22737ec681f3Smrg	<doc>Texture sampler dwords</doc>
22747ec681f3Smrg	<enum name="a4xx_tex_filter">
22757ec681f3Smrg		<value name="A4XX_TEX_NEAREST" value="0"/>
22767ec681f3Smrg		<value name="A4XX_TEX_LINEAR" value="1"/>
22777ec681f3Smrg		<value name="A4XX_TEX_ANISO" value="2"/>
22787ec681f3Smrg	</enum>
22797ec681f3Smrg	<enum name="a4xx_tex_clamp">
22807ec681f3Smrg		<value name="A4XX_TEX_REPEAT" value="0"/>
22817ec681f3Smrg		<value name="A4XX_TEX_CLAMP_TO_EDGE" value="1"/>
22827ec681f3Smrg		<value name="A4XX_TEX_MIRROR_REPEAT" value="2"/>
22837ec681f3Smrg		<value name="A4XX_TEX_CLAMP_TO_BORDER" value="3"/>
22847ec681f3Smrg		<value name="A4XX_TEX_MIRROR_CLAMP" value="4"/>
22857ec681f3Smrg	</enum>
22867ec681f3Smrg	<enum name="a4xx_tex_aniso">
22877ec681f3Smrg		<value name="A4XX_TEX_ANISO_1" value="0"/>
22887ec681f3Smrg		<value name="A4XX_TEX_ANISO_2" value="1"/>
22897ec681f3Smrg		<value name="A4XX_TEX_ANISO_4" value="2"/>
22907ec681f3Smrg		<value name="A4XX_TEX_ANISO_8" value="3"/>
22917ec681f3Smrg		<value name="A4XX_TEX_ANISO_16" value="4"/>
22927ec681f3Smrg	</enum>
22937ec681f3Smrg	<reg32 offset="0" name="0">
22947ec681f3Smrg		<bitfield name="MIPFILTER_LINEAR_NEAR" pos="0" type="boolean"/>
22957ec681f3Smrg		<bitfield name="XY_MAG" low="1" high="2" type="a4xx_tex_filter"/>
22967ec681f3Smrg		<bitfield name="XY_MIN" low="3" high="4" type="a4xx_tex_filter"/>
22977ec681f3Smrg		<bitfield name="WRAP_S" low="5" high="7" type="a4xx_tex_clamp"/>
22987ec681f3Smrg		<bitfield name="WRAP_T" low="8" high="10" type="a4xx_tex_clamp"/>
22997ec681f3Smrg		<bitfield name="WRAP_R" low="11" high="13" type="a4xx_tex_clamp"/>
23007ec681f3Smrg		<bitfield name="ANISO" low="14" high="16" type="a4xx_tex_aniso"/>
23017ec681f3Smrg		<bitfield name="LOD_BIAS" low="19" high="31" type="fixed" radix="8"/><!-- no idea how many bits for real -->
23027ec681f3Smrg	</reg32>
23037ec681f3Smrg	<reg32 offset="1" name="1">
23047ec681f3Smrg		<bitfield name="COMPARE_FUNC" low="1" high="3" type="adreno_compare_func"/>
23057ec681f3Smrg		<bitfield name="CUBEMAPSEAMLESSFILTOFF" pos="4" type="boolean"/>
23067ec681f3Smrg		<bitfield name="UNNORM_COORDS" pos="5" type="boolean"/>
23077ec681f3Smrg		<bitfield name="MIPFILTER_LINEAR_FAR" pos="6" type="boolean"/>
23087ec681f3Smrg		<bitfield name="MAX_LOD" low="8" high="19" type="ufixed" radix="8"/>
23097ec681f3Smrg		<bitfield name="MIN_LOD" low="20" high="31" type="ufixed" radix="8"/>
23107ec681f3Smrg	</reg32>
23117ec681f3Smrg</domain>
23127ec681f3Smrg
23137ec681f3Smrg<domain name="A4XX_TEX_CONST" width="32">
23147ec681f3Smrg	<doc>Texture constant dwords</doc>
23157ec681f3Smrg	<enum name="a4xx_tex_swiz">
23167ec681f3Smrg		<!-- same as a2xx? -->
23177ec681f3Smrg		<value name="A4XX_TEX_X" value="0"/>
23187ec681f3Smrg		<value name="A4XX_TEX_Y" value="1"/>
23197ec681f3Smrg		<value name="A4XX_TEX_Z" value="2"/>
23207ec681f3Smrg		<value name="A4XX_TEX_W" value="3"/>
23217ec681f3Smrg		<value name="A4XX_TEX_ZERO" value="4"/>
23227ec681f3Smrg		<value name="A4XX_TEX_ONE" value="5"/>
23237ec681f3Smrg	</enum>
23247ec681f3Smrg	<enum name="a4xx_tex_type">
23257ec681f3Smrg		<value name="A4XX_TEX_1D" value="0"/>
23267ec681f3Smrg		<value name="A4XX_TEX_2D" value="1"/>
23277ec681f3Smrg		<value name="A4XX_TEX_CUBE" value="2"/>
23287ec681f3Smrg		<value name="A4XX_TEX_3D" value="3"/>
23297ec681f3Smrg	</enum>
23307ec681f3Smrg	<reg32 offset="0" name="0">
23317ec681f3Smrg		<bitfield name="TILED" pos="0" type="boolean"/>
23327ec681f3Smrg		<bitfield name="SRGB" pos="2" type="boolean"/>
23337ec681f3Smrg		<bitfield name="SWIZ_X" low="4" high="6" type="a4xx_tex_swiz"/>
23347ec681f3Smrg		<bitfield name="SWIZ_Y" low="7" high="9" type="a4xx_tex_swiz"/>
23357ec681f3Smrg		<bitfield name="SWIZ_Z" low="10" high="12" type="a4xx_tex_swiz"/>
23367ec681f3Smrg		<bitfield name="SWIZ_W" low="13" high="15" type="a4xx_tex_swiz"/>
23377ec681f3Smrg		<bitfield name="MIPLVLS" low="16" high="19" type="uint"/>
23387ec681f3Smrg		<bitfield name="FMT" low="22" high="28" type="a4xx_tex_fmt"/>
23397ec681f3Smrg		<bitfield name="TYPE" low="29" high="30" type="a4xx_tex_type"/>
23407ec681f3Smrg	</reg32>
23417ec681f3Smrg	<reg32 offset="1" name="1">
23427ec681f3Smrg		<bitfield name="HEIGHT" low="0" high="14" type="uint"/>
23437ec681f3Smrg		<bitfield name="WIDTH" low="15" high="29" type="uint"/>
23447ec681f3Smrg	</reg32>
23457ec681f3Smrg	<reg32 offset="2" name="2">
23467ec681f3Smrg		<!-- minimum pitch (for mipmap levels): log2(pitchalign / 32) -->
23477ec681f3Smrg		<bitfield name="PITCHALIGN" low="0" high="3" type="uint"/>
23487ec681f3Smrg		<doc>Pitch in bytes (so actually stride)</doc>
23497ec681f3Smrg		<bitfield name="PITCH" low="9" high="29" type="uint"/>
23507ec681f3Smrg		<bitfield name="SWAP" low="30" high="31" type="a3xx_color_swap"/>
23517ec681f3Smrg	</reg32>
23527ec681f3Smrg	<reg32 offset="3" name="3">
23537ec681f3Smrg		<bitfield name="LAYERSZ" low="0" high="13" shr="12" type="uint"/>
23547ec681f3Smrg		<bitfield name="DEPTH" low="18" high="30" type="uint"/>
23557ec681f3Smrg	</reg32>
23567ec681f3Smrg	<reg32 offset="4" name="4">
23577ec681f3Smrg		<!--
23587ec681f3Smrg		like a3xx we seem to have two LAYERSZ's.. although this one
23597ec681f3Smrg		seems too small to be useful, and when it overflows blob just
23607ec681f3Smrg		sets it to zero..
23617ec681f3Smrg		 -->
23627ec681f3Smrg		<bitfield name="LAYERSZ" low="0" high="3" shr="12" type="uint"/>
23637ec681f3Smrg		<bitfield name="BASE" low="5" high="31" shr="5"/>
23647ec681f3Smrg	</reg32>
23657ec681f3Smrg	<reg32 offset="5" name="5"/>
23667ec681f3Smrg	<reg32 offset="6" name="6"/>
23677ec681f3Smrg	<reg32 offset="7" name="7"/>
23687ec681f3Smrg</domain>
23697ec681f3Smrg
23707ec681f3Smrg<domain name="A4XX_SSBO_0" width="32">
23717ec681f3Smrg	<reg32 offset="0" name="0">
23727ec681f3Smrg		<bitfield name="BASE" low="5" high="31" shr="5"/>
23737ec681f3Smrg	</reg32>
23747ec681f3Smrg	<reg32 offset="1" name="1">
23757ec681f3Smrg		<doc>Pitch in bytes (so actually stride)</doc>
23767ec681f3Smrg		<bitfield name="PITCH" low="0" high="21" type="uint"/>
23777ec681f3Smrg	</reg32>
23787ec681f3Smrg	<reg32 offset="2" name="2">
23797ec681f3Smrg		<bitfield name="ARRAY_PITCH" low="12" high="25" shr="12" type="uint"/>
23807ec681f3Smrg	</reg32>
23817ec681f3Smrg	<reg32 offset="3" name="3">
23827ec681f3Smrg		<!-- bytes per pixel: -->
23837ec681f3Smrg		<bitfield name="CPP" low="0" high="5" type="uint"/>
23847ec681f3Smrg	</reg32>
23857ec681f3Smrg</domain>
23867ec681f3Smrg
23877ec681f3Smrg<domain name="A4XX_SSBO_1" width="32">
23887ec681f3Smrg	<reg32 offset="0" name="0">
23897ec681f3Smrg		<bitfield name="CPP" low="0" high="4" type="uint"/>
23907ec681f3Smrg		<bitfield name="FMT" low="8" high="15" type="a4xx_color_fmt"/>
23917ec681f3Smrg		<bitfield name="WIDTH" low="16" high="31" type="uint"/>
23927ec681f3Smrg	</reg32>
23937ec681f3Smrg	<reg32 offset="1" name="1">
23947ec681f3Smrg		<bitfield name="HEIGHT" low="0" high="15" type="uint"/>
23957ec681f3Smrg		<bitfield name="DEPTH" low="16" high="31" type="uint"/>
23967ec681f3Smrg	</reg32>
23977ec681f3Smrg</domain>
23987ec681f3Smrg
23997ec681f3Smrg</database>
2400