<?
xml version=
"1.0" encoding=
"UTF-8"?>
<database
xmlns=
"http://nouveau.freedesktop.org/"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"https://gitlab.freedesktop.org/freedreno/ rules-fd.xsd">
<import file=
"freedreno_copyright.xml"/>
<import file=
"adreno/adreno_common.xml"/>
<import file=
"adreno/adreno_pm4.xml"/>
<enum name=
"a4xx_color_fmt">
<value name=
"RB4_A8_UNORM" value=
"0x01"/>
<value name=
"RB4_R8_UNORM" value=
"0x02"/>
<value name=
"RB4_R8_SNORM" value=
"0x03"/>
<value name=
"RB4_R8_UINT" value=
"0x04"/>
<value name=
"RB4_R8_SINT" value=
"0x05"/>
<value name=
"RB4_R4G4B4A4_UNORM" value=
"0x08"/>
<value name=
"RB4_R5G5B5A1_UNORM" value=
"0x0a"/>
<value name=
"RB4_R5G6B5_UNORM" value=
"0x0e"/>
<value name=
"RB4_R8G8_UNORM" value=
"0x0f"/>
<value name=
"RB4_R8G8_SNORM" value=
"0x10"/>
<value name=
"RB4_R8G8_UINT" value=
"0x11"/>
<value name=
"RB4_R8G8_SINT" value=
"0x12"/>
<value name=
"RB4_R16_UNORM" value=
"0x13"/>
<value name=
"RB4_R16_SNORM" value=
"0x14"/>
<value name=
"RB4_R16_FLOAT" value=
"0x15"/>
<value name=
"RB4_R16_UINT" value=
"0x16"/>
<value name=
"RB4_R16_SINT" value=
"0x17"/>
<value name=
"RB4_R8G8B8_UNORM" value=
"0x19"/>
<value name=
"RB4_R8G8B8A8_UNORM" value=
"0x1a"/>
<value name=
"RB4_R8G8B8A8_SNORM" value=
"0x1c"/>
<value name=
"RB4_R8G8B8A8_UINT" value=
"0x1d"/>
<value name=
"RB4_R8G8B8A8_SINT" value=
"0x1e"/>
<value name=
"RB4_R10G10B10A2_UNORM" value=
"0x1f"/>
<value name=
"RB4_R10G10B10A2_UINT" value=
"0x22"/>
<value name=
"RB4_R11G11B10_FLOAT" value=
"0x27"/>
<value name=
"RB4_R16G16_UNORM" value=
"0x28"/>
<value name=
"RB4_R16G16_SNORM" value=
"0x29"/>
<value name=
"RB4_R16G16_FLOAT" value=
"0x2a"/>
<value name=
"RB4_R16G16_UINT" value=
"0x2b"/>
<value name=
"RB4_R16G16_SINT" value=
"0x2c"/>
<value name=
"RB4_R32_FLOAT" value=
"0x2d"/>
<value name=
"RB4_R32_UINT" value=
"0x2e"/>
<value name=
"RB4_R32_SINT" value=
"0x2f"/>
<value name=
"RB4_R16G16B16A16_UNORM" value=
"0x34"/>
<value name=
"RB4_R16G16B16A16_SNORM" value=
"0x35"/>
<value name=
"RB4_R16G16B16A16_FLOAT" value=
"0x36"/>
<value name=
"RB4_R16G16B16A16_UINT" value=
"0x37"/>
<value name=
"RB4_R16G16B16A16_SINT" value=
"0x38"/>
<value name=
"RB4_R32G32_FLOAT" value=
"0x39"/>
<value name=
"RB4_R32G32_UINT" value=
"0x3a"/>
<value name=
"RB4_R32G32_SINT" value=
"0x3b"/>
<value name=
"RB4_R32G32B32A32_FLOAT" value=
"0x3c"/>
<value name=
"RB4_R32G32B32A32_UINT" value=
"0x3d"/>
<value name=
"RB4_R32G32B32A32_SINT" value=
"0x3e"/>
<value name=
"RB4_NONE" value=
"0xff"/>
</enum>
<enum name=
"a4xx_tile_mode">
<value name=
"TILE4_LINEAR" value=
"0"/>
<value name=
"TILE4_2" value=
"2"/>
<value name=
"TILE4_3" value=
"3"/>
</enum>
<enum name=
"a4xx_vtx_fmt" prefix=
"chipset">
<!-- hmm, shifted one compared to a3xx?!? -->
<value name=
"VFMT4_32_FLOAT" value=
"0x1"/>
<value name=
"VFMT4_32_32_FLOAT" value=
"0x2"/>
<value name=
"VFMT4_32_32_32_FLOAT" value=
"0x3"/>
<value name=
"VFMT4_32_32_32_32_FLOAT" value=
"0x4"/>
<value name=
"VFMT4_16_FLOAT" value=
"0x5"/>
<value name=
"VFMT4_16_16_FLOAT" value=
"0x6"/>
<value name=
"VFMT4_16_16_16_FLOAT" value=
"0x7"/>
<value name=
"VFMT4_16_16_16_16_FLOAT" value=
"0x8"/>
<value name=
"VFMT4_32_FIXED" value=
"0x9"/>
<value name=
"VFMT4_32_32_FIXED" value=
"0xa"/>
<value name=
"VFMT4_32_32_32_FIXED" value=
"0xb"/>
<value name=
"VFMT4_32_32_32_32_FIXED" value=
"0xc"/>
<value name=
"VFMT4_11_11_10_FLOAT" value=
"0xd"/>
<!-- beyond here it does not appear to be shifted -->
<value name=
"VFMT4_16_SINT" value=
"0x10"/>
<value name=
"VFMT4_16_16_SINT" value=
"0x11"/>
<value name=
"VFMT4_16_16_16_SINT" value=
"0x12"/>
<value name=
"VFMT4_16_16_16_16_SINT" value=
"0x13"/>
<value name=
"VFMT4_16_UINT" value=
"0x14"/>
<value name=
"VFMT4_16_16_UINT" value=
"0x15"/>
<value name=
"VFMT4_16_16_16_UINT" value=
"0x16"/>
<value name=
"VFMT4_16_16_16_16_UINT" value=
"0x17"/>
<value name=
"VFMT4_16_SNORM" value=
"0x18"/>
<value name=
"VFMT4_16_16_SNORM" value=
"0x19"/>
<value name=
"VFMT4_16_16_16_SNORM" value=
"0x1a"/>
<value name=
"VFMT4_16_16_16_16_SNORM" value=
"0x1b"/>
<value name=
"VFMT4_16_UNORM" value=
"0x1c"/>
<value name=
"VFMT4_16_16_UNORM" value=
"0x1d"/>
<value name=
"VFMT4_16_16_16_UNORM" value=
"0x1e"/>
<value name=
"VFMT4_16_16_16_16_UNORM" value=
"0x1f"/>
<value name=
"VFMT4_32_UINT" value=
"0x20"/>
<value name=
"VFMT4_32_32_UINT" value=
"0x21"/>
<value name=
"VFMT4_32_32_32_UINT" value=
"0x22"/>
<value name=
"VFMT4_32_32_32_32_UINT" value=
"0x23"/>
<value name=
"VFMT4_32_SINT" value=
"0x24"/>
<value name=
"VFMT4_32_32_SINT" value=
"0x25"/>
<value name=
"VFMT4_32_32_32_SINT" value=
"0x26"/>
<value name=
"VFMT4_32_32_32_32_SINT" value=
"0x27"/>
<value name=
"VFMT4_8_UINT" value=
"0x28"/>
<value name=
"VFMT4_8_8_UINT" value=
"0x29"/>
<value name=
"VFMT4_8_8_8_UINT" value=
"0x2a"/>
<value name=
"VFMT4_8_8_8_8_UINT" value=
"0x2b"/>
<value name=
"VFMT4_8_UNORM" value=
"0x2c"/>
<value name=
"VFMT4_8_8_UNORM" value=
"0x2d"/>
<value name=
"VFMT4_8_8_8_UNORM" value=
"0x2e"/>
<value name=
"VFMT4_8_8_8_8_UNORM" value=
"0x2f"/>
<value name=
"VFMT4_8_SINT" value=
"0x30"/>
<value name=
"VFMT4_8_8_SINT" value=
"0x31"/>
<value name=
"VFMT4_8_8_8_SINT" value=
"0x32"/>
<value name=
"VFMT4_8_8_8_8_SINT" value=
"0x33"/>
<value name=
"VFMT4_8_SNORM" value=
"0x34"/>
<value name=
"VFMT4_8_8_SNORM" value=
"0x35"/>
<value name=
"VFMT4_8_8_8_SNORM" value=
"0x36"/>
<value name=
"VFMT4_8_8_8_8_SNORM" value=
"0x37"/>
<value name=
"VFMT4_10_10_10_2_UINT" value=
"0x38"/>
<value name=
"VFMT4_10_10_10_2_UNORM" value=
"0x39"/>
<value name=
"VFMT4_10_10_10_2_SINT" value=
"0x3a"/>
<value name=
"VFMT4_10_10_10_2_SNORM" value=
"0x3b"/>
<value name=
"VFMT4_2_10_10_10_UINT" value=
"0x3c"/>
<value name=
"VFMT4_2_10_10_10_UNORM" value=
"0x3d"/>
<value name=
"VFMT4_2_10_10_10_SINT" value=
"0x3e"/>
<value name=
"VFMT4_2_10_10_10_SNORM" value=
"0x3f"/>
<value name=
"VFMT4_NONE" value=
"0xff"/>
</enum>
<enum name=
"a4xx_tex_fmt">
<!-- 0x00 .. 0x02 -->
<!-- 8-bit formats -->
<value name=
"TFMT4_A8_UNORM" value=
"0x03"/>
<value name=
"TFMT4_8_UNORM" value=
"0x04"/>
<value name=
"TFMT4_8_SNORM" value=
"0x05"/>
<value name=
"TFMT4_8_UINT" value=
"0x06"/>
<value name=
"TFMT4_8_SINT" value=
"0x07"/>
<!-- 16-bit formats -->
<value name=
"TFMT4_4_4_4_4_UNORM" value=
"0x08"/>
<value name=
"TFMT4_5_5_5_1_UNORM" value=
"0x09"/>
<!-- 0x0a -->
<value name=
"TFMT4_5_6_5_UNORM" value=
"0x0b"/>
<!-- 0x0c -->
<value name=
"TFMT4_L8_A8_UNORM" value=
"0x0d"/>
<value name=
"TFMT4_8_8_UNORM" value=
"0x0e"/>
<value name=
"TFMT4_8_8_SNORM" value=
"0x0f"/>
<value name=
"TFMT4_8_8_UINT" value=
"0x10"/>
<value name=
"TFMT4_8_8_SINT" value=
"0x11"/>
<value name=
"TFMT4_16_UNORM" value=
"0x12"/>
<value name=
"TFMT4_16_SNORM" value=
"0x13"/>
<value name=
"TFMT4_16_FLOAT" value=
"0x14"/>
<value name=
"TFMT4_16_UINT" value=
"0x15"/>
<value name=
"TFMT4_16_SINT" value=
"0x16"/>
<!-- 0x17 .. 0x1b -->
<!-- 32-bit formats -->
<value name=
"TFMT4_8_8_8_8_UNORM" value=
"0x1c"/>
<value name=
"TFMT4_8_8_8_8_SNORM" value=
"0x1d"/>
<value name=
"TFMT4_8_8_8_8_UINT" value=
"0x1e"/>
<value name=
"TFMT4_8_8_8_8_SINT" value=
"0x1f"/>
<value name=
"TFMT4_9_9_9_E5_FLOAT" value=
"0x20"/>
<value name=
"TFMT4_10_10_10_2_UNORM" value=
"0x21"/>
<value name=
"TFMT4_10_10_10_2_UINT" value=
"0x22"/>
<!-- 0x23 .. 0x24 -->
<value name=
"TFMT4_11_11_10_FLOAT" value=
"0x25"/>
<value name=
"TFMT4_16_16_UNORM" value=
"0x26"/>
<value name=
"TFMT4_16_16_SNORM" value=
"0x27"/>
<value name=
"TFMT4_16_16_FLOAT" value=
"0x28"/>
<value name=
"TFMT4_16_16_UINT" value=
"0x29"/>
<value name=
"TFMT4_16_16_SINT" value=
"0x2a"/>
<value name=
"TFMT4_32_FLOAT" value=
"0x2b"/>
<value name=
"TFMT4_32_UINT" value=
"0x2c"/>
<value name=
"TFMT4_32_SINT" value=
"0x2d"/>
<!-- 0x2e .. 0x32 -->
<!-- 64-bit formats -->
<value name=
"TFMT4_16_16_16_16_UNORM" value=
"0x33"/>
<value name=
"TFMT4_16_16_16_16_SNORM" value=
"0x34"/>
<value name=
"TFMT4_16_16_16_16_FLOAT" value=
"0x35"/>
<value name=
"TFMT4_16_16_16_16_UINT" value=
"0x36"/>
<value name=
"TFMT4_16_16_16_16_SINT" value=
"0x37"/>
<value name=
"TFMT4_32_32_FLOAT" value=
"0x38"/>
<value name=
"TFMT4_32_32_UINT" value=
"0x39"/>
<value name=
"TFMT4_32_32_SINT" value=
"0x3a"/>
<!-- 96-bit formats -->
<value name=
"TFMT4_32_32_32_FLOAT" value=
"0x3b"/>
<value name=
"TFMT4_32_32_32_UINT" value=
"0x3c"/>
<value name=
"TFMT4_32_32_32_SINT" value=
"0x3d"/>
<!-- 0x3e -->
<!-- 128-bit formats -->
<value name=
"TFMT4_32_32_32_32_FLOAT" value=
"0x3f"/>
<value name=
"TFMT4_32_32_32_32_UINT" value=
"0x40"/>
<value name=
"TFMT4_32_32_32_32_SINT" value=
"0x41"/>
<!-- 0x42 .. 0x46 -->
<value name=
"TFMT4_X8Z24_UNORM" value=
"0x47"/>
<!-- 0x48 .. 0x55 -->
<!-- compressed formats -->
<value name=
"TFMT4_DXT1" value=
"0x56"/>
<value name=
"TFMT4_DXT3" value=
"0x57"/>
<value name=
"TFMT4_DXT5" value=
"0x58"/>
<!-- 0x59 -->
<value name=
"TFMT4_RGTC1_UNORM" value=
"0x5a"/>
<value name=
"TFMT4_RGTC1_SNORM" value=
"0x5b"/>
<!-- 0x5c .. 0x5d -->
<value name=
"TFMT4_RGTC2_UNORM" value=
"0x5e"/>
<value name=
"TFMT4_RGTC2_SNORM" value=
"0x5f"/>
<!-- 0x60 -->
<value name=
"TFMT4_BPTC_UFLOAT" value=
"0x61"/>
<value name=
"TFMT4_BPTC_FLOAT" value=
"0x62"/>
<value name=
"TFMT4_BPTC" value=
"0x63"/>
<value name=
"TFMT4_ATC_RGB" value=
"0x64"/>
<value name=
"TFMT4_ATC_RGBA_EXPLICIT" value=
"0x65"/>
<value name=
"TFMT4_ATC_RGBA_INTERPOLATED" value=
"0x66"/>
<value name=
"TFMT4_ETC2_RG11_UNORM" value=
"0x67"/>
<value name=
"TFMT4_ETC2_RG11_SNORM" value=
"0x68"/>
<value name=
"TFMT4_ETC2_R11_UNORM" value=
"0x69"/>
<value name=
"TFMT4_ETC2_R11_SNORM" value=
"0x6a"/>
<value name=
"TFMT4_ETC1" value=
"0x6b"/>
<value name=
"TFMT4_ETC2_RGB8" value=
"0x6c"/>
<value name=
"TFMT4_ETC2_RGBA8" value=
"0x6d"/>
<value name=
"TFMT4_ETC2_RGB8A1" value=
"0x6e"/>
<value name=
"TFMT4_ASTC_4x4" value=
"0x6f"/>
<value name=
"TFMT4_ASTC_5x4" value=
"0x70"/>
<value name=
"TFMT4_ASTC_5x5" value=
"0x71"/>
<value name=
"TFMT4_ASTC_6x5" value=
"0x72"/>
<value name=
"TFMT4_ASTC_6x6" value=
"0x73"/>
<value name=
"TFMT4_ASTC_8x5" value=
"0x74"/>
<value name=
"TFMT4_ASTC_8x6" value=
"0x75"/>
<value name=
"TFMT4_ASTC_8x8" value=
"0x76"/>
<value name=
"TFMT4_ASTC_10x5" value=
"0x77"/>
<value name=
"TFMT4_ASTC_10x6" value=
"0x78"/>
<value name=
"TFMT4_ASTC_10x8" value=
"0x79"/>
<value name=
"TFMT4_ASTC_10x10" value=
"0x7a"/>
<value name=
"TFMT4_ASTC_12x10" value=
"0x7b"/>
<value name=
"TFMT4_ASTC_12x12" value=
"0x7c"/>
<!-- 0x7d .. 0x7f -->
<value name=
"TFMT4_NONE" value=
"0xff"/>
</enum>
<enum name=
"a4xx_depth_format">
<value name=
"DEPTH4_NONE" value=
"0"/>
<value name=
"DEPTH4_16" value=
"1"/>
<value name=
"DEPTH4_24_8" value=
"2"/>
<value name=
"DEPTH4_32" value=
"3"/>
</enum>
<!--
NOTE counters extracted from test-perf log with the following awful
script:
##################
#!/bin/bash
log=$1
grep -F "counter
countable
group" $log | grep -v gl > shortlist.txt
countable=""
IFS=$'\n'; for line in $(cat shortlist.txt); do
# parse ######### group[$n]: $name
l=${line########### group}
if [ $l != $line ]; then
group=`echo $line | awk '{print $3}'`
echo "Group: $group"
continue
fi
# parse ######### counter[$n]: $name
l=${line########### counter}
if [ $l != $line ]; then
countable=`echo $line | awk '{print $3}'`
#echo " Countable: $countable"
continue
fi
# parse countable:
l=${line## countable:}
if [ $l != $line ]; then
val=`echo $line | awk '{print $2}'`
echo "<value value=\"$val\" name=\"$countable\"/>"
fi
done
##################
-->
<enum name=
"a4xx_ccu_perfcounter_select">
<value value=
"0" name=
"CCU_BUSY_CYCLES"/>
<value value=
"2" name=
"CCU_RB_DEPTH_RETURN_STALL"/>
<value value=
"3" name=
"CCU_RB_COLOR_RETURN_STALL"/>
<value value=
"6" name=
"CCU_DEPTH_BLOCKS"/>
<value value=
"7" name=
"CCU_COLOR_BLOCKS"/>
<value value=
"8" name=
"CCU_DEPTH_BLOCK_HIT"/>
<value value=
"9" name=
"CCU_COLOR_BLOCK_HIT"/>
<value value=
"10" name=
"CCU_DEPTH_FLAG1_COUNT"/>
<value value=
"11" name=
"CCU_DEPTH_FLAG2_COUNT"/>
<value value=
"12" name=
"CCU_DEPTH_FLAG3_COUNT"/>
<value value=
"13" name=
"CCU_DEPTH_FLAG4_COUNT"/>
<value value=
"14" name=
"CCU_COLOR_FLAG1_COUNT"/>
<value value=
"15" name=
"CCU_COLOR_FLAG2_COUNT"/>
<value value=
"16" name=
"CCU_COLOR_FLAG3_COUNT"/>
<value value=
"17" name=
"CCU_COLOR_FLAG4_COUNT"/>
<value value=
"18" name=
"CCU_PARTIAL_BLOCK_READ"/>
</enum>
<!--
NOTE other than CP_ALWAYS_COUNT (which is the only one we use so far),
on a3xx the countable #'s from AMD_performance_monitor disagreed with
TRM. All these #'s for a4xx come from AMD_performance_monitor, so
perhaps they should be taken with a grain of salt
-->
<enum name=
"a4xx_cp_perfcounter_select">
<!-- first ctr at least seems same as a3xx, so we can measure freq -->
<value value=
"0" name=
"CP_ALWAYS_COUNT"/>
<value value=
"1" name=
"CP_BUSY"/>
<value value=
"2" name=
"CP_PFP_IDLE"/>
<value value=
"3" name=
"CP_PFP_BUSY_WORKING"/>
<value value=
"4" name=
"CP_PFP_STALL_CYCLES_ANY"/>
<value value=
"5" name=
"CP_PFP_STARVE_CYCLES_ANY"/>
<value value=
"6" name=
"CP_PFP_STARVED_PER_LOAD_ADDR"/>
<value value=
"7" name=
"CP_PFP_STALLED_PER_STORE_ADDR"/>
<value value=
"8" name=
"CP_PFP_PC_PROFILE"/>
<value value=
"9" name=
"CP_PFP_MATCH_PM4_PKT_PROFILE"/>
<value value=
"10" name=
"CP_PFP_COND_INDIRECT_DISCARDED"/>
<value value=
"11" name=
"CP_LONG_RESUMPTIONS"/>
<value value=
"12" name=
"CP_RESUME_CYCLES"/>
<value value=
"13" name=
"CP_RESUME_TO_BOUNDARY_CYCLES"/>
<value value=
"14" name=
"CP_LONG_PREEMPTIONS"/>
<value value=
"15" name=
"CP_PREEMPT_CYCLES"/>
<value value=
"16" name=
"CP_PREEMPT_TO_BOUNDARY_CYCLES"/>
<value value=
"17" name=
"CP_ME_FIFO_EMPTY_PFP_IDLE"/>
<value value=
"18" name=
"CP_ME_FIFO_EMPTY_PFP_BUSY"/>
<value value=
"19" name=
"CP_ME_FIFO_NOT_EMPTY_NOT_FULL"/>
<value value=
"20" name=
"CP_ME_FIFO_FULL_ME_BUSY"/>
<value value=
"21" name=
"CP_ME_FIFO_FULL_ME_NON_WORKING"/>
<value value=
"22" name=
"CP_ME_WAITING_FOR_PACKETS"/>
<value value=
"23" name=
"CP_ME_BUSY_WORKING"/>
<value value=
"24" name=
"CP_ME_STARVE_CYCLES_ANY"/>
<value value=
"25" name=
"CP_ME_STARVE_CYCLES_PER_PROFILE"/>
<value value=
"26" name=
"CP_ME_STALL_CYCLES_PER_PROFILE"/>
<value value=
"27" name=
"CP_ME_PC_PROFILE"/>
<value value=
"28" name=
"CP_RCIU_FIFO_EMPTY"/>
<value value=
"29" name=
"CP_RCIU_FIFO_NOT_EMPTY_NOT_FULL"/>
<value value=
"30" name=
"CP_RCIU_FIFO_FULL"/>
<value value=
"31" name=
"CP_RCIU_FIFO_FULL_NO_CONTEXT"/>
<value value=
"32" name=
"CP_RCIU_FIFO_FULL_AHB_MASTER"/>
<value value=
"33" name=
"CP_RCIU_FIFO_FULL_OTHER"/>
<value value=
"34" name=
"CP_AHB_IDLE"/>
<value value=
"35" name=
"CP_AHB_STALL_ON_GRANT_NO_SPLIT"/>
<value value=
"36" name=
"CP_AHB_STALL_ON_GRANT_SPLIT"/>
<value value=
"37" name=
"CP_AHB_STALL_ON_GRANT_SPLIT_PROFILE"/>
<value value=
"38" name=
"CP_AHB_BUSY_WORKING"/>
<value value=
"39" name=
"CP_AHB_BUSY_STALL_ON_HRDY"/>
<value value=
"40" name=
"CP_AHB_BUSY_STALL_ON_HRDY_PROFILE"/>
</enum>
<enum name=
"a4xx_gras_ras_perfcounter_select">
<value value=
"0" name=
"RAS_SUPER_TILES"/>
<value value=
"1" name=
"RAS_8X8_TILES"/>
<value value=
"2" name=
"RAS_4X4_TILES"/>
<value value=
"3" name=
"RAS_BUSY_CYCLES"/>
<value value=
"4" name=
"RAS_STALL_CYCLES_BY_RB"/>
<value value=
"5" name=
"RAS_STALL_CYCLES_BY_VSC"/>
<value value=
"6" name=
"RAS_STARVE_CYCLES_BY_TSE"/>
<value value=
"7" name=
"RAS_SUPERTILE_CYCLES"/>
<value value=
"8" name=
"RAS_TILE_CYCLES"/>
<value value=
"9" name=
"RAS_FULLY_COVERED_SUPER_TILES"/>
<value value=
"10" name=
"RAS_FULLY_COVERED_8X8_TILES"/>
<value value=
"11" name=
"RAS_4X4_PRIM"/>
<value value=
"12" name=
"RAS_8X4_4X8_PRIM"/>
<value value=
"13" name=
"RAS_8X8_PRIM"/>
</enum>
<enum name=
"a4xx_gras_tse_perfcounter_select">
<value value=
"0" name=
"TSE_INPUT_PRIM"/>
<value value=
"1" name=
"TSE_INPUT_NULL_PRIM"/>
<value value=
"2" name=
"TSE_TRIVAL_REJ_PRIM"/>
<value value=
"3" name=
"TSE_CLIPPED_PRIM"/>
<value value=
"4" name=
"TSE_NEW_PRIM"/>
<value value=
"5" name=
"TSE_ZERO_AREA_PRIM"/>
<value value=
"6" name=
"TSE_FACENESS_CULLED_PRIM"/>
<value value=
"7" name=
"TSE_ZERO_PIXEL_PRIM"/>
<value value=
"8" name=
"TSE_OUTPUT_NULL_PRIM"/>
<value value=
"9" name=
"TSE_OUTPUT_VISIBLE_PRIM"/>
<value value=
"10" name=
"TSE_PRE_CLIP_PRIM"/>
<value value=
"11" name=
"TSE_POST_CLIP_PRIM"/>
<value value=
"12" name=
"TSE_BUSY_CYCLES"/>
<value value=
"13" name=
"TSE_PC_STARVE"/>
<value value=
"14" name=
"TSE_RAS_STALL"/>
<value value=
"15" name=
"TSE_STALL_BARYPLANE_FIFO_FULL"/>
<value value=
"16" name=
"TSE_STALL_ZPLANE_FIFO_FULL"/>
</enum>
<enum name=
"a4xx_hlsq_perfcounter_select">
<value value=
"0" name=
"HLSQ_SP_VS_STAGE_CONSTANT"/>
<value value=
"1" name=
"HLSQ_SP_VS_STAGE_INSTRUCTIONS"/>
<value value=
"2" name=
"HLSQ_SP_FS_STAGE_CONSTANT"/>
<value value=
"3" name=
"HLSQ_SP_FS_STAGE_INSTRUCTIONS"/>
<value value=
"4" name=
"HLSQ_TP_STATE"/>
<value value=
"5" name=
"HLSQ_QUADS"/>
<value value=
"6" name=
"HLSQ_PIXELS"/>
<value value=
"7" name=
"HLSQ_VERTICES"/>
<value value=
"13" name=
"HLSQ_SP_VS_STAGE_DATA_BYTES"/>
<value value=
"14" name=
"HLSQ_SP_FS_STAGE_DATA_BYTES"/>
<value value=
"15" name=
"HLSQ_BUSY_CYCLES"/>
<value value=
"16" name=
"HLSQ_STALL_CYCLES_SP_STATE"/>
<value value=
"17" name=
"HLSQ_STALL_CYCLES_SP_VS_STAGE"/>
<value value=
"18" name=
"HLSQ_STALL_CYCLES_SP_FS_STAGE"/>
<value value=
"19" name=
"HLSQ_STALL_CYCLES_UCHE"/>
<value value=
"20" name=
"HLSQ_RBBM_LOAD_CYCLES"/>
<value value=
"21" name=
"HLSQ_DI_TO_VS_START_SP"/>
<value value=
"22" name=
"HLSQ_DI_TO_FS_START_SP"/>
<value value=
"23" name=
"HLSQ_VS_STAGE_START_TO_DONE_SP"/>
<value value=
"24" name=
"HLSQ_FS_STAGE_START_TO_DONE_SP"/>
<value value=
"25" name=
"HLSQ_SP_STATE_COPY_CYCLES_VS_STAGE"/>
<value value=
"26" name=
"HLSQ_SP_STATE_COPY_CYCLES_FS_STAGE"/>
<value value=
"27" name=
"HLSQ_UCHE_LATENCY_CYCLES"/>
<value value=
"28" name=
"HLSQ_UCHE_LATENCY_COUNT"/>
<value value=
"29" name=
"HLSQ_STARVE_CYCLES_VFD"/>
</enum>
<enum name=
"a4xx_pc_perfcounter_select">
<value value=
"0" name=
"PC_VIS_STREAMS_LOADED"/>
<value value=
"2" name=
"PC_VPC_PRIMITIVES"/>
<value value=
"3" name=
"PC_DEAD_PRIM"/>
<value value=
"4" name=
"PC_LIVE_PRIM"/>
<value value=
"5" name=
"PC_DEAD_DRAWCALLS"/>
<value value=
"6" name=
"PC_LIVE_DRAWCALLS"/>
<value value=
"7" name=
"PC_VERTEX_MISSES"/>
<value value=
"9" name=
"PC_STALL_CYCLES_VFD"/>
<value value=
"10" name=
"PC_STALL_CYCLES_TSE"/>
<value value=
"11" name=
"PC_STALL_CYCLES_UCHE"/>
<value value=
"12" name=
"PC_WORKING_CYCLES"/>
<value value=
"13" name=
"PC_IA_VERTICES"/>
<value value=
"14" name=
"PC_GS_PRIMITIVES"/>
<value value=
"15" name=
"PC_HS_INVOCATIONS"/>
<value value=
"16" name=
"PC_DS_INVOCATIONS"/>
<value value=
"17" name=
"PC_DS_PRIMITIVES"/>
<value value=
"20" name=
"PC_STARVE_CYCLES_FOR_INDEX"/>
<value value=
"21" name=
"PC_STARVE_CYCLES_FOR_TESS_FACTOR"/>
<value value=
"22" name=
"PC_STARVE_CYCLES_FOR_VIZ_STREAM"/>
<value value=
"23" name=
"PC_STALL_CYCLES_TESS"/>
<value value=
"24" name=
"PC_STARVE_CYCLES_FOR_POSITION"/>
<value value=
"25" name=
"PC_MODE0_DRAWCALL"/>
<value value=
"26" name=
"PC_MODE1_DRAWCALL"/>
<value value=
"27" name=
"PC_MODE2_DRAWCALL"/>
<value value=
"28" name=
"PC_MODE3_DRAWCALL"/>
<value value=
"29" name=
"PC_MODE4_DRAWCALL"/>
<value value=
"30" name=
"PC_PREDICATED_DEAD_DRAWCALL"/>
<value value=
"31" name=
"PC_STALL_CYCLES_BY_TSE_ONLY"/>
<value value=
"32" name=
"PC_STALL_CYCLES_BY_VPC_ONLY"/>
<value value=
"33" name=
"PC_VPC_POS_DATA_TRANSACTION"/>
<value value=
"34" name=
"PC_BUSY_CYCLES"/>
<value value=
"35" name=
"PC_STARVE_CYCLES_DI"/>
<value value=
"36" name=
"PC_STALL_CYCLES_VPC"/>
<value value=
"37" name=
"TESS_WORKING_CYCLES"/>
<value value=
"38" name=
"TESS_NUM_CYCLES_SETUP_WORKING"/>
<value value=
"39" name=
"TESS_NUM_CYCLES_PTGEN_WORKING"/>
<value value=
"40" name=
"TESS_NUM_CYCLES_CONNGEN_WORKING"/>
<value value=
"41" name=
"TESS_BUSY_CYCLES"/>
<value value=
"42" name=
"TESS_STARVE_CYCLES_PC"/>
<value value=
"43" name=
"TESS_STALL_CYCLES_PC"/>
</enum>
<enum name=
"a4xx_pwr_perfcounter_select">
<!-- NOTE not actually used.. see RBBM_RBBM_CTL.RESET_PWR_CTR0/1 -->
<value value=
"0" name=
"PWR_CORE_CLOCK_CYCLES"/>
<value value=
"1" name=
"PWR_BUSY_CLOCK_CYCLES"/>
</enum>
<enum name=
"a4xx_rb_perfcounter_select">
<value value=
"0" name=
"RB_BUSY_CYCLES"/>
<value value=
"1" name=
"RB_BUSY_CYCLES_BINNING"/>
<value value=
"2" name=
"RB_BUSY_CYCLES_RENDERING"/>
<value value=
"3" name=
"RB_BUSY_CYCLES_RESOLVE"/>
<value value=
"4" name=
"RB_STARVE_CYCLES_BY_SP"/>
<value value=
"5" name=
"RB_STARVE_CYCLES_BY_RAS"/>
<value value=
"6" name=
"RB_STARVE_CYCLES_BY_MARB"/>
<value value=
"7" name=
"RB_STALL_CYCLES_BY_MARB"/>
<value value=
"8" name=
"RB_STALL_CYCLES_BY_HLSQ"/>
<value value=
"9" name=
"RB_RB_RB_MARB_DATA"/>
<value value=
"10" name=
"RB_SP_RB_QUAD"/>
<value value=
"11" name=
"RB_RAS_RB_Z_QUADS"/>
<value value=
"12" name=
"RB_GMEM_CH0_READ"/>
<value value=
"13" name=
"RB_GMEM_CH1_READ"/>
<value value=
"14" name=
"RB_GMEM_CH0_WRITE"/>
<value value=
"15" name=
"RB_GMEM_CH1_WRITE"/>
<value value=
"16" name=
"RB_CP_CONTEXT_DONE"/>
<value value=
"17" name=
"RB_CP_CACHE_FLUSH"/>
<value value=
"18" name=
"RB_CP_ZPASS_DONE"/>
<value value=
"19" name=
"RB_STALL_FIFO0_FULL"/>
<value value=
"20" name=
"RB_STALL_FIFO1_FULL"/>
<value value=
"21" name=
"RB_STALL_FIFO2_FULL"/>
<value value=
"22" name=
"RB_STALL_FIFO3_FULL"/>
<value value=
"23" name=
"RB_RB_HLSQ_TRANSACTIONS"/>
<value value=
"24" name=
"RB_Z_READ"/>
<value value=
"25" name=
"RB_Z_WRITE"/>
<value value=
"26" name=
"RB_C_READ"/>
<value value=
"27" name=
"RB_C_WRITE"/>
<value value=
"28" name=
"RB_C_READ_LATENCY"/>
<value value=
"29" name=
"RB_Z_READ_LATENCY"/>
<value value=
"30" name=
"RB_STALL_BY_UCHE"/>
<value value=
"31" name=
"RB_MARB_UCHE_TRANSACTIONS"/>
<value value=
"32" name=
"RB_CACHE_STALL_MISS"/>
<value value=
"33" name=
"RB_CACHE_STALL_FIFO_FULL"/>
<value value=
"34" name=
"RB_8BIT_BLENDER_UNITS_ACTIVE"/>
<value value=
"35" name=
"RB_16BIT_BLENDER_UNITS_ACTIVE"/>
<value value=
"36" name=
"RB_SAMPLER_UNITS_ACTIVE"/>
<value value=
"38" name=
"RB_TOTAL_PASS"/>
<value value=
"39" name=
"RB_Z_PASS"/>
<value value=
"40" name=
"RB_Z_FAIL"/>
<value value=
"41" name=
"RB_S_FAIL"/>
<value value=
"42" name=
"RB_POWER0"/>
<value value=
"43" name=
"RB_POWER1"/>
<value value=
"44" name=
"RB_POWER2"/>
<value value=
"45" name=
"RB_POWER3"/>
<value value=
"46" name=
"RB_POWER4"/>
<value value=
"47" name=
"RB_POWER5"/>
<value value=
"48" name=
"RB_POWER6"/>
<value value=
"49" name=
"RB_POWER7"/>
</enum>
<enum name=
"a4xx_rbbm_perfcounter_select">
<value value=
"0" name=
"RBBM_ALWAYS_ON"/>
<value value=
"1" name=
"RBBM_VBIF_BUSY"/>
<value value=
"2" name=
"RBBM_TSE_BUSY"/>
<value value=
"3" name=
"RBBM_RAS_BUSY"/>
<value value=
"4" name=
"RBBM_PC_DCALL_BUSY"/>
<value value=
"5" name=
"RBBM_PC_VSD_BUSY"/>
<value value=
"6" name=
"RBBM_VFD_BUSY"/>
<value value=
"7" name=
"RBBM_VPC_BUSY"/>
<value value=
"8" name=
"RBBM_UCHE_BUSY"/>
<value value=
"9" name=
"RBBM_VSC_BUSY"/>
<value value=
"10" name=
"RBBM_HLSQ_BUSY"/>
<value value=
"11" name=
"RBBM_ANY_RB_BUSY"/>
<value value=
"12" name=
"RBBM_ANY_TPL1_BUSY"/>
<value value=
"13" name=
"RBBM_ANY_SP_BUSY"/>
<value value=
"14" name=
"RBBM_ANY_MARB_BUSY"/>
<value value=
"15" name=
"RBBM_ANY_ARB_BUSY"/>
<value value=
"16" name=
"RBBM_AHB_STATUS_BUSY"/>
<value value=
"17" name=
"RBBM_AHB_STATUS_STALLED"/>
<value value=
"18" name=
"RBBM_AHB_STATUS_TXFR"/>
<value value=
"19" name=
"RBBM_AHB_STATUS_TXFR_SPLIT"/>
<value value=
"20" name=
"RBBM_AHB_STATUS_TXFR_ERROR"/>
<value value=
"21" name=
"RBBM_AHB_STATUS_LONG_STALL"/>
<value value=
"22" name=
"RBBM_STATUS_MASKED"/>
<value value=
"23" name=
"RBBM_CP_BUSY_GFX_CORE_IDLE"/>
<value value=
"24" name=
"RBBM_TESS_BUSY"/>
<value value=
"25" name=
"RBBM_COM_BUSY"/>
<value value=
"32" name=
"RBBM_DCOM_BUSY"/>
<value value=
"33" name=
"RBBM_ANY_CCU_BUSY"/>
<value value=
"34" name=
"RBBM_DPM_BUSY"/>
</enum>
<enum name=
"a4xx_sp_perfcounter_select">
<value value=
"0" name=
"SP_LM_LOAD_INSTRUCTIONS"/>
<value value=
"1" name=
"SP_LM_STORE_INSTRUCTIONS"/>
<value value=
"2" name=
"SP_LM_ATOMICS"/>
<value value=
"3" name=
"SP_GM_LOAD_INSTRUCTIONS"/>
<value value=
"4" name=
"SP_GM_STORE_INSTRUCTIONS"/>
<value value=
"5" name=
"SP_GM_ATOMICS"/>
<value value=
"6" name=
"SP_VS_STAGE_TEX_INSTRUCTIONS"/>
<value value=
"7" name=
"SP_VS_STAGE_CFLOW_INSTRUCTIONS"/>
<value value=
"8" name=
"SP_VS_STAGE_EFU_INSTRUCTIONS"/>
<value value=
"9" name=
"SP_VS_STAGE_FULL_ALU_INSTRUCTIONS"/>
<value value=
"10" name=
"SP_VS_STAGE_HALF_ALU_INSTRUCTIONS"/>
<value value=
"11" name=
"SP_FS_STAGE_TEX_INSTRUCTIONS"/>
<value value=
"12" name=
"SP_FS_STAGE_CFLOW_INSTRUCTIONS"/>
<value value=
"13" name=
"SP_FS_STAGE_EFU_INSTRUCTIONS"/>
<value value=
"14" name=
"SP_FS_STAGE_FULL_ALU_INSTRUCTIONS"/>
<value value=
"15" name=
"SP_FS_STAGE_HALF_ALU_INSTRUCTIONS"/>
<value value=
"17" name=
"SP_VS_INSTRUCTIONS"/>
<value value=
"18" name=
"SP_FS_INSTRUCTIONS"/>
<value value=
"19" name=
"SP_ADDR_LOCK_COUNT"/>
<value value=
"20" name=
"SP_UCHE_READ_TRANS"/>
<value value=
"21" name=
"SP_UCHE_WRITE_TRANS"/>
<value value=
"22" name=
"SP_EXPORT_VPC_TRANS"/>
<value value=
"23" name=
"SP_EXPORT_RB_TRANS"/>
<value value=
"24" name=
"SP_PIXELS_KILLED"/>
<value value=
"25" name=
"SP_ICL1_REQUESTS"/>
<value value=
"26" name=
"SP_ICL1_MISSES"/>
<value value=
"27" name=
"SP_ICL0_REQUESTS"/>
<value value=
"28" name=
"SP_ICL0_MISSES"/>
<value value=
"29" name=
"SP_ALU_WORKING_CYCLES"/>
<value value=
"30" name=
"SP_EFU_WORKING_CYCLES"/>
<value value=
"31" name=
"SP_STALL_CYCLES_BY_VPC"/>
<value value=
"32" name=
"SP_STALL_CYCLES_BY_TP"/>
<value value=
"33" name=
"SP_STALL_CYCLES_BY_UCHE"/>
<value value=
"34" name=
"SP_STALL_CYCLES_BY_RB"/>
<value value=
"35" name=
"SP_BUSY_CYCLES"/>
<value value=
"36" name=
"SP_HS_INSTRUCTIONS"/>
<value value=
"37" name=
"SP_DS_INSTRUCTIONS"/>
<value value=
"38" name=
"SP_GS_INSTRUCTIONS"/>
<value value=
"39" name=
"SP_CS_INSTRUCTIONS"/>
<value value=
"40" name=
"SP_SCHEDULER_NON_WORKING"/>
<value value=
"41" name=
"SP_WAVE_CONTEXTS"/>
<value value=
"42" name=
"SP_WAVE_CONTEXT_CYCLES"/>
<value value=
"43" name=
"SP_POWER0"/>
<value value=
"44" name=
"SP_POWER1"/>
<value value=
"45" name=
"SP_POWER2"/>
<value value=
"46" name=
"SP_POWER3"/>
<value value=
"47" name=
"SP_POWER4"/>
<value value=
"48" name=
"SP_POWER5"/>
<value value=
"49" name=
"SP_POWER6"/>
<value value=
"50" name=
"SP_POWER7"/>
<value value=
"51" name=
"SP_POWER8"/>
<value value=
"52" name=
"SP_POWER9"/>
<value value=
"53" name=
"SP_POWER10"/>
<value value=
"54" name=
"SP_POWER11"/>
<value value=
"55" name=
"SP_POWER12"/>
<value value=
"56" name=
"SP_POWER13"/>
<value value=
"57" name=
"SP_POWER14"/>
<value value=
"58" name=
"SP_POWER15"/>
</enum>
<enum name=
"a4xx_tp_perfcounter_select">
<value value=
"0" name=
"TP_L1_REQUESTS"/>
<value value=
"1" name=
"TP_L1_MISSES"/>
<value value=
"8" name=
"TP_QUADS_OFFSET"/>
<value value=
"9" name=
"TP_QUAD_SHADOW"/>
<value value=
"10" name=
"TP_QUADS_ARRAY"/>
<value value=
"11" name=
"TP_QUADS_GRADIENT"/>
<value value=
"12" name=
"TP_QUADS_1D2D"/>
<value value=
"13" name=
"TP_QUADS_3DCUBE"/>
<value value=
"16" name=
"TP_BUSY_CYCLES"/>
<value value=
"17" name=
"TP_STALL_CYCLES_BY_ARB"/>
<value value=
"20" name=
"TP_STATE_CACHE_REQUESTS"/>
<value value=
"21" name=
"TP_STATE_CACHE_MISSES"/>
<value value=
"22" name=
"TP_POWER0"/>
<value value=
"23" name=
"TP_POWER1"/>
<value value=
"24" name=
"TP_POWER2"/>
<value value=
"25" name=
"TP_POWER3"/>
<value value=
"26" name=
"TP_POWER4"/>
<value value=
"27" name=
"TP_POWER5"/>
<value value=
"28" name=
"TP_POWER6"/>
<value value=
"29" name=
"TP_POWER7"/>
</enum>
<enum name=
"a4xx_uche_perfcounter_select">
<value value=
"0" name=
"UCHE_VBIF_READ_BEATS_TP"/>
<value value=
"1" name=
"UCHE_VBIF_READ_BEATS_VFD"/>
<value value=
"2" name=
"UCHE_VBIF_READ_BEATS_HLSQ"/>
<value value=
"3" name=
"UCHE_VBIF_READ_BEATS_MARB"/>
<value value=
"4" name=
"UCHE_VBIF_READ_BEATS_SP"/>
<value value=
"5" name=
"UCHE_READ_REQUESTS_TP"/>
<value value=
"6" name=
"UCHE_READ_REQUESTS_VFD"/>
<value value=
"7" name=
"UCHE_READ_REQUESTS_HLSQ"/>
<value value=
"8" name=
"UCHE_READ_REQUESTS_MARB"/>
<value value=
"9" name=
"UCHE_READ_REQUESTS_SP"/>
<value value=
"10" name=
"UCHE_WRITE_REQUESTS_MARB"/>
<value value=
"11" name=
"UCHE_WRITE_REQUESTS_SP"/>
<value value=
"12" name=
"UCHE_TAG_CHECK_FAILS"/>
<value value=
"13" name=
"UCHE_EVICTS"/>
<value value=
"14" name=
"UCHE_FLUSHES"/>
<value value=
"15" name=
"UCHE_VBIF_LATENCY_CYCLES"/>
<value value=
"16" name=
"UCHE_VBIF_LATENCY_SAMPLES"/>
<value value=
"17" name=
"UCHE_BUSY_CYCLES"/>
<value value=
"18" name=
"UCHE_VBIF_READ_BEATS_PC"/>
<value value=
"19" name=
"UCHE_READ_REQUESTS_PC"/>
<value value=
"20" name=
"UCHE_WRITE_REQUESTS_VPC"/>
<value value=
"21" name=
"UCHE_STALL_BY_VBIF"/>
<value value=
"22" name=
"UCHE_WRITE_REQUESTS_VSC"/>
<value value=
"23" name=
"UCHE_POWER0"/>
<value value=
"24" name=
"UCHE_POWER1"/>
<value value=
"25" name=
"UCHE_POWER2"/>
<value value=
"26" name=
"UCHE_POWER3"/>
<value value=
"27" name=
"UCHE_POWER4"/>
<value value=
"28" name=
"UCHE_POWER5"/>
<value value=
"29" name=
"UCHE_POWER6"/>
<value value=
"30" name=
"UCHE_POWER7"/>
</enum>
<enum name=
"a4xx_vbif_perfcounter_select">
<value value=
"0" name=
"AXI_READ_REQUESTS_ID_0"/>
<value value=
"1" name=
"AXI_READ_REQUESTS_ID_1"/>
<value value=
"2" name=
"AXI_READ_REQUESTS_ID_2"/>
<value value=
"3" name=
"AXI_READ_REQUESTS_ID_3"/>
<value value=
"4" name=
"AXI_READ_REQUESTS_ID_4"/>
<value value=
"5" name=
"AXI_READ_REQUESTS_ID_5"/>
<value value=
"6" name=
"AXI_READ_REQUESTS_ID_6"/>
<value value=
"7" name=
"AXI_READ_REQUESTS_ID_7"/>
<value value=
"8" name=
"AXI_READ_REQUESTS_ID_8"/>
<value value=
"9" name=
"AXI_READ_REQUESTS_ID_9"/>
<value value=
"10" name=
"AXI_READ_REQUESTS_ID_10"/>
<value value=
"11" name=
"AXI_READ_REQUESTS_ID_11"/>
<value value=
"12" name=
"AXI_READ_REQUESTS_ID_12"/>
<value value=
"13" name=
"AXI_READ_REQUESTS_ID_13"/>
<value value=
"14" name=
"AXI_READ_REQUESTS_ID_14"/>
<value value=
"15" name=
"AXI_READ_REQUESTS_ID_15"/>
<value value=
"16" name=
"AXI0_READ_REQUESTS_TOTAL"/>
<value value=
"17" name=
"AXI1_READ_REQUESTS_TOTAL"/>
<value value=
"18" name=
"AXI2_READ_REQUESTS_TOTAL"/>
<value value=
"19" name=
"AXI3_READ_REQUESTS_TOTAL"/>
<value value=
"20" name=
"AXI_READ_REQUESTS_TOTAL"/>
<value value=
"21" name=
"AXI_WRITE_REQUESTS_ID_0"/>
<value value=
"22" name=
"AXI_WRITE_REQUESTS_ID_1"/>
<value value=
"23" name=
"AXI_WRITE_REQUESTS_ID_2"/>
<value value=
"24" name=
"AXI_WRITE_REQUESTS_ID_3"/>
<value value=
"25" name=
"AXI_WRITE_REQUESTS_ID_4"/>
<value value=
"26" name=
"AXI_WRITE_REQUESTS_ID_5"/>
<value value=
"27" name=
"AXI_WRITE_REQUESTS_ID_6"/>
<value value=
"28" name=
"AXI_WRITE_REQUESTS_ID_7"/>
<value value=
"29" name=
"AXI_WRITE_REQUESTS_ID_8"/>
<value value=
"30" name=
"AXI_WRITE_REQUESTS_ID_9"/>
<value value=
"31" name=
"AXI_WRITE_REQUESTS_ID_10"/>
<value value=
"32" name=
"AXI_WRITE_REQUESTS_ID_11"/>
<value value=
"33" name=
"AXI_WRITE_REQUESTS_ID_12"/>
<value value=
"34" name=
"AXI_WRITE_REQUESTS_ID_13"/>
<value value=
"35" name=
"AXI_WRITE_REQUESTS_ID_14"/>
<value value=
"36" name=
"AXI_WRITE_REQUESTS_ID_15"/>
<value value=
"37" name=
"AXI0_WRITE_REQUESTS_TOTAL"/>
<value value=
"38" name=
"AXI1_WRITE_REQUESTS_TOTAL"/>
<value value=
"39" name=
"AXI2_WRITE_REQUESTS_TOTAL"/>
<value value=
"40" name=
"AXI3_WRITE_REQUESTS_TOTAL"/>
<value value=
"41" name=
"AXI_WRITE_REQUESTS_TOTAL"/>
<value value=
"42" name=
"AXI_TOTAL_REQUESTS"/>
<value value=
"43" name=
"AXI_READ_DATA_BEATS_ID_0"/>
<value value=
"44" name=
"AXI_READ_DATA_BEATS_ID_1"/>
<value value=
"45" name=
"AXI_READ_DATA_BEATS_ID_2"/>
<value value=
"46" name=
"AXI_READ_DATA_BEATS_ID_3"/>
<value value=
"47" name=
"AXI_READ_DATA_BEATS_ID_4"/>
<value value=
"48" name=
"AXI_READ_DATA_BEATS_ID_5"/>
<value value=
"49" name=
"AXI_READ_DATA_BEATS_ID_6"/>
<value value=
"50" name=
"AXI_READ_DATA_BEATS_ID_7"/>
<value value=
"51" name=
"AXI_READ_DATA_BEATS_ID_8"/>
<value value=
"52" name=
"AXI_READ_DATA_BEATS_ID_9"/>
<value value=
"53" name=
"AXI_READ_DATA_BEATS_ID_10"/>
<value value=
"54" name=
"AXI_READ_DATA_BEATS_ID_11"/>
<value value=
"55" name=
"AXI_READ_DATA_BEATS_ID_12"/>
<value value=
"56" name=
"AXI_READ_DATA_BEATS_ID_13"/>
<value value=
"57" name=
"AXI_READ_DATA_BEATS_ID_14"/>
<value value=
"58" name=
"AXI_READ_DATA_BEATS_ID_15"/>
<value value=
"59" name=
"AXI0_READ_DATA_BEATS_TOTAL"/>
<value value=
"60" name=
"AXI1_READ_DATA_BEATS_TOTAL"/>
<value value=
"61" name=
"AXI2_READ_DATA_BEATS_TOTAL"/>
<value value=
"62" name=
"AXI3_READ_DATA_BEATS_TOTAL"/>
<value value=
"63" name=
"AXI_READ_DATA_BEATS_TOTAL"/>
<value value=
"64" name=
"AXI_WRITE_DATA_BEATS_ID_0"/>
<value value=
"65" name=
"AXI_WRITE_DATA_BEATS_ID_1"/>
<value value=
"66" name=
"AXI_WRITE_DATA_BEATS_ID_2"/>
<value value=
"67" name=
"AXI_WRITE_DATA_BEATS_ID_3"/>
<value value=
"68" name=
"AXI_WRITE_DATA_BEATS_ID_4"/>
<value value=
"69" name=
"AXI_WRITE_DATA_BEATS_ID_5"/>
<value value=
"70" name=
"AXI_WRITE_DATA_BEATS_ID_6"/>
<value value=
"71" name=
"AXI_WRITE_DATA_BEATS_ID_7"/>
<value value=
"72" name=
"AXI_WRITE_DATA_BEATS_ID_8"/>
<value value=
"73" name=
"AXI_WRITE_DATA_BEATS_ID_9"/>
<value value=
"74" name=
"AXI_WRITE_DATA_BEATS_ID_10"/>
<value value=
"75" name=
"AXI_WRITE_DATA_BEATS_ID_11"/>
<value value=
"76" name=
"AXI_WRITE_DATA_BEATS_ID_12"/>
<value value=
"77" name=
"AXI_WRITE_DATA_BEATS_ID_13"/>
<value value=
"78" name=
"AXI_WRITE_DATA_BEATS_ID_14"/>
<value value=
"79" name=
"AXI_WRITE_DATA_BEATS_ID_15"/>
<value value=
"80" name=
"AXI0_WRITE_DATA_BEATS_TOTAL"/>
<value value=
"81" name=
"AXI1_WRITE_DATA_BEATS_TOTAL"/>
<value value=
"82" name=
"AXI2_WRITE_DATA_BEATS_TOTAL"/>
<value value=
"83" name=
"AXI3_WRITE_DATA_BEATS_TOTAL"/>
<value value=
"84" name=
"AXI_WRITE_DATA_BEATS_TOTAL"/>
<value value=
"85" name=
"AXI_DATA_BEATS_TOTAL"/>
<value value=
"86" name=
"CYCLES_HELD_OFF_ID_0"/>
<value value=
"87" name=
"CYCLES_HELD_OFF_ID_1"/>
<value value=
"88" name=
"CYCLES_HELD_OFF_ID_2"/>
<value value=
"89" name=
"CYCLES_HELD_OFF_ID_3"/>
<value value=
"90" name=
"CYCLES_HELD_OFF_ID_4"/>
<value value=
"91" name=
"CYCLES_HELD_OFF_ID_5"/>
<value value=
"92" name=
"CYCLES_HELD_OFF_ID_6"/>
<value value=
"93" name=
"CYCLES_HELD_OFF_ID_7"/>
<value value=
"94" name=
"CYCLES_HELD_OFF_ID_8"/>
<value value=
"95" name=
"CYCLES_HELD_OFF_ID_9"/>
<value value=
"96" name=
"CYCLES_HELD_OFF_ID_10"/>
<value value=
"97" name=
"CYCLES_HELD_OFF_ID_11"/>
<value value=
"98" name=
"CYCLES_HELD_OFF_ID_12"/>
<value value=
"99" name=
"CYCLES_HELD_OFF_ID_13"/>
<value value=
"100" name=
"CYCLES_HELD_OFF_ID_14"/>
<value value=
"101" name=
"CYCLES_HELD_OFF_ID_15"/>
<value value=
"102" name=
"AXI_READ_REQUEST_HELD_OFF"/>
<value value=
"103" name=
"AXI_WRITE_REQUEST_HELD_OFF"/>
<value value=
"104" name=
"AXI_REQUEST_HELD_OFF"/>
<value value=
"105" name=
"AXI_WRITE_DATA_HELD_OFF"/>
<value value=
"106" name=
"OCMEM_AXI_READ_REQUEST_HELD_OFF"/>
<value value=
"107" name=
"OCMEM_AXI_WRITE_REQUEST_HELD_OFF"/>
<value value=
"108" name=
"OCMEM_AXI_REQUEST_HELD_OFF"/>
<value value=
"109" name=
"OCMEM_AXI_WRITE_DATA_HELD_OFF"/>
<value value=
"110" name=
"ELAPSED_CYCLES_DDR"/>
<value value=
"111" name=
"ELAPSED_CYCLES_OCMEM"/>
</enum>
<enum name=
"a4xx_vfd_perfcounter_select">
<value value=
"0" name=
"VFD_UCHE_BYTE_FETCHED"/>
<value value=
"1" name=
"VFD_UCHE_TRANS"/>
<value value=
"3" name=
"VFD_FETCH_INSTRUCTIONS"/>
<value value=
"5" name=
"VFD_BUSY_CYCLES"/>
<value value=
"6" name=
"VFD_STALL_CYCLES_UCHE"/>
<value value=
"7" name=
"VFD_STALL_CYCLES_HLSQ"/>
<value value=
"8" name=
"VFD_STALL_CYCLES_VPC_BYPASS"/>
<value value=
"9" name=
"VFD_STALL_CYCLES_VPC_ALLOC"/>
<value value=
"13" name=
"VFD_MODE_0_FIBERS"/>
<value value=
"14" name=
"VFD_MODE_1_FIBERS"/>
<value value=
"15" name=
"VFD_MODE_2_FIBERS"/>
<value value=
"16" name=
"VFD_MODE_3_FIBERS"/>
<value value=
"17" name=
"VFD_MODE_4_FIBERS"/>
<value value=
"18" name=
"VFD_BFIFO_STALL"/>
<value value=
"19" name=
"VFD_NUM_VERTICES_TOTAL"/>
<value value=
"20" name=
"VFD_PACKER_FULL"/>
<value value=
"21" name=
"VFD_UCHE_REQUEST_FIFO_FULL"/>
<value value=
"22" name=
"VFD_STARVE_CYCLES_PC"/>
<value value=
"23" name=
"VFD_STARVE_CYCLES_UCHE"/>
</enum>
<enum name=
"a4xx_vpc_perfcounter_select">
<value value=
"2" name=
"VPC_SP_LM_COMPONENTS"/>
<value value=
"3" name=
"VPC_SP0_LM_BYTES"/>
<value value=
"4" name=
"VPC_SP1_LM_BYTES"/>
<value value=
"5" name=
"VPC_SP2_LM_BYTES"/>
<value value=
"6" name=
"VPC_SP3_LM_BYTES"/>
<value value=
"7" name=
"VPC_WORKING_CYCLES"/>
<value value=
"8" name=
"VPC_STALL_CYCLES_LM"/>
<value value=
"9" name=
"VPC_STARVE_CYCLES_RAS"/>
<value value=
"10" name=
"VPC_STREAMOUT_CYCLES"/>
<value value=
"12" name=
"VPC_UCHE_TRANSACTIONS"/>
<value value=
"13" name=
"VPC_STALL_CYCLES_UCHE"/>
<value value=
"14" name=
"VPC_BUSY_CYCLES"/>
<value value=
"15" name=
"VPC_STARVE_CYCLES_SP"/>
</enum>
<enum name=
"a4xx_vsc_perfcounter_select">
<value value=
"0" name=
"VSC_BUSY_CYCLES"/>
<value value=
"1" name=
"VSC_WORKING_CYCLES"/>
<value value=
"2" name=
"VSC_STALL_CYCLES_UCHE"/>
<value value=
"3" name=
"VSC_STARVE_CYCLES_RAS"/>
<value value=
"4" name=
"VSC_EOT_NUM"/>
</enum>
<domain name=
"A4XX" width=
"32">
<!-- RB registers -->
<reg32 offset=
"0x0cc0" name=
"RB_GMEM_BASE_ADDR"/>
<reg32 offset=
"0x0cc7" name=
"RB_PERFCTR_RB_SEL_0" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0cc8" name=
"RB_PERFCTR_RB_SEL_1" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0cc9" name=
"RB_PERFCTR_RB_SEL_2" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0cca" name=
"RB_PERFCTR_RB_SEL_3" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0ccb" name=
"RB_PERFCTR_RB_SEL_4" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0ccc" name=
"RB_PERFCTR_RB_SEL_5" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0ccd" name=
"RB_PERFCTR_RB_SEL_6" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0cce" name=
"RB_PERFCTR_RB_SEL_7" type=
"a4xx_rb_perfcounter_select"/>
<reg32 offset=
"0x0ccf" name=
"RB_PERFCTR_CCU_SEL_0" type=
"a4xx_ccu_perfcounter_select"/>
<reg32 offset=
"0x0cd0" name=
"RB_PERFCTR_CCU_SEL_1" type=
"a4xx_ccu_perfcounter_select"/>
<reg32 offset=
"0x0cd1" name=
"RB_PERFCTR_CCU_SEL_2" type=
"a4xx_ccu_perfcounter_select"/>
<reg32 offset=
"0x0cd2" name=
"RB_PERFCTR_CCU_SEL_3" type=
"a4xx_ccu_perfcounter_select"/>
<reg32 offset=
"0x0ce0" name=
"RB_FRAME_BUFFER_DIMENSION">
<bitfield name=
"WIDTH" low=
"0" high=
"13" type=
"uint"/>
<bitfield name=
"HEIGHT" low=
"16" high=
"29" type=
"uint"/>
</reg32>
<reg32 offset=
"0x20cc" name=
"RB_CLEAR_COLOR_DW0"/>
<reg32 offset=
"0x20cd" name=
"RB_CLEAR_COLOR_DW1"/>
<reg32 offset=
"0x20ce" name=
"RB_CLEAR_COLOR_DW2"/>
<reg32 offset=
"0x20cf" name=
"RB_CLEAR_COLOR_DW3"/>
<reg32 offset=
"0x20a0" name=
"RB_MODE_CONTROL">
<!--
for non-bypass mode, these are bin width/height.. although
possibly bigger bitfields to hold entire width/height for
gmem-bypass?? Either way, it appears to need to be multiple
of 32..
-->
<bitfield name=
"WIDTH" low=
"0" high=
"5" shr=
"5" type=
"uint"/>
<bitfield name=
"HEIGHT" low=
"8" high=
"13" shr=
"5" type=
"uint"/>
<bitfield name=
"ENABLE_GMEM" pos=
"16" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x20a1" name=
"RB_RENDER_CONTROL">
<bitfield name=
"BINNING_PASS" pos=
"0" type=
"boolean"/>
<!-- nearly everything has bit3 set.. -->
<!-- bit5 set on resolve and tiling pass -->
<bitfield name=
"DISABLE_COLOR_PIPE" pos=
"5" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x20a2" name=
"RB_MSAA_CONTROL">
<bitfield name=
"DISABLE" pos=
"12" type=
"boolean"/>
<bitfield name=
"SAMPLES" low=
"13" high=
"15" type=
"uint"/>
</reg32>
<reg32 offset=
"0x20a3" name=
"RB_RENDER_CONTROL2">
<bitfield name=
"COORD_MASK" low=
"0" high=
"3" type=
"hex"/>
<bitfield name=
"SAMPLEMASK" pos=
"4" type=
"boolean"/>
<bitfield name=
"FACENESS" pos=
"5" type=
"boolean"/>
<bitfield name=
"SAMPLEID" pos=
"6" type=
"boolean"/>
<bitfield name=
"MSAA_SAMPLES" low=
"7" high=
"9" type=
"uint"/>
<bitfield name=
"SAMPLEID_HR" pos=
"11" type=
"boolean"/>
<bitfield name=
"IJ_PERSP_PIXEL" pos=
"12" type=
"boolean"/>
<!-- the 2 below are just educated guesses -->
<bitfield name=
"IJ_PERSP_CENTROID" pos=
"13" type=
"boolean"/>
<bitfield name=
"IJ_PERSP_SAMPLE" pos=
"14" type=
"boolean"/>
<!-- needs to be enabled to get nopersp values,
perhaps other cases too? -->
<bitfield name=
"SIZE" pos=
"15" type=
"boolean"/>
</reg32>
<array offset=
"0x20a4" name=
"RB_MRT" stride=
"5" length=
"8">
<reg32 offset=
"0x0" name=
"CONTROL">
<bitfield name=
"READ_DEST_ENABLE" pos=
"3" type=
"boolean"/>
<!-- both these bits seem to get set when enabling GL_BLEND.. -->
<bitfield name=
"BLEND" pos=
"4" type=
"boolean"/>
<bitfield name=
"BLEND2" pos=
"5" type=
"boolean"/>
<bitfield name=
"ROP_ENABLE" pos=
"6" type=
"boolean"/>
<bitfield name=
"ROP_CODE" low=
"8" high=
"11" type=
"a3xx_rop_code"/>
<bitfield name=
"COMPONENT_ENABLE" low=
"24" high=
"27" type=
"hex"/>
</reg32>
<reg32 offset=
"0x1" name=
"BUF_INFO">
<bitfield name=
"COLOR_FORMAT" low=
"0" high=
"5" type=
"a4xx_color_fmt"/>
<!--
guestimate position of COLOR_TILE_MODE.. this works out if
common value is 2, like on a3xx..
-->
<bitfield name=
"COLOR_TILE_MODE" low=
"6" high=
"7" type=
"a4xx_tile_mode"/>
<bitfield name=
"DITHER_MODE" low=
"9" high=
"10" type=
"adreno_rb_dither_mode"/>
<bitfield name=
"COLOR_SWAP" low=
"11" high=
"12" type=
"a3xx_color_swap"/>
<bitfield name=
"COLOR_SRGB" pos=
"13" type=
"boolean"/>
<!-- note: possibly some # of lsb's aren't there: -->
<doc>
Pitch (actually, appears to be pitch in bytes, so really is a stride)
in GMEM, so pitch of the current tile.
</doc>
<bitfield name=
"COLOR_BUF_PITCH" low=
"14" high=
"31" shr=
"4" type=
"uint"/>
</reg32>
<reg32 offset=
"0x2" name=
"BASE"/>
<reg32 offset=
"0x3" name=
"CONTROL3">
<!-- probably missing some lsb's.. and guessing upper size -->
<!-- pitch * cpp * msaa: -->
<bitfield name=
"STRIDE" low=
"3" high=
"25" type=
"uint"/>
</reg32>
<reg32 offset=
"0x4" name=
"BLEND_CONTROL">
<bitfield name=
"RGB_SRC_FACTOR" low=
"0" high=
"4" type=
"adreno_rb_blend_factor"/>
<bitfield name=
"RGB_BLEND_OPCODE" low=
"5" high=
"7" type=
"a3xx_rb_blend_opcode"/>
<bitfield name=
"RGB_DEST_FACTOR" low=
"8" high=
"12" type=
"adreno_rb_blend_factor"/>
<bitfield name=
"ALPHA_SRC_FACTOR" low=
"16" high=
"20" type=
"adreno_rb_blend_factor"/>
<bitfield name=
"ALPHA_BLEND_OPCODE" low=
"21" high=
"23" type=
"a3xx_rb_blend_opcode"/>
<bitfield name=
"ALPHA_DEST_FACTOR" low=
"24" high=
"28" type=
"adreno_rb_blend_factor"/>
</reg32>
</array>
<reg32 offset=
"0x20f0" name=
"RB_BLEND_RED">
<bitfield name=
"UINT" low=
"0" high=
"7" type=
"hex"/>
<bitfield name=
"SINT" low=
"8" high=
"15" type=
"hex"/>
<bitfield name=
"FLOAT" low=
"16" high=
"31" type=
"float"/>
</reg32>
<reg32 offset=
"0x20f1" name=
"RB_BLEND_RED_F32" type=
"float"/>
<reg32 offset=
"0x20f2" name=
"RB_BLEND_GREEN">
<bitfield name=
"UINT" low=
"0" high=
"7" type=
"hex"/>
<bitfield name=
"SINT" low=
"8" high=
"15" type=
"hex"/>
<bitfield name=
"FLOAT" low=
"16" high=
"31" type=
"float"/>
</reg32>
<reg32 offset=
"0x20f3" name=
"RB_BLEND_GREEN_F32" type=
"float"/>
<reg32 offset=
"0x20f4" name=
"RB_BLEND_BLUE">
<bitfield name=
"UINT" low=
"0" high=
"7" type=
"hex"/>
<bitfield name=
"SINT" low=
"8" high=
"15" type=
"hex"/>
<bitfield name=
"FLOAT" low=
"16" high=
"31" type=
"float"/>
</reg32>
<reg32 offset=
"0x20f5" name=
"RB_BLEND_BLUE_F32" type=
"float"/>
<reg32 offset=
"0x20f6" name=
"RB_BLEND_ALPHA">
<bitfield name=
"UINT" low=
"0" high=
"7" type=
"hex"/>
<bitfield name=
"SINT" low=
"8" high=
"15" type=
"hex"/>
<bitfield name=
"FLOAT" low=
"16" high=
"31" type=
"float"/>
</reg32>
<reg32 offset=
"0x20f7" name=
"RB_BLEND_ALPHA_F32" type=
"float"/>
<reg32 offset=
"0x20f8" name=
"RB_ALPHA_CONTROL">
<bitfield name=
"ALPHA_REF" low=
"0" high=
"7" type=
"hex"/>
<bitfield name=
"ALPHA_TEST" pos=
"8" type=
"boolean"/>
<bitfield name=
"ALPHA_TEST_FUNC" low=
"9" high=
"11" type=
"adreno_compare_func"/>
</reg32>
<reg32 offset=
"0x20f9" name=
"RB_FS_OUTPUT">
<!-- per-mrt enable bit -->
<bitfield name=
"ENABLE_BLEND" low=
"0" high=
"7"/>
<bitfield name=
"INDEPENDENT_BLEND" pos=
"8" type=
"boolean"/>
<!-- a guess? -->
<bitfield name=
"SAMPLE_MASK" low=
"16" high=
"31"/>
</reg32>
<reg32 offset=
"0x20fa" name=
"RB_SAMPLE_COUNT_CONTROL">
<bitfield name=
"COPY" pos=
"1" type=
"boolean"/>
<bitfield name=
"ADDR" low=
"2" high=
"31" shr=
"2"/>
</reg32>
<!-- always 00000000 for binning pass, else 0000000f: -->
<reg32 offset=
"0x20fb" name=
"RB_RENDER_COMPONENTS">
<bitfield name=
"RT0" low=
"0" high=
"3"/>
<bitfield name=
"RT1" low=
"4" high=
"7"/>
<bitfield name=
"RT2" low=
"8" high=
"11"/>
<bitfield name=
"RT3" low=
"12" high=
"15"/>
<bitfield name=
"RT4" low=
"16" high=
"19"/>
<bitfield name=
"RT5" low=
"20" high=
"23"/>
<bitfield name=
"RT6" low=
"24" high=
"27"/>
<bitfield name=
"RT7" low=
"28" high=
"31"/>
</reg32>
<reg32 offset=
"0x20fc" name=
"RB_COPY_CONTROL">
<!-- not sure # of bits -->
<bitfield name=
"MSAA_RESOLVE" low=
"0" high=
"1" type=
"a3xx_msaa_samples"/>
<bitfield name=
"MODE" low=
"4" high=
"6" type=
"adreno_rb_copy_control_mode"/>
<bitfield name=
"FASTCLEAR" low=
"8" high=
"11" type=
"hex"/>
<bitfield name=
"GMEM_BASE" low=
"14" high=
"31" shr=
"14" type=
"hex"/>
</reg32>
<reg32 offset=
"0x20fd" name=
"RB_COPY_DEST_BASE">
<bitfield name=
"BASE" low=
"5" high=
"31" shr=
"5" type=
"hex"/>
</reg32>
<reg32 offset=
"0x20fe" name=
"RB_COPY_DEST_PITCH">
<doc>actually, appears to be pitch in bytes, so really is a stride</doc>
<!-- not actually sure about max pitch... -->
<bitfield name=
"PITCH" low=
"0" high=
"31" shr=
"5" type=
"uint"/>
</reg32>
<reg32 offset=
"0x20ff" name=
"RB_COPY_DEST_INFO">
<bitfield name=
"FORMAT" low=
"2" high=
"7" type=
"a4xx_color_fmt"/>
<bitfield name=
"SWAP" low=
"8" high=
"9" type=
"a3xx_color_swap"/>
<bitfield name=
"DITHER_MODE" low=
"10" high=
"11" type=
"adreno_rb_dither_mode"/>
<bitfield name=
"COMPONENT_ENABLE" low=
"14" high=
"17" type=
"hex"/>
<bitfield name=
"ENDIAN" low=
"18" high=
"20" type=
"adreno_rb_surface_endian"/>
<bitfield name=
"TILE" low=
"24" high=
"25" type=
"a4xx_tile_mode"/>
</reg32>
<reg32 offset=
"0x2100" name=
"RB_FS_OUTPUT_REG">
<!-- bit0 set except for binning pass.. -->
<bitfield name=
"MRT" low=
"0" high=
"3" type=
"uint"/>
<bitfield name=
"FRAG_WRITES_Z" pos=
"5" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x2101" name=
"RB_DEPTH_CONTROL">
<!--
guessing that this matches a2xx with the stencil fields
moved out into RB_STENCIL_CONTROL?
-->
<bitfield name=
"FRAG_WRITES_Z" pos=
"0" type=
"boolean"/>
<bitfield name=
"Z_TEST_ENABLE" pos=
"1" type=
"boolean"/>
<bitfield name=
"Z_WRITE_ENABLE" pos=
"2" type=
"boolean"/>
<bitfield name=
"ZFUNC" low=
"4" high=
"6" type=
"adreno_compare_func"/>
<bitfield name=
"Z_CLAMP_ENABLE" pos=
"7" type=
"boolean"/>
<bitfield name=
"EARLY_Z_DISABLE" pos=
"16" type=
"boolean"/>
<bitfield name=
"FORCE_FRAGZ_TO_FS" pos=
"17" type=
"boolean"/>
<doc>Z_READ_ENABLE bit is set for zfunc other than GL_ALWAYS or GL_NEVER</doc>
<bitfield name=
"Z_READ_ENABLE" pos=
"31" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x2102" name=
"RB_DEPTH_CLEAR"/>
<reg32 offset=
"0x2103" name=
"RB_DEPTH_INFO">
<bitfield name=
"DEPTH_FORMAT" low=
"0" high=
"1" type=
"a4xx_depth_format"/>
<doc>
DEPTH_BASE is offset in GMEM to depth/stencil buffer, ie
bin_w * bin_h / 1024 (possible rounded up to multiple of
something?? ie. 39 becomes 40, 78 becomes 80.. 75 becomes
80.. so maybe it needs to be multiple of 8??
</doc>
<bitfield name=
"DEPTH_BASE" low=
"12" high=
"31" shr=
"12" type=
"hex"/>
</reg32>
<reg32 offset=
"0x2104" name=
"RB_DEPTH_PITCH" shr=
"5" type=
"uint">
<doc>stride of depth/stencil buffer</doc>
</reg32>
<reg32 offset=
"0x2105" name=
"RB_DEPTH_PITCH2" shr=
"5" type=
"uint">
<doc>???</doc>
</reg32>
<reg32 offset=
"0x2106" name=
"RB_STENCIL_CONTROL">
<bitfield name=
"STENCIL_ENABLE" pos=
"0" type=
"boolean"/>
<bitfield name=
"STENCIL_ENABLE_BF" pos=
"1" type=
"boolean"/>
<!--
set for stencil operations that require read from stencil
buffer, but not for example for stencil clear (which does
not require read).. so guessing this is analogous to
READ_DEST_ENABLE for color buffer..
-->
<bitfield name=
"STENCIL_READ" pos=
"2" type=
"boolean"/>
<bitfield name=
"FUNC" low=
"8" high=
"10" type=
"adreno_compare_func"/>
<bitfield name=
"FAIL" low=
"11" high=
"13" type=
"adreno_stencil_op"/>
<bitfield name=
"ZPASS" low=
"14" high=
"16" type=
"adreno_stencil_op"/>
<bitfield name=
"ZFAIL" low=
"17" high=
"19" type=
"adreno_stencil_op"/>
<bitfield name=
"FUNC_BF" low=
"20" high=
"22" type=
"adreno_compare_func"/>
<bitfield name=
"FAIL_BF" low=
"23" high=
"25" type=
"adreno_stencil_op"/>
<bitfield name=
"ZPASS_BF" low=
"26" high=
"28" type=
"adreno_stencil_op"/>
<bitfield name=
"ZFAIL_BF" low=
"29" high=
"31" type=
"adreno_stencil_op"/>
</reg32>
<reg32 offset=
"0x2107" name=
"RB_STENCIL_CONTROL2">
<!--
This seems to be set by blob if there is a stencil buffer
at all in GMEM, regardless of whether it is enabled for
a particular draw (ie. RB_STENCIL_CONTROL). Not really
sure if that is required or just a quirk of the blob
-->
<bitfield name=
"STENCIL_BUFFER" pos=
"0" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x2108" name=
"RB_STENCIL_INFO">
<bitfield name=
"SEPARATE_STENCIL" pos=
"0" type=
"boolean"/>
<doc>Base address for stencil when not using interleaved depth/stencil</doc>
<bitfield name=
"STENCIL_BASE" low=
"12" high=
"31" shr=
"12" type=
"hex"/>
</reg32>
<reg32 offset=
"0x2109" name=
"RB_STENCIL_PITCH" shr=
"5" type=
"uint">
<doc>pitch of stencil buffer when not using interleaved depth/stencil</doc>
</reg32>
<reg32 offset=
"0x210b" name=
"RB_STENCILREFMASK" type=
"adreno_rb_stencilrefmask"/>
<reg32 offset=
"0x210c" name=
"RB_STENCILREFMASK_BF" type=
"adreno_rb_stencilrefmask"/>
<reg32 offset=
"0x210d" name=
"RB_BIN_OFFSET" type=
"adreno_reg_xy"/>
<array offset=
"0x2120" name=
"RB_VPORT_Z_CLAMP" stride=
"2" length=
"16">
<reg32 offset=
"0x0" name=
"MIN"/>
<reg32 offset=
"0x1" name=
"MAX"/>
</array>
<!-- RBBM registers -->
<reg32 offset=
"0x0000" name=
"RBBM_HW_VERSION"/>
<reg32 offset=
"0x0002" name=
"RBBM_HW_CONFIGURATION"/>
<array offset=
"0x4" name=
"RBBM_CLOCK_CTL_TP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x8" name=
"RBBM_CLOCK_CTL2_TP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0xc" name=
"RBBM_CLOCK_HYST_TP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x10" name=
"RBBM_CLOCK_DELAY_TP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<reg32 offset=
"0x0014" name=
"RBBM_CLOCK_CTL_UCHE "/>
<reg32 offset=
"0x0015" name=
"RBBM_CLOCK_CTL2_UCHE"/>
<reg32 offset=
"0x0016" name=
"RBBM_CLOCK_CTL3_UCHE"/>
<reg32 offset=
"0x0017" name=
"RBBM_CLOCK_CTL4_UCHE"/>
<reg32 offset=
"0x0018" name=
"RBBM_CLOCK_HYST_UCHE"/>
<reg32 offset=
"0x0019" name=
"RBBM_CLOCK_DELAY_UCHE"/>
<reg32 offset=
"0x001a" name=
"RBBM_CLOCK_MODE_GPC"/>
<reg32 offset=
"0x001b" name=
"RBBM_CLOCK_DELAY_GPC"/>
<reg32 offset=
"0x001c" name=
"RBBM_CLOCK_HYST_GPC"/>
<reg32 offset=
"0x001d" name=
"RBBM_CLOCK_CTL_TSE_RAS_RBBM"/>
<reg32 offset=
"0x001e" name=
"RBBM_CLOCK_HYST_TSE_RAS_RBBM"/>
<reg32 offset=
"0x001f" name=
"RBBM_CLOCK_DELAY_TSE_RAS_RBBM"/>
<reg32 offset=
"0x0020" name=
"RBBM_CLOCK_CTL"/>
<reg32 offset=
"0x0021" name=
"RBBM_SP_HYST_CNT"/>
<reg32 offset=
"0x0022" name=
"RBBM_SW_RESET_CMD"/>
<reg32 offset=
"0x0023" name=
"RBBM_AHB_CTL0"/>
<reg32 offset=
"0x0024" name=
"RBBM_AHB_CTL1"/>
<reg32 offset=
"0x0025" name=
"RBBM_AHB_CMD"/>
<reg32 offset=
"0x0026" name=
"RBBM_RB_SUB_BLOCK_SEL_CTL"/>
<reg32 offset=
"0x0028" name=
"RBBM_RAM_ACC_63_32"/>
<reg32 offset=
"0x002b" name=
"RBBM_WAIT_IDLE_CLOCKS_CTL"/>
<reg32 offset=
"0x002f" name=
"RBBM_INTERFACE_HANG_INT_CTL"/>
<reg32 offset=
"0x0034" name=
"RBBM_INTERFACE_HANG_MASK_CTL4"/>
<reg32 offset=
"0x0036" name=
"RBBM_INT_CLEAR_CMD"/>
<reg32 offset=
"0x0037" name=
"RBBM_INT_0_MASK"/>
<reg32 offset=
"0x003e" name=
"RBBM_RBBM_CTL"/>
<reg32 offset=
"0x003f" name=
"RBBM_AHB_DEBUG_CTL"/>
<reg32 offset=
"0x0041" name=
"RBBM_VBIF_DEBUG_CTL"/>
<reg32 offset=
"0x0042" name=
"RBBM_CLOCK_CTL2"/>
<reg32 offset=
"0x0045" name=
"RBBM_BLOCK_SW_RESET_CMD"/>
<reg32 offset=
"0x0047" name=
"RBBM_RESET_CYCLES"/>
<reg32 offset=
"0x0049" name=
"RBBM_EXT_TRACE_BUS_CTL"/>
<reg32 offset=
"0x004a" name=
"RBBM_CFG_DEBBUS_SEL_A"/>
<reg32 offset=
"0x004b" name=
"RBBM_CFG_DEBBUS_SEL_B"/>
<reg32 offset=
"0x004c" name=
"RBBM_CFG_DEBBUS_SEL_C"/>
<reg32 offset=
"0x004d" name=
"RBBM_CFG_DEBBUS_SEL_D"/>
<reg32 offset=
"0x0098" name=
"RBBM_POWER_CNTL_IP">
<bitfield name=
"SW_COLLAPSE" pos=
"0" type=
"boolean"/>
<bitfield name=
"SP_TP_PWR_ON" pos=
"20" type=
"boolean"/>
</reg32>
<reg32 offset=
"0x009c" name=
"RBBM_PERFCTR_CP_0_LO"/>
<reg32 offset=
"0x009d" name=
"RBBM_PERFCTR_CP_0_HI"/>
<reg32 offset=
"0x009e" name=
"RBBM_PERFCTR_CP_1_LO"/>
<reg32 offset=
"0x009f" name=
"RBBM_PERFCTR_CP_1_HI"/>
<reg32 offset=
"0x00a0" name=
"RBBM_PERFCTR_CP_2_LO"/>
<reg32 offset=
"0x00a1" name=
"RBBM_PERFCTR_CP_2_HI"/>
<reg32 offset=
"0x00a2" name=
"RBBM_PERFCTR_CP_3_LO"/>
<reg32 offset=
"0x00a3" name=
"RBBM_PERFCTR_CP_3_HI"/>
<reg32 offset=
"0x00a4" name=
"RBBM_PERFCTR_CP_4_LO"/>
<reg32 offset=
"0x00a5" name=
"RBBM_PERFCTR_CP_4_HI"/>
<reg32 offset=
"0x00a6" name=
"RBBM_PERFCTR_CP_5_LO"/>
<reg32 offset=
"0x00a7" name=
"RBBM_PERFCTR_CP_5_HI"/>
<reg32 offset=
"0x00a8" name=
"RBBM_PERFCTR_CP_6_LO"/>
<reg32 offset=
"0x00a9" name=
"RBBM_PERFCTR_CP_6_HI"/>
<reg32 offset=
"0x00aa" name=
"RBBM_PERFCTR_CP_7_LO"/>
<reg32 offset=
"0x00ab" name=
"RBBM_PERFCTR_CP_7_HI"/>
<reg32 offset=
"0x00ac" name=
"RBBM_PERFCTR_RBBM_0_LO"/>
<reg32 offset=
"0x00ad" name=
"RBBM_PERFCTR_RBBM_0_HI"/>
<reg32 offset=
"0x00ae" name=
"RBBM_PERFCTR_RBBM_1_LO"/>
<reg32 offset=
"0x00af" name=
"RBBM_PERFCTR_RBBM_1_HI"/>
<reg32 offset=
"0x00b0" name=
"RBBM_PERFCTR_RBBM_2_LO"/>
<reg32 offset=
"0x00b1" name=
"RBBM_PERFCTR_RBBM_2_HI"/>
<reg32 offset=
"0x00b2" name=
"RBBM_PERFCTR_RBBM_3_LO"/>
<reg32 offset=
"0x00b3" name=
"RBBM_PERFCTR_RBBM_3_HI"/>
<reg32 offset=
"0x00b4" name=
"RBBM_PERFCTR_PC_0_LO"/>
<reg32 offset=
"0x00b5" name=
"RBBM_PERFCTR_PC_0_HI"/>
<reg32 offset=
"0x00b6" name=
"RBBM_PERFCTR_PC_1_LO"/>
<reg32 offset=
"0x00b7" name=
"RBBM_PERFCTR_PC_1_HI"/>
<reg32 offset=
"0x00b8" name=
"RBBM_PERFCTR_PC_2_LO"/>
<reg32 offset=
"0x00b9" name=
"RBBM_PERFCTR_PC_2_HI"/>
<reg32 offset=
"0x00ba" name=
"RBBM_PERFCTR_PC_3_LO"/>
<reg32 offset=
"0x00bb" name=
"RBBM_PERFCTR_PC_3_HI"/>
<reg32 offset=
"0x00bc" name=
"RBBM_PERFCTR_PC_4_LO"/>
<reg32 offset=
"0x00bd" name=
"RBBM_PERFCTR_PC_4_HI"/>
<reg32 offset=
"0x00be" name=
"RBBM_PERFCTR_PC_5_LO"/>
<reg32 offset=
"0x00bf" name=
"RBBM_PERFCTR_PC_5_HI"/>
<reg32 offset=
"0x00c0" name=
"RBBM_PERFCTR_PC_6_LO"/>
<reg32 offset=
"0x00c1" name=
"RBBM_PERFCTR_PC_6_HI"/>
<reg32 offset=
"0x00c2" name=
"RBBM_PERFCTR_PC_7_LO"/>
<reg32 offset=
"0x00c3" name=
"RBBM_PERFCTR_PC_7_HI"/>
<reg32 offset=
"0x00c4" name=
"RBBM_PERFCTR_VFD_0_LO"/>
<reg32 offset=
"0x00c5" name=
"RBBM_PERFCTR_VFD_0_HI"/>
<reg32 offset=
"0x00c6" name=
"RBBM_PERFCTR_VFD_1_LO"/>
<reg32 offset=
"0x00c7" name=
"RBBM_PERFCTR_VFD_1_HI"/>
<reg32 offset=
"0x00c8" name=
"RBBM_PERFCTR_VFD_2_LO"/>
<reg32 offset=
"0x00c9" name=
"RBBM_PERFCTR_VFD_2_HI"/>
<reg32 offset=
"0x00ca" name=
"RBBM_PERFCTR_VFD_3_LO"/>
<reg32 offset=
"0x00cb" name=
"RBBM_PERFCTR_VFD_3_HI"/>
<reg32 offset=
"0x00cc" name=
"RBBM_PERFCTR_VFD_4_LO"/>
<reg32 offset=
"0x00cd" name=
"RBBM_PERFCTR_VFD_4_HI"/>
<reg32 offset=
"0x00ce" name=
"RBBM_PERFCTR_VFD_5_LO"/>
<reg32 offset=
"0x00cf" name=
"RBBM_PERFCTR_VFD_5_HI"/>
<reg32 offset=
"0x00d0" name=
"RBBM_PERFCTR_VFD_6_LO"/>
<reg32 offset=
"0x00d1" name=
"RBBM_PERFCTR_VFD_6_HI"/>
<reg32 offset=
"0x00d2" name=
"RBBM_PERFCTR_VFD_7_LO"/>
<reg32 offset=
"0x00d3" name=
"RBBM_PERFCTR_VFD_7_HI"/>
<reg32 offset=
"0x00d4" name=
"RBBM_PERFCTR_HLSQ_0_LO"/>
<reg32 offset=
"0x00d5" name=
"RBBM_PERFCTR_HLSQ_0_HI"/>
<reg32 offset=
"0x00d6" name=
"RBBM_PERFCTR_HLSQ_1_LO"/>
<reg32 offset=
"0x00d7" name=
"RBBM_PERFCTR_HLSQ_1_HI"/>
<reg32 offset=
"0x00d8" name=
"RBBM_PERFCTR_HLSQ_2_LO"/>
<reg32 offset=
"0x00d9" name=
"RBBM_PERFCTR_HLSQ_2_HI"/>
<reg32 offset=
"0x00da" name=
"RBBM_PERFCTR_HLSQ_3_LO"/>
<reg32 offset=
"0x00db" name=
"RBBM_PERFCTR_HLSQ_3_HI"/>
<reg32 offset=
"0x00dc" name=
"RBBM_PERFCTR_HLSQ_4_LO"/>
<reg32 offset=
"0x00dd" name=
"RBBM_PERFCTR_HLSQ_4_HI"/>
<reg32 offset=
"0x00de" name=
"RBBM_PERFCTR_HLSQ_5_LO"/>
<reg32 offset=
"0x00df" name=
"RBBM_PERFCTR_HLSQ_5_HI"/>
<reg32 offset=
"0x00e0" name=
"RBBM_PERFCTR_HLSQ_6_LO"/>
<reg32 offset=
"0x00e1" name=
"RBBM_PERFCTR_HLSQ_6_HI"/>
<reg32 offset=
"0x00e2" name=
"RBBM_PERFCTR_HLSQ_7_LO"/>
<reg32 offset=
"0x00e3" name=
"RBBM_PERFCTR_HLSQ_7_HI"/>
<reg32 offset=
"0x00e4" name=
"RBBM_PERFCTR_VPC_0_LO"/>
<reg32 offset=
"0x00e5" name=
"RBBM_PERFCTR_VPC_0_HI"/>
<reg32 offset=
"0x00e6" name=
"RBBM_PERFCTR_VPC_1_LO"/>
<reg32 offset=
"0x00e7" name=
"RBBM_PERFCTR_VPC_1_HI"/>
<reg32 offset=
"0x00e8" name=
"RBBM_PERFCTR_VPC_2_LO"/>
<reg32 offset=
"0x00e9" name=
"RBBM_PERFCTR_VPC_2_HI"/>
<reg32 offset=
"0x00ea" name=
"RBBM_PERFCTR_VPC_3_LO"/>
<reg32 offset=
"0x00eb" name=
"RBBM_PERFCTR_VPC_3_HI"/>
<reg32 offset=
"0x00ec" name=
"RBBM_PERFCTR_CCU_0_LO"/>
<reg32 offset=
"0x00ed" name=
"RBBM_PERFCTR_CCU_0_HI"/>
<reg32 offset=
"0x00ee" name=
"RBBM_PERFCTR_CCU_1_LO"/>
<reg32 offset=
"0x00ef" name=
"RBBM_PERFCTR_CCU_1_HI"/>
<reg32 offset=
"0x00f0" name=
"RBBM_PERFCTR_CCU_2_LO"/>
<reg32 offset=
"0x00f1" name=
"RBBM_PERFCTR_CCU_2_HI"/>
<reg32 offset=
"0x00f2" name=
"RBBM_PERFCTR_CCU_3_LO"/>
<reg32 offset=
"0x00f3" name=
"RBBM_PERFCTR_CCU_3_HI"/>
<reg32 offset=
"0x00f4" name=
"RBBM_PERFCTR_TSE_0_LO"/>
<reg32 offset=
"0x00f5" name=
"RBBM_PERFCTR_TSE_0_HI"/>
<reg32 offset=
"0x00f6" name=
"RBBM_PERFCTR_TSE_1_LO"/>
<reg32 offset=
"0x00f7" name=
"RBBM_PERFCTR_TSE_1_HI"/>
<reg32 offset=
"0x00f8" name=
"RBBM_PERFCTR_TSE_2_LO"/>
<reg32 offset=
"0x00f9" name=
"RBBM_PERFCTR_TSE_2_HI"/>
<reg32 offset=
"0x00fa" name=
"RBBM_PERFCTR_TSE_3_LO"/>
<reg32 offset=
"0x00fb" name=
"RBBM_PERFCTR_TSE_3_HI"/>
<reg32 offset=
"0x00fc" name=
"RBBM_PERFCTR_RAS_0_LO"/>
<reg32 offset=
"0x00fd" name=
"RBBM_PERFCTR_RAS_0_HI"/>
<reg32 offset=
"0x00fe" name=
"RBBM_PERFCTR_RAS_1_LO"/>
<reg32 offset=
"0x00ff" name=
"RBBM_PERFCTR_RAS_1_HI"/>
<reg32 offset=
"0x0100" name=
"RBBM_PERFCTR_RAS_2_LO"/>
<reg32 offset=
"0x0101" name=
"RBBM_PERFCTR_RAS_2_HI"/>
<reg32 offset=
"0x0102" name=
"RBBM_PERFCTR_RAS_3_LO"/>
<reg32 offset=
"0x0103" name=
"RBBM_PERFCTR_RAS_3_HI"/>
<reg32 offset=
"0x0104" name=
"RBBM_PERFCTR_UCHE_0_LO"/>
<reg32 offset=
"0x0105" name=
"RBBM_PERFCTR_UCHE_0_HI"/>
<reg32 offset=
"0x0106" name=
"RBBM_PERFCTR_UCHE_1_LO"/>
<reg32 offset=
"0x0107" name=
"RBBM_PERFCTR_UCHE_1_HI"/>
<reg32 offset=
"0x0108" name=
"RBBM_PERFCTR_UCHE_2_LO"/>
<reg32 offset=
"0x0109" name=
"RBBM_PERFCTR_UCHE_2_HI"/>
<reg32 offset=
"0x010a" name=
"RBBM_PERFCTR_UCHE_3_LO"/>
<reg32 offset=
"0x010b" name=
"RBBM_PERFCTR_UCHE_3_HI"/>
<reg32 offset=
"0x010c" name=
"RBBM_PERFCTR_UCHE_4_LO"/>
<reg32 offset=
"0x010d" name=
"RBBM_PERFCTR_UCHE_4_HI"/>
<reg32 offset=
"0x010e" name=
"RBBM_PERFCTR_UCHE_5_LO"/>
<reg32 offset=
"0x010f" name=
"RBBM_PERFCTR_UCHE_5_HI"/>
<reg32 offset=
"0x0110" name=
"RBBM_PERFCTR_UCHE_6_LO"/>
<reg32 offset=
"0x0111" name=
"RBBM_PERFCTR_UCHE_6_HI"/>
<reg32 offset=
"0x0112" name=
"RBBM_PERFCTR_UCHE_7_LO"/>
<reg32 offset=
"0x0113" name=
"RBBM_PERFCTR_UCHE_7_HI"/>
<reg32 offset=
"0x0114" name=
"RBBM_PERFCTR_TP_0_LO"/>
<reg32 offset=
"0x0115" name=
"RBBM_PERFCTR_TP_0_HI"/>
<reg32 offset=
"0x0116" name=
"RBBM_PERFCTR_TP_1_LO"/>
<reg32 offset=
"0x0117" name=
"RBBM_PERFCTR_TP_1_HI"/>
<reg32 offset=
"0x0118" name=
"RBBM_PERFCTR_TP_2_LO"/>
<reg32 offset=
"0x0119" name=
"RBBM_PERFCTR_TP_2_HI"/>
<reg32 offset=
"0x011a" name=
"RBBM_PERFCTR_TP_3_LO"/>
<reg32 offset=
"0x011b" name=
"RBBM_PERFCTR_TP_3_HI"/>
<reg32 offset=
"0x011c" name=
"RBBM_PERFCTR_TP_4_LO"/>
<reg32 offset=
"0x011d" name=
"RBBM_PERFCTR_TP_4_HI"/>
<reg32 offset=
"0x011e" name=
"RBBM_PERFCTR_TP_5_LO"/>
<reg32 offset=
"0x011f" name=
"RBBM_PERFCTR_TP_5_HI"/>
<reg32 offset=
"0x0120" name=
"RBBM_PERFCTR_TP_6_LO"/>
<reg32 offset=
"0x0121" name=
"RBBM_PERFCTR_TP_6_HI"/>
<reg32 offset=
"0x0122" name=
"RBBM_PERFCTR_TP_7_LO"/>
<reg32 offset=
"0x0123" name=
"RBBM_PERFCTR_TP_7_HI"/>
<reg32 offset=
"0x0124" name=
"RBBM_PERFCTR_SP_0_LO"/>
<reg32 offset=
"0x0125" name=
"RBBM_PERFCTR_SP_0_HI"/>
<reg32 offset=
"0x0126" name=
"RBBM_PERFCTR_SP_1_LO"/>
<reg32 offset=
"0x0127" name=
"RBBM_PERFCTR_SP_1_HI"/>
<reg32 offset=
"0x0128" name=
"RBBM_PERFCTR_SP_2_LO"/>
<reg32 offset=
"0x0129" name=
"RBBM_PERFCTR_SP_2_HI"/>
<reg32 offset=
"0x012a" name=
"RBBM_PERFCTR_SP_3_LO"/>
<reg32 offset=
"0x012b" name=
"RBBM_PERFCTR_SP_3_HI"/>
<reg32 offset=
"0x012c" name=
"RBBM_PERFCTR_SP_4_LO"/>
<reg32 offset=
"0x012d" name=
"RBBM_PERFCTR_SP_4_HI"/>
<reg32 offset=
"0x012e" name=
"RBBM_PERFCTR_SP_5_LO"/>
<reg32 offset=
"0x012f" name=
"RBBM_PERFCTR_SP_5_HI"/>
<reg32 offset=
"0x0130" name=
"RBBM_PERFCTR_SP_6_LO"/>
<reg32 offset=
"0x0131" name=
"RBBM_PERFCTR_SP_6_HI"/>
<reg32 offset=
"0x0132" name=
"RBBM_PERFCTR_SP_7_LO"/>
<reg32 offset=
"0x0133" name=
"RBBM_PERFCTR_SP_7_HI"/>
<reg32 offset=
"0x0134" name=
"RBBM_PERFCTR_SP_8_LO"/>
<reg32 offset=
"0x0135" name=
"RBBM_PERFCTR_SP_8_HI"/>
<reg32 offset=
"0x0136" name=
"RBBM_PERFCTR_SP_9_LO"/>
<reg32 offset=
"0x0137" name=
"RBBM_PERFCTR_SP_9_HI"/>
<reg32 offset=
"0x0138" name=
"RBBM_PERFCTR_SP_10_LO"/>
<reg32 offset=
"0x0139" name=
"RBBM_PERFCTR_SP_10_HI"/>
<reg32 offset=
"0x013a" name=
"RBBM_PERFCTR_SP_11_LO"/>
<reg32 offset=
"0x013b" name=
"RBBM_PERFCTR_SP_11_HI"/>
<reg32 offset=
"0x013c" name=
"RBBM_PERFCTR_RB_0_LO"/>
<reg32 offset=
"0x013d" name=
"RBBM_PERFCTR_RB_0_HI"/>
<reg32 offset=
"0x013e" name=
"RBBM_PERFCTR_RB_1_LO"/>
<reg32 offset=
"0x013f" name=
"RBBM_PERFCTR_RB_1_HI"/>
<reg32 offset=
"0x0140" name=
"RBBM_PERFCTR_RB_2_LO"/>
<reg32 offset=
"0x0141" name=
"RBBM_PERFCTR_RB_2_HI"/>
<reg32 offset=
"0x0142" name=
"RBBM_PERFCTR_RB_3_LO"/>
<reg32 offset=
"0x0143" name=
"RBBM_PERFCTR_RB_3_HI"/>
<reg32 offset=
"0x0144" name=
"RBBM_PERFCTR_RB_4_LO"/>
<reg32 offset=
"0x0145" name=
"RBBM_PERFCTR_RB_4_HI"/>
<reg32 offset=
"0x0146" name=
"RBBM_PERFCTR_RB_5_LO"/>
<reg32 offset=
"0x0147" name=
"RBBM_PERFCTR_RB_5_HI"/>
<reg32 offset=
"0x0148" name=
"RBBM_PERFCTR_RB_6_LO"/>
<reg32 offset=
"0x0149" name=
"RBBM_PERFCTR_RB_6_HI"/>
<reg32 offset=
"0x014a" name=
"RBBM_PERFCTR_RB_7_LO"/>
<reg32 offset=
"0x014b" name=
"RBBM_PERFCTR_RB_7_HI"/>
<reg32 offset=
"0x014c" name=
"RBBM_PERFCTR_VSC_0_LO"/>
<reg32 offset=
"0x014d" name=
"RBBM_PERFCTR_VSC_0_HI"/>
<reg32 offset=
"0x014e" name=
"RBBM_PERFCTR_VSC_1_LO"/>
<reg32 offset=
"0x014f" name=
"RBBM_PERFCTR_VSC_1_HI"/>
<reg32 offset=
"0x0166" name=
"RBBM_PERFCTR_PWR_0_LO"/>
<reg32 offset=
"0x0167" name=
"RBBM_PERFCTR_PWR_0_HI"/>
<reg32 offset=
"0x0168" name=
"RBBM_PERFCTR_PWR_1_LO"/>
<reg32 offset=
"0x0169" name=
"RBBM_PERFCTR_PWR_1_HI"/>
<reg32 offset=
"0x016e" name=
"RBBM_ALWAYSON_COUNTER_LO"/>
<reg32 offset=
"0x016f" name=
"RBBM_ALWAYSON_COUNTER_HI"/>
<array offset=
"0x0068" name=
"RBBM_CLOCK_CTL_SP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x006c" name=
"RBBM_CLOCK_CTL2_SP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x0070" name=
"RBBM_CLOCK_HYST_SP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x0074" name=
"RBBM_CLOCK_DELAY_SP" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x0078" name=
"RBBM_CLOCK_CTL_RB" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x007c" name=
"RBBM_CLOCK_CTL2_RB" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x0082" name=
"RBBM_CLOCK_CTL_MARB_CCU" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<array offset=
"0x0086" name=
"RBBM_CLOCK_HYST_RB_MARB_CCU" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<reg32 offset=
"0x0080" name=
"RBBM_CLOCK_HYST_COM_DCOM"/>
<reg32 offset=
"0x0081" name=
"RBBM_CLOCK_CTL_COM_DCOM"/>
<reg32 offset=
"0x008a" name=
"RBBM_CLOCK_CTL_HLSQ"/>
<reg32 offset=
"0x008b" name=
"RBBM_CLOCK_HYST_HLSQ"/>
<reg32 offset=
"0x008c" name=
"RBBM_CLOCK_DELAY_HLSQ"/>
<bitset name=
"A4XX_CGC_HLSQ">
<bitfield name=
"EARLY_CYC" low=
"20" high=
"22" type=
"uint"/>
</bitset>
<reg32 offset=
"0x008d" name=
"RBBM_CLOCK_DELAY_COM_DCOM"/>
<array offset=
"0x008e" name=
"RBBM_CLOCK_DELAY_RB_MARB_CCU_L1" stride=
"1" length=
"4">
<reg32 offset=
"0x0" name=
"REG"/>
</array>
<bitset name=
"A4XX_INT0">
<bitfield name=
"RBBM_GPU_IDLE" pos=
"0" type=
"boolean"/>
<bitfield name=
"RBBM_AHB_ERROR" pos=
"1" type=
"boolean"/>
<bitfield name=
"RBBM_REG_TIMEOUT" pos=
"2" type=
"boolean"/>
<bitfield name=
"RBBM_ME_MS_TIMEOUT" pos=
"3" type=
"boolean"/>
<bitfield name=
"RBBM_PFP_MS_TIMEOUT" pos=
"4" type=
"boolean"/>
<bitfield name=
"RBBM_ATB_BUS_OVERFLOW" pos=
"5" type=
"boolean"/>
<bitfield name=
"VFD_ERROR" pos=
"6" type=
"boolean"/>
<bitfield name=
"CP_SW_INT" pos=
"7" type=
"boolean"/>
<bitfield name=
"CP_T0_PACKET_IN_IB" pos=
"8" type=
"boolean"/>
<bitfield name=
"CP_OPCODE_ERROR" pos=
"9" type=
"boolean"/>
<bitfield name=
"CP_RESERVED_BIT_ERROR" pos=
"10" type=
"boolean"/>
<bitfield name=
"CP_HW_FAULT" pos=
"11" type=
"boolean"/>
<bitfield name=
"CP_DMA" pos=
"12" type=
"boolean"/>
<bitfield name=
"CP_IB2_INT" pos=
"13" type=
"boolean"/>
<bitfield name=
"CP_IB1_INT" pos=
"14" type=
"boolean"/>
<bitfield name=
"CP_RB_INT" pos=
"15" type=
"boolean"/>
<bitfield name=
"CP_REG_PROTECT_FAULT" pos=
"16" type=
"boolean"/>
<bitfield name=
"CP_RB_DONE_TS" pos=
"17" type=
"boolean"/>
<bitfield name=
"CP_VS_DONE_TS" pos=
"18" type=
"boolean"/>
<bitfield name=
"CP_PS_DONE_TS" pos=
"19" type=
"boolean"/>
--> --------------------
--> maximum size reached
--> --------------------