[*.{c,h,cpp,hpp,cc,hh}]
max_line_length = 80
+
+[*.xml]
+indent_style = space
+indent_size = 2
<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>
<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 > 0"/>
- <field name="roguexe_max_num_pdm_tasks" start="16" end="23" type="uint"/>
- <condition type="endif" check="NUM_RASTER_PIPES > 0"/>
- <condition type="if" check="NUM_TA > 0"/>
- <field name="roguexe_max_num_vdm_tasks" start="8" end="15" type="uint"/>
- <condition type="endif" check="NUM_TA > 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 && ISP_SAMPLES_PER_PIXEL > 2"/>
- <field name="y2" start="3" end="3" type="bool"/>
- <condition type="endif" check="SIMPLE_INTERNAL_PARAMETER_FORMAT && ISP_SAMPLES_PER_PIXEL > 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 > 0"/>
- <field name="mcu_pds_l0_off" start="8" end="8" type="bool"/>
- <condition type="endif" check="PDSL0SIZE > 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 > 0"/>
+ <field name="roguexe_max_num_pdm_tasks" start="16" end="23" type="uint"/>
+ <condition type="endif" check="NUM_RASTER_PIPES > 0"/>
+ <condition type="if" check="NUM_TA > 0"/>
+ <field name="roguexe_max_num_vdm_tasks" start="8" end="15" type="uint"/>
+ <condition type="endif" check="NUM_TA > 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 && ISP_SAMPLES_PER_PIXEL > 2"/>
+ <field name="y2" start="3" end="3" type="bool"/>
+ <condition type="endif" check="SIMPLE_INTERNAL_PARAMETER_FORMAT && ISP_SAMPLES_PER_PIXEL > 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 > 0"/>
+ <field name="mcu_pds_l0_off" start="8" end="8" type="bool"/>
+ <condition type="endif" check="PDSL0SIZE > 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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>