pvr: Change indentation from tab to spaces for xml files.
authorKarmjit Mahil <Karmjit.Mahil@imgtec.com>
Mon, 22 Aug 2022 13:22:32 +0000 (14:22 +0100)
committerMarge Bot <emma+marge@anholt.net>
Wed, 31 Aug 2022 08:26:17 +0000 (08:26 +0000)
This is done to match other drivers and to use spaces for
indentation throughout the whole of the powervr driver.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18319>

src/imagination/.editorconfig
src/imagination/csbgen/rogue_cdm.xml
src/imagination/csbgen/rogue_cr.xml
src/imagination/csbgen/rogue_ipf.xml
src/imagination/csbgen/rogue_lls.xml
src/imagination/csbgen/rogue_pbestate.xml
src/imagination/csbgen/rogue_pds.xml
src/imagination/csbgen/rogue_ppp.xml
src/imagination/csbgen/rogue_texstate.xml
src/imagination/csbgen/rogue_vdm.xml

index d98c43a..0022ff4 100644 (file)
@@ -1,2 +1,6 @@
 [*.{c,h,cpp,hpp,cc,hh}]
 max_line_length = 80
+
+[*.xml]
+indent_style = space
+indent_size = 2
index 804652b..766c065 100644 (file)
@@ -25,108 +25,108 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="CDMCTRL">
 
-       <enum name="BLOCK_TYPE">
-               <value name="COMPUTE_KERNEL"   value="0"/>
-               <value name="STREAM_LINK"      value="1"/>
-               <value name="STREAM_TERMINATE" value="2"/>
-       </enum>
-
-       <enum name="USC_TARGET">
-               <value name="ALL" value="0"/>
-               <value name="ANY" value="1"/>
-       </enum>
-
-       <enum name="SD_TYPE">
-               <value name="NONE" value="0"/>
-               <value name="PDS"  value="1"/>
-               <value name="USC"  value="2"/>
-       </enum>
-
-       <struct name="KERNEL0" length="1">
-               <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="COMPUTE_KERNEL"/>
-               <field name="indirect_present" start="29" end="29" type="bool"/>
-               <field name="global_offsets_present" start="28" end="28" type="bool"/>
-               <field name="event_object_present" start="27" end="27" type="bool"/>
-               <field name="usc_common_size" start="18" end="26" type="uint">
-                       <define name="UNIT_SIZE" value="64"/>
-                       <define name="MAX_SIZE" value="256"/>
-               </field>
-               <field name="usc_unified_size" start="12" end="17" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_temp_size" start="8" end="11" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_data_size" start="2" end="7" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="usc_target" start="1" end="1" type="USC_TARGET"/>
-               <field name="fence" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="KERNEL1" length="1">
-               <field name="data_addr" start="4" end="31" shift="4" type="address"/>
-               <field name="sd_type" start="2" end="3" type="SD_TYPE"/>
-               <field name="usc_common_shared" start="1" end="1" type="bool"/>
-       </struct>
-
-       <struct name="KERNEL2" length="1">
-               <field name="code_addr" start="4" end="31" shift="4" type="address"/>
-               <field name="one_wg_per_task" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="KERNEL3" length="1">
-               <field name="workgroup_x" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL4" length="1">
-               <field name="workgroup_y" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL5" length="1">
-               <field name="workgroup_z" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL6" length="1">
-               <field name="indirect_addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="KERNEL7" length="1">
-               <field name="indirect_addrlsb" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="KERNEL8" length="1">
-               <field name="max_instances" start="27" end="31" type="uint">
-                       <define name="MAX_SIZE" value="31"/>
-               </field>
-               <field name="workgroup_size_x" start="18" end="26" type="uint"/>
-               <field name="workgroup_size_y" start="9" end="17" type="uint"/>
-               <field name="workgroup_size_z" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL9" length="1">
-               <field name="global_offset_x" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL10" length="1">
-               <field name="global_offset_y" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="KERNEL11" length="1">
-               <field name="global_offset_z" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="STREAM_LINK0" length="1">
-               <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/>
-               <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="STREAM_LINK1" length="1">
-               <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="STREAM_TERMINATE" length="1">
-               <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/>
-       </struct>
+  <enum name="BLOCK_TYPE">
+    <value name="COMPUTE_KERNEL"   value="0"/>
+    <value name="STREAM_LINK"      value="1"/>
+    <value name="STREAM_TERMINATE" value="2"/>
+  </enum>
+
+  <enum name="USC_TARGET">
+    <value name="ALL" value="0"/>
+    <value name="ANY" value="1"/>
+  </enum>
+
+  <enum name="SD_TYPE">
+    <value name="NONE" value="0"/>
+    <value name="PDS"  value="1"/>
+    <value name="USC"  value="2"/>
+  </enum>
+
+  <struct name="KERNEL0" length="1">
+    <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="COMPUTE_KERNEL"/>
+    <field name="indirect_present" start="29" end="29" type="bool"/>
+    <field name="global_offsets_present" start="28" end="28" type="bool"/>
+    <field name="event_object_present" start="27" end="27" type="bool"/>
+    <field name="usc_common_size" start="18" end="26" type="uint">
+      <define name="UNIT_SIZE" value="64"/>
+      <define name="MAX_SIZE" value="256"/>
+    </field>
+    <field name="usc_unified_size" start="12" end="17" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_temp_size" start="8" end="11" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_data_size" start="2" end="7" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="usc_target" start="1" end="1" type="USC_TARGET"/>
+    <field name="fence" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="KERNEL1" length="1">
+    <field name="data_addr" start="4" end="31" shift="4" type="address"/>
+    <field name="sd_type" start="2" end="3" type="SD_TYPE"/>
+    <field name="usc_common_shared" start="1" end="1" type="bool"/>
+  </struct>
+
+  <struct name="KERNEL2" length="1">
+    <field name="code_addr" start="4" end="31" shift="4" type="address"/>
+    <field name="one_wg_per_task" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="KERNEL3" length="1">
+    <field name="workgroup_x" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL4" length="1">
+    <field name="workgroup_y" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL5" length="1">
+    <field name="workgroup_z" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL6" length="1">
+    <field name="indirect_addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="KERNEL7" length="1">
+    <field name="indirect_addrlsb" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="KERNEL8" length="1">
+    <field name="max_instances" start="27" end="31" type="uint">
+      <define name="MAX_SIZE" value="31"/>
+    </field>
+    <field name="workgroup_size_x" start="18" end="26" type="uint"/>
+    <field name="workgroup_size_y" start="9" end="17" type="uint"/>
+    <field name="workgroup_size_z" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL9" length="1">
+    <field name="global_offset_x" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL10" length="1">
+    <field name="global_offset_y" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="KERNEL11" length="1">
+    <field name="global_offset_z" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="STREAM_LINK0" length="1">
+    <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/>
+    <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="STREAM_LINK1" length="1">
+    <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="STREAM_TERMINATE" length="1">
+    <field name="block_type" start="30" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/>
+  </struct>
 
 </csbgen>
index 4fbc63c..7cb7902 100644 (file)
@@ -25,611 +25,611 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="CR">
 
