xref: /aosp_15_r20/external/mesa3d/src/imagination/csbgen/rogue_vdm.xml (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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