1*61046927SAndroid Build Coastguard Worker<?xml version="1.0" ?> 2*61046927SAndroid Build Coastguard Worker 3*61046927SAndroid Build Coastguard Worker<!-- 4*61046927SAndroid Build Coastguard WorkerCopyright © 2022 Imagination Technologies Ltd. 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard WorkerPermission is hereby granted, free of charge, to any person obtaining a copy 7*61046927SAndroid Build Coastguard Workerof this software and associated documentation files (the "Software"), to deal 8*61046927SAndroid Build Coastguard Workerin the Software without restriction, including without limitation the rights 9*61046927SAndroid Build Coastguard Workerto use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10*61046927SAndroid Build Coastguard Workercopies of the Software, and to permit persons to whom the Software is 11*61046927SAndroid Build Coastguard Workerfurnished to do so, subject to the following conditions: 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard WorkerThe above copyright notice and this permission notice (including the next 14*61046927SAndroid Build Coastguard Workerparagraph) shall be included in all copies or substantial portions of the 15*61046927SAndroid Build Coastguard WorkerSoftware. 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard WorkerTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18*61046927SAndroid Build Coastguard WorkerIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19*61046927SAndroid Build Coastguard WorkerFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20*61046927SAndroid Build Coastguard WorkerAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21*61046927SAndroid Build Coastguard WorkerLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22*61046927SAndroid Build Coastguard WorkerOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23*61046927SAndroid Build Coastguard WorkerSOFTWARE. 24*61046927SAndroid Build Coastguard Worker--> 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Worker<csbgen name="ROGUE" prefix="VDMCTRL"> 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Worker <define name="GUARD_SIZE_DEFAULT" value="64"/> 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard Worker <enum name="BLOCK_TYPE"> 31*61046927SAndroid Build Coastguard Worker <value name="PPP_STATE_UPDATE" value="0"/> 32*61046927SAndroid Build Coastguard Worker <value name="PDS_STATE_UPDATE" value="1"/> 33*61046927SAndroid Build Coastguard Worker <value name="VDM_STATE_UPDATE" value="2"/> 34*61046927SAndroid Build Coastguard Worker <value name="INDEX_LIST" value="3"/> 35*61046927SAndroid Build Coastguard Worker <value name="STREAM_LINK" value="4"/> 36*61046927SAndroid Build Coastguard Worker <value name="STREAM_RETURN" value="5"/> 37*61046927SAndroid Build Coastguard Worker <value name="STREAM_TERMINATE" value="6"/> 38*61046927SAndroid Build Coastguard Worker <value name="CONTROL" value="7"/> 39*61046927SAndroid Build Coastguard Worker </enum> 40*61046927SAndroid Build Coastguard Worker 41*61046927SAndroid Build Coastguard Worker <enum name="DM_TARGET"> 42*61046927SAndroid Build Coastguard Worker <value name="VDM" value="0"/> 43*61046927SAndroid Build Coastguard Worker <value name="DDM" value="1"/> 44*61046927SAndroid Build Coastguard Worker </enum> 45*61046927SAndroid Build Coastguard Worker 46*61046927SAndroid Build Coastguard Worker <enum name="FLATSHADE_CONTROL"> 47*61046927SAndroid Build Coastguard Worker <value name="VERTEX_0" value="0"/> 48*61046927SAndroid Build Coastguard Worker <value name="VERTEX_1" value="1"/> 49*61046927SAndroid Build Coastguard Worker <value name="VERTEX_2" value="2"/> 50*61046927SAndroid Build Coastguard Worker </enum> 51*61046927SAndroid Build Coastguard Worker 52*61046927SAndroid Build Coastguard Worker <enum name="INDEX_SIZE"> 53*61046927SAndroid Build Coastguard Worker <value name="B8" value="0"/> 54*61046927SAndroid Build Coastguard Worker <value name="B16" value="1"/> 55*61046927SAndroid Build Coastguard Worker <value name="B32" value="2"/> 56*61046927SAndroid Build Coastguard Worker </enum> 57*61046927SAndroid Build Coastguard Worker 58*61046927SAndroid Build Coastguard Worker <enum name="PRIMITIVE_TOPOLOGY"> 59*61046927SAndroid Build Coastguard Worker <value name="POINT_LIST" value="0"/> 60*61046927SAndroid Build Coastguard Worker <value name="LINE_LIST" value="1"/> 61*61046927SAndroid Build Coastguard Worker <value name="LINE_LIST_ADJ" value="2"/> 62*61046927SAndroid Build Coastguard Worker <value name="LINE_STRIP" value="3"/> 63*61046927SAndroid Build Coastguard Worker <value name="LINE_STRIP_ADJ" value="4"/> 64*61046927SAndroid Build Coastguard Worker <value name="LINE_LOOP" value="5"/> 65*61046927SAndroid Build Coastguard Worker <value name="TRI_LIST" value="6"/> 66*61046927SAndroid Build Coastguard Worker <value name="TRI_LIST_ADJ" value="7"/> 67*61046927SAndroid Build Coastguard Worker <value name="TRI_LIST_EDGE" value="8"/> 68*61046927SAndroid Build Coastguard Worker <value name="TRI_STRIP" value="9"/> 69*61046927SAndroid Build Coastguard Worker <value name="TRI_STRIP_ADJ" value="10"/> 70*61046927SAndroid Build Coastguard Worker <value name="TRI_FAN" value="11"/> 71*61046927SAndroid Build Coastguard Worker <value name="PATCH_LIST" value="12"/> 72*61046927SAndroid Build Coastguard Worker </enum> 73*61046927SAndroid Build Coastguard Worker 74*61046927SAndroid Build Coastguard Worker <enum name="SD_TYPE"> 75*61046927SAndroid Build Coastguard Worker <value name="NONE" value="0"/> 76*61046927SAndroid Build Coastguard Worker <value name="PDS" value="1"/> 77*61046927SAndroid Build Coastguard Worker <value name="USC" value="2"/> 78*61046927SAndroid Build Coastguard Worker </enum> 79*61046927SAndroid Build Coastguard Worker 80*61046927SAndroid Build Coastguard Worker <enum name="USC_TARGET"> 81*61046927SAndroid Build Coastguard Worker <value name="ALL" value="0"/> 82*61046927SAndroid Build Coastguard Worker <value name="ANY" value="1"/> 83*61046927SAndroid Build Coastguard Worker </enum> 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard Worker <enum name="UVS_SCRATCH_SIZE_SELECT"> 86*61046927SAndroid Build Coastguard Worker <value name="FIVE" value="0"/> 87*61046927SAndroid Build Coastguard Worker <value name="ONE" value="1"/> 88*61046927SAndroid Build Coastguard Worker </enum> 89*61046927SAndroid Build Coastguard Worker 90*61046927SAndroid Build Coastguard Worker <struct name="PPP_STATE0" length="1"> 91*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PPP_STATE_UPDATE"/> 92*61046927SAndroid Build Coastguard Worker <field name="word_count" start="8" end="15" type="uint"/> 93*61046927SAndroid Build Coastguard Worker <field name="addrmsb" start="0" end="7" shift="32" type="address"/> 94*61046927SAndroid Build Coastguard Worker </struct> 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard Worker <struct name="PPP_STATE1" length="1"> 97*61046927SAndroid Build Coastguard Worker <field name="addrlsb" start="2" end="31" shift="2" type="address"/> 98*61046927SAndroid Build Coastguard Worker </struct> 99*61046927SAndroid Build Coastguard Worker 100*61046927SAndroid Build Coastguard Worker <struct name="PDS_STATE0" length="1"> 101*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="PDS_STATE_UPDATE"/> 102*61046927SAndroid Build Coastguard Worker <field name="dm_target" start="28" end="28" type="DM_TARGET"/> 103*61046927SAndroid Build Coastguard Worker <field name="usc_target" start="25" end="25" type="USC_TARGET"/> 104*61046927SAndroid Build Coastguard Worker <field name="usc_common_size" start="16" end="24" type="uint"> 105*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="64"/> 106*61046927SAndroid Build Coastguard Worker </field> 107*61046927SAndroid Build Coastguard Worker <field name="usc_unified_size" start="10" end="15" type="uint"> 108*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 109*61046927SAndroid Build Coastguard Worker </field> 110*61046927SAndroid Build Coastguard Worker <field name="pds_temp_size" start="6" end="9" type="uint"> 111*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 112*61046927SAndroid Build Coastguard Worker </field> 113*61046927SAndroid Build Coastguard Worker <field name="pds_data_size" start="0" end="5" type="uint"> 114*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 115*61046927SAndroid Build Coastguard Worker </field> 116*61046927SAndroid Build Coastguard Worker </struct> 117*61046927SAndroid Build Coastguard Worker 118*61046927SAndroid Build Coastguard Worker <struct name="PDS_STATE1" length="1"> 119*61046927SAndroid Build Coastguard Worker <!-- This is an offset actually. Note for when we auto-generate the xmls. --> 120*61046927SAndroid Build Coastguard Worker <field name="pds_data_addr" start="4" end="31" shift="4" type="address"/> 121*61046927SAndroid Build Coastguard Worker <field name="sd_type" start="2" end="3" type="SD_TYPE"/> 122*61046927SAndroid Build Coastguard Worker <field name="sd_next_type" start="0" end="1" type="SD_TYPE"/> 123*61046927SAndroid Build Coastguard Worker </struct> 124*61046927SAndroid Build Coastguard Worker 125*61046927SAndroid Build Coastguard Worker <struct name="PDS_STATE2" length="1"> 126*61046927SAndroid Build Coastguard Worker <!-- This is an offset actually. Note for when we auto-generate the xmls. --> 127*61046927SAndroid Build Coastguard Worker <field name="pds_code_addr" start="4" end="31" shift="4" type="address"/> 128*61046927SAndroid Build Coastguard Worker </struct> 129*61046927SAndroid Build Coastguard Worker 130*61046927SAndroid Build Coastguard Worker <struct name="STREAM_LINK0" length="1"> 131*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_LINK"/> 132*61046927SAndroid Build Coastguard Worker <field name="with_return" start="28" end="28" type="bool"/> 133*61046927SAndroid Build Coastguard Worker <field name="compare_present" start="27" end="27" type="bool"/> 134*61046927SAndroid Build Coastguard Worker <field name="compare_mode" start="24" end="26" type="uint"/> 135*61046927SAndroid Build Coastguard Worker <field name="compare_data" start="8" end="23" type="uint"/> 136*61046927SAndroid Build Coastguard Worker <field name="link_addrmsb" start="0" end="7" shift="32" type="address"/> 137*61046927SAndroid Build Coastguard Worker </struct> 138*61046927SAndroid Build Coastguard Worker 139*61046927SAndroid Build Coastguard Worker <struct name="STREAM_LINK1" length="1"> 140*61046927SAndroid Build Coastguard Worker <field name="link_addrlsb" start="2" end="31" shift="2" type="address"/> 141*61046927SAndroid Build Coastguard Worker </struct> 142*61046927SAndroid Build Coastguard Worker 143*61046927SAndroid Build Coastguard Worker <struct name="STREAM_RETURN" length="1"> 144*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_RETURN"/> 145*61046927SAndroid Build Coastguard Worker </struct> 146*61046927SAndroid Build Coastguard Worker 147*61046927SAndroid Build Coastguard Worker <struct name="STREAM_TERMINATE" length="1"> 148*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="STREAM_TERMINATE"/> 149*61046927SAndroid Build Coastguard Worker <field name="context" start="0" end="0" type="bool"/> 150*61046927SAndroid Build Coastguard Worker </struct> 151*61046927SAndroid Build Coastguard Worker 152*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE0" length="1"> 153*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="VDM_STATE_UPDATE"/> 154*61046927SAndroid Build Coastguard Worker <field name="cut_index_present" start="28" end="28" type="bool"/> 155*61046927SAndroid Build Coastguard Worker <field name="vs_data_addr_present" start="27" end="27" type="bool"/> 156*61046927SAndroid Build Coastguard Worker <field name="vs_other_present" start="26" end="26" type="bool"/> 157*61046927SAndroid Build Coastguard Worker <field name="ds_present" start="24" end="24" type="bool"/> 158*61046927SAndroid Build Coastguard Worker <field name="gs_present" start="23" end="23" type="bool"/> 159*61046927SAndroid Build Coastguard Worker <field name="hs_present" start="22" end="22" type="bool"/> 160*61046927SAndroid Build Coastguard Worker <field name="cam_size" start="7" end="14" type="uint"/> 161*61046927SAndroid Build Coastguard Worker <field name="uvs_scratch_size_select" start="6" end="6" type="UVS_SCRATCH_SIZE_SELECT"/> 162*61046927SAndroid Build Coastguard Worker <field name="cut_index_enable" start="5" end="5" type="bool"/> 163*61046927SAndroid Build Coastguard Worker <field name="tess_enable" start="4" end="4" type="bool"/> 164*61046927SAndroid Build Coastguard Worker <field name="gs_enable" start="3" end="3" type="bool"/> 165*61046927SAndroid Build Coastguard Worker <field name="flatshade_control" start="1" end="2" type="FLATSHADE_CONTROL"/> 166*61046927SAndroid Build Coastguard Worker <field name="generate_primitive_id" start="0" end="0" type="bool"/> 167*61046927SAndroid Build Coastguard Worker </struct> 168*61046927SAndroid Build Coastguard Worker 169*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE1" length="1"> 170*61046927SAndroid Build Coastguard Worker <field name="cut_index" start="0" end="31" type="uint"/> 171*61046927SAndroid Build Coastguard Worker </struct> 172*61046927SAndroid Build Coastguard Worker 173*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE2" length="1"> 174*61046927SAndroid Build Coastguard Worker <field name="vs_pds_data_base_addr" start="4" end="31" shift="4" type="address"/> 175*61046927SAndroid Build Coastguard Worker </struct> 176*61046927SAndroid Build Coastguard Worker 177*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE3" length="1"> 178*61046927SAndroid Build Coastguard Worker <field name="vs_pds_code_base_addr" start="4" end="31" shift="4" type="address"/> 179*61046927SAndroid Build Coastguard Worker </struct> 180*61046927SAndroid Build Coastguard Worker 181*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE4" length="1"> 182*61046927SAndroid Build Coastguard Worker <field name="vs_output_size" start="0" end="7" type="uint"> 183*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="4"/> 184*61046927SAndroid Build Coastguard Worker </field> 185*61046927SAndroid Build Coastguard Worker </struct> 186*61046927SAndroid Build Coastguard Worker 187*61046927SAndroid Build Coastguard Worker <struct name="VDM_STATE5" length="1"> 188*61046927SAndroid Build Coastguard Worker <field name="vs_max_instances_ext" start="31" end="31" type="bool"/> 189*61046927SAndroid Build Coastguard Worker <field name="vs_max_instances" start="25" end="29" type="uint"/> 190*61046927SAndroid Build Coastguard Worker <field name="vs_usc_common_size" start="16" end="24" type="uint"> 191*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="64"/> 192*61046927SAndroid Build Coastguard Worker </field> 193*61046927SAndroid Build Coastguard Worker <field name="vs_usc_unified_size" start="10" end="15" type="uint"> 194*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 195*61046927SAndroid Build Coastguard Worker </field> 196*61046927SAndroid Build Coastguard Worker <field name="vs_pds_temp_size" start="6" end="9" type="uint"> 197*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 198*61046927SAndroid Build Coastguard Worker </field> 199*61046927SAndroid Build Coastguard Worker <field name="vs_pds_data_size" start="0" end="5" type="uint"> 200*61046927SAndroid Build Coastguard Worker <define name="UNIT_SIZE" value="16"/> 201*61046927SAndroid Build Coastguard Worker </field> 202*61046927SAndroid Build Coastguard Worker </struct> 203*61046927SAndroid Build Coastguard Worker 204*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST0" length="1"> 205*61046927SAndroid Build Coastguard Worker <field name="block_type" start="29" end="31" type="BLOCK_TYPE" default="INDEX_LIST"/> 206*61046927SAndroid Build Coastguard Worker <field name="index_addr_present" start="28" end="28" type="bool"/> 207*61046927SAndroid Build Coastguard Worker <field name="index_count_present" start="27" end="27" type="bool"/> 208*61046927SAndroid Build Coastguard Worker <field name="index_instance_count_present" start="26" end="26" type="bool"/> 209*61046927SAndroid Build Coastguard Worker <field name="index_offset_present" start="25" end="25" type="bool"/> 210*61046927SAndroid Build Coastguard Worker <field name="start_present" start="24" end="24" type="bool"/> 211*61046927SAndroid Build Coastguard Worker <field name="indirect_addr_present" start="23" end="23" type="bool"/> 212*61046927SAndroid Build Coastguard Worker <field name="split_count_present" start="22" end="22" type="bool"/> 213*61046927SAndroid Build Coastguard Worker <condition type="if" check="VDM_DEGENERATE_CULLING"/> 214*61046927SAndroid Build Coastguard Worker <field name="degen_cull_enable" start="19" end="19" type="bool"/> 215*61046927SAndroid Build Coastguard Worker <condition type="endif" check="VDM_DEGENERATE_CULLING"/> 216*61046927SAndroid Build Coastguard Worker <field name="index_size" start="17" end="18" type="INDEX_SIZE"/> 217*61046927SAndroid Build Coastguard Worker <field name="patch_count" start="12" end="16" type="uint"/> 218*61046927SAndroid Build Coastguard Worker <field name="primitive_topology" start="8" end="11" type="PRIMITIVE_TOPOLOGY"/> 219*61046927SAndroid Build Coastguard Worker <field name="index_base_addrmsb" start="0" end="7" shift="32" type="address"/> 220*61046927SAndroid Build Coastguard Worker </struct> 221*61046927SAndroid Build Coastguard Worker 222*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST1" length="1"> 223*61046927SAndroid Build Coastguard Worker <field name="index_base_addrlsb" start="0" end="31" shift="0" type="address"/> 224*61046927SAndroid Build Coastguard Worker </struct> 225*61046927SAndroid Build Coastguard Worker 226*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST2" length="1"> 227*61046927SAndroid Build Coastguard Worker <field name="index_count" start="0" end="31" type="uint"/> 228*61046927SAndroid Build Coastguard Worker </struct> 229*61046927SAndroid Build Coastguard Worker 230*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST3" length="1"> 231*61046927SAndroid Build Coastguard Worker <field name="instance_count" start="0" end="31" type="uint"/> 232*61046927SAndroid Build Coastguard Worker </struct> 233*61046927SAndroid Build Coastguard Worker 234*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST4" length="1"> 235*61046927SAndroid Build Coastguard Worker <field name="index_offset" start="0" end="31" type="uint"/> 236*61046927SAndroid Build Coastguard Worker </struct> 237*61046927SAndroid Build Coastguard Worker 238*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST5" length="1"> 239*61046927SAndroid Build Coastguard Worker <field name="start_index" start="0" end="31" type="uint"/> 240*61046927SAndroid Build Coastguard Worker </struct> 241*61046927SAndroid Build Coastguard Worker 242*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST6" length="1"> 243*61046927SAndroid Build Coastguard Worker <field name="start_instance" start="0" end="31" type="uint"/> 244*61046927SAndroid Build Coastguard Worker </struct> 245*61046927SAndroid Build Coastguard Worker 246*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST7" length="1"> 247*61046927SAndroid Build Coastguard Worker <field name="indirect_base_addrmsb" start="0" end="7" shift="32" type="address"/> 248*61046927SAndroid Build Coastguard Worker </struct> 249*61046927SAndroid Build Coastguard Worker 250*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST8" length="1"> 251*61046927SAndroid Build Coastguard Worker <field name="indirect_base_addrlsb" start="2" end="31" shift="2" type="address"/> 252*61046927SAndroid Build Coastguard Worker </struct> 253*61046927SAndroid Build Coastguard Worker 254*61046927SAndroid Build Coastguard Worker <struct name="INDEX_LIST9" length="1"> 255*61046927SAndroid Build Coastguard Worker <field name="split_count" start="0" end="15" type="uint"/> 256*61046927SAndroid Build Coastguard Worker </struct> 257*61046927SAndroid Build Coastguard Worker 258*61046927SAndroid Build Coastguard Worker</csbgen> 259