-       <define name="PM_VHEAP_TABLE_SIZE" value="0x180" />
-
-       <enum name="COMP_IADDR_TYPE">
-               <value name="INDIRECT_1TILE" value="0"/>
-               <value name="INDIRECT_4TILE" value="1"/>
-       </enum>
-
-       <enum name="COMPRESS_SIZE">
-               <value name="BLOCK_8X8"  value="0"/>
-               <value name="BLOCK_16X4" value="1"/>
-       </enum>
-
-       <enum name="DIR_TYPE">
-               <value name="TL2BR" value="0"/>
-               <value name="TR2BL" value="1"/>
-               <value name="BL2TR" value="2"/>
-               <value name="BR2TL" value="3"/>
-       </enum>
-
-       <enum name="ISP_AA_MODE_TYPE">
-               <value name="AA_NONE" value="0"/>
-               <value name="AA_2X"   value="1"/>
-               <value name="AA_4X"   value="2"/>
-               <value name="AA_8X"   value="3"/>
-       </enum>
-
-       <enum name="ISP_RENDER_MODE_TYPE">
-               <value name="NORM"       value="0"/>
-               <value name="FAST_2D"    value="2"/>
-               <value name="FAST_SCALE" value="3"/>
-       </enum>
-
-       <enum name="MEMLAYOUT">
-               <value name="LINEAR"     value="0"/>
-               <value name="TWIDDLE_2D" value="1"/>
-               <value name="TWIDDLE_3D" value="2"/>
-               <value name="TILED"      value="3"/>
-       </enum>
-
-       <enum name="MODE_TYPE">
-               <value name="DX9"  value="0"/>
-               <value name="DX10" value="1"/>
-               <value name="OGL"  value="2"/>
-       </enum>
-
-       <enum name="PIPE_NUM">
-               <value name="PIPE_ONE"      value="0"/>
-               <value name="PIPE_TWO"      value="1"/>
-               <value name="PIPE_THREE"    value="2"/>
-               <value name="PIPE_FOUR"     value="3"/>
-               <value name="PIPE_FIVE"     value="4"/>
-               <value name="PIPE_SIX"      value="5"/>
-               <value name="PIPE_SEVEN"    value="6"/>
-               <value name="PIPE_EIGHT"    value="7"/>
-               <value name="PIPE_NINE"     value="8"/>
-               <value name="PIPE_TEN"      value="9"/>
-               <value name="PIPE_ELEVEN"   value="10"/>
-               <value name="PIPE_TWELVE"   value="11"/>
-               <value name="PIPE_THIRTEEN" value="12"/>
-               <value name="PIPE_FOURTEEN" value="13"/>
-               <value name="PIPE_FIFTEEN"  value="14"/>
-               <value name="PIPE_SIXTEEN"  value="15"/>
-       </enum>
-
-       <enum name="PIXEL_WIDTH">
-               <value name="2REGISTERS" value="0"/>
-               <value name="4REGISTERS" value="1"/>
-               <value name="8REGISTERS" value="2"/>
-               <value name="1REGISTER"  value="3"/>
-       </enum>
-
-       <enum name="ROTATION_TYPE">
-               <value name="0_DEG"   value="0"/>
-               <value name="90_DEG"  value="1"/>
-               <value name="180_DEG" value="2"/>
-               <value name="270_DEG" value="3"/>
-       </enum>
-
-       <enum name="SIZE">
-               <value name="1_PIXEL"   value="0"/>
-               <value name="2_PIXEL"   value="1"/>
-               <value name="4_PIXEL"   value="2"/>
-               <value name="8_PIXEL"   value="3"/>
-               <value name="16_PIXEL"  value="4"/>
-               <value name="32_PIXEL"  value="5"/>
-               <value name="64_PIXEL"  value="6"/>
-               <value name="128_PIXEL" value="7"/>
-               <value name="256_PIXEL" value="8"/>
-               <value name="512_PIXEL" value="9"/>
-               <value name="1K_PIXEL"  value="10"/>
-               <value name="2K_PIXEL"  value="11"/>
-               <value name="4K_PIXEL"  value="12"/>
-               <value name="8K_PIXEL"  value="13"/>
-               <value name="16K_PIXEL" value="14"/>
-       </enum>
-
-       <enum name="SWIZ">
-               <value name="SOURCE_CHAN0" value="0"/>
-               <value name="SOURCE_CHAN1" value="1"/>
-               <value name="SOURCE_CHAN2" value="2"/>
-               <value name="SOURCE_CHAN3" value="3"/>
-               <value name="ONE"          value="4"/>
-               <value name="ZERO"         value="5"/>
-       </enum>
-
-       <enum name="TFBC_LOSSY">
-               <value name="LOSSLESS" value="0"/>
-               <value name="LOSSY_75" value="1"/>
-               <value name="LOSSY_50" value="2"/>
-               <value name="LOSSY_25" value="3"/>
-       </enum>
-
-       <enum name="TWOCOMP_GAMMA">
-               <value name="GAMMA_BOTTOM_CHANNEL" value="0"/>
-               <value name="GAMMA_BOTH_CHANNELS"  value="1"/>
-       </enum>
-
-       <enum name="ZLOADFORMAT_TYPE">
-               <value name="F32Z"     value="0"/>
-               <value name="24BITINT" value="1"/>
-               <value name="16BITINT" value="2"/>
-               <value name="F64Z"     value="3"/>
-       </enum>
-
-       <enum name="ZSTOREFORMAT_TYPE">
-               <value name="F32Z"     value="0"/>
-               <value name="24BITINT" value="1"/>
-               <value name="16BITINT" value="2"/>
-               <value name="F64Z"     value="3"/>
-       </enum>
-
-       <struct name="PM_MTILE_ARRAY" length="2">
-               <field name="base_addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="PM_VHEAP_TABLE" length="2">
-               <field name="base_addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="PM_MLIST0_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="VDM_CTRL_STREAM_BASE" length="2">
-               <field name="addr" start="2" end="39" shift="2" type="address"/>
-       </struct>
-
-       <struct name="VDM_CALL_STACK_POINTER" length="2">
-               <field name="addr" start="3" end="39" shift="3" type="address"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_STATE_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_STORE_TASK0" length="2">
-               <field name="pds_state1" start="32" end="63" type="uint"/>
-               <field name="pds_state0" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_STORE_TASK1" length="1">
-               <field name="pds_state2" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_STORE_TASK2" length="2">
-               <field name="stream_out2" start="32" end="63" type="uint"/>
-               <field name="stream_out1" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_RESUME_TASK0" length="2">
-               <field name="pds_state1" start="32" end="63" type="uint"/>
-               <field name="pds_state0" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_RESUME_TASK1" length="1">
-               <field name="pds_state2" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_CONTEXT_RESUME_TASK2" length="2">
-               <field name="stream_out2" start="32" end="63" type="uint"/>
-               <field name="stream_out1" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="CDM_CONTEXT_STATE_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="CDM_CONTEXT_PDS0" length="2">
-               <field name="data_addr" start="36" end="63" shift="4" type="address"/>
-               <field name="code_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="CDM_CTRL_STREAM_BASE" length="2">
-               <field name="addr" start="2" end="39" shift="2" type="address"/>
-       </struct>
-
-       <struct name="CDM_CONTEXT_PDS1" length="1">
-               <field name="pds_seq_dep" start="29" end="29" type="bool"/>
-               <field name="usc_seq_dep" start="28" end="28" type="bool"/>
-               <!-- false=All, true=Any -->
-               <field name="target" start="27" end="27" type="bool"/>
-               <field name="unified_size" start="21" end="26" type="uint"/>
-               <field name="common_shared" start="20" end="20" type="bool"/>
-               <field name="common_size" start="11" end="19" type="uint">
-                       <define name="UNIT_SIZE" value="64"/>
-               </field>
-               <field name="temp_size" start="7" end="10" type="uint"/>
-               <field name="data_size" start="1" end="6" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="fence" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="CDM_TERMINATE_PDS" length="2">
-               <field name="data_addr" start="36" end="63" shift="4" type="address"/>
-               <field name="code_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="CDM_TERMINATE_PDS1" length="1">
-               <field name="pds_seq_dep" start="29" end="29" type="bool"/>
-               <field name="usc_seq_dep" start="28" end="28" type="bool"/>
-               <field name="target" start="27" end="27" type="bool"/>
-               <field name="unified_size" start="21" end="26" type="uint"/>
-               <field name="common_shared" start="20" end="20" type="bool"/>
-               <field name="common_size" start="11" end="19" type="uint"/>
-               <field name="temp_size" start="7" end="10" type="uint"/>
-               <field name="data_size" start="1" end="6" type="uint"/>
-               <field name="fence" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="CDM_CONTEXT_LOAD_PDS0" length="2">
-               <field name="data_addr" start="36" end="63" shift="4" type="address"/>
-               <field name="code_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="COMPUTE_CLUSTER" length="1">
-               <field name="mask" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="PDS_CTRL" length="2">
-               <field name="sm_overlap_enable" start="55" end="55" type="bool"/>
-               <condition type="if" check="ROGUEXE"/>
-                       <condition type="if" check="COMPUTE"/>
-                               <field name="roguexe_max_num_cdm_tasks" start="24" end="31" type="uint"/>
-                       <condition type="endif" check="COMPUTE"/>
-                       <condition type="if" check="NUM_RASTER_PIPES &gt; 0"/>
-                               <field name="roguexe_max_num_pdm_tasks" start="16" end="23" type="uint"/>
-                       <condition type="endif" check="NUM_RASTER_PIPES &gt; 0"/>
-                       <condition type="if" check="NUM_TA &gt; 0"/>
-                               <field name="roguexe_max_num_vdm_tasks" start="8" end="15" type="uint"/>
-                       <condition type="endif" check="NUM_TA &gt; 0"/>
-               <condition type="else" check="ROGUEXE"/>
-                       <condition type="if" check="COMPUTE"/>
-                               <field name="max_num_cdm_tasks" start="24" end="30" type="uint"/>
-                       <condition type="endif" check="COMPUTE"/>
-                       <field name="max_num_pdm_tasks" start="16" end="22" type="uint"/>
-                       <field name="max_num_vdm_tasks" start="8" end="14" type="uint"/>
-               <condition type="endif" check="ROGUEXE"/>
-       </struct>
-
-       <struct name="EVENT_PIXEL_PDS_CODE" length="1">
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="EVENT_PIXEL_PDS_DATA" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="EVENT_PIXEL_PDS_INFO" length="1">
-               <field name="usc_sr_size" start="9" end="14" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="temp_stride" start="5" end="8" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="const_size" start="0" end="4" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-       </struct>
-
-       <struct name="PDS_BGRND0_BASE" length="2">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="texunicode_addr" start="36" end="63" shift="4" type="address"/>
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="shader_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="PDS_BGRND1_BASE" length="2">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="texturedata_addr" start="36" end="63" shift="4" type="address"/>
-               <!-- Unused in the Vulkan driver. -->
-               <field name="varying_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="PDS_BGRND2_BASE" length="2">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="uniformdata_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="PDS_BGRND3_SIZEINFO" length="2">
-               <field name="usc_sharedsize" start="55" end="63" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_batchnum" start="32" end="45" type="uint"/>
-               <field name="pds_uniformsize" start="23" end="31" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="pds_texturestatesize" start="16" end="22" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="pds_varyingsize" start="10" end="15" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="usc_varyingsize" start="4" end="9" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_tempsize" start="0" end="3" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-       </struct>
-
-       <struct name="TE_AA" length="1">
-               <condition type="if" check="SIMPLE_INTERNAL_PARAMETER_FORMAT &amp;&amp; ISP_SAMPLES_PER_PIXEL &gt; 2"/>
-                       <field name="y2" start="3" end="3" type="bool"/>
-               <condition type="endif" check="SIMPLE_INTERNAL_PARAMETER_FORMAT &amp;&amp; ISP_SAMPLES_PER_PIXEL &gt; 2"/>
-               <field name="y" start="2" end="2" type="bool"/>
-               <field name="x" start="1" end="1" type="bool"/>
-               <field name="x2" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="TE_MTILE1" length="1">
-               <field name="x1" start="18" end="26" type="uint"/>
-               <field name="x2" start="9" end="17" type="uint"/>
-               <field name="x3" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="TE_MTILE2" length="1">
-               <field name="y1" start="18" end="26" type="uint"/>
-               <field name="y2" start="9" end="17" type="uint"/>
-               <field name="y3" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="TE_SCREEN" length="1">
-               <field name="ymax" start="12" end="20" type="uint"/>
-               <field name="xmax" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="TE_PSG" length="1">
-               <condition type="if" check="ROGUEXE"/>
-                       <condition type="if" check="TILE_REGION_PROTECTION"/>
-                               <field name="force_protect" start="22" end="22" type="uint"/>
-                       <condition type="endif" check="TILE_REGION_PROTECTION"/>
-                       <field name="cs_size" start="21" end="21" type="uint"/>
-                       <field name="enable_pwr_gate_state" start="20" end="20" type="bool"/>
-               <condition type="endif" check="ROGUEXE"/>
-               <field name="enable_context_state_restore" start="19" end="19" type="bool"/>
-               <field name="zonlyrender" start="18" end="18" type="bool"/>
-               <field name="completeonterminate" start="17" end="17" type="bool"/>
-               <field name="cache_bypass" start="14" end="14" type="bool"/>
-               <field name="forcenewstate" start="13" end="13" type="bool"/>
-               <field name="region_stride" start="0" end="10" type="uint">
-                       <define name="UNIT_SIZE" value="4096"/>
-               </field>
-       </struct>
-
-       <!-- FIXME: This is only a partial definition as (at the time of writing)
-            csbgen doesn't support multiple address fields within structure.
-       -->
-       <!-- FIXME: When csbgen supports conditional structs, make this
-            conditional on NUM_TA > 0.
-       -->
-       <struct name="TE_PSGREGION_ADDR" length="2">
-               <field name="base" start="6" end="33" shift="6" type="address"/>
-       </struct>
-
-       <!-- FIXME: This is only a partial definition as (at the time of writing)
-            csbgen doesn't support multiple address fields within structure.
-       -->
-       <struct name="TE_TPC_ADDR" length="2">
-               <field name="base" start="6" end="33" shift="6" type="address"/>
-       </struct>
-
-       <struct name="PPP_MULTISAMPLECTL" length="2">
-               <condition type="if" check="MAX_MULTISAMPLE == 8"/>
-                       <field name="msaa_y7" start="60" end="63" type="uint"/>
-                       <field name="msaa_x7" start="56" end="59" type="uint"/>
-                       <field name="msaa_y6" start="52" end="55" type="uint"/>
-                       <field name="msaa_x6" start="48" end="51" type="uint"/>
-                       <field name="msaa_y5" start="44" end="47" type="uint"/>
-                       <field name="msaa_x5" start="40" end="43" type="uint"/>
-                       <field name="msaa_y4" start="36" end="39" type="uint"/>
-                       <field name="msaa_x4" start="32" end="35" type="uint"/>
-               <condition type="endif" check="MAX_MULTISAMPLE == 8"/>
-               <field name="msaa_y3" start="28" end="31" type="uint"/>
-               <field name="msaa_x3" start="24" end="27" type="uint"/>
-               <field name="msaa_y2" start="20" end="23" type="uint"/>
-               <field name="msaa_x2" start="16" end="19" type="uint"/>
-               <field name="msaa_y1" start="12" end="15" type="uint"/>
-               <field name="msaa_x1" start="8" end="11" type="uint"/>
-               <field name="msaa_y0" start="4" end="7" type="uint"/>
-               <field name="msaa_x0" start="0" end="3" type="uint"/>
-       </struct>
-
-       <struct name="PPP_CTRL" length="1">
-               <field name="vpt_scissor" start="12" end="12" type="bool"/>
-               <field name="flush_mode" start="11" end="11" type="uint"/>
-               <field name="bfcull_restrict_clip" start="10" end="10" type="bool"/>
-               <field name="fixed_point_format" start="9" end="9" type="uint"/>
-               <field name="default_point_size" start="8" end="8" type="bool"/>
-               <field name="bfcull1_disable" start="7" end="7" type="bool"/>
-               <field name="bfcull2_disable" start="6" end="6" type="bool"/>
-               <field name="fccull_disable" start="5" end="5" type="bool"/>
-               <field name="oscull_disable" start="4" end="4" type="bool"/>
-               <field name="socull_disable" start="2" end="2" type="bool"/>
-               <field name="wclampen" start="1" end="1" type="bool"/>
-               <field name="opengl" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="PPP_SCREEN" length="1">
-               <field name="pixymax" start="16" end="30" type="uint"/>
-               <field name="pixxmax" start="0" end="14" type="uint"/>
-       </struct>
-
-       <!-- FIXME: This is only a partial definition as (at the time of writing)
-            csbgen doesn't support multiple address fields within structure.
-       -->
-       <struct name="TA_RTC_ADDR" length="2">
-               <field name="base" start="6" end="33" shift="6" type="address"/>
-       </struct>
-
-       <struct name="TA_CONTEXT_STATE_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="ISP_RENDER" length="1">
-               <field name="disable_eomt" start="5" end="5" type="bool"/>
-               <field name="resume" start="4" end="4" type="bool"/>
-               <field name="dir_type" start="2" end="3" type="DIR_TYPE"/>
-               <field name="mode_type" start="0" end="1" type="ISP_RENDER_MODE_TYPE"/>
-       </struct>
-
-       <struct name="ISP_RENDER_ORIGIN" length="1">
-               <field name="x" start="16" end="25" type="uint"/>
-               <field name="y" start="0" end="9" type="uint"/>
-       </struct>
-
-       <struct name="ISP_MTILE_SIZE" length="1">
-               <field name="x" start="16" end="25" type="uint"/>
-               <field name="y" start="0" end="9" type="uint"/>
-       </struct>
-
-       <struct name="ISP_BGOBJDEPTH" length="1">
-               <field name="value" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="ISP_BGOBJVALS" length="1">
-               <field name="enablebgtag" start="9" end="9" type="bool"/>
-               <field name="mask" start="8" end="8" type="bool"/>
-               <field name="stencil" start="0" end="7" type="uint"/>
-       </struct>
-
-       <struct name="ISP_AA" length="1">
-               <field name="mode" start="0" end="1" type="ISP_AA_MODE_TYPE"/>
-       </struct>
-
-       <struct name="ISP_CTL" length="1">
-               <field name="skip_init_hdrs" start="31" end="31" type="bool"/>
-               <field name="line_style" start="30" end="30" type="bool"/>
-               <field name="line_style_pix" start="29" end="29" type="bool"/>
-               <field name="pair_tiles_vert" start="28" end="28" type="bool"/>
-               <field name="pair_tiles" start="27" end="27" type="bool"/>
-               <field name="creq_buf_en" start="26" end="26" type="bool"/>
-               <field name="tile_age_en" start="25" end="25" type="bool"/>
-               <field name="isp_sample_pos_mode" start="23" end="24" type="MODE_TYPE"/>
-               <field name="num_tiles_per_usc" start="21" end="22" type="uint"/>
-               <field name="dbias_is_int" start="20" end="20" type="bool"/>
-               <field name="overlap_check_mode" start="19" end="19" type="bool"/>
-               <field name="pt_upfront_depth_disable" start="18" end="18" type="bool"/>
-               <field name="process_empty_tiles" start="17" end="17" type="bool"/>
-               <field name="sample_pos" start="16" end="16" type="bool"/>
-               <field name="pipe_enable" start="12" end="15" type="PIPE_NUM"/>
-               <field name="valid_id" start="4" end="9" type="uint"/>
-               <field name="upass_start" start="0" end="3" type="uint"/>
-       </struct>
-
-       <struct name="ISP_ZLSCTL" length="2">
-               <field name="zlsextent_y_s" start="48" end="57" type="uint"/>
-               <field name="zlsextent_x_s" start="38" end="47" type="uint"/>
-               <field name="stencil_extent_enable" start="37" end="37" type="bool"/>
-               <field name="zlsextent_y_z" start="27" end="36" type="uint"/>
-               <field name="zstoreformat" start="25" end="26" type="ZSTOREFORMAT_TYPE"/>
-               <field name="zloadformat" start="23" end="24" type="ZLOADFORMAT_TYPE"/>
-               <field name="fb_storeen" start="22" end="22" type="bool"/>
-               <field name="fb_loaden" start="21" end="21" type="bool"/>
-               <field name="mstoreen" start="20" end="20" type="bool"/>
-               <field name="zstoreen" start="19" end="19" type="bool"/>
-               <field name="sstoreen" start="18" end="18" type="bool"/>
-               <field name="storetwiddled" start="17" end="17" type="bool"/>
-               <field name="mloaden" start="16" end="16" type="bool"/>
-               <field name="zloaden" start="15" end="15" type="bool"/>
-               <field name="sloaden" start="14" end="14" type="bool"/>
-               <field name="loadtwiddled" start="13" end="13" type="bool"/>
-               <field name="zlsextent_x_z" start="3" end="12" type="uint"/>
-               <field name="forcezstore" start="2" end="2" type="bool"/>
-               <field name="forcezload" start="1" end="1" type="bool"/>
-               <field name="zonlyrender" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="ISP_ZLOAD_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="ISP_STENCIL_LOAD_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-               <field name="enable" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="ISP_SCISSOR_BASE" length="2">
-               <field name="addr" start="2" end="39" shift="2" type="address"/>
-       </struct>
-
-       <struct name="ISP_DBIAS_BASE" length="2">
-               <field name="addr" start="2" end="39" shift="2" type="address"/>
-       </struct>
-
-       <struct name="ISP_OCLQRY_BASE" length="2">
-               <field name="addr" start="4" end="39" shift="4" type="address"/>
-       </struct>
-
-       <struct name="ISP_ZLS_PIXELS" length="1">
-               <field name="y" start="15" end="29" type="uint"/>
-               <field name="x" start="0" end="14" type="uint"/>
-       </struct>
-
-       <struct name="PBE_WORD0_MRT0" length="2">
-               <condition type="if" check="TFBC"/>
-                       <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY"/>
-               <condition type="endif" check="TFBC"/>
-               <field name="x_rsrvd" start="63" end="63" type="bool"/>
-               <field name="pair_tiles" start="60" end="60" type="uint"/>
-               <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/>
-               <field name="x_rsrvd2" start="59" end="59" type="bool"/>
-               <field name="comp_cor_enable" start="59" end="59" type="bool"/>
-               <field name="dither" start="58" end="58" type="bool"/>
-               <field name="tilerelative" start="57" end="57" type="bool"/>
-               <field name="downscale" start="56" end="56" type="bool"/>
-               <field name="size_z" start="52" end="55" type="SIZE"/>
-               <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/>
-               <field name="linestride" start="34" end="49" type="uint"/>
-               <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/>
-               <field name="swiz_chan3" start="29" end="31" type="SWIZ"/>
-               <field name="swiz_chan2" start="26" end="28" type="SWIZ"/>
-               <field name="swiz_chan1" start="23" end="25" type="SWIZ"/>
-               <field name="swiz_chan0" start="20" end="22" type="SWIZ"/>
-               <field name="minclip_x" start="6" end="19" type="uint"/>
-               <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/>
-               <field name="gamma" start="4" end="4" type="bool"/>
-               <field name="compression" start="3" end="3" type="bool"/>
-               <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/>
-               <field name="comp_indirect_table" start="1" end="1" type="bool"/>
-               <condition type="if" check="PBE_YFLIP"/>
-                       <field name="y_flip" start="0" end="0" type="bool"/>
-               <condition type="endif" check="PBE_YFLIP"/>
-       </struct>
-
-       <struct name="FRAG_SCREEN" length="1">
-               <field name="ymax" start="16" end="30" type="uint"/>
-               <field name="xmax" start="0" end="14" type="uint"/>
-       </struct>
-
-       <struct name="TPU" length="1">
-               <condition type="if" check="PDSL0SIZE &gt; 0"/>
-                       <field name="mcu_pds_l0_off" start="8" end="8" type="bool"/>
-               <condition type="endif" check="PDSL0SIZE &gt; 0"/>
-               <condition type="if" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/>
-                       <field name="tag_cem_64_face_packing" start="7" end="7" type="bool"/>
-               <condition type="endif" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/>
-               <field name="tag_enable_mmu_prefetch" start="6" end="6" type="bool"/>
-               <field name="tag_cem_4k_face_packing" start="5" end="5" type="bool"/>
-               <field name="madd_config_l0off" start="4" end="4" type="bool"/>
-               <field name="tag_cem_face_packing" start="3" end="3" type="bool"/>
-               <field name="tag_cemedge_dontfilter" start="2" end="2" type="bool"/>
-               <condition type="if" check="TPU_CEM_USG_NORMALISATION"/>
-                       <field name="tag_cemgrad_dontnegate" start="1" end="1" type="bool"/>
-               <condition type="endif" check="TPU_CEM_USG_NORMALISATION"/>
-               <field name="madd_config_dxt35_transovr" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="TPU_BORDER_COLOUR_TABLE_PDM" length="2">
-               <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
-       </struct>
-
-       <struct name="TPU_BORDER_COLOUR_TABLE_VDM" length="2">
-               <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
-       </struct>
-
-       <struct name="TPU_BORDER_COLOUR_TABLE_CDM" length="2">
-               <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
-       </struct>
-
-       <struct name="USC_PIXEL_OUTPUT_CTRL" length="1">
-               <field name="partition_mask" start="3" end="20" type="uint"/>
-               <field name="enable_4th_partition" start="2" end="2" type="bool"/>
-               <field name="width" start="0" end="1" type="PIXEL_WIDTH"/>
-       </struct>
+  <define name="PM_VHEAP_TABLE_SIZE" value="0x180" />
+
+  <enum name="COMP_IADDR_TYPE">
+    <value name="INDIRECT_1TILE" value="0"/>
+    <value name="INDIRECT_4TILE" value="1"/>
+  </enum>
+
+  <enum name="COMPRESS_SIZE">
+    <value name="BLOCK_8X8"  value="0"/>
+    <value name="BLOCK_16X4" value="1"/>
+  </enum>
+
+  <enum name="DIR_TYPE">
+    <value name="TL2BR" value="0"/>
+    <value name="TR2BL" value="1"/>
+    <value name="BL2TR" value="2"/>
+    <value name="BR2TL" value="3"/>
+  </enum>
+
+  <enum name="ISP_AA_MODE_TYPE">
+    <value name="AA_NONE" value="0"/>
+    <value name="AA_2X"   value="1"/>
+    <value name="AA_4X"   value="2"/>
+    <value name="AA_8X"   value="3"/>
+  </enum>
+
+  <enum name="ISP_RENDER_MODE_TYPE">
+    <value name="NORM"       value="0"/>
+    <value name="FAST_2D"    value="2"/>
+    <value name="FAST_SCALE" value="3"/>
+  </enum>
+
+  <enum name="MEMLAYOUT">
+    <value name="LINEAR"     value="0"/>
+    <value name="TWIDDLE_2D" value="1"/>
+    <value name="TWIDDLE_3D" value="2"/>
+    <value name="TILED"      value="3"/>
+  </enum>
+
+  <enum name="MODE_TYPE">
+    <value name="DX9"  value="0"/>
+    <value name="DX10" value="1"/>
+    <value name="OGL"  value="2"/>
+  </enum>
+
+  <enum name="PIPE_NUM">
+    <value name="PIPE_ONE"      value="0"/>
+    <value name="PIPE_TWO"      value="1"/>
+    <value name="PIPE_THREE"    value="2"/>
+    <value name="PIPE_FOUR"     value="3"/>
+    <value name="PIPE_FIVE"     value="4"/>
+    <value name="PIPE_SIX"      value="5"/>
+    <value name="PIPE_SEVEN"    value="6"/>
+    <value name="PIPE_EIGHT"    value="7"/>
+    <value name="PIPE_NINE"     value="8"/>
+    <value name="PIPE_TEN"      value="9"/>
+    <value name="PIPE_ELEVEN"   value="10"/>
+    <value name="PIPE_TWELVE"   value="11"/>
+    <value name="PIPE_THIRTEEN" value="12"/>
+    <value name="PIPE_FOURTEEN" value="13"/>
+    <value name="PIPE_FIFTEEN"  value="14"/>
+    <value name="PIPE_SIXTEEN"  value="15"/>
+  </enum>
+
+  <enum name="PIXEL_WIDTH">
+    <value name="2REGISTERS" value="0"/>
+    <value name="4REGISTERS" value="1"/>
+    <value name="8REGISTERS" value="2"/>
+    <value name="1REGISTER"  value="3"/>
+  </enum>
+
+  <enum name="ROTATION_TYPE">
+    <value name="0_DEG"   value="0"/>
+    <value name="90_DEG"  value="1"/>
+    <value name="180_DEG" value="2"/>
+    <value name="270_DEG" value="3"/>
+  </enum>
+
+  <enum name="SIZE">
+    <value name="1_PIXEL"   value="0"/>
+    <value name="2_PIXEL"   value="1"/>
+    <value name="4_PIXEL"   value="2"/>
+    <value name="8_PIXEL"   value="3"/>
+    <value name="16_PIXEL"  value="4"/>
+    <value name="32_PIXEL"  value="5"/>
+    <value name="64_PIXEL"  value="6"/>
+    <value name="128_PIXEL" value="7"/>
+    <value name="256_PIXEL" value="8"/>
+    <value name="512_PIXEL" value="9"/>
+    <value name="1K_PIXEL"  value="10"/>
+    <value name="2K_PIXEL"  value="11"/>
+    <value name="4K_PIXEL"  value="12"/>
+    <value name="8K_PIXEL"  value="13"/>
+    <value name="16K_PIXEL" value="14"/>
+  </enum>
+
+  <enum name="SWIZ">
+    <value name="SOURCE_CHAN0" value="0"/>
+    <value name="SOURCE_CHAN1" value="1"/>
+    <value name="SOURCE_CHAN2" value="2"/>
+    <value name="SOURCE_CHAN3" value="3"/>
+    <value name="ONE"          value="4"/>
+    <value name="ZERO"         value="5"/>
+  </enum>
+
+  <enum name="TFBC_LOSSY">
+    <value name="LOSSLESS" value="0"/>
+    <value name="LOSSY_75" value="1"/>
+    <value name="LOSSY_50" value="2"/>
+    <value name="LOSSY_25" value="3"/>
+  </enum>
+
+  <enum name="TWOCOMP_GAMMA">
+    <value name="GAMMA_BOTTOM_CHANNEL" value="0"/>
+    <value name="GAMMA_BOTH_CHANNELS"  value="1"/>
+  </enum>
+
+  <enum name="ZLOADFORMAT_TYPE">
+    <value name="F32Z"     value="0"/>
+    <value name="24BITINT" value="1"/>
+    <value name="16BITINT" value="2"/>
+    <value name="F64Z"     value="3"/>
+  </enum>
+
+  <enum name="ZSTOREFORMAT_TYPE">
+    <value name="F32Z"     value="0"/>
+    <value name="24BITINT" value="1"/>
+    <value name="16BITINT" value="2"/>
+    <value name="F64Z"     value="3"/>
+  </enum>
+
+  <struct name="PM_MTILE_ARRAY" length="2">
+    <field name="base_addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="PM_VHEAP_TABLE" length="2">
+    <field name="base_addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="PM_MLIST0_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="VDM_CTRL_STREAM_BASE" length="2">
+    <field name="addr" start="2" end="39" shift="2" type="address"/>
+  </struct>
+
+  <struct name="VDM_CALL_STACK_POINTER" length="2">
+    <field name="addr" start="3" end="39" shift="3" type="address"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_STATE_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_STORE_TASK0" length="2">
+    <field name="pds_state1" start="32" end="63" type="uint"/>
+    <field name="pds_state0" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_STORE_TASK1" length="1">
+    <field name="pds_state2" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_STORE_TASK2" length="2">
+    <field name="stream_out2" start="32" end="63" type="uint"/>
+    <field name="stream_out1" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_RESUME_TASK0" length="2">
+    <field name="pds_state1" start="32" end="63" type="uint"/>
+    <field name="pds_state0" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_RESUME_TASK1" length="1">
+    <field name="pds_state2" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_CONTEXT_RESUME_TASK2" length="2">
+    <field name="stream_out2" start="32" end="63" type="uint"/>
+    <field name="stream_out1" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="CDM_CONTEXT_STATE_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="CDM_CONTEXT_PDS0" length="2">
+    <field name="data_addr" start="36" end="63" shift="4" type="address"/>
+    <field name="code_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="CDM_CTRL_STREAM_BASE" length="2">
+    <field name="addr" start="2" end="39" shift="2" type="address"/>
+  </struct>
+
+  <struct name="CDM_CONTEXT_PDS1" length="1">
+    <field name="pds_seq_dep" start="29" end="29" type="bool"/>
+    <field name="usc_seq_dep" start="28" end="28" type="bool"/>
+    <!-- false=All, true=Any -->
+    <field name="target" start="27" end="27" type="bool"/>
+    <field name="unified_size" start="21" end="26" type="uint"/>
+    <field name="common_shared" start="20" end="20" type="bool"/>
+    <field name="common_size" start="11" end="19" type="uint">
+      <define name="UNIT_SIZE" value="64"/>
+    </field>
+    <field name="temp_size" start="7" end="10" type="uint"/>
+    <field name="data_size" start="1" end="6" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="fence" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="CDM_TERMINATE_PDS" length="2">
+    <field name="data_addr" start="36" end="63" shift="4" type="address"/>
+    <field name="code_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="CDM_TERMINATE_PDS1" length="1">
+    <field name="pds_seq_dep" start="29" end="29" type="bool"/>
+    <field name="usc_seq_dep" start="28" end="28" type="bool"/>
+    <field name="target" start="27" end="27" type="bool"/>
+    <field name="unified_size" start="21" end="26" type="uint"/>
+    <field name="common_shared" start="20" end="20" type="bool"/>
+    <field name="common_size" start="11" end="19" type="uint"/>
+    <field name="temp_size" start="7" end="10" type="uint"/>
+    <field name="data_size" start="1" end="6" type="uint"/>
+    <field name="fence" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="CDM_CONTEXT_LOAD_PDS0" length="2">
+    <field name="data_addr" start="36" end="63" shift="4" type="address"/>
+    <field name="code_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="COMPUTE_CLUSTER" length="1">
+    <field name="mask" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="PDS_CTRL" length="2">
+    <field name="sm_overlap_enable" start="55" end="55" type="bool"/>
+    <condition type="if" check="ROGUEXE"/>
+      <condition type="if" check="COMPUTE"/>
+        <field name="roguexe_max_num_cdm_tasks" start="24" end="31" type="uint"/>
+      <condition type="endif" check="COMPUTE"/>
+      <condition type="if" check="NUM_RASTER_PIPES &gt; 0"/>
+        <field name="roguexe_max_num_pdm_tasks" start="16" end="23" type="uint"/>
+      <condition type="endif" check="NUM_RASTER_PIPES &gt; 0"/>
+      <condition type="if" check="NUM_TA &gt; 0"/>
+        <field name="roguexe_max_num_vdm_tasks" start="8" end="15" type="uint"/>
+      <condition type="endif" check="NUM_TA &gt; 0"/>
+    <condition type="else" check="ROGUEXE"/>
+      <condition type="if" check="COMPUTE"/>
+        <field name="max_num_cdm_tasks" start="24" end="30" type="uint"/>
+      <condition type="endif" check="COMPUTE"/>
+      <field name="max_num_pdm_tasks" start="16" end="22" type="uint"/>
+      <field name="max_num_vdm_tasks" start="8" end="14" type="uint"/>
+    <condition type="endif" check="ROGUEXE"/>
+  </struct>
+
+  <struct name="EVENT_PIXEL_PDS_CODE" length="1">
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="EVENT_PIXEL_PDS_DATA" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="EVENT_PIXEL_PDS_INFO" length="1">
+    <field name="usc_sr_size" start="9" end="14" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="temp_stride" start="5" end="8" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="const_size" start="0" end="4" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+  </struct>
+
+  <struct name="PDS_BGRND0_BASE" length="2">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="texunicode_addr" start="36" end="63" shift="4" type="address"/>
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="shader_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="PDS_BGRND1_BASE" length="2">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="texturedata_addr" start="36" end="63" shift="4" type="address"/>
+    <!-- Unused in the Vulkan driver. -->
+    <field name="varying_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="PDS_BGRND2_BASE" length="2">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="uniformdata_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="PDS_BGRND3_SIZEINFO" length="2">
+    <field name="usc_sharedsize" start="55" end="63" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_batchnum" start="32" end="45" type="uint"/>
+    <field name="pds_uniformsize" start="23" end="31" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="pds_texturestatesize" start="16" end="22" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="pds_varyingsize" start="10" end="15" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="usc_varyingsize" start="4" end="9" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_tempsize" start="0" end="3" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+  </struct>
+
+  <struct name="TE_AA" length="1">
+    <condition type="if" check="SIMPLE_INTERNAL_PARAMETER_FORMAT &amp;&amp; ISP_SAMPLES_PER_PIXEL &gt; 2"/>
+      <field name="y2" start="3" end="3" type="bool"/>
+    <condition type="endif" check="SIMPLE_INTERNAL_PARAMETER_FORMAT &amp;&amp; ISP_SAMPLES_PER_PIXEL &gt; 2"/>
+    <field name="y" start="2" end="2" type="bool"/>
+    <field name="x" start="1" end="1" type="bool"/>
+    <field name="x2" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="TE_MTILE1" length="1">
+    <field name="x1" start="18" end="26" type="uint"/>
+    <field name="x2" start="9" end="17" type="uint"/>
+    <field name="x3" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="TE_MTILE2" length="1">
+    <field name="y1" start="18" end="26" type="uint"/>
+    <field name="y2" start="9" end="17" type="uint"/>
+    <field name="y3" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="TE_SCREEN" length="1">
+    <field name="ymax" start="12" end="20" type="uint"/>
+    <field name="xmax" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="TE_PSG" length="1">
+    <condition type="if" check="ROGUEXE"/>
+      <condition type="if" check="TILE_REGION_PROTECTION"/>
+        <field name="force_protect" start="22" end="22" type="uint"/>
+      <condition type="endif" check="TILE_REGION_PROTECTION"/>
+      <field name="cs_size" start="21" end="21" type="uint"/>
+      <field name="enable_pwr_gate_state" start="20" end="20" type="bool"/>
+    <condition type="endif" check="ROGUEXE"/>
+    <field name="enable_context_state_restore" start="19" end="19" type="bool"/>
+    <field name="zonlyrender" start="18" end="18" type="bool"/>
+    <field name="completeonterminate" start="17" end="17" type="bool"/>
+    <field name="cache_bypass" start="14" end="14" type="bool"/>
+    <field name="forcenewstate" start="13" end="13" type="bool"/>
+    <field name="region_stride" start="0" end="10" type="uint">
+      <define name="UNIT_SIZE" value="4096"/>
+    </field>
+  </struct>
+
+  <!-- FIXME: This is only a partial definition as (at the time of writing)
+       csbgen doesn't support multiple address fields within structure.
+  -->
+  <!-- FIXME: When csbgen supports conditional structs, make this
+       conditional on NUM_TA > 0.
+  -->
+  <struct name="TE_PSGREGION_ADDR" length="2">
+    <field name="base" start="6" end="33" shift="6" type="address"/>
+  </struct>
+
+  <!-- FIXME: This is only a partial definition as (at the time of writing)
+       csbgen doesn't support multiple address fields within structure.
+  -->
+  <struct name="TE_TPC_ADDR" length="2">
+    <field name="base" start="6" end="33" shift="6" type="address"/>
+  </struct>
+
+  <struct name="PPP_MULTISAMPLECTL" length="2">
+    <condition type="if" check="MAX_MULTISAMPLE == 8"/>
+      <field name="msaa_y7" start="60" end="63" type="uint"/>
+      <field name="msaa_x7" start="56" end="59" type="uint"/>
+      <field name="msaa_y6" start="52" end="55" type="uint"/>
+      <field name="msaa_x6" start="48" end="51" type="uint"/>
+      <field name="msaa_y5" start="44" end="47" type="uint"/>
+      <field name="msaa_x5" start="40" end="43" type="uint"/>
+      <field name="msaa_y4" start="36" end="39" type="uint"/>
+      <field name="msaa_x4" start="32" end="35" type="uint"/>
+    <condition type="endif" check="MAX_MULTISAMPLE == 8"/>
+    <field name="msaa_y3" start="28" end="31" type="uint"/>
+    <field name="msaa_x3" start="24" end="27" type="uint"/>
+    <field name="msaa_y2" start="20" end="23" type="uint"/>
+    <field name="msaa_x2" start="16" end="19" type="uint"/>
+    <field name="msaa_y1" start="12" end="15" type="uint"/>
+    <field name="msaa_x1" start="8" end="11" type="uint"/>
+    <field name="msaa_y0" start="4" end="7" type="uint"/>
+    <field name="msaa_x0" start="0" end="3" type="uint"/>
+  </struct>
+
+  <struct name="PPP_CTRL" length="1">
+    <field name="vpt_scissor" start="12" end="12" type="bool"/>
+    <field name="flush_mode" start="11" end="11" type="uint"/>
+    <field name="bfcull_restrict_clip" start="10" end="10" type="bool"/>
+    <field name="fixed_point_format" start="9" end="9" type="uint"/>
+    <field name="default_point_size" start="8" end="8" type="bool"/>
+    <field name="bfcull1_disable" start="7" end="7" type="bool"/>
+    <field name="bfcull2_disable" start="6" end="6" type="bool"/>
+    <field name="fccull_disable" start="5" end="5" type="bool"/>
+    <field name="oscull_disable" start="4" end="4" type="bool"/>
+    <field name="socull_disable" start="2" end="2" type="bool"/>
+    <field name="wclampen" start="1" end="1" type="bool"/>
+    <field name="opengl" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="PPP_SCREEN" length="1">
+    <field name="pixymax" start="16" end="30" type="uint"/>
+    <field name="pixxmax" start="0" end="14" type="uint"/>
+  </struct>
+
+  <!-- FIXME: This is only a partial definition as (at the time of writing)
+       csbgen doesn't support multiple address fields within structure.
+  -->
+  <struct name="TA_RTC_ADDR" length="2">
+    <field name="base" start="6" end="33" shift="6" type="address"/>
+  </struct>
+
+  <struct name="TA_CONTEXT_STATE_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="ISP_RENDER" length="1">
+    <field name="disable_eomt" start="5" end="5" type="bool"/>
+    <field name="resume" start="4" end="4" type="bool"/>
+    <field name="dir_type" start="2" end="3" type="DIR_TYPE"/>
+    <field name="mode_type" start="0" end="1" type="ISP_RENDER_MODE_TYPE"/>
+  </struct>
+
+  <struct name="ISP_RENDER_ORIGIN" length="1">
+    <field name="x" start="16" end="25" type="uint"/>
+    <field name="y" start="0" end="9" type="uint"/>
+  </struct>
+
+  <struct name="ISP_MTILE_SIZE" length="1">
+    <field name="x" start="16" end="25" type="uint"/>
+    <field name="y" start="0" end="9" type="uint"/>
+  </struct>
+
+  <struct name="ISP_BGOBJDEPTH" length="1">
+    <field name="value" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="ISP_BGOBJVALS" length="1">
+    <field name="enablebgtag" start="9" end="9" type="bool"/>
+    <field name="mask" start="8" end="8" type="bool"/>
+    <field name="stencil" start="0" end="7" type="uint"/>
+  </struct>
+
+  <struct name="ISP_AA" length="1">
+    <field name="mode" start="0" end="1" type="ISP_AA_MODE_TYPE"/>
+  </struct>
+
+  <struct name="ISP_CTL" length="1">
+    <field name="skip_init_hdrs" start="31" end="31" type="bool"/>
+    <field name="line_style" start="30" end="30" type="bool"/>
+    <field name="line_style_pix" start="29" end="29" type="bool"/>
+    <field name="pair_tiles_vert" start="28" end="28" type="bool"/>
+    <field name="pair_tiles" start="27" end="27" type="bool"/>
+    <field name="creq_buf_en" start="26" end="26" type="bool"/>
+    <field name="tile_age_en" start="25" end="25" type="bool"/>
+    <field name="isp_sample_pos_mode" start="23" end="24" type="MODE_TYPE"/>
+    <field name="num_tiles_per_usc" start="21" end="22" type="uint"/>
+    <field name="dbias_is_int" start="20" end="20" type="bool"/>
+    <field name="overlap_check_mode" start="19" end="19" type="bool"/>
+    <field name="pt_upfront_depth_disable" start="18" end="18" type="bool"/>
+    <field name="process_empty_tiles" start="17" end="17" type="bool"/>
+    <field name="sample_pos" start="16" end="16" type="bool"/>
+    <field name="pipe_enable" start="12" end="15" type="PIPE_NUM"/>
+    <field name="valid_id" start="4" end="9" type="uint"/>
+    <field name="upass_start" start="0" end="3" type="uint"/>
+  </struct>
+
+  <struct name="ISP_ZLSCTL" length="2">
+    <field name="zlsextent_y_s" start="48" end="57" type="uint"/>
+    <field name="zlsextent_x_s" start="38" end="47" type="uint"/>
+    <field name="stencil_extent_enable" start="37" end="37" type="bool"/>
+    <field name="zlsextent_y_z" start="27" end="36" type="uint"/>
+    <field name="zstoreformat" start="25" end="26" type="ZSTOREFORMAT_TYPE"/>
+    <field name="zloadformat" start="23" end="24" type="ZLOADFORMAT_TYPE"/>
+    <field name="fb_storeen" start="22" end="22" type="bool"/>
+    <field name="fb_loaden" start="21" end="21" type="bool"/>
+    <field name="mstoreen" start="20" end="20" type="bool"/>
+    <field name="zstoreen" start="19" end="19" type="bool"/>
+    <field name="sstoreen" start="18" end="18" type="bool"/>
+    <field name="storetwiddled" start="17" end="17" type="bool"/>
+    <field name="mloaden" start="16" end="16" type="bool"/>
+    <field name="zloaden" start="15" end="15" type="bool"/>
+    <field name="sloaden" start="14" end="14" type="bool"/>
+    <field name="loadtwiddled" start="13" end="13" type="bool"/>
+    <field name="zlsextent_x_z" start="3" end="12" type="uint"/>
+    <field name="forcezstore" start="2" end="2" type="bool"/>
+    <field name="forcezload" start="1" end="1" type="bool"/>
+    <field name="zonlyrender" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="ISP_ZLOAD_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="ISP_STENCIL_LOAD_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+    <field name="enable" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="ISP_SCISSOR_BASE" length="2">
+    <field name="addr" start="2" end="39" shift="2" type="address"/>
+  </struct>
+
+  <struct name="ISP_DBIAS_BASE" length="2">
+    <field name="addr" start="2" end="39" shift="2" type="address"/>
+  </struct>
+
+  <struct name="ISP_OCLQRY_BASE" length="2">
+    <field name="addr" start="4" end="39" shift="4" type="address"/>
+  </struct>
+
+  <struct name="ISP_ZLS_PIXELS" length="1">
+    <field name="y" start="15" end="29" type="uint"/>
+    <field name="x" start="0" end="14" type="uint"/>
+  </struct>
+
+  <struct name="PBE_WORD0_MRT0" length="2">
+    <condition type="if" check="TFBC"/>
+      <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY"/>
+    <condition type="endif" check="TFBC"/>
+    <field name="x_rsrvd" start="63" end="63" type="bool"/>
+    <field name="pair_tiles" start="60" end="60" type="uint"/>
+    <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/>
+    <field name="x_rsrvd2" start="59" end="59" type="bool"/>
+    <field name="comp_cor_enable" start="59" end="59" type="bool"/>
+    <field name="dither" start="58" end="58" type="bool"/>
+    <field name="tilerelative" start="57" end="57" type="bool"/>
+    <field name="downscale" start="56" end="56" type="bool"/>
+    <field name="size_z" start="52" end="55" type="SIZE"/>
+    <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/>
+    <field name="linestride" start="34" end="49" type="uint"/>
+    <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/>
+    <field name="swiz_chan3" start="29" end="31" type="SWIZ"/>
+    <field name="swiz_chan2" start="26" end="28" type="SWIZ"/>
+    <field name="swiz_chan1" start="23" end="25" type="SWIZ"/>
+    <field name="swiz_chan0" start="20" end="22" type="SWIZ"/>
+    <field name="minclip_x" start="6" end="19" type="uint"/>
+    <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/>
+    <field name="gamma" start="4" end="4" type="bool"/>
+    <field name="compression" start="3" end="3" type="bool"/>
+    <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/>
+    <field name="comp_indirect_table" start="1" end="1" type="bool"/>
+    <condition type="if" check="PBE_YFLIP"/>
+      <field name="y_flip" start="0" end="0" type="bool"/>
+    <condition type="endif" check="PBE_YFLIP"/>
+  </struct>
+
+  <struct name="FRAG_SCREEN" length="1">
+    <field name="ymax" start="16" end="30" type="uint"/>
+    <field name="xmax" start="0" end="14" type="uint"/>
+  </struct>
+
+  <struct name="TPU" length="1">
+    <condition type="if" check="PDSL0SIZE &gt; 0"/>
+      <field name="mcu_pds_l0_off" start="8" end="8" type="bool"/>
+    <condition type="endif" check="PDSL0SIZE &gt; 0"/>
+    <condition type="if" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/>
+      <field name="tag_cem_64_face_packing" start="7" end="7" type="bool"/>
+    <condition type="endif" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/>
+    <field name="tag_enable_mmu_prefetch" start="6" end="6" type="bool"/>
+    <field name="tag_cem_4k_face_packing" start="5" end="5" type="bool"/>
+    <field name="madd_config_l0off" start="4" end="4" type="bool"/>
+    <field name="tag_cem_face_packing" start="3" end="3" type="bool"/>
+    <field name="tag_cemedge_dontfilter" start="2" end="2" type="bool"/>
+    <condition type="if" check="TPU_CEM_USG_NORMALISATION"/>
+      <field name="tag_cemgrad_dontnegate" start="1" end="1" type="bool"/>
+    <condition type="endif" check="TPU_CEM_USG_NORMALISATION"/>
+    <field name="madd_config_dxt35_transovr" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="TPU_BORDER_COLOUR_TABLE_PDM" length="2">
+    <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
+  </struct>
+
+  <struct name="TPU_BORDER_COLOUR_TABLE_VDM" length="2">
+    <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
+  </struct>
+
+  <struct name="TPU_BORDER_COLOUR_TABLE_CDM" length="2">
+    <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/>
+  </struct>
+
+  <struct name="USC_PIXEL_OUTPUT_CTRL" length="1">
+    <field name="partition_mask" start="3" end="20" type="uint"/>
+    <field name="enable_4th_partition" start="2" end="2" type="bool"/>
+    <field name="width" start="0" end="1" type="PIXEL_WIDTH"/>
+  </struct>
 
 </csbgen>
index aa96c7b..7b71b6c 100644 (file)
@@ -25,16 +25,16 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="IPF">
 
-       <define name="TILE_SIZE_PIXELS" value="32"/>
+  <define name="TILE_SIZE_PIXELS" value="32"/>
 
-       <struct name="SCISSOR_WORD_0" length="1">
-               <field name="scw0_xmin" start="16" end="31" type="uint"/>
-               <field name="scw0_xmax" start="0" end="15" type="uint"/>
-       </struct>
+  <struct name="SCISSOR_WORD_0" length="1">
+    <field name="scw0_xmin" start="16" end="31" type="uint"/>
+    <field name="scw0_xmax" start="0" end="15" type="uint"/>
+  </struct>
 
-       <struct name="SCISSOR_WORD_1" length="1">
-               <field name="scw1_ymin" start="16" end="31" type="uint"/>
-               <field name="scw1_ymax" start="0" end="15" type="uint"/>
-       </struct>
+  <struct name="SCISSOR_WORD_1" length="1">
+    <field name="scw1_ymin" start="16" end="31" type="uint"/>
+    <field name="scw1_ymax" start="0" end="15" type="uint"/>
+  </struct>
 
 </csbgen>
index 2da0af2..a736a93 100644 (file)
@@ -25,25 +25,24 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="LLS">
 
-       <!-- Size of the CDM's context state buffer in bytes. -->
-       <define name="CDM_CONTEXT_RESUME_BUFFER_SIZE" value="72"/>
-       <define name="CDM_CONTEXT_RESUME_BUFFER_ALIGNMENT" value="16"/>
+  <!-- Size of the CDM's context state buffer in bytes. -->
+  <define name="CDM_CONTEXT_RESUME_BUFFER_SIZE" value="72"/>
+  <define name="CDM_CONTEXT_RESUME_BUFFER_ALIGNMENT" value="16"/>
 
-       <!-- Size of the PDS's persistent-temporary register context state buffer in bytes. -->
-       <define name="PDS_PERSISTENT_TEMPS_BUFFER_ALIGNMENT" value="16"/>
-       <define name="PDS_PERSISTENT_TEMPS_BUFFER_SIZE" value="128"/>
+  <!-- Size of the PDS's persistent-temporary register context state buffer in bytes. -->
+  <define name="PDS_PERSISTENT_TEMPS_BUFFER_ALIGNMENT" value="16"/>
+  <define name="PDS_PERSISTENT_TEMPS_BUFFER_SIZE" value="128"/>
 
-       <!-- Size of the TA's context state buffer in bytes. -->
-       <define name="TA_STATE_BUFFER_ALIGNMENT" value="16"/>
-       <define name="TA_STATE_BUFFER_SIZE" value="484"/>
+  <!-- Size of the TA's context state buffer in bytes. -->
+  <define name="TA_STATE_BUFFER_ALIGNMENT" value="16"/>
+  <define name="TA_STATE_BUFFER_SIZE" value="484"/>
 
-       <!-- Size of the USC's shared register context state buffer in bytes. -->
-       <define name="USC_SHARED_REGS_BUFFER_ALIGNMENT" value="16"/>
-       <define name="USC_SHARED_REGS_BUFFER_SIZE" value="16384"/>
-
-       <!-- Size of the VDM's context resume control stream buffer in bytes. -->
-       <define name="VDM_CONTEXT_RESUME_BUFFER_ALIGNMENT" value="16"/>
-       <define name="VDM_CONTEXT_RESUME_BUFFER_SIZE" value="92"/>
+  <!-- Size of the USC's shared register context state buffer in bytes. -->
+  <define name="USC_SHARED_REGS_BUFFER_ALIGNMENT" value="16"/>
+  <define name="USC_SHARED_REGS_BUFFER_SIZE" value="16384"/>
 
+  <!-- Size of the VDM's context resume control stream buffer in bytes. -->
+  <define name="VDM_CONTEXT_RESUME_BUFFER_ALIGNMENT" value="16"/>
+  <define name="VDM_CONTEXT_RESUME_BUFFER_SIZE" value="92"/>
 
 </csbgen>
index 6e3d290..dcff708 100644 (file)
@@ -25,270 +25,270 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="PBESTATE">
 
-       <enum name="COMP_IADDR_TYPE">
-               <value name="INDIRECT_1TILE" value="0"/>
-               <value name="INDIRECT_4TILE" value="1"/>
-       </enum>
+  <enum name="COMP_IADDR_TYPE">
+    <value name="INDIRECT_1TILE" value="0"/>
+    <value name="INDIRECT_4TILE" value="1"/>
+  </enum>
 
-       <enum name="COMPRESS_SIZE">
-               <value name="BLOCK_8X8"  value="0"/>
-               <value name="BLOCK_16X4" value="1"/>
-       </enum>
+  <enum name="COMPRESS_SIZE">
+    <value name="BLOCK_8X8"  value="0"/>
+    <value name="BLOCK_16X4" value="1"/>
+  </enum>
 
-       <enum name="COMPRESS_SIZE_EXT">
-               <value name="BLOCK_8X8_16X4"   value="0"/>
-               <value name="BLOCK_32X2_RSRVD" value="1"/>
-       </enum>
+  <enum name="COMPRESS_SIZE_EXT">
+    <value name="BLOCK_8X8_16X4"   value="0"/>
+    <value name="BLOCK_32X2_RSRVD" value="1"/>
+  </enum>
 
-       <enum name="COMPRESSION">
-               <value name="DISABLED" value="0"/>
-               <value name="ENABLED"  value="1"/>
-       </enum>
+  <enum name="COMPRESSION">
+    <value name="DISABLED" value="0"/>
+    <value name="ENABLED"  value="1"/>
+  </enum>
 
-       <enum name="LOSSY">
-               <value name="DISABLED" value="0"/>
-               <value name="ENABLED"  value="1"/>
-       </enum>
+  <enum name="LOSSY">
+    <value name="DISABLED" value="0"/>
+    <value name="ENABLED"  value="1"/>
+  </enum>
 
-       <enum name="MEMLAYOUT">
-               <value name="LINEAR"     value="0"/>
-               <value name="TWIDDLE_2D" value="1"/>
-               <value name="TWIDDLE_3D" value="2"/>
-               <value name="TILED"      value="3"/>
-       </enum>
+  <enum name="MEMLAYOUT">
+    <value name="LINEAR"     value="0"/>
+    <value name="TWIDDLE_2D" value="1"/>
+    <value name="TWIDDLE_3D" value="2"/>
+    <value name="TILED"      value="3"/>
+  </enum>
 
-       <enum name="PACKMODE">
-               <value name="U8U8U8U8"            value="0x0"/>
-               <value name="S8S8S8S8"            value="0x1"/>
-               <value name="X8U8S8S8"            value="0x2"/>
-               <value name="X8S8S8U8"            value="0x3"/>
-               <value name="A1R5G5B5"            value="0x4"/>
-               <value name="R5G5B5A1"            value="0x5"/>
-               <value name="A4R4G4B4"            value="0x6"/>
-               <value name="A8R3G3B2"            value="0x7"/>
-               <value name="U16U16U16U16"        value="0x8"/>
-               <value name="S16S16S16S16"        value="0x9"/>
-               <value name="F16F16F16F16"        value="0xa"/>
-               <value name="U32U32U32U32"        value="0xb"/>
-               <value name="S32S32S32S32"        value="0xc"/>
-               <value name="F32F32F32F32"        value="0xd"/>
-               <value name="A2R10B10G10"         value="0xe"/>
-               <value name="R10B10G10A2"         value="0xf"/>
-               <value name="A2F10F10F10"         value="0x10"/>
-               <value name="F10F10F10A2"         value="0x11"/>
-               <value name="U8U8U8"              value="0x12"/>
-               <value name="S8S8S8"              value="0x13"/>
-               <value name="R5G6B5"              value="0x14"/>
-               <value name="R5SG5SB6"            value="0x15"/>
-               <value name="B6G5SR5S"            value="0x16"/>
-               <value name="U16U16U16"           value="0x17"/>
-               <value name="S16S16S16"           value="0x18"/>
-               <value name="F16F16F16"           value="0x19"/>
-               <value name="U32U32U32"           value="0x1a"/>
-               <value name="S32S32S32"           value="0x1b"/>
-               <value name="F11F11F10"           value="0x1c"/>
-               <value name="F10F11F11"           value="0x1d"/>
-               <value name="SE9995"              value="0x1e"/>
-               <value name="F32F32F32"           value="0x1f"/>
-               <value name="X24U8F32"            value="0x20"/>
-               <value name="X24X8F32"            value="0x21"/>
-               <value name="X24G8X32"            value="0x22"/>
-               <value name="U8U8"                value="0x23"/>
-               <value name="S8S8"                value="0x24"/>
-               <value name="U16U16"              value="0x25"/>
-               <value name="S16S16"              value="0x26"/>
-               <value name="F16F16"              value="0x27"/>
-               <value name="U32U32"              value="0x28"/>
-               <value name="S32S32"              value="0x29"/>
-               <value name="F32F32"              value="0x2a"/>
-               <value name="U24ST8"              value="0x2b"/>
-               <value name="ST8U24"              value="0x2c"/>
-               <value name="X8U24"               value="0x2d"/>
-               <value name="U8X24"               value="0x2e"/>
-               <value name="U8"                  value="0x2f"/>
-               <value name="S8"                  value="0x30"/>
-               <value name="U16"                 value="0x31"/>
-               <value name="S16"                 value="0x32"/>
-               <value name="F16"                 value="0x33"/>
-               <value name="U32"                 value="0x34"/>
-               <value name="S32"                 value="0x35"/>
-               <value name="F32"                 value="0x36"/>
-               <value name="PBYTE"               value="0x37"/>
-               <value name="PWORD"               value="0x38"/>
-               <value name="ARGBV16_XR10"        value="0x39"/>
-               <value name="A2_XRBIAS_U10U10U10" value="0x3a"/>
-               <value name="YUV"                 value="0x3b"/>
-               <value name="U10U10U10_XRBIAS_A2" value="0x3c"/>
-               <value name="INVALID"             value="0xFFFFFFFF"/>
-       </enum>
+  <enum name="PACKMODE">
+    <value name="U8U8U8U8"            value="0x0"/>
+    <value name="S8S8S8S8"            value="0x1"/>
+    <value name="X8U8S8S8"            value="0x2"/>
+    <value name="X8S8S8U8"            value="0x3"/>
+    <value name="A1R5G5B5"            value="0x4"/>
+    <value name="R5G5B5A1"            value="0x5"/>
+    <value name="A4R4G4B4"            value="0x6"/>
+    <value name="A8R3G3B2"            value="0x7"/>
+    <value name="U16U16U16U16"        value="0x8"/>
+    <value name="S16S16S16S16"        value="0x9"/>
+    <value name="F16F16F16F16"        value="0xa"/>
+    <value name="U32U32U32U32"        value="0xb"/>
+    <value name="S32S32S32S32"        value="0xc"/>
+    <value name="F32F32F32F32"        value="0xd"/>
+    <value name="A2R10B10G10"         value="0xe"/>
+    <value name="R10B10G10A2"         value="0xf"/>
+    <value name="A2F10F10F10"         value="0x10"/>
+    <value name="F10F10F10A2"         value="0x11"/>
+    <value name="U8U8U8"              value="0x12"/>
+    <value name="S8S8S8"              value="0x13"/>
+    <value name="R5G6B5"              value="0x14"/>
+    <value name="R5SG5SB6"            value="0x15"/>
+    <value name="B6G5SR5S"            value="0x16"/>
+    <value name="U16U16U16"           value="0x17"/>
+    <value name="S16S16S16"           value="0x18"/>
+    <value name="F16F16F16"           value="0x19"/>
+    <value name="U32U32U32"           value="0x1a"/>
+    <value name="S32S32S32"           value="0x1b"/>
+    <value name="F11F11F10"           value="0x1c"/>
+    <value name="F10F11F11"           value="0x1d"/>
+    <value name="SE9995"              value="0x1e"/>
+    <value name="F32F32F32"           value="0x1f"/>
+    <value name="X24U8F32"            value="0x20"/>
+    <value name="X24X8F32"            value="0x21"/>
+    <value name="X24G8X32"            value="0x22"/>
+    <value name="U8U8"                value="0x23"/>
+    <value name="S8S8"                value="0x24"/>
+    <value name="U16U16"              value="0x25"/>
+    <value name="S16S16"              value="0x26"/>
+    <value name="F16F16"              value="0x27"/>
+    <value name="U32U32"              value="0x28"/>
+    <value name="S32S32"              value="0x29"/>
+    <value name="F32F32"              value="0x2a"/>
+    <value name="U24ST8"              value="0x2b"/>
+    <value name="ST8U24"              value="0x2c"/>
+    <value name="X8U24"               value="0x2d"/>
+    <value name="U8X24"               value="0x2e"/>
+    <value name="U8"                  value="0x2f"/>
+    <value name="S8"                  value="0x30"/>
+    <value name="U16"                 value="0x31"/>
+    <value name="S16"                 value="0x32"/>
+    <value name="F16"                 value="0x33"/>
+    <value name="U32"                 value="0x34"/>
+    <value name="S32"                 value="0x35"/>
+    <value name="F32"                 value="0x36"/>
+    <value name="PBYTE"               value="0x37"/>
+    <value name="PWORD"               value="0x38"/>
+    <value name="ARGBV16_XR10"        value="0x39"/>
+    <value name="A2_XRBIAS_U10U10U10" value="0x3a"/>
+    <value name="YUV"                 value="0x3b"/>
+    <value name="U10U10U10_XRBIAS_A2" value="0x3c"/>
+    <value name="INVALID"             value="0xFFFFFFFF"/>
+  </enum>
 
-       <enum name="PAIR_TILES">
-               <value name="DISABLED" value="0"/>
-               <value name="ENABLED"  value="1"/>
-       </enum>
+  <enum name="PAIR_TILES">
+    <value name="DISABLED" value="0"/>
+    <value name="ENABLED"  value="1"/>
+  </enum>
 
-       <enum name="ROTATION_TYPE">
-               <value name="0_DEG"   value="0"/>
-               <value name="90_DEG"  value="1"/>
-               <value name="180_DEG" value="2"/>
-               <value name="270_DEG" value="3"/>
-       </enum>
+  <enum name="ROTATION_TYPE">
+    <value name="0_DEG"   value="0"/>
+    <value name="90_DEG"  value="1"/>
+    <value name="180_DEG" value="2"/>
+    <value name="270_DEG" value="3"/>
+  </enum>
 
-       <enum name="SIZE">
-               <value name="1_PIXEL"   value="0"/>
-               <value name="2_PIXEL"   value="1"/>
-               <value name="4_PIXEL"   value="2"/>
-               <value name="8_PIXEL"   value="3"/>
-               <value name="16_PIXEL"  value="4"/>
-               <value name="32_PIXEL"  value="5"/>
-               <value name="64_PIXEL"  value="6"/>
-               <value name="128_PIXEL" value="7"/>
-               <value name="256_PIXEL" value="8"/>
-               <value name="512_PIXEL" value="9"/>
-               <value name="1K_PIXEL"  value="10"/>
-               <value name="2K_PIXEL"  value="11"/>
-               <value name="4K_PIXEL"  value="12"/>
-               <value name="8K_PIXEL"  value="13"/>
-               <value name="16K_PIXEL" value="14"/>
-       </enum>
+  <enum name="SIZE">
+    <value name="1_PIXEL"   value="0"/>
+    <value name="2_PIXEL"   value="1"/>
+    <value name="4_PIXEL"   value="2"/>
+    <value name="8_PIXEL"   value="3"/>
+    <value name="16_PIXEL"  value="4"/>
+    <value name="32_PIXEL"  value="5"/>
+    <value name="64_PIXEL"  value="6"/>
+    <value name="128_PIXEL" value="7"/>
+    <value name="256_PIXEL" value="8"/>
+    <value name="512_PIXEL" value="9"/>
+    <value name="1K_PIXEL"  value="10"/>
+    <value name="2K_PIXEL"  value="11"/>
+    <value name="4K_PIXEL"  value="12"/>
+    <value name="8K_PIXEL"  value="13"/>
+    <value name="16K_PIXEL" value="14"/>
+  </enum>
 
-       <enum name="SOURCE_FORMAT">
-               <value name="F16_PER_CHANNEL" value="0"/>
-               <value name="8_PER_CHANNEL"   value="1"/>
-       </enum>
+  <enum name="SOURCE_FORMAT">
+    <value name="F16_PER_CHANNEL" value="0"/>
+    <value name="8_PER_CHANNEL"   value="1"/>
+  </enum>
 
-       <enum name="SOURCE_POS">
-               <value name="START_BIT0"  value="0"/>
-               <value name="START_BIT32" value="1"/>
-               <value name="START_BIT64" value="2"/>
-               <value name="START_BIT96" value="3"/>
-       </enum>
+  <enum name="SOURCE_POS">
+    <value name="START_BIT0"  value="0"/>
+    <value name="START_BIT32" value="1"/>
+    <value name="START_BIT64" value="2"/>
+    <value name="START_BIT96" value="3"/>
+  </enum>
 
-       <enum name="SWIZ">
-               <value name="SOURCE_CHAN0" value="0"/>
-               <value name="SOURCE_CHAN1" value="1"/>
-               <value name="SOURCE_CHAN2" value="2"/>
-               <value name="SOURCE_CHAN3" value="3"/>
-               <value name="ONE"          value="4"/>
-               <value name="ZERO"         value="5"/>
-       </enum>
+  <enum name="SWIZ">
+    <value name="SOURCE_CHAN0" value="0"/>
+    <value name="SOURCE_CHAN1" value="1"/>
+    <value name="SOURCE_CHAN2" value="2"/>
+    <value name="SOURCE_CHAN3" value="3"/>
+    <value name="ONE"          value="4"/>
+    <value name="ZERO"         value="5"/>
+  </enum>
 
-       <enum name="TFBC_LOSSY">
-               <value name="LOSSLESS" value="0"/>
-               <value name="LOSSY75"  value="1"/>
-               <value name="LOSSY50"  value="2"/>
-               <value name="LOSSY25"  value="3"/>
-       </enum>
+  <enum name="TFBC_LOSSY">
+    <value name="LOSSLESS" value="0"/>
+    <value name="LOSSY75"  value="1"/>
+    <value name="LOSSY50"  value="2"/>
+    <value name="LOSSY25"  value="3"/>
+  </enum>
 
-       <enum name="TWOCOMP_GAMMA">
-               <value name="GAMMA_BOTTOM_CHANNEL" value="0"/>
-               <value name="GAMMA_BOTH_CHANNELS"  value="1"/>
-       </enum>
+  <enum name="TWOCOMP_GAMMA">
+    <value name="GAMMA_BOTTOM_CHANNEL" value="0"/>
+    <value name="GAMMA_BOTH_CHANNELS"  value="1"/>
+  </enum>
 
-       <enum name="Y_FLIP">
-               <value name="DISABLED" value="0"/>
-               <value name="ENABLED"  value="1"/>
-       </enum>
+  <enum name="Y_FLIP">
+    <value name="DISABLED" value="0"/>
+    <value name="ENABLED"  value="1"/>
+  </enum>
 
-       <enum name="YUV_DOWNSCALE">
-               <value name="NO_DOWNSCALING"   value="0"/>
-               <value name="ONE_SAMPLE_LEFT"  value="1"/>
-               <value name="EMPTY"            value="2"/>
-               <value name="TWO_SAMPLES"      value="3"/>
-               <value name="FOUR_SAMPLES"     value="4"/>
-               <value name="ONE_SAMPLE_RIGHT" value="5"/>
-       </enum>
+  <enum name="YUV_DOWNSCALE">
+    <value name="NO_DOWNSCALING"   value="0"/>
+    <value name="ONE_SAMPLE_LEFT"  value="1"/>
+    <value name="EMPTY"            value="2"/>
+    <value name="TWO_SAMPLES"      value="3"/>
+    <value name="FOUR_SAMPLES"     value="4"/>
+    <value name="ONE_SAMPLE_RIGHT" value="5"/>
+  </enum>
 
-       <enum name="YUV_PMODE">
-               <value name="UV8_420_2PLANE"   value="0"/>
-               <value name="U8_420_3PLANE"    value="1"/>
-               <value name="V8_420_3PLANE"    value="2"/>
-               <value name="YUV8_422_1PLANE"  value="3"/>
-               <value name="UV8_422_2PLANE"   value="4"/>
-               <value name="UV8_444_2PLANE"   value="5"/>
-               <value name="Y8_23PLANE"       value="6"/>
-               <value name="U8_444_3PLANE"    value="7"/>
-               <value name="V8_444_3PLANE"    value="8"/>
-               <value name="YUV10_444_1PLANE" value="9"/>
-               <value name="RESERVED_YUV1"    value="10"/>
-               <value name="RESERVED_YUV2"    value="11"/>
-               <value name="YUV10_422_1PLANE" value="12"/>
-               <value name="UV10_420_2PLANE"  value="13"/>
-               <value name="Y10_23PLANE"      value="14"/>
-               <value name="UV16_420_2PLANE"  value="15"/>
-               <value name="UV16_422_2PLANE"  value="16"/>
-               <value name="UV16_444_2PLANE"  value="17"/>
-               <value name="Y16_23PLANE"      value="18"/>
-               <value name="U16_444_3PLANE"   value="19"/>
-               <value name="V16_444_3PLANE"   value="20"/>
-       </enum>
+  <enum name="YUV_PMODE">
+    <value name="UV8_420_2PLANE"   value="0"/>
+    <value name="U8_420_3PLANE"    value="1"/>
+    <value name="V8_420_3PLANE"    value="2"/>
+    <value name="YUV8_422_1PLANE"  value="3"/>
+    <value name="UV8_422_2PLANE"   value="4"/>
+    <value name="UV8_444_2PLANE"   value="5"/>
+    <value name="Y8_23PLANE"       value="6"/>
+    <value name="U8_444_3PLANE"    value="7"/>
+    <value name="V8_444_3PLANE"    value="8"/>
+    <value name="YUV10_444_1PLANE" value="9"/>
+    <value name="RESERVED_YUV1"    value="10"/>
+    <value name="RESERVED_YUV2"    value="11"/>
+    <value name="YUV10_422_1PLANE" value="12"/>
+    <value name="UV10_420_2PLANE"  value="13"/>
+    <value name="Y10_23PLANE"      value="14"/>
+    <value name="UV16_420_2PLANE"  value="15"/>
+    <value name="UV16_422_2PLANE"  value="16"/>
+    <value name="UV16_444_2PLANE"  value="17"/>
+    <value name="Y16_23PLANE"      value="18"/>
+    <value name="U16_444_3PLANE"   value="19"/>
+    <value name="V16_444_3PLANE"   value="20"/>
+  </enum>
 
-       <struct name="STATE_WORD0" length="1">
-               <field name="address_low" start="0" end="31" shift="2" type="address"/>
-       </struct>
+  <struct name="STATE_WORD0" length="1">
+    <field name="address_low" start="0" end="31" shift="2" type="address"/>
+  </struct>
 
-       <struct name="STATE_WORD1" length="1">
-               <condition type="if" check="8_OUTPUT_REGISTERS"/>
-                       <field name="source_pos_offset_128" start="28" end="28" type="bool"/>
-               <condition type="endif" check="8_OUTPUT_REGISTERS"/>
-               <field name="yuv_pmode" start="23" end="27" type="YUV_PMODE"/>
-               <field name="yuv_downscale" start="20" end="22" type="YUV_DOWNSCALE"/>
-               <field name="source_format" start="19" end="19" type="SOURCE_FORMAT"/>
-               <field name="mrt_index" start="16" end="18" type="uint"/>
-               <field name="source_pos" start="14" end="15" type="SOURCE_POS"/>
-               <field name="norm" start="13" end="13" type="bool"/>
-               <field name="packmode" start="7" end="12" type="PACKMODE"/>
-               <field name="emptytile" start="6" end="6" type="bool"/>
-               <field name="address_high" start="0" end="5" shift="34" type="address"/>
-       </struct>
+  <struct name="STATE_WORD1" length="1">
+    <condition type="if" check="8_OUTPUT_REGISTERS"/>
+      <field name="source_pos_offset_128" start="28" end="28" type="bool"/>
+    <condition type="endif" check="8_OUTPUT_REGISTERS"/>
+    <field name="yuv_pmode" start="23" end="27" type="YUV_PMODE"/>
+    <field name="yuv_downscale" start="20" end="22" type="YUV_DOWNSCALE"/>
+    <field name="source_format" start="19" end="19" type="SOURCE_FORMAT"/>
+    <field name="mrt_index" start="16" end="18" type="uint"/>
+    <field name="source_pos" start="14" end="15" type="SOURCE_POS"/>
+    <field name="norm" start="13" end="13" type="bool"/>
+    <field name="packmode" start="7" end="12" type="PACKMODE"/>
+    <field name="emptytile" start="6" end="6" type="bool"/>
+    <field name="address_high" start="0" end="5" shift="34" type="address"/>
+  </struct>
 
-       <struct name="REG_WORD0" length="2">
-               <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY">
-                       <define name="LOSSY37_75_TFBC_LOSSY_37_PERCENT_ENABLED" value="1"/>
-               </field>
-               <field name="lossy" start="62" end="62" type="LOSSY"/>
-               <field name="compress_size_ext" start="61" end="61" type="COMPRESS_SIZE_EXT"/>
-               <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/>
-               <field name="comp_cor_enable" start="59" end="59" type="bool"/>
-               <field name="dither" start="58" end="58" type="bool"/>
-               <field name="tilerelative" start="57" end="57" type="bool"/>
-               <field name="downscale" start="56" end="56" type="bool"/>
-               <field name="size_z" start="52" end="55" type="SIZE"/>
-               <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/>
-               <field name="linestride" start="34" end="49" type="uint">
-                       <!-- FIXME: When pbe_stride_align_1pixel is present, this should be 1. -->
-                       <define name="UNIT_SIZE" value="2"/>
-               </field>
-               <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/>
-               <field name="swiz_chan3" start="29" end="31" type="SWIZ"/>
-               <field name="swiz_chan2" start="26" end="28" type="SWIZ"/>
-               <field name="swiz_chan1" start="23" end="25" type="SWIZ"/>
-               <field name="swiz_chan0" start="20" end="22" type="SWIZ"/>
-               <field name="minclip_x" start="6" end="19" type="uint"/>
-               <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/>
-               <field name="gamma" start="4" end="4" type="bool"/>
-               <field name="compression" start="3" end="3" type="COMPRESSION"/>
-               <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/>
-               <field name="comp_indirect_table" start="1" end="1" type="bool"/>
-               <field name="y_flip" start="0" end="0" type="Y_FLIP"/>
-       </struct>
+  <struct name="REG_WORD0" length="2">
+    <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY">
+      <define name="LOSSY37_75_TFBC_LOSSY_37_PERCENT_ENABLED" value="1"/>
+    </field>
+    <field name="lossy" start="62" end="62" type="LOSSY"/>
+    <field name="compress_size_ext" start="61" end="61" type="COMPRESS_SIZE_EXT"/>
+    <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/>
+    <field name="comp_cor_enable" start="59" end="59" type="bool"/>
+    <field name="dither" start="58" end="58" type="bool"/>
+    <field name="tilerelative" start="57" end="57" type="bool"/>
+    <field name="downscale" start="56" end="56" type="bool"/>
+    <field name="size_z" start="52" end="55" type="SIZE"/>
+    <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/>
+    <field name="linestride" start="34" end="49" type="uint">
+      <!-- FIXME: When pbe_stride_align_1pixel is present, this should be 1. -->
+      <define name="UNIT_SIZE" value="2"/>
+    </field>
+    <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/>
+    <field name="swiz_chan3" start="29" end="31" type="SWIZ"/>
+    <field name="swiz_chan2" start="26" end="28" type="SWIZ"/>
+    <field name="swiz_chan1" start="23" end="25" type="SWIZ"/>
+    <field name="swiz_chan0" start="20" end="22" type="SWIZ"/>
+    <field name="minclip_x" start="6" end="19" type="uint"/>
+    <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/>
+    <field name="gamma" start="4" end="4" type="bool"/>
+    <field name="compression" start="3" end="3" type="COMPRESSION"/>
+    <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/>
+    <field name="comp_indirect_table" start="1" end="1" type="bool"/>
+    <field name="y_flip" start="0" end="0" type="Y_FLIP"/>
+  </struct>
 
-       <struct name="REG_WORD1" length="2">
-               <field name="size_x" start="60" end="63" type="SIZE"/>
-               <field name="minclip_y" start="46" end="59" type="uint"/>
-               <field name="maxclip_x" start="32" end="45" type="uint"/>
-               <field name="size_y" start="28" end="31" type="SIZE"/>
-               <field name="zslice" start="14" end="27" type="uint"/>
-               <field name="maxclip_y" start="0" end="13" type="uint"/>
-       </struct>
+  <struct name="REG_WORD1" length="2">
+    <field name="size_x" start="60" end="63" type="SIZE"/>
+    <field name="minclip_y" start="46" end="59" type="uint"/>
+    <field name="maxclip_x" start="32" end="45" type="uint"/>
+    <field name="size_y" start="28" end="31" type="SIZE"/>
+    <field name="zslice" start="14" end="27" type="uint"/>
+    <field name="maxclip_y" start="0" end="13" type="uint"/>
+  </struct>
 
-       <struct name="REG_WORD2" length="2">
-               <field name="pair_tiles" start="46" end="46" type="PAIR_TILES">
-                       <!-- TODO: Do we need this? -->
-                       <define name="SHIFT" value="46"/>
-               </field>
-               <field name="surface_y_size" start="32" end="45" type="uint"/>
-               <field name="sw_bytemask" start="0" end="31" type="uint"/>
-       </struct>
+  <struct name="REG_WORD2" length="2">
+    <field name="pair_tiles" start="46" end="46" type="PAIR_TILES">
+      <!-- TODO: Do we need this? -->
+      <define name="SHIFT" value="46"/>
+    </field>
+    <field name="surface_y_size" start="32" end="45" type="uint"/>
+    <field name="sw_bytemask" start="0" end="31" type="uint"/>
+  </struct>
 
 </csbgen>
index e3b673d..ce8dac1 100644 (file)
@@ -25,92 +25,92 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="PDSINST">
 
-       <enum name="CMODE_LD">
-               <value name="CACHED"          value="0"/>
-               <value name="BYPASS"          value="1"/>
-               <value name="FORCE_LINE_FILL" value="2"/>
-       </enum>
-
-       <enum name="DOUTD_DEST">
-               <value name="UNIFIED_STORE" value="0"/>
-               <value name="COMMON_STORE"  value="1"/>
-       </enum>
-
-       <enum name="DOUTI_SHADEMODEL">
-               <value name="FLAT_VERTEX0" value="0"/>
-               <value name="FLAT_VERTEX1" value="1"/>
-               <value name="FLAT_VERTEX2" value="2"/>
-               <value name="GOURUAD"      value="3"/>
-       </enum>
-
-       <enum name="DOUTI_SIZE">
-               <value name="1D" value="0"/>
-               <value name="2D" value="1"/>
-               <value name="3D" value="2"/>
-               <value name="4D" value="3"/>
-       </enum>
-
-       <enum name="DOUTU_SAMPLE_RATE">
-               <value name="INSTANCE"  value="0"/>
-               <value name="SELECTIVE" value="1"/>
-               <value name="FULL"      value="2"/>
-       </enum>
-
-       <enum name="SLC_MODE_LD">
-               <value name="BYPASS"       value="0"/>
-               <value name="CACHED"       value="1"/>
-               <value name="CACHED_RD_NA" value="3"/>
-       </enum>
-
-       <enum name="WORDSIZE">
-               <value name="ONE"   value="0"/>
-               <value name="TWO"   value="1"/>
-               <value name="THREE" value="2"/>
-               <value name="FOUR"  value="3"/>
-       </enum>
-
-       <struct name="DOUTU_SRC0" length="2">
-               <field name="dual_phase" start="41" end ="41" type="bool"/>
-               <field name="temps" start="35" end="40" type="uint">
-                       <define name="UNIT_SIZE" value="2"/>
-               </field>
-               <field name="sample_rate" start="33" end="34" type="DOUTU_SAMPLE_RATE"/>
-               <field name="exe_off" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="DOUT_FIELDS_DOUTD_SRC0" length="2">
-               <condition type="if" check="SLC_MCU_CACHE_CONTROLS"/>
-                       <field name="slcmode" start="60" end="61" type="SLC_MODE_LD"/>
-               <condition type="endif" check="SLC_MCU_CACHE_CONTROLS"/>
-               <field name="doffset" start="40" end="52" type="uint"/>
-               <field name="sbase" start="0" end="39" shift="0" type="address"/>
-       </struct>
-
-       <struct name="DOUT_FIELDS_DOUTD_SRC1" length="1">
-               <field name="last" start="31" end="31" type="bool"/>
-               <field name="wordsize" start="29" end="30" type="WORDSIZE"/>
-               <field name="dest" start="28" end="28" type="DOUTD_DEST"/>
-               <field name="cmode" start="26" end="27" type="CMODE_LD"/>
-               <field name="a0" start="13" end="25" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="repeat" start="12" end="12" type="bool"/>
-               <field name="bsize" start="0" end="11" type="uint"/>
-       </struct>
-
-       <struct name="DOUT_FIELDS_DOUTI_SRC" length="1">
-               <field name="depthbias" start="27" end="27" type="bool"/>
-               <field name="primitiveid" start="26" end="26" type="bool"/>
-               <field name="shademodel" start="24" end="25" type="DOUTI_SHADEMODEL"/>
-               <field name="pointsprite" start="23" end="23" type="bool"/>
-               <field name="wraps" start="22" end="22" type="bool"/>
-               <field name="wrapv" start="21" end="21" type="bool"/>
-               <field name="wrapu" start="20" end="20" type="bool"/>
-               <field name="size" start="18" end="19" type="DOUTI_SIZE"/>
-               <field name="f16" start="17" end="17" type="bool"/>
-               <field name="perspective" start="16" end="16" type="bool"/>
-               <field name="f32_offset" start="8" end="15" type="uint"/>
-               <field name="f16_offset" start="0" end="7" type="uint"/>
-       </struct>
+  <enum name="CMODE_LD">
+    <value name="CACHED"          value="0"/>
+    <value name="BYPASS"          value="1"/>
+    <value name="FORCE_LINE_FILL" value="2"/>
+  </enum>
+
+  <enum name="DOUTD_DEST">
+    <value name="UNIFIED_STORE" value="0"/>
+    <value name="COMMON_STORE"  value="1"/>
+  </enum>
+
+  <enum name="DOUTI_SHADEMODEL">
+    <value name="FLAT_VERTEX0" value="0"/>
+    <value name="FLAT_VERTEX1" value="1"/>
+    <value name="FLAT_VERTEX2" value="2"/>
+    <value name="GOURUAD"      value="3"/>
+  </enum>
+
+  <enum name="DOUTI_SIZE">
+    <value name="1D" value="0"/>
+    <value name="2D" value="1"/>
+    <value name="3D" value="2"/>
+    <value name="4D" value="3"/>
+  </enum>
+
+  <enum name="DOUTU_SAMPLE_RATE">
+    <value name="INSTANCE"  value="0"/>
+    <value name="SELECTIVE" value="1"/>
+    <value name="FULL"      value="2"/>
+  </enum>
+
+  <enum name="SLC_MODE_LD">
+    <value name="BYPASS"       value="0"/>
+    <value name="CACHED"       value="1"/>
+    <value name="CACHED_RD_NA" value="3"/>
+  </enum>
+
+  <enum name="WORDSIZE">
+    <value name="ONE"   value="0"/>
+    <value name="TWO"   value="1"/>
+    <value name="THREE" value="2"/>
+    <value name="FOUR"  value="3"/>
+  </enum>
+
+  <struct name="DOUTU_SRC0" length="2">
+    <field name="dual_phase" start="41" end ="41" type="bool"/>
+    <field name="temps" start="35" end="40" type="uint">
+      <define name="UNIT_SIZE" value="2"/>
+    </field>
+    <field name="sample_rate" start="33" end="34" type="DOUTU_SAMPLE_RATE"/>
+    <field name="exe_off" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="DOUT_FIELDS_DOUTD_SRC0" length="2">
+    <condition type="if" check="SLC_MCU_CACHE_CONTROLS"/>
+      <field name="slcmode" start="60" end="61" type="SLC_MODE_LD"/>
+    <condition type="endif" check="SLC_MCU_CACHE_CONTROLS"/>
+    <field name="doffset" start="40" end="52" type="uint"/>
+    <field name="sbase" start="0" end="39" shift="0" type="address"/>
+  </struct>
+
+  <struct name="DOUT_FIELDS_DOUTD_SRC1" length="1">
+    <field name="last" start="31" end="31" type="bool"/>
+    <field name="wordsize" start="29" end="30" type="WORDSIZE"/>
+    <field name="dest" start="28" end="28" type="DOUTD_DEST"/>
+    <field name="cmode" start="26" end="27" type="CMODE_LD"/>
+    <field name="a0" start="13" end="25" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="repeat" start="12" end="12" type="bool"/>
+    <field name="bsize" start="0" end="11" type="uint"/>
+  </struct>
+
+  <struct name="DOUT_FIELDS_DOUTI_SRC" length="1">
+    <field name="depthbias" start="27" end="27" type="bool"/>
+    <field name="primitiveid" start="26" end="26" type="bool"/>
+    <field name="shademodel" start="24" end="25" type="DOUTI_SHADEMODEL"/>
+    <field name="pointsprite" start="23" end="23" type="bool"/>
+    <field name="wraps" start="22" end="22" type="bool"/>
+    <field name="wrapv" start="21" end="21" type="bool"/>
+    <field name="wrapu" start="20" end="20" type="bool"/>
+    <field name="size" start="18" end="19" type="DOUTI_SIZE"/>
+    <field name="f16" start="17" end="17" type="bool"/>
+    <field name="perspective" start="16" end="16" type="bool"/>
+    <field name="f32_offset" start="8" end="15" type="uint"/>
+    <field name="f16_offset" start="0" end="7" type="uint"/>
+  </struct>
 
 </csbgen>
index f3a8878..75c02f7 100644 (file)
@@ -25,305 +25,305 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="TA">
 
-       <enum name="CLIP_MODE">
-               <value name="NO_FRONT_OR_REAR" value="0"/>
-               <value name="FRONT_REAR"       value="1"/>
-               <value name="FRONT_REAR_DEPTH" value="2"/>
-       </enum>
-
-       <enum name="CMPMODE">
-               <value name="NEVER"            value="0"/>
-               <value name="LESS"             value="1"/>
-               <value name="EQUAL"            value="2"/>
-               <value name="LESS_OR_EQUAL"    value="3"/>
-               <value name="GREATER"          value="4"/>
-               <value name="NOT_EQUAL"        value="5"/>
-               <value name="GREATER_OR_EQUAL" value="6"/>
-               <value name="ALWAYS"           value="7"/>
-       </enum>
-
-       <enum name="CULLMODE">
-               <value name="NO_CULLING" value="0"/>
-               <value name="CULL_CW"    value="1"/>
-               <value name="CULL_CCW"   value="2"/>
-       </enum>
-
-       <enum name="FLATSHADE">
-               <value name="VTX_VERTEX_0" value="1"/>
-               <value name="VTX_VERTEX_1" value="2"/>
-               <value name="VTX_VERTEX_2" value="3"/>
-       </enum>
-
-       <enum name="GS_OUTPUT_TOPOLOGY">
-               <value name="POINT_LIST" value="0"/>
-               <value name="LINE_STRIP" value="1"/>
-               <value name="TRI_STRIP"  value="2"/>
-       </enum>
-
-       <enum name="ISPB_STENCILOP">
-               <value name="KEEP"               value="0"/>
-               <value name="ZERO"               value="1"/>
-               <value name="REPLACE"            value="2"/>
-               <value name="INCREMENT_SATURATE" value="3"/>
-               <value name="DECREMENT_SATURATE" value="4"/>
-               <value name="INVERT"             value="5"/>
-               <value name="INCREMENT"          value="6"/>
-               <value name="DECREMENT"          value="7"/>
-       </enum>
-
-       <enum name="OBJTYPE">
-               <value name="TRIANGLE"                   value="0"/>
-               <value name="LINE"                       value="1"/>
-               <value name="SPRITE_10UV"                value="2"/>
-               <value name="SPRITE_UV"                  value="3"/>
-               <value name="SPRITE_01UV"                value="4"/>
-               <value name="LINE_FILLED_TRIANGLE"       value="5"/>
-               <value name="POINT_FILLED_TRIANGLE"      value="6"/>
-               <value name="TESSELLATED_OBJECT_NO_GS"   value="7"/>
-               <value name="TESSELLATED_OBJECT_WITH_GS" value="8"/>
-       </enum>
-
-       <!--
-               TODO: Add support for "ifs" in csbgen root element.
-       -->
-       <enum name="PASSTYPE">
-               <value name="OPAQUE"             value="0"/>
-               <value name="TRANSLUCENT"        value="1"/>
-               <value name="PUNCH_THROUGH"      value="2"/>
-               <value name="VIEWPORT_OBJECT"    value="3"/>
-               <value name="FAST_PUNCH_THROUGH" value="4"/>
-               <value name="DEPTH_FEEDBACK"     value="5"/>
-               <value name="ANTI_ALIASED"       value="6"/>
-       </enum>
-
-       <enum name="REGION_CLIP_MODE">
-               <value name="NONE"    value="0"/>
-               <value name="OUTSIDE" value="1"/>
-       </enum>
-
-       <struct name="STATE_HEADER" length="1">
-               <field name="not_final_term" start="26" end="26" type="bool"/>
-               <field name="pres_terminate" start="25" end="25" type="bool"/>
-               <field name="context_switch" start="24" end="24" type="bool"/>
-               <field name="pres_stream_out_program" start="23" end="23" type="bool"/>
-               <field name="pres_stream_out_size" start="22" end="22" type="bool"/>
-               <field name="pres_ppp_ctrl" start="21" end="21" type="bool"/>
-               <field name="pres_varying_word2" start="20" end="20" type="bool"/>
-               <field name="pres_varying_word1" start="19" end="19" type="bool"/>
-               <field name="pres_varying_word0" start="18" end="18" type="bool"/>
-               <field name="pres_outselects" start="17" end="17" type="bool"/>
-               <field name="pres_wclamp" start="16" end="16" type="bool"/>
-               <field name="view_port_count" start="12" end="15" type="uint"/>
-               <field name="pres_viewport" start="11" end="11" type="bool"/>
-               <field name="pres_region_clip" start="10" end="10" type="bool"/>
-               <field name="pres_pds_state_ptr3" start="9" end="9" type="bool"/>
-               <field name="pres_pds_state_ptr2" start="8" end="8" type="bool"/>
-               <field name="pres_pds_state_ptr1" start="7" end="7" type="bool"/>
-               <field name="pres_pds_state_ptr0" start="6" end="6" type="bool"/>
-               <field name="pres_ispctl_dbsc" start="5" end="5" type="bool"/>
-               <field name="pres_ispctl_bb" start="4" end="4" type="bool"/>
-               <field name="pres_ispctl_ba" start="3" end="3" type="bool"/>
-               <field name="pres_ispctl_fb" start="2" end="2" type="bool"/>
-               <field name="pres_ispctl_fa" start="1" end="1" type="bool"/>
-               <field name="pres_ispctl" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="STATE_ISPCTL" length="1">
-               <field name="validid" start="26" end="31" type="uint"/>
-               <field name="upass" start="22" end="25" type="uint"/>
-               <field name="tagwritedisable" start="21" end="21" type="bool"/>
-               <field name="ovgmtestdisable" start="20" end="20" type="bool"/>
-               <field name="two_sided" start="19" end="19" type="bool"/>
-               <field name="bpres" start="18" end="18" type="bool"/>
-               <field name="dbenable" start="17" end="17" type="bool"/>
-               <field name="scenable" start="16" end="16" type="bool"/>
-               <field name="vistest" start="15" end="15" type="bool"/>
-               <field name="visbool" start="14" end="14" type="bool"/>
-               <field name="visreg" start="0" end="13" type="uint"/>
-       </struct>
-
-       <struct name="STATE_ISPA" length="1">
-               <field name="objtype" start="28" end="31" type="OBJTYPE"/>
-               <field name="passtype" start="24" end="26" type="PASSTYPE"/>
-               <field name="ovgvispassmaskop" start="23" end="23" type="bool"/>
-               <field name="maskval" start="22" end="22" type="bool"/>
-               <field name="dwritedisable" start="21" end="21" type="bool"/>
-               <field name="dfbztestenable" start="20" end="20" type="bool"/>
-               <field name="dcmpmode" start="17" end="19" type="CMPMODE"/>
-               <field name="linefilllastpixel" start="16" end="16" type="bool"/>
-               <field name="pointlinewidth" start="8" end="15" type="uint">
-                       <define name="SIZE_MAX" value="255"/>
-               </field>
-               <field name="sref" start="0" end="7" type="uint"/>
-       </struct>
-
-       <struct name="STATE_ISPB" length="1">
-               <field name="scmpmode" start="25" end="27" type="CMPMODE"/>
-               <field name="sop1" start="22" end="24" type="ISPB_STENCILOP"/>
-               <field name="sop2" start="19" end="21" type="ISPB_STENCILOP"/>
-               <field name="sop3" start="16" end="18" type="ISPB_STENCILOP"/>
-               <field name="scmpmask" start="8" end="15" type="uint"/>
-               <field name="swmask" start="0" end="7" type="uint"/>
-       </struct>
-
-       <struct name="REGION_CLIP0" length="1">
-               <field name="mode" start="31" end="31" type="REGION_CLIP_MODE"/>
-               <field name="left" start="16" end="24" type="uint"/>
-               <field name="right" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="REGION_CLIP1" length="1">
-               <field name="top" start="16" end="24" type="uint"/>
-               <field name="bottom" start="0" end="8" type="uint"/>
-       </struct>
-
-       <struct name="STATE_ISPDBSC" length="1">
-               <field name="dbindex" start="16" end="31" type="uint"/>
-               <field name="scindex" start="0" end="15" type="uint"/>
-       </struct>
-
-       <struct name="OUTPUT_SEL" length="1">
-               <field name="vtxsize" start="24" end="31" type="uint"/>
-               <field name="tsp_unclamped_z_pres" start="21" end="21" type="bool"/>
-               <field name="render_tgt_pres" start="20" end="20" type="bool"/>
-               <field name="vpt_tgt_pres" start="19" end="19" type="bool"/>
-               <field name="psprite_size_pres" start="18" end="18" type="bool"/>
-               <field name="isp_position_depth_clamp_z" start="17" end="17" type="bool"/>
-               <field name="rhw_pres" start="16" end="16" type="bool"/>
-               <field name="cullplane7" start="15" end="15" type="bool"/>
-               <field name="cullplane6" start="14" end="14" type="bool"/>
-               <field name="cullplane5" start="13" end="13" type="bool"/>
-               <field name="cullplane4" start="12" end="12" type="bool"/>
-               <field name="cullplane3" start="11" end="11" type="bool"/>
-               <field name="cullplane2" start="10" end="10" type="bool"/>
-               <field name="cullplane1" start="9" end="9" type="bool"/>
-               <field name="cullplane0" start="8" end="8" type="bool"/>
-               <field name="plane7" start="7" end="7" type="bool"/>
-               <field name="plane6" start="6" end="6" type="bool"/>
-               <field name="plane5" start="5" end="5" type="bool"/>
-               <field name="plane4" start="4" end="4" type="bool"/>
-               <field name="plane3" start="3" end="3" type="bool"/>
-               <field name="plane2" start="2" end="2" type="bool"/>
-               <field name="plane1" start="1" end="1" type="bool"/>
-               <field name="plane0" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="STATE_VARYING0" length="1">
-               <condition type="if" check="TEXTURE_WRAP_VARYING"/>
-                       <field name="f32_linear_wrap" start="24" end="31" type="uint"/>
-               <condition type="endif" check="TEXTURE_WRAP_VARYING"/>
-               <field name="f32_npc" start="16" end="23" type="uint"/>
-               <field name="f32_flat" start="8" end="15" type="uint"/>
-               <field name="f32_linear" start="0" end="7" type="uint"/>
-       </struct>
-
-       <struct name="STATE_VARYING1" length="1">
-               <field name="f16_npc" start="24" end="31" type="uint"/>
-               <field name="f16_flat" start="16" end="23" type="uint"/>
-               <field name="f16_linear" start="8" end="15" type="uint"/>
-               <condition type="if" check="TEXTURE_WRAP_VARYING"/>
-                       <field name="f32_npc_wrap" start="0" end=" 7" type="uint"/>
-               <condition type="endif" check="TEXTURE_WRAP_VARYING"/>
-       </struct>
-
-       <struct name="STATE_TERMINATE0" length="1">
-               <field name="clip_right" start="18" end="26" type="uint">
-                       <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
-               </field>
-               <field name="clip_top" start="9" end="17" type="uint">
-                       <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
-               </field>
-               <field name="clip_bottom" start="0" end="8" type="uint">
-                       <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
-               </field>
-       </struct>
-
-       <struct name="STATE_TERMINATE1" length="1">
-               <field name="clip_left" start="23" end="31" type="uint">
-                       <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
-               </field>
-               <field name="render_target" start="0" end="10" type="uint"/>
-       </struct>
-
-       <struct name="STATE_STREAM_OUT1" length="1">
-               <field name="sync" start="10" end="10" type="bool"/>
-               <field name="pds_data_size" start="4" end="9" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_temp_size" start="0" end="3" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-       </struct>
-
-       <struct name="STATE_STREAM_OUT2" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="pds_data_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_SHADERBASE" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_TEXUNICODEBASE" length="1">
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_VARYINGBASE" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_TEXTUREDATABASE" length="1">
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_UNIFORMDATABASE" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STATE_PDS_SIZEINFO1" length="1">
-               <field name="pds_uniformsize" start="23" end="31" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="pds_texturestatesize" start="16" end="22" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="pds_varyingsize" start="10" end="15" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-               <field name="usc_varyingsize" start="4" end="9" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-                       <define name="MAX_SIZE" value="63"/>
-               </field>
-               <field name="pds_tempsize" start="0" end="3" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-       </struct>
-
-       <struct name="STATE_PDS_SIZEINFO2" length="1">
-               <field name="usc_sharedsize" start="23" end="31" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_tri_merge_disable" start="14" end="14" type="bool"/>
-               <field name="pds_batchnum" start="0" end="13" type="uint"/>
-       </struct>
-
-       <struct name="STATE_PPP_CTRL" length="1">
-               <field name="trp" start="16" end="16" type="bool"/>
-               <field name="prim_msaa" start="15" end="15" type="bool"/>
-               <field name="gs_output_topology" start="13" end="14" type="GS_OUTPUT_TOPOLOGY"/>
-               <field name="pres_prim_id" start="12" end="12" type="bool"/>
-               <field name="clip_mode" start="10" end="11" type="CLIP_MODE"/>
-               <field name="drawclippededges" start="9" end="9" type="bool"/>
-               <field name="flatshade_vtx" start="7" end="8" type="FLATSHADE"/>
-               <field name="pretransform" start="6" end="6" type="bool"/>
-               <field name="wclampen" start="5" end="5" type="bool"/>
-               <field name="wbuffen" start="4" end="4" type="bool"/>
-               <field name="resetbbox" start="3" end="3" type="bool"/>
-               <field name="updatebbox" start="2" end="2" type="bool"/>
-               <field name="cullmode" start="0" end="1" type="CULLMODE"/>
-       </struct>
+  <enum name="CLIP_MODE">
+    <value name="NO_FRONT_OR_REAR" value="0"/>
+    <value name="FRONT_REAR"       value="1"/>
+    <value name="FRONT_REAR_DEPTH" value="2"/>
+  </enum>
+
+  <enum name="CMPMODE">
+    <value name="NEVER"            value="0"/>
+    <value name="LESS"             value="1"/>
+    <value name="EQUAL"            value="2"/>
+    <value name="LESS_OR_EQUAL"    value="3"/>
+    <value name="GREATER"          value="4"/>
+    <value name="NOT_EQUAL"        value="5"/>
+    <value name="GREATER_OR_EQUAL" value="6"/>
+    <value name="ALWAYS"           value="7"/>
+  </enum>
+
+  <enum name="CULLMODE">
+    <value name="NO_CULLING" value="0"/>
+    <value name="CULL_CW"    value="1"/>
+    <value name="CULL_CCW"   value="2"/>
+  </enum>
+
+  <enum name="FLATSHADE">
+    <value name="VTX_VERTEX_0" value="1"/>
+    <value name="VTX_VERTEX_1" value="2"/>
+    <value name="VTX_VERTEX_2" value="3"/>
+  </enum>
+
+  <enum name="GS_OUTPUT_TOPOLOGY">
+    <value name="POINT_LIST" value="0"/>
+    <value name="LINE_STRIP" value="1"/>
+    <value name="TRI_STRIP"  value="2"/>
+  </enum>
+
+  <enum name="ISPB_STENCILOP">
+    <value name="KEEP"               value="0"/>
+    <value name="ZERO"               value="1"/>
+    <value name="REPLACE"            value="2"/>
+    <value name="INCREMENT_SATURATE" value="3"/>
+    <value name="DECREMENT_SATURATE" value="4"/>
+    <value name="INVERT"             value="5"/>
+    <value name="INCREMENT"          value="6"/>
+    <value name="DECREMENT"          value="7"/>
+  </enum>
+
+  <enum name="OBJTYPE">
+    <value name="TRIANGLE"                   value="0"/>
+    <value name="LINE"                       value="1"/>
+    <value name="SPRITE_10UV"                value="2"/>
+    <value name="SPRITE_UV"                  value="3"/>
+    <value name="SPRITE_01UV"                value="4"/>
+    <value name="LINE_FILLED_TRIANGLE"       value="5"/>
+    <value name="POINT_FILLED_TRIANGLE"      value="6"/>
+    <value name="TESSELLATED_OBJECT_NO_GS"   value="7"/>
+    <value name="TESSELLATED_OBJECT_WITH_GS" value="8"/>
+  </enum>
+
+  <!--
+    TODO: Add support for "ifs" in csbgen root element.
+  -->
+  <enum name="PASSTYPE">
+    <value name="OPAQUE"             value="0"/>
+    <value name="TRANSLUCENT"        value="1"/>
+    <value name="PUNCH_THROUGH"      value="2"/>
+    <value name="VIEWPORT_OBJECT"    value="3"/>
+    <value name="FAST_PUNCH_THROUGH" value="4"/>
+    <value name="DEPTH_FEEDBACK"     value="5"/>
+    <value name="ANTI_ALIASED"       value="6"/>
+  </enum>
+
+  <enum name="REGION_CLIP_MODE">
+    <value name="NONE"    value="0"/>
+    <value name="OUTSIDE" value="1"/>
+  </enum>
+
+  <struct name="STATE_HEADER" length="1">
+    <field name="not_final_term" start="26" end="26" type="bool"/>
+    <field name="pres_terminate" start="25" end="25" type="bool"/>
+    <field name="context_switch" start="24" end="24" type="bool"/>
+    <field name="pres_stream_out_program" start="23" end="23" type="bool"/>
+    <field name="pres_stream_out_size" start="22" end="22" type="bool"/>
+    <field name="pres_ppp_ctrl" start="21" end="21" type="bool"/>
+    <field name="pres_varying_word2" start="20" end="20" type="bool"/>
+    <field name="pres_varying_word1" start="19" end="19" type="bool"/>
+    <field name="pres_varying_word0" start="18" end="18" type="bool"/>
+    <field name="pres_outselects" start="17" end="17" type="bool"/>
+    <field name="pres_wclamp" start="16" end="16" type="bool"/>
+    <field name="view_port_count" start="12" end="15" type="uint"/>
+    <field name="pres_viewport" start="11" end="11" type="bool"/>
+    <field name="pres_region_clip" start="10" end="10" type="bool"/>
+    <field name="pres_pds_state_ptr3" start="9" end="9" type="bool"/>
+    <field name="pres_pds_state_ptr2" start="8" end="8" type="bool"/>
+    <field name="pres_pds_state_ptr1" start="7" end="7" type="bool"/>
+    <field name="pres_pds_state_ptr0" start="6" end="6" type="bool"/>
+    <field name="pres_ispctl_dbsc" start="5" end="5" type="bool"/>
+    <field name="pres_ispctl_bb" start="4" end="4" type="bool"/>
+    <field name="pres_ispctl_ba" start="3" end="3" type="bool"/>
+    <field name="pres_ispctl_fb" start="2" end="2" type="bool"/>
+    <field name="pres_ispctl_fa" start="1" end="1" type="bool"/>
+    <field name="pres_ispctl" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="STATE_ISPCTL" length="1">
+    <field name="validid" start="26" end="31" type="uint"/>
+    <field name="upass" start="22" end="25" type="uint"/>
+    <field name="tagwritedisable" start="21" end="21" type="bool"/>
+    <field name="ovgmtestdisable" start="20" end="20" type="bool"/>
+    <field name="two_sided" start="19" end="19" type="bool"/>
+    <field name="bpres" start="18" end="18" type="bool"/>
+    <field name="dbenable" start="17" end="17" type="bool"/>
+    <field name="scenable" start="16" end="16" type="bool"/>
+    <field name="vistest" start="15" end="15" type="bool"/>
+    <field name="visbool" start="14" end="14" type="bool"/>
+    <field name="visreg" start="0" end="13" type="uint"/>
+  </struct>
+
+  <struct name="STATE_ISPA" length="1">
+    <field name="objtype" start="28" end="31" type="OBJTYPE"/>
+    <field name="passtype" start="24" end="26" type="PASSTYPE"/>
+    <field name="ovgvispassmaskop" start="23" end="23" type="bool"/>
+    <field name="maskval" start="22" end="22" type="bool"/>
+    <field name="dwritedisable" start="21" end="21" type="bool"/>
+    <field name="dfbztestenable" start="20" end="20" type="bool"/>
+    <field name="dcmpmode" start="17" end="19" type="CMPMODE"/>
+    <field name="linefilllastpixel" start="16" end="16" type="bool"/>
+    <field name="pointlinewidth" start="8" end="15" type="uint">
+      <define name="SIZE_MAX" value="255"/>
+    </field>
+    <field name="sref" start="0" end="7" type="uint"/>
+  </struct>
+
+  <struct name="STATE_ISPB" length="1">
+    <field name="scmpmode" start="25" end="27" type="CMPMODE"/>
+    <field name="sop1" start="22" end="24" type="ISPB_STENCILOP"/>
+    <field name="sop2" start="19" end="21" type="ISPB_STENCILOP"/>
+    <field name="sop3" start="16" end="18" type="ISPB_STENCILOP"/>
+    <field name="scmpmask" start="8" end="15" type="uint"/>
+    <field name="swmask" start="0" end="7" type="uint"/>
+  </struct>
+
+  <struct name="REGION_CLIP0" length="1">
+    <field name="mode" start="31" end="31" type="REGION_CLIP_MODE"/>
+    <field name="left" start="16" end="24" type="uint"/>
+    <field name="right" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="REGION_CLIP1" length="1">
+    <field name="top" start="16" end="24" type="uint"/>
+    <field name="bottom" start="0" end="8" type="uint"/>
+  </struct>
+
+  <struct name="STATE_ISPDBSC" length="1">
+    <field name="dbindex" start="16" end="31" type="uint"/>
+    <field name="scindex" start="0" end="15" type="uint"/>
+  </struct>
+
+  <struct name="OUTPUT_SEL" length="1">
+    <field name="vtxsize" start="24" end="31" type="uint"/>
+    <field name="tsp_unclamped_z_pres" start="21" end="21" type="bool"/>
+    <field name="render_tgt_pres" start="20" end="20" type="bool"/>
+    <field name="vpt_tgt_pres" start="19" end="19" type="bool"/>
+    <field name="psprite_size_pres" start="18" end="18" type="bool"/>
+    <field name="isp_position_depth_clamp_z" start="17" end="17" type="bool"/>
+    <field name="rhw_pres" start="16" end="16" type="bool"/>
+    <field name="cullplane7" start="15" end="15" type="bool"/>
+    <field name="cullplane6" start="14" end="14" type="bool"/>
+    <field name="cullplane5" start="13" end="13" type="bool"/>
+    <field name="cullplane4" start="12" end="12" type="bool"/>
+    <field name="cullplane3" start="11" end="11" type="bool"/>
+    <field name="cullplane2" start="10" end="10" type="bool"/>
+    <field name="cullplane1" start="9" end="9" type="bool"/>
+    <field name="cullplane0" start="8" end="8" type="bool"/>
+    <field name="plane7" start="7" end="7" type="bool"/>
+    <field name="plane6" start="6" end="6" type="bool"/>
+    <field name="plane5" start="5" end="5" type="bool"/>
+    <field name="plane4" start="4" end="4" type="bool"/>
+    <field name="plane3" start="3" end="3" type="bool"/>
+    <field name="plane2" start="2" end="2" type="bool"/>
+    <field name="plane1" start="1" end="1" type="bool"/>
+    <field name="plane0" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="STATE_VARYING0" length="1">
+    <condition type="if" check="TEXTURE_WRAP_VARYING"/>
+      <field name="f32_linear_wrap" start="24" end="31" type="uint"/>
+    <condition type="endif" check="TEXTURE_WRAP_VARYING"/>
+    <field name="f32_npc" start="16" end="23" type="uint"/>
+    <field name="f32_flat" start="8" end="15" type="uint"/>
+    <field name="f32_linear" start="0" end="7" type="uint"/>
+  </struct>
+
+  <struct name="STATE_VARYING1" length="1">
+    <field name="f16_npc" start="24" end="31" type="uint"/>
+    <field name="f16_flat" start="16" end="23" type="uint"/>
+    <field name="f16_linear" start="8" end="15" type="uint"/>
+    <condition type="if" check="TEXTURE_WRAP_VARYING"/>
+      <field name="f32_npc_wrap" start="0" end=" 7" type="uint"/>
+    <condition type="endif" check="TEXTURE_WRAP_VARYING"/>
+  </struct>
+
+  <struct name="STATE_TERMINATE0" length="1">
+    <field name="clip_right" start="18" end="26" type="uint">
+      <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
+    </field>
+    <field name="clip_top" start="9" end="17" type="uint">
+      <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
+    </field>
+    <field name="clip_bottom" start="0" end="8" type="uint">
+      <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
+    </field>
+  </struct>
+
+  <struct name="STATE_TERMINATE1" length="1">
+    <field name="clip_left" start="23" end="31" type="uint">
+      <define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
+    </field>
+    <field name="render_target" start="0" end="10" type="uint"/>
+  </struct>
+
+  <struct name="STATE_STREAM_OUT1" length="1">
+    <field name="sync" start="10" end="10" type="bool"/>
+    <field name="pds_data_size" start="4" end="9" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_temp_size" start="0" end="3" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+  </struct>
+
+  <struct name="STATE_STREAM_OUT2" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="pds_data_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_SHADERBASE" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_TEXUNICODEBASE" length="1">
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_VARYINGBASE" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_TEXTUREDATABASE" length="1">
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_UNIFORMDATABASE" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STATE_PDS_SIZEINFO1" length="1">
+    <field name="pds_uniformsize" start="23" end="31" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="pds_texturestatesize" start="16" end="22" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="pds_varyingsize" start="10" end="15" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+    <field name="usc_varyingsize" start="4" end="9" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+      <define name="MAX_SIZE" value="63"/>
+    </field>
+    <field name="pds_tempsize" start="0" end="3" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+  </struct>
+
+  <struct name="STATE_PDS_SIZEINFO2" length="1">
+    <field name="usc_sharedsize" start="23" end="31" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_tri_merge_disable" start="14" end="14" type="bool"/>
+    <field name="pds_batchnum" start="0" end="13" type="uint"/>
+  </struct>
+
+  <struct name="STATE_PPP_CTRL" length="1">
+    <field name="trp" start="16" end="16" type="bool"/>
+    <field name="prim_msaa" start="15" end="15" type="bool"/>
+    <field name="gs_output_topology" start="13" end="14" type="GS_OUTPUT_TOPOLOGY"/>
+    <field name="pres_prim_id" start="12" end="12" type="bool"/>
+    <field name="clip_mode" start="10" end="11" type="CLIP_MODE"/>
+    <field name="drawclippededges" start="9" end="9" type="bool"/>
+    <field name="flatshade_vtx" start="7" end="8" type="FLATSHADE"/>
+    <field name="pretransform" start="6" end="6" type="bool"/>
+    <field name="wclampen" start="5" end="5" type="bool"/>
+    <field name="wbuffen" start="4" end="4" type="bool"/>
+    <field name="resetbbox" start="3" end="3" type="bool"/>
+    <field name="updatebbox" start="2" end="2" type="bool"/>
+    <field name="cullmode" start="0" end="1" type="CULLMODE"/>
+  </struct>
 
 </csbgen>
index 537146d..860bcef 100644 (file)
@@ -25,321 +25,321 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="TEXSTATE">
 
-       <enum name="ADDRMODE">
-               <value name="REPEAT"               value="0"/>
-               <value name="FLIP"                 value="1"/>
-               <value name="CLAMP_TO_EDGE"        value="2"/>
-               <value name="FLIP_ONCE_THEN_CLAMP" value="3"/>
-               <value name="CLAMP_TO_BORDER"      value="4"/>
-               <value name="OGL_CLAMP"            value="5"/>
-       </enum>
+  <enum name="ADDRMODE">
+    <value name="REPEAT"               value="0"/>
+    <value name="FLIP"                 value="1"/>
+    <value name="CLAMP_TO_EDGE"        value="2"/>
+    <value name="FLIP_ONCE_THEN_CLAMP" value="3"/>
+    <value name="CLAMP_TO_BORDER"      value="4"/>
+    <value name="OGL_CLAMP"            value="5"/>
+  </enum>
 
-       <enum name="ANISOCTL">
-               <value name="DISABLED" value="0"/>
-               <value name="X2"       value="1"/>
-               <value name="X4"       value="2"/>
-               <value name="X8"       value="3"/>
-               <value name="X16"      value="4"/>
-       </enum>
+  <enum name="ANISOCTL">
+    <value name="DISABLED" value="0"/>
+    <value name="X2"       value="1"/>
+    <value name="X4"       value="2"/>
+    <value name="X8"       value="3"/>
+    <value name="X16"      value="4"/>
+  </enum>
 
-       <enum name="CLAMP">
-               <value name="MIN"             value="0"/>
-               <value name="MAX"             value="959"/>
-               <value name="INTEGER_BITS"    value="4"/>
-               <value name="FRACTIONAL_BITS" value="6"/>
-       </enum>
+  <enum name="CLAMP">
+    <value name="MIN"             value="0"/>
+    <value name="MAX"             value="959"/>
+    <value name="INTEGER_BITS"    value="4"/>
+    <value name="FRACTIONAL_BITS" value="6"/>
+  </enum>
 
-       <enum name="CMP_MODE">
-               <value name="NEVER"        value="0"/>
-               <value name="LESS"         value="1"/>
-               <value name="EQUAL"        value="2"/>
-               <value name="LESSEQUAL"    value="3"/>
-               <value name="GREATER"      value="4"/>
-               <value name="NOTEQUAL"     value="5"/>
-               <value name="GREATEREQUAL" value="6"/>
-               <value name="ALWAYS"       value="7"/>
-       </enum>
+  <enum name="CMP_MODE">
+    <value name="NEVER"        value="0"/>
+    <value name="LESS"         value="1"/>
+    <value name="EQUAL"        value="2"/>
+    <value name="LESSEQUAL"    value="3"/>
+    <value name="GREATER"      value="4"/>
+    <value name="NOTEQUAL"     value="5"/>
+    <value name="GREATEREQUAL" value="6"/>
+    <value name="ALWAYS"       value="7"/>
+  </enum>
 
-       <enum name="COMPRESSION_LEVEL">
-               <value name="LOSSLESS" value="0"/>
-               <value name="LOSSY_75" value="1"/>
-               <value name="LOSSY_50" value="2"/>
-               <value name="LOSSY_25" value="3"/>
-       </enum>
+  <enum name="COMPRESSION_LEVEL">
+    <value name="LOSSLESS" value="0"/>
+    <value name="LOSSY_75" value="1"/>
+    <value name="LOSSY_50" value="2"/>
+    <value name="LOSSY_25" value="3"/>
+  </enum>
 
-       <enum name="COMPRESSION_MODE">
-               <value name="NONE"                   value="0"/>
-               <value name="TPU"                    value="1"/>
-               <value name="FB_DIRECT_8X8"          value="2"/>
-               <value name="FB_DIRECT_16X4"         value="3"/>
-               <value name="FB_INDIRECT_1TILE_8X8"  value="4"/>
-               <value name="FB_INDIRECT_1TILE_16X4" value="5"/>
-               <value name="FB_INDIRECT_4TILE_8X8"  value="6"/>
-               <value name="FB_INDIRECT_4TILE_16X4" value="7"/>
-       </enum>
+  <enum name="COMPRESSION_MODE">
+    <value name="NONE"                   value="0"/>
+    <value name="TPU"                    value="1"/>
+    <value name="FB_DIRECT_8X8"          value="2"/>
+    <value name="FB_DIRECT_16X4"         value="3"/>
+    <value name="FB_INDIRECT_1TILE_8X8"  value="4"/>
+    <value name="FB_INDIRECT_1TILE_16X4" value="5"/>
+    <value name="FB_INDIRECT_4TILE_8X8"  value="6"/>
+    <value name="FB_INDIRECT_4TILE_16X4" value="7"/>
+  </enum>
 
-       <enum name="DADJUST">
-               <value name="MIN_UINT"        value="0"/>
-               <value name="ZERO_UINT"       value="4095"/>
-               <value name="MAX_UINT"        value="8191"/>
-               <value name="INTEGER_BITS"    value="5"/>
-               <value name="FRACTIONAL_BITS" value="8"/>
-       </enum>
+  <enum name="DADJUST">
+    <value name="MIN_UINT"        value="0"/>
+    <value name="ZERO_UINT"       value="4095"/>
+    <value name="MAX_UINT"        value="8191"/>
+    <value name="INTEGER_BITS"    value="5"/>
+    <value name="FRACTIONAL_BITS" value="8"/>
+  </enum>
 
-       <enum name="FILTER">
-               <value name="POINT"   value="0"/>
-               <value name="LINEAR"  value="1"/>
-               <value name="BICUBIC" value="2"/>
-       </enum>
+  <enum name="FILTER">
+    <value name="POINT"   value="0"/>
+    <value name="LINEAR"  value="1"/>
+    <value name="BICUBIC" value="2"/>
+  </enum>
 
-       <enum name="FORMAT">
-               <value name="U8"                            value="0"/>
-               <value name="S8"                            value="1"/>
-               <value name="A4R4G4B4"                      value="2"/>
-               <value name="A8R3G3B2"                      value="3"/>
-               <value name="A1R5G5B5"                      value="4"/>
-               <value name="R5G6B5"                        value="5"/>
-               <value name="R5sG5sB6"                      value="6"/>
-               <value name="U8U8"                          value="7"/>
-               <value name="S8S8"                          value="8"/>
-               <value name="U16"                           value="9"/>
-               <value name="S16"                           value="10"/>
-               <value name="F16"                           value="11"/>
-               <value name="U8U8U8U8"                      value="12"/>
-               <value name="S8S8S8S8"                      value="13"/>
-               <value name="A2R10B10G10"                   value="14"/>
-               <value name="U16U16"                        value="15"/>
-               <value name="S16S16"                        value="16"/>
-               <value name="F16F16"                        value="17"/>
-               <value name="F32"                           value="18"/>
-               <value name="F32_SIGNMASK"                  value="19"/>
-               <value name="X8U8S8S8"                      value="20"/>
-               <value name="X8U24"                         value="21"/>
-               <value name="ST8U24"                        value="22"/>
-               <value name="U8X24"                         value="23"/>
-               <value name="U32"                           value="24"/>
-               <value name="S32"                           value="25"/>
-               <value name="SE9995"                        value="26"/>
-               <value name="F11F11F10"                     value="27"/>
-               <value name="F16F16F16F16"                  value="28"/>
-               <value name="U16U16U16U16"                  value="29"/>
-               <value name="S16S16S16S16"                  value="30"/>
-               <value name="F16F16F16"                     value="31"/>
-               <value name="U16U16U16"                     value="32"/>
-               <value name="S16S16S16"                     value="33"/>
-               <value name="F32F32"                        value="34"/>
-               <value name="U32U32"                        value="35"/>
-               <value name="S32S32"                        value="36"/>
-               <value name="X24U8F32"                      value="37"/>
-               <value name="X24X8F32"                      value="38"/>
-               <value name="X24G8X32"                      value="39"/>
-               <value name="YUV420_2PLANE"                 value="54"/>
-               <value name="YVU420_2PLANE"                 value="55"/>
-               <value name="YUV420_3PLANE"                 value="56"/>
-               <value name="YVU420_3PLANE"                 value="57"/>
-               <value name="U8U8U8"                        value="58"/>
-               <value name="S8S8S8"                        value="59"/>
-               <value name="A2F10F10F10"                   value="60"/>
-               <value name="F32F32F32F32"                  value="61"/>
-               <value name="U32U32U32U32"                  value="62"/>
-               <value name="S32S32S32S32"                  value="63"/>
-               <value name="F32F32F32"                     value="64"/>
-               <value name="U32U32U32"                     value="65"/>
-               <value name="S32S32S32"                     value="66"/>
-               <value name="A2_XRBIAS_U10U10U10"           value="67"/>
-               <value name="O8"                            value="81"/>
-               <value name="O8O8"                          value="82"/>
-               <value name="R5G5B5A1"                      value="83"/>
-               <value name="B6G5sR5s"                      value="84"/>
-               <value name="R10B10G10A2"                   value="85"/>
-               <value name="X8S8S8U8"                      value="86"/>
-               <value name="U24ST8"                        value="87"/>
-               <value name="F10F11F11"                     value="88"/>
-               <value name="VYUY"                          value="89"/>
-               <value name="UYVY"                          value="90"/>
-               <value name="YVYU"                          value="91"/>
-               <value name="YUYV"                          value="92"/>
-               <value name="F10F10F10A2"                   value="93"/>
-               <value name="YUV420_2PLANE_MACRO_BLOCK"     value="94"/>
-               <value name="YVU420_2PLANE_MACRO_BLOCK"     value="95"/>
-               <value name="ARGBV16_XR10"                  value="96"/>
-               <value name="YVU8_422_2PLANE_PACK8"         value="97"/>
-               <value name="YVU8_444_2PLANE_PACK8"         value="98"/>
-               <value name="YVU10_444_1PLANE_PACK10"       value="99"/>
-               <value name="YVU10_422_2PLANE_PACK16"       value="100"/>
-               <value name="YVU10_420_2PLANE_PACK16"       value="101"/>
-               <value name="YVU10_444_2PLANE_PACK16"       value="102"/>
-               <value name="YUV8_422_2PLANE_PACK8"         value="103"/>
-               <value name="YUV8_444_3PLANE_PACK8"         value="104"/>
-               <value name="YUV10_444_3PLANE_PACK16"       value="105"/>
-               <value name="YVU10_420_2PLANE_PACK10"       value="106"/>
-               <value name="YUV10_420_2PLANE_PACK10"       value="107"/>
-               <value name="YVU10_422_2PLANE_PACK10"       value="108"/>
-               <value name="YUV10_422_2PLANE_PACK10"       value="109"/>
-               <value name="YUV10_444_3PLANE_PACK10"       value="110"/>
-               <value name="R8G8_B8G8"                     value="111"/>
-               <value name="G8R8_G8B8"                     value="112"/>
-               <value name="YVYU_IMPLIED_CSC"              value="113"/>
-               <value name="VYUY_IMPLIED_CSC"              value="114"/>
-               <value name="YUV10_420_2PLANE_PACK10_R"     value="115"/>
-               <value name="YVU10_420_2PLANE_PACK10_R"     value="116"/>
-               <value name="YUV10_420_2PLANE_PACK10_T"     value="117"/>
-               <value name="YVU10_420_2PLANE_PACK10_T"     value="118"/>
-               <value name="YUV8_420_2PLANE_PACK8_P"       value="119"/>
-               <value name="YVU8_420_2PLANE_PACK8_P"       value="120"/>
-               <value name="YUV8_420_2PLANE_PACK8_F"       value="121"/>
-               <value name="YVU8_420_2PLANE_PACK8_F"       value="122"/>
-               <value name="INVALID"                       value="0xFFFFFFFF"/>
-       </enum>
+  <enum name="FORMAT">
+    <value name="U8"                        value="0"/>
+    <value name="S8"                        value="1"/>
+    <value name="A4R4G4B4"                  value="2"/>
+    <value name="A8R3G3B2"                  value="3"/>
+    <value name="A1R5G5B5"                  value="4"/>
+    <value name="R5G6B5"                    value="5"/>
+    <value name="R5sG5sB6"                  value="6"/>
+    <value name="U8U8"                      value="7"/>
+    <value name="S8S8"                      value="8"/>
+    <value name="U16"                       value="9"/>
+    <value name="S16"                       value="10"/>
+    <value name="F16"                       value="11"/>
+    <value name="U8U8U8U8"                  value="12"/>
+    <value name="S8S8S8S8"                  value="13"/>
+    <value name="A2R10B10G10"               value="14"/>
+    <value name="U16U16"                    value="15"/>
+    <value name="S16S16"                    value="16"/>
+    <value name="F16F16"                    value="17"/>
+    <value name="F32"                       value="18"/>
+    <value name="F32_SIGNMASK"              value="19"/>
+    <value name="X8U8S8S8"                  value="20"/>
+    <value name="X8U24"                     value="21"/>
+    <value name="ST8U24"                    value="22"/>
+    <value name="U8X24"                     value="23"/>
+    <value name="U32"                       value="24"/>
+    <value name="S32"                       value="25"/>
+    <value name="SE9995"                    value="26"/>
+    <value name="F11F11F10"                 value="27"/>
+    <value name="F16F16F16F16"              value="28"/>
+    <value name="U16U16U16U16"              value="29"/>
+    <value name="S16S16S16S16"              value="30"/>
+    <value name="F16F16F16"                 value="31"/>
+    <value name="U16U16U16"                 value="32"/>
+    <value name="S16S16S16"                 value="33"/>
+    <value name="F32F32"                    value="34"/>
+    <value name="U32U32"                    value="35"/>
+    <value name="S32S32"                    value="36"/>
+    <value name="X24U8F32"                  value="37"/>
+    <value name="X24X8F32"                  value="38"/>
+    <value name="X24G8X32"                  value="39"/>
+    <value name="YUV420_2PLANE"             value="54"/>
+    <value name="YVU420_2PLANE"             value="55"/>
+    <value name="YUV420_3PLANE"             value="56"/>
+    <value name="YVU420_3PLANE"             value="57"/>
+    <value name="U8U8U8"                    value="58"/>
+    <value name="S8S8S8"                    value="59"/>
+    <value name="A2F10F10F10"               value="60"/>
+    <value name="F32F32F32F32"              value="61"/>
+    <value name="U32U32U32U32"              value="62"/>
+    <value name="S32S32S32S32"              value="63"/>
+    <value name="F32F32F32"                 value="64"/>
+    <value name="U32U32U32"                 value="65"/>
+    <value name="S32S32S32"                 value="66"/>
+    <value name="A2_XRBIAS_U10U10U10"       value="67"/>
+    <value name="O8"                        value="81"/>
+    <value name="O8O8"                      value="82"/>
+    <value name="R5G5B5A1"                  value="83"/>
+    <value name="B6G5sR5s"                  value="84"/>
+    <value name="R10B10G10A2"               value="85"/>
+    <value name="X8S8S8U8"                  value="86"/>
+    <value name="U24ST8"                    value="87"/>
+    <value name="F10F11F11"                 value="88"/>
+    <value name="VYUY"                      value="89"/>
+    <value name="UYVY"                      value="90"/>
+    <value name="YVYU"                      value="91"/>
+    <value name="YUYV"                      value="92"/>
+    <value name="F10F10F10A2"               value="93"/>
+    <value name="YUV420_2PLANE_MACRO_BLOCK" value="94"/>
+    <value name="YVU420_2PLANE_MACRO_BLOCK" value="95"/>
+    <value name="ARGBV16_XR10"              value="96"/>
+    <value name="YVU8_422_2PLANE_PACK8"     value="97"/>
+    <value name="YVU8_444_2PLANE_PACK8"     value="98"/>
+    <value name="YVU10_444_1PLANE_PACK10"   value="99"/>
+    <value name="YVU10_422_2PLANE_PACK16"   value="100"/>
+    <value name="YVU10_420_2PLANE_PACK16"   value="101"/>
+    <value name="YVU10_444_2PLANE_PACK16"   value="102"/>
+    <value name="YUV8_422_2PLANE_PACK8"     value="103"/>
+    <value name="YUV8_444_3PLANE_PACK8"     value="104"/>
+    <value name="YUV10_444_3PLANE_PACK16"   value="105"/>
+    <value name="YVU10_420_2PLANE_PACK10"   value="106"/>
+    <value name="YUV10_420_2PLANE_PACK10"   value="107"/>
+    <value name="YVU10_422_2PLANE_PACK10"   value="108"/>
+    <value name="YUV10_422_2PLANE_PACK10"   value="109"/>
+    <value name="YUV10_444_3PLANE_PACK10"   value="110"/>
+    <value name="R8G8_B8G8"                 value="111"/>
+    <value name="G8R8_G8B8"                 value="112"/>
+    <value name="YVYU_IMPLIED_CSC"          value="113"/>
+    <value name="VYUY_IMPLIED_CSC"          value="114"/>
+    <value name="YUV10_420_2PLANE_PACK10_R" value="115"/>
+    <value name="YVU10_420_2PLANE_PACK10_R" value="116"/>
+    <value name="YUV10_420_2PLANE_PACK10_T" value="117"/>
+    <value name="YVU10_420_2PLANE_PACK10_T" value="118"/>
+    <value name="YUV8_420_2PLANE_PACK8_P"   value="119"/>
+    <value name="YVU8_420_2PLANE_PACK8_P"   value="120"/>
+    <value name="YUV8_420_2PLANE_PACK8_F"   value="121"/>
+    <value name="YVU8_420_2PLANE_PACK8_F"   value="122"/>
+    <value name="INVALID"                   value="0xFFFFFFFF"/>
+  </enum>
 
-       <enum name="FORMAT_COMPRESSED">
-               <value name="ASTC_4x4"           value="0"/>
-               <value name="ASTC_5x4"           value="1"/>
-               <value name="ASTC_5x5"           value="2"/>
-               <value name="ASTC_6x5"           value="3"/>
-               <value name="ASTC_6x6"           value="4"/>
-               <value name="ASTC_8x5"           value="5"/>
-               <value name="ASTC_8x6"           value="6"/>
-               <value name="ASTC_8x8"           value="7"/>
-               <value name="ASTC_10x5"          value="8"/>
-               <value name="ASTC_10x6"          value="9"/>
-               <value name="ASTC_10x8"          value="10"/>
-               <value name="ASTC_10x10"         value="11"/>
-               <value name="ASTC_12x10"         value="12"/>
-               <value name="ASTC_12x12"         value="13"/>
-               <value name="PVRT2BPP"           value="40"/>
-               <value name="PVRT4BPP"           value="41"/>
-               <value name="PVRTII2BPP"         value="42"/>
-               <value name="PVRTII4BPP"         value="43"/>
-               <value name="UBC1"               value="44"/>
-               <value name="UBC2"               value="45"/>
-               <value name="UBC3"               value="46"/>
-               <value name="UBC4"               value="47"/>
-               <value name="SBC4"               value="48"/>
-               <value name="UBC5"               value="49"/>
-               <value name="SBC5"               value="50"/>
-               <value name="UBC6"               value="51"/>
-               <value name="SBC6"               value="52"/>
-               <value name="UBC7"               value="53"/>
-               <value name="ETC2_RGB"           value="68"/>
-               <value name="ETC2A_RGBA"         value="69"/>
-               <value name="ETC2_PUNCHTHROUGHA" value="70"/>
-               <value name="EAC_R11_UNSIGNED"   value="71"/>
-               <value name="EAC_R11_SIGNED"     value="72"/>
-               <value name="EAC_RG11_UNSIGNED"  value="73"/>
-               <value name="EAC_RG11_SIGNED"    value="74"/>
-               <value name="INVALID"            value="0xFFFFFFFF"/>
-       </enum>
+  <enum name="FORMAT_COMPRESSED">
+    <value name="ASTC_4x4"           value="0"/>
+    <value name="ASTC_5x4"           value="1"/>
+    <value name="ASTC_5x5"           value="2"/>
+    <value name="ASTC_6x5"           value="3"/>
+    <value name="ASTC_6x6"           value="4"/>
+    <value name="ASTC_8x5"           value="5"/>
+    <value name="ASTC_8x6"           value="6"/>
+    <value name="ASTC_8x8"           value="7"/>
+    <value name="ASTC_10x5"          value="8"/>
+    <value name="ASTC_10x6"          value="9"/>
+    <value name="ASTC_10x8"          value="10"/>
+    <value name="ASTC_10x10"         value="11"/>
+    <value name="ASTC_12x10"         value="12"/>
+    <value name="ASTC_12x12"         value="13"/>
+    <value name="PVRT2BPP"           value="40"/>
+    <value name="PVRT4BPP"           value="41"/>
+    <value name="PVRTII2BPP"         value="42"/>
+    <value name="PVRTII4BPP"         value="43"/>
+    <value name="UBC1"               value="44"/>
+    <value name="UBC2"               value="45"/>
+    <value name="UBC3"               value="46"/>
+    <value name="UBC4"               value="47"/>
+    <value name="SBC4"               value="48"/>
+    <value name="UBC5"               value="49"/>
+    <value name="SBC5"               value="50"/>
+    <value name="UBC6"               value="51"/>
+    <value name="SBC6"               value="52"/>
+    <value name="UBC7"               value="53"/>
+    <value name="ETC2_RGB"           value="68"/>
+    <value name="ETC2A_RGBA"         value="69"/>
+    <value name="ETC2_PUNCHTHROUGHA" value="70"/>
+    <value name="EAC_R11_UNSIGNED"   value="71"/>
+    <value name="EAC_R11_SIGNED"     value="72"/>
+    <value name="EAC_RG11_UNSIGNED"  value="73"/>
+    <value name="EAC_RG11_SIGNED"    value="74"/>
+    <value name="INVALID"            value="0xFFFFFFFF"/>
+  </enum>
 
-       <enum name="GAMMA">
-               <value name="OFF" value="0"/>
-               <value name="ON"  value="1"/>
-       </enum>
+  <enum name="GAMMA">
+    <value name="OFF" value="0"/>
+    <value name="ON"  value="1"/>
+  </enum>
 
-       <enum name="SWIZ">
-               <value name="SRCCHAN_0" value="0"/>
-               <value name="SRCCHAN_1" value="1"/>
-               <value name="SRCCHAN_2" value="2"/>
-               <value name="SRCCHAN_3" value="3"/>
-               <value name="SRC_ONE"   value="4"/>
-               <value name="SRC_ZERO"  value="5"/>
-       </enum>
+  <enum name="SWIZ">
+    <value name="SRCCHAN_0" value="0"/>
+    <value name="SRCCHAN_1" value="1"/>
+    <value name="SRCCHAN_2" value="2"/>
+    <value name="SRCCHAN_3" value="3"/>
+    <value name="SRC_ONE"   value="4"/>
+    <value name="SRC_ZERO"  value="5"/>
+  </enum>
 
-       <enum name="TEXTYPE">
-               <value name="1D"            value="0"/>
-               <value name="2D"            value="1"/>
-               <value name="3D"            value="2"/>
-               <value name="CUBE"          value="3"/>
-               <value name="STRIDE"        value="4"/>
-               <value name="PAGETILE"      value="5"/>
-               <value name="BUFFER_LOOKUP" value="6"/>
-       </enum>
+  <enum name="TEXTYPE">
+    <value name="1D"            value="0"/>
+    <value name="2D"            value="1"/>
+    <value name="3D"            value="2"/>
+    <value name="CUBE"          value="3"/>
+    <value name="STRIDE"        value="4"/>
+    <value name="PAGETILE"      value="5"/>
+    <value name="BUFFER_LOOKUP" value="6"/>
+  </enum>
 
-       <enum name="TWOCOMP_GAMMA">
-               <value name="OFF" value="0"/>
-               <value name="R"   value="1"/>
-               <value name="RG"  value="3"/>
-       </enum>
+  <enum name="TWOCOMP_GAMMA">
+    <value name="OFF" value="0"/>
+    <value name="R"   value="1"/>
+    <value name="RG"  value="3"/>
+  </enum>
 
-       <struct name="IMAGE_WORD0" length="2">
-               <field name="smpcnt" start="62" end="63" type="uint"/>
-               <field name="height" start="48" end="61" type="uint"/>
-               <field name="width" start="34" end="47" type="uint"/>
-               <field name="texformat" start="27" end="33" type="FORMAT"/>
-               <field name="texformat_compressed" start="27" end="33" type="FORMAT_COMPRESSED"/>
-               <field name="minlod" start="17" end="26" type="uint"/>
-               <field name="swiz0" start="14" end="16" type="SWIZ"/>
-               <field name="swiz1" start="11" end="13" type="SWIZ"/>
-               <field name="swiz2" start="8" end="10" type="SWIZ"/>
-               <field name="swiz3" start="5" end="7" type="SWIZ"/>
-               <field name="twocomp_gamma" start="3" end="4" type="TWOCOMP_GAMMA"/>
-               <field name="gamma" start="3" end="3" type="GAMMA"/>
-               <field name="textype" start="0" end="2" type="TEXTYPE"/>
-       </struct>
+  <struct name="IMAGE_WORD0" length="2">
+    <field name="smpcnt" start="62" end="63" type="uint"/>
+    <field name="height" start="48" end="61" type="uint"/>
+    <field name="width" start="34" end="47" type="uint"/>
+    <field name="texformat" start="27" end="33" type="FORMAT"/>
+    <field name="texformat_compressed" start="27" end="33" type="FORMAT_COMPRESSED"/>
+    <field name="minlod" start="17" end="26" type="uint"/>
+    <field name="swiz0" start="14" end="16" type="SWIZ"/>
+    <field name="swiz1" start="11" end="13" type="SWIZ"/>
+    <field name="swiz2" start="8" end="10" type="SWIZ"/>
+    <field name="swiz3" start="5" end="7" type="SWIZ"/>
+    <field name="twocomp_gamma" start="3" end="4" type="TWOCOMP_GAMMA"/>
+    <field name="gamma" start="3" end="3" type="GAMMA"/>
+    <field name="textype" start="0" end="2" type="TEXTYPE"/>
+  </struct>
 
-       <struct name="IMAGE_WORD1" length="2">
-               <field name="baselevel" start="60" end="63" type="uint"/>
-               <field name="alpha_msb" start="59" end="59" type="bool"/>
-               <field name="border" start="58" end="58" type="bool"/>
-               <condition type="if" check="TPU_IMAGE_STATE_V2"/>
-                       <condition type="if" check="TFBC"/>
-                               <field name="lossy_compression_mode" start="56" end="57" type="COMPRESSION_LEVEL"/>
-                       <condition type="endif" check="TFBC"/>
-                       <field name="tpu_image_state_v2_compression_mode" start="54" end="56" type="COMPRESSION_MODE"/>
-               <condition type="else" check="TPU_IMAGE_STATE_V2"/>
-                       <field name="tile_size" start="57" end="57" type="bool"/>
-                       <field name="index_lookup" start="56" end="56" type="bool"/>
-                       <field name="frame_buffer_compression" start="55" end="55" type="bool"/>
-                       <field name="frame_buffer_compression_addressing_mode" start="54" end="54" type="bool"/>
-               <condition type="endif" check="TPU_IMAGE_STATE_V2"/>
-               <field name="texaddr" start="16" end="53" shift="2" type="address"/>
-               <field name="mipmaps_present" start="15" end="15" type="bool"/>
-               <field name="depth" start="4" end="14" type="uint"/>
-               <field name="num_mip_levels" start="0" end="3" type="uint"/>
-       </struct>
+  <struct name="IMAGE_WORD1" length="2">
+    <field name="baselevel" start="60" end="63" type="uint"/>
+    <field name="alpha_msb" start="59" end="59" type="bool"/>
+    <field name="border" start="58" end="58" type="bool"/>
+    <condition type="if" check="TPU_IMAGE_STATE_V2"/>
+      <condition type="if" check="TFBC"/>
+        <field name="lossy_compression_mode" start="56" end="57" type="COMPRESSION_LEVEL"/>
+      <condition type="endif" check="TFBC"/>
+      <field name="tpu_image_state_v2_compression_mode" start="54" end="56" type="COMPRESSION_MODE"/>
+    <condition type="else" check="TPU_IMAGE_STATE_V2"/>
+      <field name="tile_size" start="57" end="57" type="bool"/>
+      <field name="index_lookup" start="56" end="56" type="bool"/>
+      <field name="frame_buffer_compression" start="55" end="55" type="bool"/>
+      <field name="frame_buffer_compression_addressing_mode" start="54" end="54" type="bool"/>
+    <condition type="endif" check="TPU_IMAGE_STATE_V2"/>
+    <field name="texaddr" start="16" end="53" shift="2" type="address"/>
+    <field name="mipmaps_present" start="15" end="15" type="bool"/>
+    <field name="depth" start="4" end="14" type="uint"/>
+    <field name="num_mip_levels" start="0" end="3" type="uint"/>
+  </struct>
 
-       <struct name="STRIDE_IMAGE_WORD1" length="2">
-               <field name="num_mip_levels" start="60" end="63" type="uint"/>
-               <field name="alpha_msb" start="59" end="59" type="bool"/>
-               <condition type="if" check="TPU_IMAGE_STATE_V2"/>
-                       <condition type="if" check="TFBC"/>
-                               <field name="lossy_compression_mode" start="56" end="57" type="COMPRESSION_LEVEL"/>
-                       <condition type="endif" check="TFBC"/>
-                       <field name="tpu_image_state_v2_compression_mode" start="54" end="56" type="COMPRESSION_MODE"/>
-               <condition type="else" check="TPU_IMAGE_STATE_V2"/>
-                       <field name="tile_size" start="57" end="57" type="bool"/>
-                       <field name="index_lookup" start="56" end="56" type="bool"/>
-                       <field name="frame_buffer_compression" start="55" end="55" type="bool"/>
-                       <field name="frame_buffer_compression_addressing_mode" start="54" end="54" type="bool"/>
-               <condition type="endif" check="TPU_IMAGE_STATE_V2"/>
-               <field name="texaddr" start="16" end="53" shift="2" type="address"/>
-               <field name="mipmaps_present" start="15" end="15" type="bool"/>
-               <field name="stride" start="0" end="14" type="uint"/>
-       </struct>
+  <struct name="STRIDE_IMAGE_WORD1" length="2">
+    <field name="num_mip_levels" start="60" end="63" type="uint"/>
+    <field name="alpha_msb" start="59" end="59" type="bool"/>
+    <condition type="if" check="TPU_IMAGE_STATE_V2"/>
+      <condition type="if" check="TFBC"/>
+        <field name="lossy_compression_mode" start="56" end="57" type="COMPRESSION_LEVEL"/>
+      <condition type="endif" check="TFBC"/>
+      <field name="tpu_image_state_v2_compression_mode" start="54" end="56" type="COMPRESSION_MODE"/>
+    <condition type="else" check="TPU_IMAGE_STATE_V2"/>
+      <field name="tile_size" start="57" end="57" type="bool"/>
+      <field name="index_lookup" start="56" end="56" type="bool"/>
+      <field name="frame_buffer_compression" start="55" end="55" type="bool"/>
+      <field name="frame_buffer_compression_addressing_mode" start="54" end="54" type="bool"/>
+    <condition type="endif" check="TPU_IMAGE_STATE_V2"/>
+    <field name="texaddr" start="16" end="53" shift="2" type="address"/>
+    <field name="mipmaps_present" start="15" end="15" type="bool"/>
+    <field name="stride" start="0" end="14" type="uint"/>
+  </struct>
 
-       <struct name="SAMPLER" length="2">
-               <field name="texaddr_plane2_lo" start="50" end="63" shift="2" type="address"/>
-               <field name="cmp_mode" start="59" end="61" type="CMP_MODE"/>
-               <field name="addrmode_w" start="56" end="58" type="ADDRMODE"/>
-               <field name="bordercolor_index" start="50" end="55" type="uint"/>
-               <field name="non_normalized_coords" start="49" end="49" type="bool"/>
-               <field name="lumakey_alphamult" start="48" end="48" type="bool"/>
-               <field name="lumakey" start="47" end="47" type="bool"/>
-               <field name="addrmode_v" start="44" end="46" type="ADDRMODE"/>
-               <field name="addrmode_u" start="41" end="43" type="ADDRMODE"/>
-               <field name="mipfilter" start="40" end="40" type="bool"/>
-               <field name="minfilter" start="38" end="39" type="FILTER"/>
-               <field name="magfilter" start="36" end="37" type="FILTER"/>
-               <field name="anisoctl" start="33" end="35" type="ANISOCTL"/>
-               <field name="maxlod" start="23" end="32" type="CLAMP"/>
-               <field name="minlod" start="13" end="22" type="CLAMP"/>
-               <field name="dadjust" start="0" end="12" type="DADJUST"/>
-       </struct>
+  <struct name="SAMPLER" length="2">
+    <field name="texaddr_plane2_lo" start="50" end="63" shift="2" type="address"/>
+    <field name="cmp_mode" start="59" end="61" type="CMP_MODE"/>
+    <field name="addrmode_w" start="56" end="58" type="ADDRMODE"/>
+    <field name="bordercolor_index" start="50" end="55" type="uint"/>
+    <field name="non_normalized_coords" start="49" end="49" type="bool"/>
+    <field name="lumakey_alphamult" start="48" end="48" type="bool"/>
+    <field name="lumakey" start="47" end="47" type="bool"/>
+    <field name="addrmode_v" start="44" end="46" type="ADDRMODE"/>
+    <field name="addrmode_u" start="41" end="43" type="ADDRMODE"/>
+    <field name="mipfilter" start="40" end="40" type="bool"/>
+    <field name="minfilter" start="38" end="39" type="FILTER"/>
+    <field name="magfilter" start="36" end="37" type="FILTER"/>
+    <field name="anisoctl" start="33" end="35" type="ANISOCTL"/>
+    <field name="maxlod" start="23" end="32" type="CLAMP"/>
+    <field name="minlod" start="13" end="22" type="CLAMP"/>
+    <field name="dadjust" start="0" end="12" type="DADJUST"/>
+  </struct>
 
-       <struct name="SAMPLER_WORD1" length="2">
-               <field name="cemedge_dontfilter" start="63" end="63" type="bool"/>
-               <field name="texaddr_plane3" start="24" end="61" shift="2" type="address"/>
-               <field name="texaddr_plane2_hi" start="0" end="23" shift="16" type="address"/>
-       </struct>
+  <struct name="SAMPLER_WORD1" length="2">
+    <field name="cemedge_dontfilter" start="63" end="63" type="bool"/>
+    <field name="texaddr_plane3" start="24" end="61" shift="2" type="address"/>
+    <field name="texaddr_plane2_hi" start="0" end="23" shift="16" type="address"/>
+  </struct>
 
 </csbgen>
index a0b2376..ca62b5c 100644 (file)
@@ -25,232 +25,232 @@ SOFTWARE.
 
 <csbgen name="ROGUE" prefix="VDMCTRL">
 
-       <enum name="BLOCK_TYPE">
-               <value name="PPP_STATE_UPDATE" value="0"/>
-               <value name="PDS_STATE_UPDATE" value="1"/>
-               <value name="VDM_STATE_UPDATE" value="2"/>
-               <value name="INDEX_LIST"       value="3"/>
-               <value name="STREAM_LINK"      value="4"/>
-               <value name="STREAM_RETURN"    value="5"/>
-               <value name="STREAM_TERMINATE" value="6"/>
-               <value name="CONTROL"          value="7"/>
-       </enum>
-
-       <enum name="DM_TARGET">
-               <value name="VDM" value="0"/>
-               <value name="DDM" value="1"/>
-       </enum>
-
-       <enum name="FLATSHADE_CONTROL">
-               <value name="VERTEX_0" value="0"/>
-               <value name="VERTEX_1" value="1"/>
-               <value name="VERTEX_2" value="2"/>
-       </enum>
-
-       <enum name="INDEX_SIZE">
-               <value name="B8"  value="0"/>
-               <value name="B16" value="1"/>
-               <value name="B32" value="2"/>
-       </enum>
-
-       <enum name="PRIMITIVE_TOPOLOGY">
-               <value name="POINT_LIST"     value="0"/>
-               <value name="LINE_LIST"      value="1"/>
-               <value name="LINE_LIST_ADJ"  value="2"/>
-               <value name="LINE_STRIP"     value="3"/>
-               <value name="LINE_STRIP_ADJ" value="4"/>
-               <value name="LINE_LOOP"      value="5"/>
-               <value name="TRI_LIST"       value="6"/>
-               <value name="TRI_LIST_ADJ"   value="7"/>
-               <value name="TRI_LIST_EDGE"  value="8"/>
-               <value name="TRI_STRIP"      value="9"/>
-               <value name="TRI_STRIP_ADJ"  value="10"/>
-               <value name="TRI_FAN"        value="11"/>
-               <value name="PATCH_LIST"     value="12"/>
-       </enum>
-
-       <enum name="SD_TYPE">
-               <value name="NONE" value="0"/>
-               <value name="PDS"  value="1"/>
-               <value name="USC"  value="2"/>
-       </enum>
-
-       <enum name="USC_TARGET">
-               <value name="ALL" value="0"/>
-               <value name="ANY" value="1"/>
-       </enum>
-
-       <enum name="UVS_SCRATCH_SIZE_SELECT">
-               <value name="FIVE" value="0"/>
-               <value name="ONE"  value="1"/>
-       </enum>
-
-       <struct name="PPP_STATE0" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PPP_STATE_UPDATE"/>
-               <field name="word_count" start="8" end="15" type="uint"/>
-               <field name="addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="PPP_STATE1" length="1">
-               <field name="addrlsb" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="PDS_STATE0" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PDS_STATE_UPDATE"/>
-               <field name="dm_target" start="28" end="28" type="DM_TARGET"/>
-               <field name="usc_target" start="25" end="25" type="USC_TARGET"/>
-               <field name="usc_common_size" start="16" end="24" type="uint">
-                       <define name="UNIT_SIZE" value="64"/>
-               </field>
-               <field name="usc_unified_size" start="10" end="15" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_temp_size" start="6" end="9" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="pds_data_size" start="0" end="5" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-       </struct>
-
-       <struct name="PDS_STATE1" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="pds_data_addr" start="4" end="31" shift="4" type="address"/>
-               <field name="sd_type" start="2" end="3" type="SD_TYPE"/>
-               <field name="sd_next_type" start="0" end="1" type="SD_TYPE"/>
-       </struct>
-
-       <struct name="PDS_STATE2" length="1">
-               <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
-               <field name="pds_code_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="STREAM_LINK0" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/>
-               <field name="with_return" start="28" end="28" type="bool"/>
-               <field name="compare_present" start="27" end="27" type="bool"/>
-               <field name="compare_mode" start="24" end="26" type="uint"/>
-               <field name="compare_data" start="8" end="23" type="uint"/>
-               <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="STREAM_LINK1" length="1">
-               <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="STREAM_RETURN" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_RETURN"/>
-       </struct>
-
-       <struct name="STREAM_TERMINATE" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/>
-               <field name="context" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="VDM_STATE0" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="VDM_STATE_UPDATE"/>
-               <field name="cut_index_present" start="28" end="28" type="bool"/>
-               <field name="vs_data_addr_present" start="27" end="27" type="bool"/>
-               <field name="vs_other_present" start="26" end="26" type="bool"/>
-               <field name="ds_present" start="24" end="24" type="bool"/>
-               <field name="gs_present" start="23" end="23" type="bool"/>
-               <field name="hs_present" start="22" end="22" type="bool"/>
-               <field name="cam_size" start="7" end="14" type="uint"/>
-               <field name="uvs_scratch_size_select" start="6" end="6" type="UVS_SCRATCH_SIZE_SELECT"/>
-               <field name="cut_index_enable" start="5" end="5" type="bool"/>
-               <field name="tess_enable" start="4" end="4" type="bool"/>
-               <field name="gs_enable" start="3" end="3" type="bool"/>
-               <field name="flatshade_control" start="1" end="2" type="FLATSHADE_CONTROL"/>
-               <field name="generate_primitive_id" start="0" end="0" type="bool"/>
-       </struct>
-
-       <struct name="VDM_STATE1" length="1">
-               <field name="cut_index" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="VDM_STATE2" length="1">
-               <field name="vs_pds_data_base_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="VDM_STATE3" length="1">
-               <field name="vs_pds_code_base_addr" start="4" end="31" shift="4" type="address"/>
-       </struct>
-
-       <struct name="VDM_STATE4" length="1">
-               <field name="vs_output_size" start="0" end="7" type="uint">
-                       <define name="UNIT_SIZE" value="4"/>
-               </field>
-       </struct>
-
-       <struct name="VDM_STATE5" length="1">
-               <field name="vs_max_instances_ext" start="31" end="31" type="bool"/>
-               <field name="vs_max_instances" start="25" end="29" type="uint"/>
-               <field name="vs_usc_common_size" start="16" end="24" type="uint">
-                       <define name="UNIT_SIZE" value="64"/>
-               </field>
-               <field name="vs_usc_unified_size" start="10" end="15" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="vs_pds_temp_size" start="6" end="9" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-               <field name="vs_pds_data_size" start="0" end="5" type="uint">
-                       <define name="UNIT_SIZE" value="16"/>
-               </field>
-       </struct>
-
-       <struct name="INDEX_LIST0" length="1">
-               <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="INDEX_LIST"/>
-               <field name="index_addr_present" start="28" end="28" type="bool"/>
-               <field name="index_count_present" start="27" end="27" type="bool"/>
-               <field name="index_instance_count_present" start="26" end="26" type="bool"/>
-               <field name="index_offset_present" start="25" end="25" type="bool"/>
-               <field name="start_present" start="24" end="24" type="bool"/>
-               <field name="indirect_addr_present" start="23" end="23" type="bool"/>
-               <field name="split_count_present" start="22" end="22" type="bool"/>
-               <condition type="if" check="VDM_DEGENERATE_CULLING"/>
-                       <field name="degen_cull_enable" start="19" end="19" type="bool"/>
-               <condition type="endif" check="VDM_DEGENERATE_CULLING"/>
-               <field name="index_size" start="17" end="18" type="INDEX_SIZE"/>
-               <field name="patch_count" start="12" end="16" type="uint"/>
-               <field name="primitive_topology" start="8" end="11" type="PRIMITIVE_TOPOLOGY"/>
-               <field name="index_base_addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="INDEX_LIST1" length="1">
-               <field name="index_base_addrlsb" start="0" end="31" shift="0" type="address"/>
-       </struct>
-
-       <struct name="INDEX_LIST2" length="1">
-               <field name="index_count" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="INDEX_LIST3" length="1">
-               <field name="instance_count" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="INDEX_LIST4" length="1">
-               <field name="index_offset" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="INDEX_LIST5" length="1">
-               <field name="start_index" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="INDEX_LIST6" length="1">
-               <field name="start_instance" start="0" end="31" type="uint"/>
-       </struct>
-
-       <struct name="INDEX_LIST7" length="1">
-               <field name="indirect_base_addrmsb" start="0" end="7" shift="32" type="address"/>
-       </struct>
-
-       <struct name="INDEX_LIST8" length="1">
-               <field name="indirect_base_addrlsb" start="2" end="31" shift="2" type="address"/>
-       </struct>
-
-       <struct name="INDEX_LIST9" length="1">
-               <field name="split_count" start="0" end="15" type="uint"/>
-       </struct>
+  <enum name="BLOCK_TYPE">
+    <value name="PPP_STATE_UPDATE" value="0"/>
+    <value name="PDS_STATE_UPDATE" value="1"/>
+    <value name="VDM_STATE_UPDATE" value="2"/>
+    <value name="INDEX_LIST"       value="3"/>
+    <value name="STREAM_LINK"      value="4"/>
+    <value name="STREAM_RETURN"    value="5"/>
+    <value name="STREAM_TERMINATE" value="6"/>
+    <value name="CONTROL"          value="7"/>
+  </enum>
+
+  <enum name="DM_TARGET">
+    <value name="VDM" value="0"/>
+    <value name="DDM" value="1"/>
+  </enum>
+
+  <enum name="FLATSHADE_CONTROL">
+    <value name="VERTEX_0" value="0"/>
+    <value name="VERTEX_1" value="1"/>
+    <value name="VERTEX_2" value="2"/>
+  </enum>
+
+  <enum name="INDEX_SIZE">
+    <value name="B8"  value="0"/>
+    <value name="B16" value="1"/>
+    <value name="B32" value="2"/>
+  </enum>
+
+  <enum name="PRIMITIVE_TOPOLOGY">
+    <value name="POINT_LIST"     value="0"/>
+    <value name="LINE_LIST"      value="1"/>
+    <value name="LINE_LIST_ADJ"  value="2"/>
+    <value name="LINE_STRIP"     value="3"/>
+    <value name="LINE_STRIP_ADJ" value="4"/>
+    <value name="LINE_LOOP"      value="5"/>
+    <value name="TRI_LIST"       value="6"/>
+    <value name="TRI_LIST_ADJ"   value="7"/>
+    <value name="TRI_LIST_EDGE"  value="8"/>
+    <value name="TRI_STRIP"      value="9"/>
+    <value name="TRI_STRIP_ADJ"  value="10"/>
+    <value name="TRI_FAN"        value="11"/>
+    <value name="PATCH_LIST"     value="12"/>
+  </enum>
+
+  <enum name="SD_TYPE">
+    <value name="NONE" value="0"/>
+    <value name="PDS"  value="1"/>
+    <value name="USC"  value="2"/>
+  </enum>
+
+  <enum name="USC_TARGET">
+    <value name="ALL" value="0"/>
+    <value name="ANY" value="1"/>
+  </enum>
+
+  <enum name="UVS_SCRATCH_SIZE_SELECT">
+    <value name="FIVE" value="0"/>
+    <value name="ONE"  value="1"/>
+  </enum>
+
+  <struct name="PPP_STATE0" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PPP_STATE_UPDATE"/>
+    <field name="word_count" start="8" end="15" type="uint"/>
+    <field name="addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="PPP_STATE1" length="1">
+    <field name="addrlsb" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="PDS_STATE0" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PDS_STATE_UPDATE"/>
+    <field name="dm_target" start="28" end="28" type="DM_TARGET"/>
+    <field name="usc_target" start="25" end="25" type="USC_TARGET"/>
+    <field name="usc_common_size" start="16" end="24" type="uint">
+      <define name="UNIT_SIZE" value="64"/>
+    </field>
+    <field name="usc_unified_size" start="10" end="15" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_temp_size" start="6" end="9" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="pds_data_size" start="0" end="5" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+  </struct>
+
+  <struct name="PDS_STATE1" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="pds_data_addr" start="4" end="31" shift="4" type="address"/>
+    <field name="sd_type" start="2" end="3" type="SD_TYPE"/>
+    <field name="sd_next_type" start="0" end="1" type="SD_TYPE"/>
+  </struct>
+
+  <struct name="PDS_STATE2" length="1">
+    <!-- This is an offset actually. Note for when we auto-generate the xmls. -->
+    <field name="pds_code_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="STREAM_LINK0" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/>
+    <field name="with_return" start="28" end="28" type="bool"/>
+    <field name="compare_present" start="27" end="27" type="bool"/>
+    <field name="compare_mode" start="24" end="26" type="uint"/>
+    <field name="compare_data" start="8" end="23" type="uint"/>
+    <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="STREAM_LINK1" length="1">
+    <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="STREAM_RETURN" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_RETURN"/>
+  </struct>
+
+  <struct name="STREAM_TERMINATE" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/>
+    <field name="context" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="VDM_STATE0" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="VDM_STATE_UPDATE"/>
+    <field name="cut_index_present" start="28" end="28" type="bool"/>
+    <field name="vs_data_addr_present" start="27" end="27" type="bool"/>
+    <field name="vs_other_present" start="26" end="26" type="bool"/>
+    <field name="ds_present" start="24" end="24" type="bool"/>
+    <field name="gs_present" start="23" end="23" type="bool"/>
+    <field name="hs_present" start="22" end="22" type="bool"/>
+    <field name="cam_size" start="7" end="14" type="uint"/>
+    <field name="uvs_scratch_size_select" start="6" end="6" type="UVS_SCRATCH_SIZE_SELECT"/>
+    <field name="cut_index_enable" start="5" end="5" type="bool"/>
+    <field name="tess_enable" start="4" end="4" type="bool"/>
+    <field name="gs_enable" start="3" end="3" type="bool"/>
+    <field name="flatshade_control" start="1" end="2" type="FLATSHADE_CONTROL"/>
+    <field name="generate_primitive_id" start="0" end="0" type="bool"/>
+  </struct>
+
+  <struct name="VDM_STATE1" length="1">
+    <field name="cut_index" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="VDM_STATE2" length="1">
+    <field name="vs_pds_data_base_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="VDM_STATE3" length="1">
+    <field name="vs_pds_code_base_addr" start="4" end="31" shift="4" type="address"/>
+  </struct>
+
+  <struct name="VDM_STATE4" length="1">
+    <field name="vs_output_size" start="0" end="7" type="uint">
+      <define name="UNIT_SIZE" value="4"/>
+    </field>
+  </struct>
+
+  <struct name="VDM_STATE5" length="1">
+    <field name="vs_max_instances_ext" start="31" end="31" type="bool"/>
+    <field name="vs_max_instances" start="25" end="29" type="uint"/>
+    <field name="vs_usc_common_size" start="16" end="24" type="uint">
+      <define name="UNIT_SIZE" value="64"/>
+    </field>
+    <field name="vs_usc_unified_size" start="10" end="15" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="vs_pds_temp_size" start="6" end="9" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+    <field name="vs_pds_data_size" start="0" end="5" type="uint">
+      <define name="UNIT_SIZE" value="16"/>
+    </field>
+  </struct>
+
+  <struct name="INDEX_LIST0" length="1">
+    <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="INDEX_LIST"/>
+    <field name="index_addr_present" start="28" end="28" type="bool"/>
+    <field name="index_count_present" start="27" end="27" type="bool"/>
+    <field name="index_instance_count_present" start="26" end="26" type="bool"/>
+    <field name="index_offset_present" start="25" end="25" type="bool"/>
+    <field name="start_present" start="24" end="24" type="bool"/>
+    <field name="indirect_addr_present" start="23" end="23" type="bool"/>
+    <field name="split_count_present" start="22" end="22" type="bool"/>
+    <condition type="if" check="VDM_DEGENERATE_CULLING"/>
+      <field name="degen_cull_enable" start="19" end="19" type="bool"/>
+    <condition type="endif" check="VDM_DEGENERATE_CULLING"/>
+    <field name="index_size" start="17" end="18" type="INDEX_SIZE"/>
+    <field name="patch_count" start="12" end="16" type="uint"/>
+    <field name="primitive_topology" start="8" end="11" type="PRIMITIVE_TOPOLOGY"/>
+    <field name="index_base_addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="INDEX_LIST1" length="1">
+    <field name="index_base_addrlsb" start="0" end="31" shift="0" type="address"/>
+  </struct>
+
+  <struct name="INDEX_LIST2" length="1">
+    <field name="index_count" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="INDEX_LIST3" length="1">
+    <field name="instance_count" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="INDEX_LIST4" length="1">
+    <field name="index_offset" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="INDEX_LIST5" length="1">
+    <field name="start_index" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="INDEX_LIST6" length="1">
+    <field name="start_instance" start="0" end="31" type="uint"/>
+  </struct>
+
+  <struct name="INDEX_LIST7" length="1">
+    <field name="indirect_base_addrmsb" start="0" end="7" shift="32" type="address"/>
+  </struct>
+
+  <struct name="INDEX_LIST8" length="1">
+    <field name="indirect_base_addrlsb" start="2" end="31" shift="2" type="address"/>
+  </struct>
+
+  <struct name="INDEX_LIST9" length="1">
+    <field name="split_count" start="0" end="15" type="uint"/>
+  </struct>
 
 </csbgen>